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

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

Issue 796453003: Introduce DeclarativeUserScriptManager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nits. Created 6 years 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_impl.h" 5 #include "chrome/browser/extensions/extension_system_impl.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/memory/weak_ptr.h" 11 #include "base/memory/weak_ptr.h"
12 #include "base/metrics/field_trial.h" 12 #include "base/metrics/field_trial.h"
13 #include "base/metrics/histogram.h" 13 #include "base/metrics/histogram.h"
14 #include "base/strings/string_tokenizer.h" 14 #include "base/strings/string_tokenizer.h"
15 #include "base/strings/string_util.h" 15 #include "base/strings/string_util.h"
16 #include "chrome/browser/browser_process.h" 16 #include "chrome/browser/browser_process.h"
17 #include "chrome/browser/content_settings/cookie_settings.h" 17 #include "chrome/browser/content_settings/cookie_settings.h"
18 #include "chrome/browser/extensions/component_loader.h" 18 #include "chrome/browser/extensions/component_loader.h"
19 #include "chrome/browser/extensions/declarative_user_script_master.h" 19 #include "chrome/browser/extensions/declarative_user_script_manager.h"
20 #include "chrome/browser/extensions/error_console/error_console.h" 20 #include "chrome/browser/extensions/error_console/error_console.h"
21 #include "chrome/browser/extensions/extension_error_reporter.h" 21 #include "chrome/browser/extensions/extension_error_reporter.h"
22 #include "chrome/browser/extensions/extension_management.h" 22 #include "chrome/browser/extensions/extension_management.h"
23 #include "chrome/browser/extensions/extension_service.h" 23 #include "chrome/browser/extensions/extension_service.h"
24 #include "chrome/browser/extensions/extension_system_factory.h" 24 #include "chrome/browser/extensions/extension_system_factory.h"
25 #include "chrome/browser/extensions/extension_util.h" 25 #include "chrome/browser/extensions/extension_util.h"
26 #include "chrome/browser/extensions/install_verifier.h" 26 #include "chrome/browser/extensions/install_verifier.h"
27 #include "chrome/browser/extensions/navigation_observer.h" 27 #include "chrome/browser/extensions/navigation_observer.h"
28 #include "chrome/browser/extensions/shared_module_service.h" 28 #include "chrome/browser/extensions/shared_module_service.h"
29 #include "chrome/browser/extensions/shared_user_script_master.h" 29 #include "chrome/browser/extensions/shared_user_script_master.h"
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 295
296 void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) { 296 void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) {
297 const CommandLine* command_line = CommandLine::ForCurrentProcess(); 297 const CommandLine* command_line = CommandLine::ForCurrentProcess();
298 298
299 navigation_observer_.reset(new NavigationObserver(profile_)); 299 navigation_observer_.reset(new NavigationObserver(profile_));
300 300
301 bool allow_noisy_errors = !command_line->HasSwitch(switches::kNoErrorDialogs); 301 bool allow_noisy_errors = !command_line->HasSwitch(switches::kNoErrorDialogs);
302 ExtensionErrorReporter::Init(allow_noisy_errors); 302 ExtensionErrorReporter::Init(allow_noisy_errors);
303 303
304 shared_user_script_master_.reset(new SharedUserScriptMaster(profile_)); 304 shared_user_script_master_.reset(new SharedUserScriptMaster(profile_));
305 declarative_user_script_manager_.reset(
306 new DeclarativeUserScriptManager(profile_));
305 307
306 // ExtensionService depends on RuntimeData. 308 // ExtensionService depends on RuntimeData.
307 runtime_data_.reset(new RuntimeData(ExtensionRegistry::Get(profile_))); 309 runtime_data_.reset(new RuntimeData(ExtensionRegistry::Get(profile_)));
308 310
309 bool autoupdate_enabled = !profile_->IsGuestSession(); 311 bool autoupdate_enabled = !profile_->IsGuestSession();
310 #if defined(OS_CHROMEOS) 312 #if defined(OS_CHROMEOS)
311 if (!extensions_enabled) 313 if (!extensions_enabled)
312 autoupdate_enabled = false; 314 autoupdate_enabled = false;
313 #endif 315 #endif
314 extension_service_.reset(new ExtensionService( 316 extension_service_.reset(new ExtensionService(
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 426
425 ManagementPolicy* ExtensionSystemImpl::Shared::management_policy() { 427 ManagementPolicy* ExtensionSystemImpl::Shared::management_policy() {
426 return management_policy_.get(); 428 return management_policy_.get();
427 } 429 }
428 430
429 SharedUserScriptMaster* 431 SharedUserScriptMaster*
430 ExtensionSystemImpl::Shared::shared_user_script_master() { 432 ExtensionSystemImpl::Shared::shared_user_script_master() {
431 return shared_user_script_master_.get(); 433 return shared_user_script_master_.get();
432 } 434 }
433 435
436 DeclarativeUserScriptManager*
437 ExtensionSystemImpl::Shared::declarative_user_script_manager() {
438 return declarative_user_script_manager_.get();
439 }
440
434 InfoMap* ExtensionSystemImpl::Shared::info_map() { 441 InfoMap* ExtensionSystemImpl::Shared::info_map() {
435 if (!extension_info_map_.get()) 442 if (!extension_info_map_.get())
436 extension_info_map_ = new InfoMap(); 443 extension_info_map_ = new InfoMap();
437 return extension_info_map_.get(); 444 return extension_info_map_.get();
438 } 445 }
439 446
440 LazyBackgroundTaskQueue* 447 LazyBackgroundTaskQueue*
441 ExtensionSystemImpl::Shared::lazy_background_task_queue() { 448 ExtensionSystemImpl::Shared::lazy_background_task_queue() {
442 return lazy_background_task_queue_.get(); 449 return lazy_background_task_queue_.get();
443 } 450 }
(...skipping 11 matching lines...) Expand all
455 } 462 }
456 463
457 QuotaService* ExtensionSystemImpl::Shared::quota_service() { 464 QuotaService* ExtensionSystemImpl::Shared::quota_service() {
458 return quota_service_.get(); 465 return quota_service_.get();
459 } 466 }
460 467
461 ContentVerifier* ExtensionSystemImpl::Shared::content_verifier() { 468 ContentVerifier* ExtensionSystemImpl::Shared::content_verifier() {
462 return content_verifier_.get(); 469 return content_verifier_.get();
463 } 470 }
464 471
465 DeclarativeUserScriptMaster*
466 ExtensionSystemImpl::Shared::GetDeclarativeUserScriptMasterByExtension(
467 const ExtensionId& extension_id) {
468 DCHECK(ready().is_signaled());
469 DeclarativeUserScriptMaster* master = NULL;
470 for (ScopedVector<DeclarativeUserScriptMaster>::iterator it =
471 declarative_user_script_masters_.begin();
472 it != declarative_user_script_masters_.end();
473 ++it) {
474 if ((*it)->extension_id() == extension_id) {
475 master = *it;
476 break;
477 }
478 }
479 if (!master) {
480 master = new DeclarativeUserScriptMaster(profile_, extension_id);
481 declarative_user_script_masters_.push_back(master);
482 }
483 return master;
484 }
485
486 // 472 //
487 // ExtensionSystemImpl 473 // ExtensionSystemImpl
488 // 474 //
489 475
490 ExtensionSystemImpl::ExtensionSystemImpl(Profile* profile) 476 ExtensionSystemImpl::ExtensionSystemImpl(Profile* profile)
491 : profile_(profile) { 477 : profile_(profile) {
492 shared_ = ExtensionSystemSharedFactory::GetForBrowserContext(profile); 478 shared_ = ExtensionSystemSharedFactory::GetForBrowserContext(profile);
493 479
494 if (!profile->IsOffTheRecord()) { 480 if (!profile->IsOffTheRecord()) {
495 shared_->InitPrefs(); 481 shared_->InitPrefs();
(...skipping 25 matching lines...) Expand all
521 } 507 }
522 508
523 ManagementPolicy* ExtensionSystemImpl::management_policy() { 509 ManagementPolicy* ExtensionSystemImpl::management_policy() {
524 return shared_->management_policy(); 510 return shared_->management_policy();
525 } 511 }
526 512
527 SharedUserScriptMaster* ExtensionSystemImpl::shared_user_script_master() { 513 SharedUserScriptMaster* ExtensionSystemImpl::shared_user_script_master() {
528 return shared_->shared_user_script_master(); 514 return shared_->shared_user_script_master();
529 } 515 }
530 516
517 DeclarativeUserScriptManager*
518 ExtensionSystemImpl::declarative_user_script_manager() {
519 return shared_->declarative_user_script_manager();
520 }
521
531 StateStore* ExtensionSystemImpl::state_store() { 522 StateStore* ExtensionSystemImpl::state_store() {
532 return shared_->state_store(); 523 return shared_->state_store();
533 } 524 }
534 525
535 StateStore* ExtensionSystemImpl::rules_store() { 526 StateStore* ExtensionSystemImpl::rules_store() {
536 return shared_->rules_store(); 527 return shared_->rules_store();
537 } 528 }
538 529
539 InfoMap* ExtensionSystemImpl::info_map() { return shared_->info_map(); } 530 InfoMap* ExtensionSystemImpl::info_map() { return shared_->info_map(); }
540 531
(...skipping 24 matching lines...) Expand all
565 ContentVerifier* ExtensionSystemImpl::content_verifier() { 556 ContentVerifier* ExtensionSystemImpl::content_verifier() {
566 return shared_->content_verifier(); 557 return shared_->content_verifier();
567 } 558 }
568 559
569 scoped_ptr<ExtensionSet> ExtensionSystemImpl::GetDependentExtensions( 560 scoped_ptr<ExtensionSet> ExtensionSystemImpl::GetDependentExtensions(
570 const Extension* extension) { 561 const Extension* extension) {
571 return extension_service()->shared_module_service()->GetDependentExtensions( 562 return extension_service()->shared_module_service()->GetDependentExtensions(
572 extension); 563 extension);
573 } 564 }
574 565
575 DeclarativeUserScriptMaster*
576 ExtensionSystemImpl::GetDeclarativeUserScriptMasterByExtension(
577 const ExtensionId& extension_id) {
578 return shared_->GetDeclarativeUserScriptMasterByExtension(extension_id);
579 }
580
581 void ExtensionSystemImpl::RegisterExtensionWithRequestContexts( 566 void ExtensionSystemImpl::RegisterExtensionWithRequestContexts(
582 const Extension* extension) { 567 const Extension* extension) {
583 base::Time install_time; 568 base::Time install_time;
584 if (extension->location() != Manifest::COMPONENT) { 569 if (extension->location() != Manifest::COMPONENT) {
585 install_time = ExtensionPrefs::Get(profile_)-> 570 install_time = ExtensionPrefs::Get(profile_)->
586 GetInstallTime(extension->id()); 571 GetInstallTime(extension->id());
587 } 572 }
588 bool incognito_enabled = util::IsIncognitoEnabled(extension->id(), profile_); 573 bool incognito_enabled = util::IsIncognitoEnabled(extension->id(), profile_);
589 574
590 bool notifications_disabled = false; 575 bool notifications_disabled = false;
(...skipping 18 matching lines...) Expand all
609 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( 594 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts(
610 const std::string& extension_id, 595 const std::string& extension_id,
611 const UnloadedExtensionInfo::Reason reason) { 596 const UnloadedExtensionInfo::Reason reason) {
612 BrowserThread::PostTask( 597 BrowserThread::PostTask(
613 BrowserThread::IO, 598 BrowserThread::IO,
614 FROM_HERE, 599 FROM_HERE,
615 base::Bind(&InfoMap::RemoveExtension, info_map(), extension_id, reason)); 600 base::Bind(&InfoMap::RemoveExtension, info_map(), extension_id, reason));
616 } 601 }
617 602
618 } // namespace extensions 603 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_system_impl.h ('k') | chrome/browser/extensions/test_extension_system.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698