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

Side by Side Diff: chrome/browser/extensions/extension_system.cc

Issue 13825014: Change RulesRegistryService to use ProfileKeyedAPI. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Moved functionality from InitForOTR into RulesRegistryService constructor Created 7 years, 7 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/extensions/extension_system.h" 5 #include "chrome/browser/extensions/extension_system.h"
6 6
7 #include "base/base_switches.h" 7 #include "base/base_switches.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
11 #include "base/prefs/pref_service.h" 11 #include "base/prefs/pref_service.h"
12 #include "base/strings/string_tokenizer.h" 12 #include "base/strings/string_tokenizer.h"
13 #include "chrome/browser/browser_process.h" 13 #include "chrome/browser/browser_process.h"
14 #include "chrome/browser/content_settings/cookie_settings.h" 14 #include "chrome/browser/content_settings/cookie_settings.h"
15 #include "chrome/browser/extensions/api/declarative/rules_registry_service.h"
16 #include "chrome/browser/extensions/api/location/location_manager.h" 15 #include "chrome/browser/extensions/api/location/location_manager.h"
17 #include "chrome/browser/extensions/blacklist.h" 16 #include "chrome/browser/extensions/blacklist.h"
18 #include "chrome/browser/extensions/component_loader.h" 17 #include "chrome/browser/extensions/component_loader.h"
19 #include "chrome/browser/extensions/event_router.h" 18 #include "chrome/browser/extensions/event_router.h"
20 #include "chrome/browser/extensions/extension_error_reporter.h" 19 #include "chrome/browser/extensions/extension_error_reporter.h"
21 #include "chrome/browser/extensions/extension_info_map.h" 20 #include "chrome/browser/extensions/extension_info_map.h"
22 #include "chrome/browser/extensions/extension_pref_store.h" 21 #include "chrome/browser/extensions/extension_pref_store.h"
23 #include "chrome/browser/extensions/extension_pref_value_map.h" 22 #include "chrome/browser/extensions/extension_pref_value_map.h"
24 #include "chrome/browser/extensions/extension_pref_value_map_factory.h" 23 #include "chrome/browser/extensions/extension_pref_value_map_factory.h"
25 #include "chrome/browser/extensions/extension_process_manager.h" 24 #include "chrome/browser/extensions/extension_process_manager.h"
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 shared_ = ExtensionSystemSharedFactory::GetForProfile(profile); 306 shared_ = ExtensionSystemSharedFactory::GetForProfile(profile);
308 307
309 if (profile->IsOffTheRecord()) { 308 if (profile->IsOffTheRecord()) {
310 extension_process_manager_.reset(ExtensionProcessManager::Create(profile)); 309 extension_process_manager_.reset(ExtensionProcessManager::Create(profile));
311 } else { 310 } else {
312 shared_->InitPrefs(); 311 shared_->InitPrefs();
313 } 312 }
314 } 313 }
315 314
316 ExtensionSystemImpl::~ExtensionSystemImpl() { 315 ExtensionSystemImpl::~ExtensionSystemImpl() {
317 if (rules_registry_service_)
318 rules_registry_service_->Shutdown();
319 } 316 }
320 317
321 void ExtensionSystemImpl::Shutdown() { 318 void ExtensionSystemImpl::Shutdown() {
322 extension_process_manager_.reset(); 319 extension_process_manager_.reset();
323 320
324 if (profile_->IsOffTheRecord() && extension_service() && 321 if (profile_->IsOffTheRecord() && extension_service() &&
325 extension_service()->extensions_enabled()) 322 extension_service()->extensions_enabled())
326 extension_prefs()->ClearIncognitoSessionOnlyContentSettings(); 323 extension_prefs()->ClearIncognitoSessionOnlyContentSettings();
327 } 324 }
328 325
329 void ExtensionSystemImpl::InitForRegularProfile(bool extensions_enabled) { 326 void ExtensionSystemImpl::InitForRegularProfile(bool extensions_enabled) {
330 DCHECK(!profile_->IsOffTheRecord()); 327 DCHECK(!profile_->IsOffTheRecord());
331 if (user_script_master() || extension_service()) 328 if (user_script_master() || extension_service())
332 return; // Already initialized. 329 return; // Already initialized.
333 330
334 // The ExtensionInfoMap needs to be created before the 331 // The ExtensionInfoMap needs to be created before the
335 // ExtensionProcessManager. 332 // ExtensionProcessManager.
336 shared_->info_map(); 333 shared_->info_map();
337 334
338 extension_process_manager_.reset(ExtensionProcessManager::Create(profile_)); 335 extension_process_manager_.reset(ExtensionProcessManager::Create(profile_));
339 location_manager_.reset(new LocationManager(profile_)); 336 location_manager_.reset(new LocationManager(profile_));
340 337
341 serial_connection_manager_.reset(new ApiResourceManager<SerialConnection>( 338 serial_connection_manager_.reset(new ApiResourceManager<SerialConnection>(
342 BrowserThread::FILE)); 339 BrowserThread::FILE));
343 socket_manager_.reset(new ApiResourceManager<Socket>(BrowserThread::IO)); 340 socket_manager_.reset(new ApiResourceManager<Socket>(BrowserThread::IO));
344 usb_device_resource_manager_.reset( 341 usb_device_resource_manager_.reset(
345 new ApiResourceManager<UsbDeviceResource>(BrowserThread::IO)); 342 new ApiResourceManager<UsbDeviceResource>(BrowserThread::IO));
346 343
347 rules_registry_service_.reset(new RulesRegistryService(profile_));
348 rules_registry_service_->RegisterDefaultRulesRegistries();
349
350 shared_->Init(extensions_enabled); 344 shared_->Init(extensions_enabled);
351 } 345 }
352 346
353 void ExtensionSystemImpl::InitForOTRProfile() {
354 // Only initialize the RulesRegistryService of the OTR ExtensionSystem if the
355 // regular ExtensionSystem has been initialized properly, as we depend on it.
356 // Some ChromeOS browser tests don't initialize the regular ExtensionSystem
357 // in login-tests.
358 if (extension_service()) {
359 rules_registry_service_.reset(new RulesRegistryService(profile_));
360 rules_registry_service_->RegisterDefaultRulesRegistries();
361 }
362 }
363
364 ExtensionService* ExtensionSystemImpl::extension_service() { 347 ExtensionService* ExtensionSystemImpl::extension_service() {
365 return shared_->extension_service(); 348 return shared_->extension_service();
366 } 349 }
367 350
368 ManagementPolicy* ExtensionSystemImpl::management_policy() { 351 ManagementPolicy* ExtensionSystemImpl::management_policy() {
369 return shared_->management_policy(); 352 return shared_->management_policy();
370 } 353 }
371 354
372 UserScriptMaster* ExtensionSystemImpl::user_script_master() { 355 UserScriptMaster* ExtensionSystemImpl::user_script_master() {
373 return shared_->user_script_master(); 356 return shared_->user_script_master();
(...skipping 29 matching lines...) Expand all
403 } 386 }
404 387
405 LazyBackgroundTaskQueue* ExtensionSystemImpl::lazy_background_task_queue() { 388 LazyBackgroundTaskQueue* ExtensionSystemImpl::lazy_background_task_queue() {
406 return shared_->lazy_background_task_queue(); 389 return shared_->lazy_background_task_queue();
407 } 390 }
408 391
409 EventRouter* ExtensionSystemImpl::event_router() { 392 EventRouter* ExtensionSystemImpl::event_router() {
410 return shared_->event_router(); 393 return shared_->event_router();
411 } 394 }
412 395
413 RulesRegistryService* ExtensionSystemImpl::rules_registry_service() {
414 return rules_registry_service_.get();
415 }
416
417 ApiResourceManager<SerialConnection>* 396 ApiResourceManager<SerialConnection>*
418 ExtensionSystemImpl::serial_connection_manager() { 397 ExtensionSystemImpl::serial_connection_manager() {
419 return serial_connection_manager_.get(); 398 return serial_connection_manager_.get();
420 } 399 }
421 400
422 ApiResourceManager<Socket>* ExtensionSystemImpl::socket_manager() { 401 ApiResourceManager<Socket>* ExtensionSystemImpl::socket_manager() {
423 return socket_manager_.get(); 402 return socket_manager_.get();
424 } 403 }
425 404
426 ApiResourceManager<UsbDeviceResource>* 405 ApiResourceManager<UsbDeviceResource>*
(...skipping 28 matching lines...) Expand all
455 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( 434 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts(
456 const std::string& extension_id, 435 const std::string& extension_id,
457 const extension_misc::UnloadedExtensionReason reason) { 436 const extension_misc::UnloadedExtensionReason reason) {
458 BrowserThread::PostTask( 437 BrowserThread::PostTask(
459 BrowserThread::IO, FROM_HERE, 438 BrowserThread::IO, FROM_HERE,
460 base::Bind(&ExtensionInfoMap::RemoveExtension, info_map(), 439 base::Bind(&ExtensionInfoMap::RemoveExtension, info_map(),
461 extension_id, reason)); 440 extension_id, reason));
462 } 441 }
463 442
464 } // namespace extensions 443 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698