summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/convert_user_script_unittest.cc
diff options
context:
space:
mode:
authorjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-19 01:16:34 +0000
committerjamescook@chromium.org <jamescook@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-19 01:16:34 +0000
commit171ab92d38130017437649324ae7cea6de1540b1 (patch)
treec0127a700dab75966a04fe8adcdcef01d1775730 /chrome/browser/extensions/convert_user_script_unittest.cc
parentf89ce5abd54f394c692eba26c6a91a7b60c0d4f1 (diff)
downloadchromium_src-171ab92d38130017437649324ae7cea6de1540b1.zip
chromium_src-171ab92d38130017437649324ae7cea6de1540b1.tar.gz
chromium_src-171ab92d38130017437649324ae7cea6de1540b1.tar.bz2
Move extension unpack intermediate dir to Extensions/Temp
This speeds up extension installation on Chrome OS by about 20%. On Chrome OS the USER_DATA_DIR is in /home/chronos, which is a different file system than /home/chronos/user where the Extensions directory lives. Thus an attempt to rename() an extension into place ends up being a recursive directory copy, which is both non-atomic and slow. Also add code to clean up the intermediate directory during extension garbage collection, which might have lead to leaked files in the old code if Chrome crashed during extension install. Removed DIR_USER_DATA_TEMP as the extension install code was the only user. Just use a temp directory for this during tests so we don't have to worry about profile creation. BUG=155994 TEST=Manual testing of extension install speed on Chrome OS, unit_tests ExtensionFromWebApp.* ExtensionFromUserScript.* SandboxedUnpackerTest.* TBR=sky@chromium.org for removing an unused constant from chrome/common/chrome_paths.h Review URL: https://chromiumcodereview.appspot.com/11198067 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@162880 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/convert_user_script_unittest.cc')
-rw-r--r--chrome/browser/extensions/convert_user_script_unittest.cc37
1 files changed, 30 insertions, 7 deletions
diff --git a/chrome/browser/extensions/convert_user_script_unittest.cc b/chrome/browser/extensions/convert_user_script_unittest.cc
index dee24c8..1901636 100644
--- a/chrome/browser/extensions/convert_user_script_unittest.cc
+++ b/chrome/browser/extensions/convert_user_script_unittest.cc
@@ -28,6 +28,9 @@ static void AddPattern(URLPatternSet* extent, const std::string& pattern) {
namespace extensions {
TEST(ExtensionFromUserScript, Basic) {
+ ScopedTempDir extensions_dir;
+ ASSERT_TRUE(extensions_dir.CreateUniqueTempDir());
+
FilePath test_file;
ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_file));
test_file = test_file.AppendASCII("extensions")
@@ -35,7 +38,8 @@ TEST(ExtensionFromUserScript, Basic) {
string16 error;
scoped_refptr<Extension> extension(ConvertUserScriptToExtension(
- test_file, GURL("http://www.google.com/foo"), &error));
+ test_file, GURL("http://www.google.com/foo"),
+ extensions_dir.path(), &error));
ASSERT_TRUE(extension.get());
EXPECT_EQ(string16(), error);
@@ -74,6 +78,9 @@ TEST(ExtensionFromUserScript, Basic) {
}
TEST(ExtensionFromUserScript, NoMetdata) {
+ ScopedTempDir extensions_dir;
+ ASSERT_TRUE(extensions_dir.CreateUniqueTempDir());
+
FilePath test_file;
ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_file));
test_file = test_file.AppendASCII("extensions")
@@ -81,7 +88,8 @@ TEST(ExtensionFromUserScript, NoMetdata) {
string16 error;
scoped_refptr<Extension> extension(ConvertUserScriptToExtension(
- test_file, GURL("http://www.google.com/foo/bar.user.js?monkey"), &error));
+ test_file, GURL("http://www.google.com/foo/bar.user.js?monkey"),
+ extensions_dir.path(), &error));
ASSERT_TRUE(extension.get());
EXPECT_EQ(string16(), error);
@@ -116,21 +124,27 @@ TEST(ExtensionFromUserScript, NoMetdata) {
}
TEST(ExtensionFromUserScript, NotUTF8) {
- FilePath test_file;
+ ScopedTempDir extensions_dir;
+ ASSERT_TRUE(extensions_dir.CreateUniqueTempDir());
+ FilePath test_file;
ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_file));
test_file = test_file.AppendASCII("extensions")
.AppendASCII("user_script_not_utf8.user.js");
string16 error;
scoped_refptr<Extension> extension(ConvertUserScriptToExtension(
- test_file, GURL("http://www.google.com/foo/bar.user.js?monkey"), &error));
+ test_file, GURL("http://www.google.com/foo/bar.user.js?monkey"),
+ extensions_dir.path(), &error));
ASSERT_FALSE(extension.get());
EXPECT_EQ(ASCIIToUTF16("User script must be UTF8 encoded."), error);
}
TEST(ExtensionFromUserScript, RunAtDocumentStart) {
+ ScopedTempDir extensions_dir;
+ ASSERT_TRUE(extensions_dir.CreateUniqueTempDir());
+
FilePath test_file;
ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_file));
test_file = test_file.AppendASCII("extensions")
@@ -138,7 +152,8 @@ TEST(ExtensionFromUserScript, RunAtDocumentStart) {
string16 error;
scoped_refptr<Extension> extension(ConvertUserScriptToExtension(
- test_file, GURL("http://www.google.com/foo"), &error));
+ test_file, GURL("http://www.google.com/foo"),
+ extensions_dir.path(), &error));
ASSERT_TRUE(extension.get());
EXPECT_EQ(string16(), error);
@@ -160,6 +175,9 @@ TEST(ExtensionFromUserScript, RunAtDocumentStart) {
}
TEST(ExtensionFromUserScript, RunAtDocumentEnd) {
+ ScopedTempDir extensions_dir;
+ ASSERT_TRUE(extensions_dir.CreateUniqueTempDir());
+
FilePath test_file;
ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_file));
test_file = test_file.AppendASCII("extensions")
@@ -167,7 +185,8 @@ TEST(ExtensionFromUserScript, RunAtDocumentEnd) {
string16 error;
scoped_refptr<Extension> extension(ConvertUserScriptToExtension(
- test_file, GURL("http://www.google.com/foo"), &error));
+ test_file, GURL("http://www.google.com/foo"),
+ extensions_dir.path(), &error));
ASSERT_TRUE(extension.get());
EXPECT_EQ(string16(), error);
@@ -189,6 +208,9 @@ TEST(ExtensionFromUserScript, RunAtDocumentEnd) {
}
TEST(ExtensionFromUserScript, RunAtDocumentIdle) {
+ ScopedTempDir extensions_dir;
+ ASSERT_TRUE(extensions_dir.CreateUniqueTempDir());
+
FilePath test_file;
ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &test_file));
test_file = test_file.AppendASCII("extensions")
@@ -197,7 +219,8 @@ TEST(ExtensionFromUserScript, RunAtDocumentIdle) {
string16 error;
scoped_refptr<Extension> extension(ConvertUserScriptToExtension(
- test_file, GURL("http://www.google.com/foo"), &error));
+ test_file, GURL("http://www.google.com/foo"),
+ extensions_dir.path(), &error));
ASSERT_TRUE(extension.get());
EXPECT_EQ(string16(), error);