Commit 60673b43 authored by juncai's avatar juncai Committed by Commit bot

Extract ErrorConsole from ExtensionSystem.

This patch removes error_console accessor from ExtensionSystem.
It can be its own browser context keyed service. And it can be
built by its new factory.

BUG=

Review URL: https://codereview.chromium.org/1139643005

Cr-Commit-Position: refs/heads/master@{#329480}
parent b765e2ad
...@@ -60,7 +60,7 @@ void ChromeExtensionWebContentsObserver::OnDetailedConsoleMessageAdded( ...@@ -60,7 +60,7 @@ void ChromeExtensionWebContentsObserver::OnDetailedConsoleMessageAdded(
if (extension_id.empty()) if (extension_id.empty())
extension_id = GURL(source).host(); extension_id = GURL(source).host();
ExtensionSystem::Get(browser_context())->error_console()->ReportError( ErrorConsole::Get(browser_context())->ReportError(
scoped_ptr<ExtensionError>( scoped_ptr<ExtensionError>(
new RuntimeError(extension_id, new RuntimeError(extension_id,
browser_context()->IsOffTheRecord(), browser_context()->IsOffTheRecord(),
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "base/stl_util.h" #include "base/stl_util.h"
#include "base/strings/utf_string_conversions.h" #include "base/strings/utf_string_conversions.h"
#include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/error_console/error_console_factory.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/common/chrome_version_info.h" #include "chrome/common/chrome_version_info.h"
#include "chrome/common/extensions/features/feature_channel.h" #include "chrome/common/extensions/features/feature_channel.h"
...@@ -78,7 +79,7 @@ ErrorConsole::~ErrorConsole() { ...@@ -78,7 +79,7 @@ ErrorConsole::~ErrorConsole() {
// static // static
ErrorConsole* ErrorConsole::Get(content::BrowserContext* browser_context) { ErrorConsole* ErrorConsole::Get(content::BrowserContext* browser_context) {
return ExtensionSystem::Get(browser_context)->error_console(); return ErrorConsoleFactory::GetForBrowserContext(browser_context);
} }
void ErrorConsole::SetReportingForExtension(const std::string& extension_id, void ErrorConsole::SetReportingForExtension(const std::string& extension_id,
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "base/prefs/pref_change_registrar.h" #include "base/prefs/pref_change_registrar.h"
#include "base/scoped_observer.h" #include "base/scoped_observer.h"
#include "base/threading/thread_checker.h" #include "base/threading/thread_checker.h"
#include "components/keyed_service/core/keyed_service.h"
#include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_observer.h"
#include "content/public/browser/notification_registrar.h" #include "content/public/browser/notification_registrar.h"
#include "extensions/browser/error_map.h" #include "extensions/browser/error_map.h"
...@@ -36,7 +37,8 @@ class ExtensionRegistry; ...@@ -36,7 +37,8 @@ class ExtensionRegistry;
// errors can be viewed at chrome://extensions in developer mode. // errors can be viewed at chrome://extensions in developer mode.
// This class is owned by ExtensionSystem, making it, in effect, a // This class is owned by ExtensionSystem, making it, in effect, a
// BrowserContext-keyed service. // BrowserContext-keyed service.
class ErrorConsole : public content::NotificationObserver, class ErrorConsole : public KeyedService,
public content::NotificationObserver,
public ExtensionRegistryObserver { public ExtensionRegistryObserver {
public: public:
class Observer { class Observer {
......
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/extensions/error_console/error_console_factory.h"
#include "chrome/browser/extensions/error_console/error_console.h"
#include "chrome/browser/profiles/profile.h"
#include "components/keyed_service/content/browser_context_dependency_manager.h"
#include "extensions/browser/extension_registry_factory.h"
#include "extensions/browser/extensions_browser_client.h"
using content::BrowserContext;
namespace extensions {
// static
ErrorConsole* ErrorConsoleFactory::GetForBrowserContext(
BrowserContext* context) {
return static_cast<ErrorConsole*>(
GetInstance()->GetServiceForBrowserContext(context, true));
}
// static
ErrorConsoleFactory* ErrorConsoleFactory::GetInstance() {
return Singleton<ErrorConsoleFactory>::get();
}
ErrorConsoleFactory::ErrorConsoleFactory()
: BrowserContextKeyedServiceFactory(
"ErrorConsole",
BrowserContextDependencyManager::GetInstance()) {
DependsOn(ExtensionRegistryFactory::GetInstance());
}
ErrorConsoleFactory::~ErrorConsoleFactory() {
}
KeyedService* ErrorConsoleFactory::BuildServiceInstanceFor(
BrowserContext* context) const {
return new ErrorConsole(Profile::FromBrowserContext(context));
}
BrowserContext* ErrorConsoleFactory::GetBrowserContextToUse(
BrowserContext* context) const {
// Redirected in incognito.
return ExtensionsBrowserClient::Get()->GetOriginalContext(context);
}
} // namespace extensions
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_EXTENSIONS_ERROR_CONSOLE_ERROR_CONSOLE_FACTORY_H_
#define CHROME_BROWSER_EXTENSIONS_ERROR_CONSOLE_ERROR_CONSOLE_FACTORY_H_
#include "base/memory/singleton.h"
#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
namespace extensions {
class ErrorConsole;
class ErrorConsoleFactory : public BrowserContextKeyedServiceFactory {
public:
static ErrorConsole* GetForBrowserContext(content::BrowserContext* context);
static ErrorConsoleFactory* GetInstance();
private:
friend struct DefaultSingletonTraits<ErrorConsoleFactory>;
ErrorConsoleFactory();
~ErrorConsoleFactory() override;
// BrowserContextKeyedServiceFactory implementation
KeyedService* BuildServiceInstanceFor(
content::BrowserContext* context) const override;
content::BrowserContext* GetBrowserContextToUse(
content::BrowserContext* context) const override;
DISALLOW_COPY_AND_ASSIGN(ErrorConsoleFactory);
};
} // namespace extensions
#endif // CHROME_BROWSER_EXTENSIONS_ERROR_CONSOLE_ERROR_CONSOLE_FACTORY_H_
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process.h"
#include "chrome/browser/content_settings/cookie_settings.h" #include "chrome/browser/content_settings/cookie_settings.h"
#include "chrome/browser/extensions/component_loader.h" #include "chrome/browser/extensions/component_loader.h"
#include "chrome/browser/extensions/error_console/error_console.h"
#include "chrome/browser/extensions/extension_error_reporter.h" #include "chrome/browser/extensions/extension_error_reporter.h"
#include "chrome/browser/extensions/extension_management.h" #include "chrome/browser/extensions/extension_management.h"
#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_service.h"
...@@ -378,7 +377,6 @@ void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) { ...@@ -378,7 +377,6 @@ void ExtensionSystemImpl::Shared::Init(bool extensions_enabled) {
// Make the chrome://extension-icon/ resource available. // Make the chrome://extension-icon/ resource available.
content::URLDataSource::Add(profile_, new ExtensionIconSource(profile_)); content::URLDataSource::Add(profile_, new ExtensionIconSource(profile_));
error_console_.reset(new ErrorConsole(profile_));
quota_service_.reset(new QuotaService); quota_service_.reset(new QuotaService);
if (extensions_enabled) { if (extensions_enabled) {
...@@ -452,10 +450,6 @@ EventRouter* ExtensionSystemImpl::Shared::event_router() { ...@@ -452,10 +450,6 @@ EventRouter* ExtensionSystemImpl::Shared::event_router() {
return event_router_.get(); return event_router_.get();
} }
ErrorConsole* ExtensionSystemImpl::Shared::error_console() {
return error_console_.get();
}
InstallVerifier* ExtensionSystemImpl::Shared::install_verifier() { InstallVerifier* ExtensionSystemImpl::Shared::install_verifier() {
return install_verifier_.get(); return install_verifier_.get();
} }
...@@ -541,10 +535,6 @@ const OneShotEvent& ExtensionSystemImpl::ready() const { ...@@ -541,10 +535,6 @@ const OneShotEvent& ExtensionSystemImpl::ready() const {
return shared_->ready(); return shared_->ready();
} }
ErrorConsole* ExtensionSystemImpl::error_console() {
return shared_->error_console();
}
InstallVerifier* ExtensionSystemImpl::install_verifier() { InstallVerifier* ExtensionSystemImpl::install_verifier() {
return shared_->install_verifier(); return shared_->install_verifier();
} }
......
...@@ -46,7 +46,6 @@ class ExtensionSystemImpl : public ExtensionSystem { ...@@ -46,7 +46,6 @@ class ExtensionSystemImpl : public ExtensionSystem {
LazyBackgroundTaskQueue* lazy_background_task_queue() override; // shared LazyBackgroundTaskQueue* lazy_background_task_queue() override; // shared
InfoMap* info_map() override; // shared InfoMap* info_map() override; // shared
EventRouter* event_router() override; // shared EventRouter* event_router() override; // shared
ErrorConsole* error_console() override;
InstallVerifier* install_verifier() override; InstallVerifier* install_verifier() override;
QuotaService* quota_service() override; // shared QuotaService* quota_service() override; // shared
...@@ -91,7 +90,6 @@ class ExtensionSystemImpl : public ExtensionSystem { ...@@ -91,7 +90,6 @@ class ExtensionSystemImpl : public ExtensionSystem {
InfoMap* info_map(); InfoMap* info_map();
LazyBackgroundTaskQueue* lazy_background_task_queue(); LazyBackgroundTaskQueue* lazy_background_task_queue();
EventRouter* event_router(); EventRouter* event_router();
ErrorConsole* error_console();
InstallVerifier* install_verifier(); InstallVerifier* install_verifier();
QuotaService* quota_service(); QuotaService* quota_service();
const OneShotEvent& ready() const { return ready_; } const OneShotEvent& ready() const { return ready_; }
...@@ -123,7 +121,6 @@ class ExtensionSystemImpl : public ExtensionSystem { ...@@ -123,7 +121,6 @@ class ExtensionSystemImpl : public ExtensionSystem {
scoped_ptr<ManagementPolicy> management_policy_; scoped_ptr<ManagementPolicy> management_policy_;
// extension_info_map_ needs to outlive process_manager_. // extension_info_map_ needs to outlive process_manager_.
scoped_refptr<InfoMap> extension_info_map_; scoped_refptr<InfoMap> extension_info_map_;
scoped_ptr<ErrorConsole> error_console_;
scoped_ptr<InstallVerifier> install_verifier_; scoped_ptr<InstallVerifier> install_verifier_;
scoped_ptr<QuotaService> quota_service_; scoped_ptr<QuotaService> quota_service_;
......
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
#include "base/command_line.h" #include "base/command_line.h"
#include "base/prefs/pref_service.h" #include "base/prefs/pref_service.h"
#include "chrome/browser/extensions/blacklist.h" #include "chrome/browser/extensions/blacklist.h"
#include "chrome/browser/extensions/error_console/error_console.h"
#include "chrome/browser/extensions/extension_management.h" #include "chrome/browser/extensions/extension_management.h"
#include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/install_verifier.h" #include "chrome/browser/extensions/install_verifier.h"
...@@ -40,7 +39,6 @@ TestExtensionSystem::TestExtensionSystem(Profile* profile) ...@@ -40,7 +39,6 @@ TestExtensionSystem::TestExtensionSystem(Profile* profile)
: profile_(profile), : profile_(profile),
value_store_(NULL), value_store_(NULL),
info_map_(new InfoMap()), info_map_(new InfoMap()),
error_console_(new ErrorConsole(profile)),
quota_service_(new QuotaService()) {} quota_service_(new QuotaService()) {}
TestExtensionSystem::~TestExtensionSystem() { TestExtensionSystem::~TestExtensionSystem() {
...@@ -157,10 +155,6 @@ void TestExtensionSystem::SetEventRouter(scoped_ptr<EventRouter> event_router) { ...@@ -157,10 +155,6 @@ void TestExtensionSystem::SetEventRouter(scoped_ptr<EventRouter> event_router) {
EventRouter* TestExtensionSystem::event_router() { return event_router_.get(); } EventRouter* TestExtensionSystem::event_router() { return event_router_.get(); }
ErrorConsole* TestExtensionSystem::error_console() {
return error_console_.get();
}
InstallVerifier* TestExtensionSystem::install_verifier() { InstallVerifier* TestExtensionSystem::install_verifier() {
return install_verifier_.get(); return install_verifier_.get();
} }
......
...@@ -71,7 +71,6 @@ class TestExtensionSystem : public ExtensionSystem { ...@@ -71,7 +71,6 @@ class TestExtensionSystem : public ExtensionSystem {
LazyBackgroundTaskQueue* lazy_background_task_queue() override; LazyBackgroundTaskQueue* lazy_background_task_queue() override;
void SetEventRouter(scoped_ptr<EventRouter> event_router); void SetEventRouter(scoped_ptr<EventRouter> event_router);
EventRouter* event_router() override; EventRouter* event_router() override;
ErrorConsole* error_console() override;
InstallVerifier* install_verifier() override; InstallVerifier* install_verifier() override;
QuotaService* quota_service() override; QuotaService* quota_service() override;
const OneShotEvent& ready() const override; const OneShotEvent& ready() const override;
...@@ -100,7 +99,6 @@ class TestExtensionSystem : public ExtensionSystem { ...@@ -100,7 +99,6 @@ class TestExtensionSystem : public ExtensionSystem {
scoped_refptr<InfoMap> info_map_; scoped_refptr<InfoMap> info_map_;
scoped_ptr<LazyBackgroundTaskQueue> lazy_background_task_queue_; scoped_ptr<LazyBackgroundTaskQueue> lazy_background_task_queue_;
scoped_ptr<EventRouter> event_router_; scoped_ptr<EventRouter> event_router_;
scoped_ptr<ErrorConsole> error_console_;
scoped_ptr<InstallVerifier> install_verifier_; scoped_ptr<InstallVerifier> install_verifier_;
scoped_ptr<QuotaService> quota_service_; scoped_ptr<QuotaService> quota_service_;
OneShotEvent ready_; OneShotEvent ready_;
......
...@@ -584,6 +584,8 @@ ...@@ -584,6 +584,8 @@
'browser/extensions/display_info_provider_win.h', 'browser/extensions/display_info_provider_win.h',
'browser/extensions/error_console/error_console.cc', 'browser/extensions/error_console/error_console.cc',
'browser/extensions/error_console/error_console.h', 'browser/extensions/error_console/error_console.h',
'browser/extensions/error_console/error_console_factory.cc',
'browser/extensions/error_console/error_console_factory.h',
'browser/extensions/event_router_forwarder.cc', 'browser/extensions/event_router_forwarder.cc',
'browser/extensions/event_router_forwarder.h', 'browser/extensions/event_router_forwarder.h',
'browser/extensions/extension_action.cc', 'browser/extensions/extension_action.cc',
......
...@@ -31,7 +31,6 @@ namespace extensions { ...@@ -31,7 +31,6 @@ namespace extensions {
class ContentVerifier; class ContentVerifier;
class DeclarativeUserScriptManager; class DeclarativeUserScriptManager;
class ErrorConsole;
class EventRouter; class EventRouter;
class Extension; class Extension;
class ExtensionSet; class ExtensionSet;
...@@ -95,9 +94,6 @@ class ExtensionSystem : public KeyedService { ...@@ -95,9 +94,6 @@ class ExtensionSystem : public KeyedService {
// The EventRouter is created at startup. // The EventRouter is created at startup.
virtual EventRouter* event_router() = 0; virtual EventRouter* event_router() = 0;
// The ErrorConsole is created at startup.
virtual ErrorConsole* error_console() = 0;
// The InstallVerifier is created at startup. // The InstallVerifier is created at startup.
virtual InstallVerifier* install_verifier() = 0; virtual InstallVerifier* install_verifier() = 0;
......
...@@ -59,10 +59,6 @@ EventRouter* MockExtensionSystem::event_router() { ...@@ -59,10 +59,6 @@ EventRouter* MockExtensionSystem::event_router() {
return event_router_; return event_router_;
} }
ErrorConsole* MockExtensionSystem::error_console() {
return nullptr;
}
InstallVerifier* MockExtensionSystem::install_verifier() { InstallVerifier* MockExtensionSystem::install_verifier() {
return nullptr; return nullptr;
} }
......
...@@ -39,7 +39,6 @@ class MockExtensionSystem : public ExtensionSystem { ...@@ -39,7 +39,6 @@ class MockExtensionSystem : public ExtensionSystem {
InfoMap* info_map() override; InfoMap* info_map() override;
LazyBackgroundTaskQueue* lazy_background_task_queue() override; LazyBackgroundTaskQueue* lazy_background_task_queue() override;
EventRouter* event_router() override; EventRouter* event_router() override;
ErrorConsole* error_console() override;
InstallVerifier* install_verifier() override; InstallVerifier* install_verifier() override;
QuotaService* quota_service() override; QuotaService* quota_service() override;
const OneShotEvent& ready() const override; const OneShotEvent& ready() const override;
......
...@@ -148,10 +148,6 @@ EventRouter* ShellExtensionSystem::event_router() { ...@@ -148,10 +148,6 @@ EventRouter* ShellExtensionSystem::event_router() {
return event_router_.get(); return event_router_.get();
} }
ErrorConsole* ShellExtensionSystem::error_console() {
return nullptr;
}
InstallVerifier* ShellExtensionSystem::install_verifier() { InstallVerifier* ShellExtensionSystem::install_verifier() {
return nullptr; return nullptr;
} }
......
...@@ -63,7 +63,6 @@ class ShellExtensionSystem : public ExtensionSystem { ...@@ -63,7 +63,6 @@ class ShellExtensionSystem : public ExtensionSystem {
InfoMap* info_map() override; InfoMap* info_map() override;
LazyBackgroundTaskQueue* lazy_background_task_queue() override; LazyBackgroundTaskQueue* lazy_background_task_queue() override;
EventRouter* event_router() override; EventRouter* event_router() override;
ErrorConsole* error_console() override;
InstallVerifier* install_verifier() override; InstallVerifier* install_verifier() override;
QuotaService* quota_service() override; QuotaService* quota_service() override;
void RegisterExtensionWithRequestContexts( void RegisterExtensionWithRequestContexts(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment