summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_garbage_collector_chromeos_unittest.cc
diff options
context:
space:
mode:
authorbattre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-30 10:48:59 +0000
committerbattre@chromium.org <battre@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-30 10:48:59 +0000
commitfbe4333bf8ddfbd2cde5e5f7fe94043daf0ff5bf (patch)
tree8d50bde650d11d23a3461209af8c06af02789d91 /chrome/browser/extensions/extension_garbage_collector_chromeos_unittest.cc
parentbea1417865d54466e8606243d2840ce604aa068a (diff)
downloadchromium_src-fbe4333bf8ddfbd2cde5e5f7fe94043daf0ff5bf.zip
chromium_src-fbe4333bf8ddfbd2cde5e5f7fe94043daf0ff5bf.tar.gz
chromium_src-fbe4333bf8ddfbd2cde5e5f7fe94043daf0ff5bf.tar.bz2
Revert 273763 "Add garbage collection for shared extensions on C..."
Reverting due to failing memory bots, see http://crbug.com/235263#c42 for details. > Add garbage collection for shared extensions on Chrome OS > > Chrome OS specific garbage collection in addition to profile specific > clean up also cleans up shared location but only once regardless number > of logged in users. > > BUG=235263 > TEST=unittest > > Review URL: https://codereview.chromium.org/303693011 TBR=dpolukhin@chromium.org Review URL: https://codereview.chromium.org/306023007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273798 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/extension_garbage_collector_chromeos_unittest.cc')
-rw-r--r--chrome/browser/extensions/extension_garbage_collector_chromeos_unittest.cc196
1 files changed, 0 insertions, 196 deletions
diff --git a/chrome/browser/extensions/extension_garbage_collector_chromeos_unittest.cc b/chrome/browser/extensions/extension_garbage_collector_chromeos_unittest.cc
deleted file mode 100644
index 887ff70..0000000
--- a/chrome/browser/extensions/extension_garbage_collector_chromeos_unittest.cc
+++ /dev/null
@@ -1,196 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/file_util.h"
-#include "base/prefs/scoped_user_pref_update.h"
-#include "base/prefs/testing_pref_service.h"
-#include "base/strings/string_util.h"
-#include "base/threading/sequenced_worker_pool.h"
-#include "base/values.h"
-#include "chrome/browser/chromeos/login/users/fake_user_manager.h"
-#include "chrome/browser/chromeos/login/users/user_manager.h"
-#include "chrome/browser/extensions/extension_assets_manager_chromeos.h"
-#include "chrome/browser/extensions/extension_garbage_collector_chromeos.h"
-#include "chrome/browser/extensions/extension_service_unittest.h"
-#include "chrome/browser/prefs/browser_prefs.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/test/base/testing_browser_process.h"
-#include "chrome/test/base/testing_profile.h"
-#include "content/public/browser/browser_thread.h"
-#include "content/public/browser/plugin_service.h"
-#include "extensions/browser/extension_prefs.h"
-#include "extensions/common/manifest_constants.h"
-
-namespace {
-const char kExtensionId1[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
-const char kExtensionId2[] = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb";
-} // namespace
-
-namespace extensions {
-
-class ExtensionGarbageCollectorChromeOSUnitTest
- : public ExtensionServiceTestBase {
- protected:
- PrefService& local_state() { return local_state_; }
- const base::FilePath& cache_dir() { return cache_dir_.path(); }
-
- virtual void SetUp() OVERRIDE {
- TestingBrowserProcess::GetGlobal()->SetLocalState(&local_state_);
- chrome::RegisterLocalState(local_state_.registry());
-
-#if defined(ENABLE_PLUGINS)
- content::PluginService::GetInstance()->Init();
-#endif
- InitializeGoodInstalledExtensionService();
-
- // Need real IO thread.
- service_->SetFileTaskRunnerForTesting(
- content::BrowserThread::GetBlockingPool()
- ->GetSequencedTaskRunnerWithShutdownBehavior(
- content::BrowserThread::GetBlockingPool()
- ->GetNamedSequenceToken("ext_install-"),
- base::SequencedWorkerPool::SKIP_ON_SHUTDOWN));
-
- CHECK(cache_dir_.CreateUniqueTempDir());
- ExtensionAssetsManagerChromeOS::SetSharedInstallDirForTesting(
- cache_dir_.path());
-
- // Initialize the UserManager singleton to a fresh FakeUserManager instance.
- user_manager_enabler_.reset(
- new chromeos::ScopedUserManagerEnabler(new chromeos::FakeUserManager));
-
- GetFakeUserManager()->AddUser(chromeos::UserManager::kStubUser);
- GetFakeUserManager()->LoginUser(chromeos::UserManager::kStubUser);
- GetFakeUserManager()->SetProfileForUser(
- GetFakeUserManager()->GetActiveUser(), profile_.get());
- }
-
- virtual void TearDown() OVERRIDE {
- TestingBrowserProcess::GetGlobal()->SetLocalState(NULL);
- }
-
- void GarbageCollectExtensions() {
- ExtensionGarbageCollector::Get(profile_.get())
- ->GarbageCollectExtensionsForTest();
- // Wait for GarbageCollectExtensions task to complete.
- content::BrowserThread::GetBlockingPool()->FlushForTesting();
- }
-
- base::FilePath CreateSharedExtensionDir(const std::string& id,
- const std::string& version,
- const base::FilePath& shared_dir) {
- base::FilePath path = shared_dir.AppendASCII(id).AppendASCII(version);
- CreateDirectory(path);
- return path;
- }
-
- void CreateSharedExtensionPrefs(const std::string& id,
- const std::string& version,
- const std::string& users_string,
- const base::FilePath& path) {
- DictionaryPrefUpdate shared_extensions(&local_state_,
- ExtensionAssetsManagerChromeOS::kSharedExtensions);
-
- base::DictionaryValue* extension_info = NULL;
- if (!shared_extensions->GetDictionary(id, &extension_info)) {
- extension_info = new base::DictionaryValue;
- shared_extensions->Set(id, extension_info);
- }
-
- base::DictionaryValue* version_info = new base::DictionaryValue;
- extension_info->SetWithoutPathExpansion(version, version_info);
- version_info->SetString(
- ExtensionAssetsManagerChromeOS::kSharedExtensionPath, path.value());
-
- base::ListValue* users = new base::ListValue;
- version_info->Set(ExtensionAssetsManagerChromeOS::kSharedExtensionUsers,
- users);
- std::vector<std::string> users_list;
- if (Tokenize(users_string, ",", &users_list)) {
- for (size_t i = 0; i < users_list.size(); i++) {
- users->AppendString(users_list[i]);
- }
- }
- }
-
- scoped_refptr<Extension> CreateExtension(const std::string& id,
- const std::string& version,
- const base::FilePath& path) {
- base::DictionaryValue manifest;
- manifest.SetString(manifest_keys::kName, "test");
- manifest.SetString(manifest_keys::kVersion, version);
-
- std::string error;
- scoped_refptr<Extension> extension = Extension::Create(
- path, Manifest::INTERNAL, manifest, Extension::NO_FLAGS, id, &error);
- CHECK(extension.get()) << error;
- CHECK_EQ(id, extension->id());
-
- return extension;
- }
-
- ExtensionPrefs* GetExtensionPrefs() {
- return ExtensionPrefs::Get(profile_.get());
- }
-
- chromeos::FakeUserManager* GetFakeUserManager() {
- return static_cast<chromeos::FakeUserManager*>(
- chromeos::UserManager::Get());
- }
-
- private:
- scoped_ptr<chromeos::ScopedUserManagerEnabler> user_manager_enabler_;
- TestingPrefServiceSimple local_state_;
- base::ScopedTempDir cache_dir_;
-};
-
-// Test shared extensions clean up.
-TEST_F(ExtensionGarbageCollectorChromeOSUnitTest, SharedExtensions) {
- // Version for non-existing user.
- base::FilePath path_id1_1 = CreateSharedExtensionDir(
- kExtensionId1, "1.0", cache_dir());
- CreateSharedExtensionPrefs(kExtensionId1, "1.0", "test@test.com", path_id1_1);
- EXPECT_TRUE(base::PathExists(path_id1_1));
-
- // Version for current user but the extension is not installed.
- base::FilePath path_id1_2 = CreateSharedExtensionDir(
- kExtensionId1, "2.0", cache_dir());
- CreateSharedExtensionPrefs(
- kExtensionId1, "2.0", chromeos::UserManager::kStubUser, path_id1_2);
- EXPECT_TRUE(base::PathExists(path_id1_2));
-
- // Version for current user that delayed install.
- base::FilePath path_id2_1 = CreateSharedExtensionDir(
- kExtensionId2, "1.0", cache_dir());
- CreateSharedExtensionPrefs(
- kExtensionId2, "1.0", chromeos::UserManager::kStubUser, path_id2_1);
- scoped_refptr<Extension> extension2 = CreateExtension(kExtensionId2, "1.0",
- path_id2_1);
- GetExtensionPrefs()->SetDelayedInstallInfo(
- extension2.get(),
- Extension::ENABLED,
- false,
- false,
- ExtensionPrefs::DELAY_REASON_WAIT_FOR_IDLE,
- syncer::StringOrdinal(),
- std::string());
- EXPECT_TRUE(base::PathExists(path_id2_1));
-
- GarbageCollectExtensions();
-
- EXPECT_FALSE(base::PathExists(path_id1_1));
- EXPECT_FALSE(base::PathExists(path_id1_2));
- EXPECT_FALSE(base::PathExists(cache_dir().AppendASCII(kExtensionId1)));
-
- EXPECT_TRUE(base::PathExists(path_id2_1));
-
- const base::DictionaryValue* shared_extensions = local_state().GetDictionary(
- ExtensionAssetsManagerChromeOS::kSharedExtensions);
- ASSERT_TRUE(shared_extensions);
-
- EXPECT_FALSE(shared_extensions->HasKey(kExtensionId1));
- EXPECT_TRUE(shared_extensions->HasKey(kExtensionId2));
-}
-
-} // namespace extensions