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

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

Issue 16087006: Revert "Revert 202751 "Change RulesRegistryService to use ProfileKeyedAPI."" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/extensions/extension_system.h ('k') | chrome/browser/extensions/tab_helper.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/strings/string_tokenizer.h" 11 #include "base/strings/string_tokenizer.h"
12 #include "chrome/browser/browser_process.h" 12 #include "chrome/browser/browser_process.h"
13 #include "chrome/browser/content_settings/cookie_settings.h" 13 #include "chrome/browser/content_settings/cookie_settings.h"
14 #include "chrome/browser/extensions/api/declarative/rules_registry_service.h"
15 #include "chrome/browser/extensions/blacklist.h" 14 #include "chrome/browser/extensions/blacklist.h"
16 #include "chrome/browser/extensions/component_loader.h" 15 #include "chrome/browser/extensions/component_loader.h"
17 #include "chrome/browser/extensions/event_router.h" 16 #include "chrome/browser/extensions/event_router.h"
18 #include "chrome/browser/extensions/extension_error_reporter.h" 17 #include "chrome/browser/extensions/extension_error_reporter.h"
19 #include "chrome/browser/extensions/extension_info_map.h" 18 #include "chrome/browser/extensions/extension_info_map.h"
20 #include "chrome/browser/extensions/extension_pref_store.h" 19 #include "chrome/browser/extensions/extension_pref_store.h"
21 #include "chrome/browser/extensions/extension_pref_value_map.h" 20 #include "chrome/browser/extensions/extension_pref_value_map.h"
22 #include "chrome/browser/extensions/extension_pref_value_map_factory.h" 21 #include "chrome/browser/extensions/extension_pref_value_map_factory.h"
23 #include "chrome/browser/extensions/extension_prefs.h" 22 #include "chrome/browser/extensions/extension_prefs.h"
24 #include "chrome/browser/extensions/extension_process_manager.h" 23 #include "chrome/browser/extensions/extension_process_manager.h"
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 shared_ = ExtensionSystemSharedFactory::GetForProfile(profile); 280 shared_ = ExtensionSystemSharedFactory::GetForProfile(profile);
282 281
283 if (profile->IsOffTheRecord()) { 282 if (profile->IsOffTheRecord()) {
284 extension_process_manager_.reset(ExtensionProcessManager::Create(profile)); 283 extension_process_manager_.reset(ExtensionProcessManager::Create(profile));
285 } else { 284 } else {
286 shared_->InitPrefs(); 285 shared_->InitPrefs();
287 } 286 }
288 } 287 }
289 288
290 ExtensionSystemImpl::~ExtensionSystemImpl() { 289 ExtensionSystemImpl::~ExtensionSystemImpl() {
291 if (rules_registry_service_)
292 rules_registry_service_->Shutdown();
293 } 290 }
294 291
295 void ExtensionSystemImpl::Shutdown() { 292 void ExtensionSystemImpl::Shutdown() {
296 extension_process_manager_.reset(); 293 extension_process_manager_.reset();
297 } 294 }
298 295
299 void ExtensionSystemImpl::InitForRegularProfile(bool extensions_enabled) { 296 void ExtensionSystemImpl::InitForRegularProfile(bool extensions_enabled) {
300 DCHECK(!profile_->IsOffTheRecord()); 297 DCHECK(!profile_->IsOffTheRecord());
301 if (user_script_master() || extension_service()) 298 if (user_script_master() || extension_service())
302 return; // Already initialized. 299 return; // Already initialized.
303 300
304 // The ExtensionInfoMap needs to be created before the 301 // The ExtensionInfoMap needs to be created before the
305 // ExtensionProcessManager. 302 // ExtensionProcessManager.
306 shared_->info_map(); 303 shared_->info_map();
307 304
308 extension_process_manager_.reset(ExtensionProcessManager::Create(profile_)); 305 extension_process_manager_.reset(ExtensionProcessManager::Create(profile_));
309 306
310 serial_connection_manager_.reset(new ApiResourceManager<SerialConnection>( 307 serial_connection_manager_.reset(new ApiResourceManager<SerialConnection>(
311 BrowserThread::FILE)); 308 BrowserThread::FILE));
312 socket_manager_.reset(new ApiResourceManager<Socket>(BrowserThread::IO)); 309 socket_manager_.reset(new ApiResourceManager<Socket>(BrowserThread::IO));
313 usb_device_resource_manager_.reset( 310 usb_device_resource_manager_.reset(
314 new ApiResourceManager<UsbDeviceResource>(BrowserThread::IO)); 311 new ApiResourceManager<UsbDeviceResource>(BrowserThread::IO));
315 312
316 rules_registry_service_.reset(new RulesRegistryService(profile_));
317 rules_registry_service_->RegisterDefaultRulesRegistries();
318
319 shared_->Init(extensions_enabled); 313 shared_->Init(extensions_enabled);
320 } 314 }
321 315
322 void ExtensionSystemImpl::InitForOTRProfile() {
323 // Only initialize the RulesRegistryService of the OTR ExtensionSystem if the
324 // regular ExtensionSystem has been initialized properly, as we depend on it.
325 // Some ChromeOS browser tests don't initialize the regular ExtensionSystem
326 // in login-tests.
327 if (extension_service()) {
328 rules_registry_service_.reset(new RulesRegistryService(profile_));
329 rules_registry_service_->RegisterDefaultRulesRegistries();
330 }
331 }
332
333 ExtensionService* ExtensionSystemImpl::extension_service() { 316 ExtensionService* ExtensionSystemImpl::extension_service() {
334 return shared_->extension_service(); 317 return shared_->extension_service();
335 } 318 }
336 319
337 ManagementPolicy* ExtensionSystemImpl::management_policy() { 320 ManagementPolicy* ExtensionSystemImpl::management_policy() {
338 return shared_->management_policy(); 321 return shared_->management_policy();
339 } 322 }
340 323
341 UserScriptMaster* ExtensionSystemImpl::user_script_master() { 324 UserScriptMaster* ExtensionSystemImpl::user_script_master() {
342 return shared_->user_script_master(); 325 return shared_->user_script_master();
(...skipping 16 matching lines...) Expand all
359 } 342 }
360 343
361 LazyBackgroundTaskQueue* ExtensionSystemImpl::lazy_background_task_queue() { 344 LazyBackgroundTaskQueue* ExtensionSystemImpl::lazy_background_task_queue() {
362 return shared_->lazy_background_task_queue(); 345 return shared_->lazy_background_task_queue();
363 } 346 }
364 347
365 EventRouter* ExtensionSystemImpl::event_router() { 348 EventRouter* ExtensionSystemImpl::event_router() {
366 return shared_->event_router(); 349 return shared_->event_router();
367 } 350 }
368 351
369 RulesRegistryService* ExtensionSystemImpl::rules_registry_service() {
370 return rules_registry_service_.get();
371 }
372
373 ApiResourceManager<SerialConnection>* 352 ApiResourceManager<SerialConnection>*
374 ExtensionSystemImpl::serial_connection_manager() { 353 ExtensionSystemImpl::serial_connection_manager() {
375 return serial_connection_manager_.get(); 354 return serial_connection_manager_.get();
376 } 355 }
377 356
378 ApiResourceManager<Socket>* ExtensionSystemImpl::socket_manager() { 357 ApiResourceManager<Socket>* ExtensionSystemImpl::socket_manager() {
379 return socket_manager_.get(); 358 return socket_manager_.get();
380 } 359 }
381 360
382 ApiResourceManager<UsbDeviceResource>* 361 ApiResourceManager<UsbDeviceResource>*
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( 394 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts(
416 const std::string& extension_id, 395 const std::string& extension_id,
417 const extension_misc::UnloadedExtensionReason reason) { 396 const extension_misc::UnloadedExtensionReason reason) {
418 BrowserThread::PostTask( 397 BrowserThread::PostTask(
419 BrowserThread::IO, FROM_HERE, 398 BrowserThread::IO, FROM_HERE,
420 base::Bind(&ExtensionInfoMap::RemoveExtension, info_map(), 399 base::Bind(&ExtensionInfoMap::RemoveExtension, info_map(),
421 extension_id, reason)); 400 extension_id, reason));
422 } 401 }
423 402
424 } // namespace extensions 403 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_system.h ('k') | chrome/browser/extensions/tab_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698