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

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: Convenience method and fixed line wrapping Created 7 years, 8 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/alarms/alarm_manager.h" 15 #include "chrome/browser/extensions/api/alarms/alarm_manager.h"
16 #include "chrome/browser/extensions/api/declarative/rules_registry_service.h"
17 #include "chrome/browser/extensions/api/location/location_manager.h" 16 #include "chrome/browser/extensions/api/location/location_manager.h"
18 #include "chrome/browser/extensions/api/messaging/message_service.h" 17 #include "chrome/browser/extensions/api/messaging/message_service.h"
19 #include "chrome/browser/extensions/blacklist.h" 18 #include "chrome/browser/extensions/blacklist.h"
20 #include "chrome/browser/extensions/component_loader.h" 19 #include "chrome/browser/extensions/component_loader.h"
21 #include "chrome/browser/extensions/event_router.h" 20 #include "chrome/browser/extensions/event_router.h"
22 #include "chrome/browser/extensions/extension_error_reporter.h" 21 #include "chrome/browser/extensions/extension_error_reporter.h"
23 #include "chrome/browser/extensions/extension_info_map.h" 22 #include "chrome/browser/extensions/extension_info_map.h"
24 #include "chrome/browser/extensions/extension_pref_store.h" 23 #include "chrome/browser/extensions/extension_pref_store.h"
25 #include "chrome/browser/extensions/extension_pref_value_map.h" 24 #include "chrome/browser/extensions/extension_pref_value_map.h"
26 #include "chrome/browser/extensions/extension_pref_value_map_factory.h" 25 #include "chrome/browser/extensions/extension_pref_value_map_factory.h"
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 shared_ = ExtensionSystemSharedFactory::GetForProfile(profile); 313 shared_ = ExtensionSystemSharedFactory::GetForProfile(profile);
315 314
316 if (profile->IsOffTheRecord()) { 315 if (profile->IsOffTheRecord()) {
317 extension_process_manager_.reset(ExtensionProcessManager::Create(profile)); 316 extension_process_manager_.reset(ExtensionProcessManager::Create(profile));
318 } else { 317 } else {
319 shared_->InitPrefs(); 318 shared_->InitPrefs();
320 } 319 }
321 } 320 }
322 321
323 ExtensionSystemImpl::~ExtensionSystemImpl() { 322 ExtensionSystemImpl::~ExtensionSystemImpl() {
324 if (rules_registry_service_)
325 rules_registry_service_->Shutdown();
326 } 323 }
327 324
328 void ExtensionSystemImpl::Shutdown() { 325 void ExtensionSystemImpl::Shutdown() {
329 extension_process_manager_.reset(); 326 extension_process_manager_.reset();
330 327
331 if (profile_->IsOffTheRecord() && extension_service() && 328 if (profile_->IsOffTheRecord() && extension_service() &&
332 extension_service()->extensions_enabled()) 329 extension_service()->extensions_enabled())
333 extension_prefs()->ClearIncognitoSessionOnlyContentSettings(); 330 extension_prefs()->ClearIncognitoSessionOnlyContentSettings();
334 } 331 }
335 332
336 void ExtensionSystemImpl::InitForRegularProfile(bool extensions_enabled) { 333 void ExtensionSystemImpl::InitForRegularProfile(bool extensions_enabled) {
337 DCHECK(!profile_->IsOffTheRecord()); 334 DCHECK(!profile_->IsOffTheRecord());
338 if (user_script_master() || extension_service()) 335 if (user_script_master() || extension_service())
339 return; // Already initialized. 336 return; // Already initialized.
340 337
341 // The ExtensionInfoMap needs to be created before the 338 // The ExtensionInfoMap needs to be created before the
342 // ExtensionProcessManager. 339 // ExtensionProcessManager.
343 shared_->info_map(); 340 shared_->info_map();
344 341
345 extension_process_manager_.reset(ExtensionProcessManager::Create(profile_)); 342 extension_process_manager_.reset(ExtensionProcessManager::Create(profile_));
346 alarm_manager_.reset(new AlarmManager(profile_, shared_->clock())); 343 alarm_manager_.reset(new AlarmManager(profile_, shared_->clock()));
347 location_manager_ = new LocationManager(profile_); 344 location_manager_ = new LocationManager(profile_);
348 345
349 serial_connection_manager_.reset(new ApiResourceManager<SerialConnection>( 346 serial_connection_manager_.reset(new ApiResourceManager<SerialConnection>(
350 BrowserThread::FILE)); 347 BrowserThread::FILE));
351 socket_manager_.reset(new ApiResourceManager<Socket>(BrowserThread::IO)); 348 socket_manager_.reset(new ApiResourceManager<Socket>(BrowserThread::IO));
352 usb_device_resource_manager_.reset( 349 usb_device_resource_manager_.reset(
353 new ApiResourceManager<UsbDeviceResource>(BrowserThread::IO)); 350 new ApiResourceManager<UsbDeviceResource>(BrowserThread::IO));
354 351
355 rules_registry_service_.reset(new RulesRegistryService(profile_));
356 rules_registry_service_->RegisterDefaultRulesRegistries();
357
358 shared_->Init(extensions_enabled); 352 shared_->Init(extensions_enabled);
359 } 353 }
360 354
361 void ExtensionSystemImpl::InitForOTRProfile() {
362 // Only initialize the RulesRegistryService of the OTR ExtensionSystem if the
363 // regular ExtensionSystem has been initialized properly, as we depend on it.
364 // Some ChromeOS browser tests don't initialize the regular ExtensionSystem
365 // in login-tests.
366 if (extension_service()) {
367 rules_registry_service_.reset(new RulesRegistryService(profile_));
368 rules_registry_service_->RegisterDefaultRulesRegistries();
369 }
370 }
371
372 ExtensionService* ExtensionSystemImpl::extension_service() { 355 ExtensionService* ExtensionSystemImpl::extension_service() {
373 return shared_->extension_service(); 356 return shared_->extension_service();
374 } 357 }
375 358
376 ManagementPolicy* ExtensionSystemImpl::management_policy() { 359 ManagementPolicy* ExtensionSystemImpl::management_policy() {
377 return shared_->management_policy(); 360 return shared_->management_policy();
378 } 361 }
379 362
380 UserScriptMaster* ExtensionSystemImpl::user_script_master() { 363 UserScriptMaster* ExtensionSystemImpl::user_script_master() {
381 return shared_->user_script_master(); 364 return shared_->user_script_master();
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 } 401 }
419 402
420 MessageService* ExtensionSystemImpl::message_service() { 403 MessageService* ExtensionSystemImpl::message_service() {
421 return shared_->message_service(); 404 return shared_->message_service();
422 } 405 }
423 406
424 EventRouter* ExtensionSystemImpl::event_router() { 407 EventRouter* ExtensionSystemImpl::event_router() {
425 return shared_->event_router(); 408 return shared_->event_router();
426 } 409 }
427 410
428 RulesRegistryService* ExtensionSystemImpl::rules_registry_service() {
429 return rules_registry_service_.get();
430 }
431
432 ApiResourceManager<SerialConnection>* 411 ApiResourceManager<SerialConnection>*
433 ExtensionSystemImpl::serial_connection_manager() { 412 ExtensionSystemImpl::serial_connection_manager() {
434 return serial_connection_manager_.get(); 413 return serial_connection_manager_.get();
435 } 414 }
436 415
437 ApiResourceManager<Socket>* ExtensionSystemImpl::socket_manager() { 416 ApiResourceManager<Socket>* ExtensionSystemImpl::socket_manager() {
438 return socket_manager_.get(); 417 return socket_manager_.get();
439 } 418 }
440 419
441 ApiResourceManager<UsbDeviceResource>* 420 ApiResourceManager<UsbDeviceResource>*
(...skipping 28 matching lines...) Expand all
470 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( 449 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts(
471 const std::string& extension_id, 450 const std::string& extension_id,
472 const extension_misc::UnloadedExtensionReason reason) { 451 const extension_misc::UnloadedExtensionReason reason) {
473 BrowserThread::PostTask( 452 BrowserThread::PostTask(
474 BrowserThread::IO, FROM_HERE, 453 BrowserThread::IO, FROM_HERE,
475 base::Bind(&ExtensionInfoMap::RemoveExtension, info_map(), 454 base::Bind(&ExtensionInfoMap::RemoveExtension, info_map(),
476 extension_id, reason)); 455 extension_id, reason));
477 } 456 }
478 457
479 } // namespace extensions 458 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698