Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(79)

Side by Side Diff: chrome/browser/profile_resetter/profile_resetter.cc

Issue 2974033002: Revert of Reenable disabled component extensions with profile resetter.
Patch Set: Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/profile_resetter/profile_resetter.h" 5 #include "chrome/browser/profile_resetter/profile_resetter.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <string> 9 #include <string>
10 #include <vector>
11 10
12 #include "base/macros.h" 11 #include "base/macros.h"
13 #include "base/synchronization/cancellation_flag.h" 12 #include "base/synchronization/cancellation_flag.h"
14 #include "build/build_config.h" 13 #include "build/build_config.h"
15 #include "chrome/browser/browsing_data/browsing_data_helper.h" 14 #include "chrome/browser/browsing_data/browsing_data_helper.h"
16 #include "chrome/browser/browsing_data/browsing_data_remover.h" 15 #include "chrome/browser/browsing_data/browsing_data_remover.h"
17 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h" 16 #include "chrome/browser/browsing_data/browsing_data_remover_factory.h"
18 #include "chrome/browser/content_settings/host_content_settings_map_factory.h" 17 #include "chrome/browser/content_settings/host_content_settings_map_factory.h"
19 #include "chrome/browser/extensions/extension_service.h" 18 #include "chrome/browser/extensions/extension_service.h"
20 #include "chrome/browser/google/google_url_tracker_factory.h" 19 #include "chrome/browser/google/google_url_tracker_factory.h"
(...skipping 10 matching lines...) Expand all
31 #include "components/content_settings/core/browser/host_content_settings_map.h" 30 #include "components/content_settings/core/browser/host_content_settings_map.h"
32 #include "components/content_settings/core/browser/website_settings_info.h" 31 #include "components/content_settings/core/browser/website_settings_info.h"
33 #include "components/content_settings/core/browser/website_settings_registry.h" 32 #include "components/content_settings/core/browser/website_settings_registry.h"
34 #include "components/google/core/browser/google_url_tracker.h" 33 #include "components/google/core/browser/google_url_tracker.h"
35 #include "components/prefs/pref_service.h" 34 #include "components/prefs/pref_service.h"
36 #include "components/prefs/scoped_user_pref_update.h" 35 #include "components/prefs/scoped_user_pref_update.h"
37 #include "components/search_engines/search_engines_pref_names.h" 36 #include "components/search_engines/search_engines_pref_names.h"
38 #include "components/search_engines/template_url_prepopulate_data.h" 37 #include "components/search_engines/template_url_prepopulate_data.h"
39 #include "components/search_engines/template_url_service.h" 38 #include "components/search_engines/template_url_service.h"
40 #include "content/public/browser/browser_thread.h" 39 #include "content/public/browser/browser_thread.h"
41 #include "extensions/browser/extension_registry.h"
42 #include "extensions/browser/extension_system.h" 40 #include "extensions/browser/extension_system.h"
43 #include "extensions/browser/management_policy.h" 41 #include "extensions/browser/management_policy.h"
44 #include "extensions/common/extension_id.h"
45 #include "extensions/common/manifest.h"
46 42
47 #if defined(OS_WIN) 43 #if defined(OS_WIN)
48 #include "base/base_paths.h" 44 #include "base/base_paths.h"
49 #include "base/path_service.h" 45 #include "base/path_service.h"
50 #include "chrome/installer/util/shell_util.h" 46 #include "chrome/installer/util/shell_util.h"
51 47
52 namespace { 48 namespace {
53 49
54 void ResetShortcutsOnFileThread() { 50 void ResetShortcutsOnFileThread() {
55 DCHECK_CURRENTLY_ON(content::BrowserThread::FILE); 51 DCHECK_CURRENTLY_ON(content::BrowserThread::FILE);
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 DCHECK(CalledOnValidThread()); 264 DCHECK(CalledOnValidThread());
269 265
270 std::vector<std::string> brandcode_extensions; 266 std::vector<std::string> brandcode_extensions;
271 master_settings_->GetExtensions(&brandcode_extensions); 267 master_settings_->GetExtensions(&brandcode_extensions);
272 268
273 ExtensionService* extension_service = 269 ExtensionService* extension_service =
274 extensions::ExtensionSystem::Get(profile_)->extension_service(); 270 extensions::ExtensionSystem::Get(profile_)->extension_service();
275 DCHECK(extension_service); 271 DCHECK(extension_service);
276 extension_service->DisableUserExtensionsExcept(brandcode_extensions); 272 extension_service->DisableUserExtensionsExcept(brandcode_extensions);
277 273
278 // Reenable all disabled external component extensions.
279 // BrandcodedDefaultSettings does not contain information about component
280 // extensions, so fetch them from the existing registry. This may be not very
281 // robust, as the profile resetter may be invoked when the registry is in some
282 // iffy state. However, we can't enable an extension which is not in the
283 // registry anyway.
284 extensions::ExtensionRegistry* extension_registry =
285 extensions::ExtensionRegistry::Get(profile_);
286 DCHECK(extension_registry);
287 std::vector<extensions::ExtensionId> extension_ids_to_reenable;
288 for (const auto& extension : extension_registry->disabled_extensions()) {
289 if (extension->location() == extensions::Manifest::EXTERNAL_COMPONENT)
290 extension_ids_to_reenable.push_back(extension->id());
291 }
292 for (const auto& extension_id : extension_ids_to_reenable) {
293 extension_service->EnableExtension(extension_id);
294 }
295
296 MarkAsDone(EXTENSIONS); 274 MarkAsDone(EXTENSIONS);
297 } 275 }
298 276
299 void ProfileResetter::ResetStartupPages() { 277 void ProfileResetter::ResetStartupPages() {
300 DCHECK(CalledOnValidThread()); 278 DCHECK(CalledOnValidThread());
301 PrefService* prefs = profile_->GetPrefs(); 279 PrefService* prefs = profile_->GetPrefs();
302 DCHECK(prefs); 280 DCHECK(prefs);
303 std::unique_ptr<base::ListValue> url_list( 281 std::unique_ptr<base::ListValue> url_list(
304 master_settings_->GetUrlsToRestoreOnStartup()); 282 master_settings_->GetUrlsToRestoreOnStartup());
305 if (url_list) 283 if (url_list)
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 chrome_exe, 359 chrome_exe,
382 false, 360 false,
383 cancel, 361 cancel,
384 &shortcuts); 362 &shortcuts);
385 } 363 }
386 return shortcuts; 364 return shortcuts;
387 #else 365 #else
388 return std::vector<ShortcutCommand>(); 366 return std::vector<ShortcutCommand>();
389 #endif 367 #endif
390 } 368 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_service_unittest.cc ('k') | chrome/browser/profile_resetter/profile_resetter_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698