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

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

Issue 698623002: Split WarningService from ExtensionSystem. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: virtual -> override Created 6 years, 1 month 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/blacklist.h" 18 #include "chrome/browser/extensions/blacklist.h"
19 #include "chrome/browser/extensions/component_loader.h" 19 #include "chrome/browser/extensions/component_loader.h"
20 #include "chrome/browser/extensions/declarative_user_script_master.h" 20 #include "chrome/browser/extensions/declarative_user_script_master.h"
21 #include "chrome/browser/extensions/error_console/error_console.h" 21 #include "chrome/browser/extensions/error_console/error_console.h"
22 #include "chrome/browser/extensions/extension_error_reporter.h" 22 #include "chrome/browser/extensions/extension_error_reporter.h"
23 #include "chrome/browser/extensions/extension_management.h" 23 #include "chrome/browser/extensions/extension_management.h"
24 #include "chrome/browser/extensions/extension_service.h" 24 #include "chrome/browser/extensions/extension_service.h"
25 #include "chrome/browser/extensions/extension_system_factory.h" 25 #include "chrome/browser/extensions/extension_system_factory.h"
26 #include "chrome/browser/extensions/extension_util.h" 26 #include "chrome/browser/extensions/extension_util.h"
27 #include "chrome/browser/extensions/extension_warning_badge_service.h"
28 #include "chrome/browser/extensions/install_verifier.h" 27 #include "chrome/browser/extensions/install_verifier.h"
29 #include "chrome/browser/extensions/navigation_observer.h" 28 #include "chrome/browser/extensions/navigation_observer.h"
30 #include "chrome/browser/extensions/shared_module_service.h" 29 #include "chrome/browser/extensions/shared_module_service.h"
31 #include "chrome/browser/extensions/shared_user_script_master.h" 30 #include "chrome/browser/extensions/shared_user_script_master.h"
32 #include "chrome/browser/extensions/state_store_notification_observer.h" 31 #include "chrome/browser/extensions/state_store_notification_observer.h"
33 #include "chrome/browser/extensions/unpacked_installer.h" 32 #include "chrome/browser/extensions/unpacked_installer.h"
34 #include "chrome/browser/profiles/profile.h" 33 #include "chrome/browser/profiles/profile.h"
35 #include "chrome/browser/profiles/profile_manager.h" 34 #include "chrome/browser/profiles/profile_manager.h"
36 #include "chrome/browser/ui/webui/extensions/extension_icon_source.h" 35 #include "chrome/browser/ui/webui/extensions/extension_icon_source.h"
37 #include "chrome/common/chrome_switches.h" 36 #include "chrome/common/chrome_switches.h"
(...skipping 10 matching lines...) Expand all
48 #include "extensions/browser/extension_pref_value_map.h" 47 #include "extensions/browser/extension_pref_value_map.h"
49 #include "extensions/browser/extension_pref_value_map_factory.h" 48 #include "extensions/browser/extension_pref_value_map_factory.h"
50 #include "extensions/browser/extension_prefs.h" 49 #include "extensions/browser/extension_prefs.h"
51 #include "extensions/browser/extension_registry.h" 50 #include "extensions/browser/extension_registry.h"
52 #include "extensions/browser/info_map.h" 51 #include "extensions/browser/info_map.h"
53 #include "extensions/browser/lazy_background_task_queue.h" 52 #include "extensions/browser/lazy_background_task_queue.h"
54 #include "extensions/browser/management_policy.h" 53 #include "extensions/browser/management_policy.h"
55 #include "extensions/browser/quota_service.h" 54 #include "extensions/browser/quota_service.h"
56 #include "extensions/browser/runtime_data.h" 55 #include "extensions/browser/runtime_data.h"
57 #include "extensions/browser/state_store.h" 56 #include "extensions/browser/state_store.h"
58 #include "extensions/browser/warning_service.h"
59 #include "extensions/browser/warning_set.h"
60 #include "extensions/common/constants.h" 57 #include "extensions/common/constants.h"
61 #include "extensions/common/extension.h" 58 #include "extensions/common/extension.h"
62 #include "extensions/common/extension_urls.h" 59 #include "extensions/common/extension_urls.h"
63 #include "extensions/common/manifest.h" 60 #include "extensions/common/manifest.h"
64 #include "extensions/common/manifest_url_handlers.h" 61 #include "extensions/common/manifest_url_handlers.h"
65 #include "net/base/escape.h" 62 #include "net/base/escape.h"
66 63
67 #if defined(ENABLE_NOTIFICATIONS) 64 #if defined(ENABLE_NOTIFICATIONS)
68 #include "chrome/browser/notifications/desktop_notification_service.h" 65 #include "chrome/browser/notifications/desktop_notification_service.h"
69 #include "chrome/browser/notifications/desktop_notification_service_factory.h" 66 #include "chrome/browser/notifications/desktop_notification_service_factory.h"
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 base::ThreadRestrictions::ScopedAllowIO allow_io; 373 base::ThreadRestrictions::ScopedAllowIO allow_io;
377 extension_service_->component_loader()->AddOrReplace( 374 extension_service_->component_loader()->AddOrReplace(
378 base::FilePath(t.token())); 375 base::FilePath(t.token()));
379 } 376 }
380 } 377 }
381 extension_service_->Init(); 378 extension_service_->Init();
382 379
383 // Make the chrome://extension-icon/ resource available. 380 // Make the chrome://extension-icon/ resource available.
384 content::URLDataSource::Add(profile_, new ExtensionIconSource(profile_)); 381 content::URLDataSource::Add(profile_, new ExtensionIconSource(profile_));
385 382
386 warning_service_.reset(new WarningService(profile_));
387 extension_warning_badge_service_.reset(
388 new ExtensionWarningBadgeService(profile_));
389 warning_service_->AddObserver(
390 extension_warning_badge_service_.get());
391 error_console_.reset(new ErrorConsole(profile_)); 383 error_console_.reset(new ErrorConsole(profile_));
392 quota_service_.reset(new QuotaService); 384 quota_service_.reset(new QuotaService);
393 385
394 if (extensions_enabled) { 386 if (extensions_enabled) {
395 // Load any extensions specified with --load-extension. 387 // Load any extensions specified with --load-extension.
396 // TODO(yoz): Seems like this should move into ExtensionService::Init. 388 // TODO(yoz): Seems like this should move into ExtensionService::Init.
397 // But maybe it's no longer important. 389 // But maybe it's no longer important.
398 if (command_line->HasSwitch(switches::kLoadExtension)) { 390 if (command_line->HasSwitch(switches::kLoadExtension)) {
399 CommandLine::StringType path_list = command_line->GetSwitchValueNative( 391 CommandLine::StringType path_list = command_line->GetSwitchValueNative(
400 switches::kLoadExtension); 392 switches::kLoadExtension);
401 base::StringTokenizerT<CommandLine::StringType, 393 base::StringTokenizerT<CommandLine::StringType,
402 CommandLine::StringType::const_iterator> t(path_list, 394 CommandLine::StringType::const_iterator> t(path_list,
403 FILE_PATH_LITERAL(",")); 395 FILE_PATH_LITERAL(","));
404 while (t.GetNext()) { 396 while (t.GetNext()) {
405 std::string extension_id; 397 std::string extension_id;
406 UnpackedInstaller::Create(extension_service_.get())-> 398 UnpackedInstaller::Create(extension_service_.get())->
407 LoadFromCommandLine(base::FilePath(t.token()), &extension_id); 399 LoadFromCommandLine(base::FilePath(t.token()), &extension_id);
408 } 400 }
409 } 401 }
410 } 402 }
411 } 403 }
412 404
413 void ExtensionSystemImpl::Shared::Shutdown() { 405 void ExtensionSystemImpl::Shared::Shutdown() {
414 if (warning_service_) {
415 warning_service_->RemoveObserver(
416 extension_warning_badge_service_.get());
417 }
418 if (content_verifier_.get()) 406 if (content_verifier_.get())
419 content_verifier_->Shutdown(); 407 content_verifier_->Shutdown();
420 if (extension_service_) 408 if (extension_service_)
421 extension_service_->Shutdown(); 409 extension_service_->Shutdown();
422 } 410 }
423 411
424 StateStore* ExtensionSystemImpl::Shared::state_store() { 412 StateStore* ExtensionSystemImpl::Shared::state_store() {
425 return state_store_.get(); 413 return state_store_.get();
426 } 414 }
427 415
(...skipping 26 matching lines...) Expand all
454 442
455 LazyBackgroundTaskQueue* 443 LazyBackgroundTaskQueue*
456 ExtensionSystemImpl::Shared::lazy_background_task_queue() { 444 ExtensionSystemImpl::Shared::lazy_background_task_queue() {
457 return lazy_background_task_queue_.get(); 445 return lazy_background_task_queue_.get();
458 } 446 }
459 447
460 EventRouter* ExtensionSystemImpl::Shared::event_router() { 448 EventRouter* ExtensionSystemImpl::Shared::event_router() {
461 return event_router_.get(); 449 return event_router_.get();
462 } 450 }
463 451
464 WarningService* ExtensionSystemImpl::Shared::warning_service() {
465 return warning_service_.get();
466 }
467
468 Blacklist* ExtensionSystemImpl::Shared::blacklist() { 452 Blacklist* ExtensionSystemImpl::Shared::blacklist() {
469 return blacklist_.get(); 453 return blacklist_.get();
470 } 454 }
471 455
472 ErrorConsole* ExtensionSystemImpl::Shared::error_console() { 456 ErrorConsole* ExtensionSystemImpl::Shared::error_console() {
473 return error_console_.get(); 457 return error_console_.get();
474 } 458 }
475 459
476 InstallVerifier* ExtensionSystemImpl::Shared::install_verifier() { 460 InstallVerifier* ExtensionSystemImpl::Shared::install_verifier() {
477 return install_verifier_.get(); 461 return install_verifier_.get();
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
562 InfoMap* ExtensionSystemImpl::info_map() { return shared_->info_map(); } 546 InfoMap* ExtensionSystemImpl::info_map() { return shared_->info_map(); }
563 547
564 LazyBackgroundTaskQueue* ExtensionSystemImpl::lazy_background_task_queue() { 548 LazyBackgroundTaskQueue* ExtensionSystemImpl::lazy_background_task_queue() {
565 return shared_->lazy_background_task_queue(); 549 return shared_->lazy_background_task_queue();
566 } 550 }
567 551
568 EventRouter* ExtensionSystemImpl::event_router() { 552 EventRouter* ExtensionSystemImpl::event_router() {
569 return shared_->event_router(); 553 return shared_->event_router();
570 } 554 }
571 555
572 WarningService* ExtensionSystemImpl::warning_service() {
573 return shared_->warning_service();
574 }
575
576 Blacklist* ExtensionSystemImpl::blacklist() { 556 Blacklist* ExtensionSystemImpl::blacklist() {
577 return shared_->blacklist(); 557 return shared_->blacklist();
578 } 558 }
579 559
580 const OneShotEvent& ExtensionSystemImpl::ready() const { 560 const OneShotEvent& ExtensionSystemImpl::ready() const {
581 return shared_->ready(); 561 return shared_->ready();
582 } 562 }
583 563
584 ErrorConsole* ExtensionSystemImpl::error_console() { 564 ErrorConsole* ExtensionSystemImpl::error_console() {
585 return shared_->error_console(); 565 return shared_->error_console();
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
640 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts( 620 void ExtensionSystemImpl::UnregisterExtensionWithRequestContexts(
641 const std::string& extension_id, 621 const std::string& extension_id,
642 const UnloadedExtensionInfo::Reason reason) { 622 const UnloadedExtensionInfo::Reason reason) {
643 BrowserThread::PostTask( 623 BrowserThread::PostTask(
644 BrowserThread::IO, 624 BrowserThread::IO,
645 FROM_HERE, 625 FROM_HERE,
646 base::Bind(&InfoMap::RemoveExtension, info_map(), extension_id, reason)); 626 base::Bind(&InfoMap::RemoveExtension, info_map(), extension_id, reason));
647 } 627 }
648 628
649 } // namespace extensions 629 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_system_impl.h ('k') | chrome/browser/extensions/extension_warning_badge_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698