diff options
8 files changed, 43 insertions, 111 deletions
diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_api.cc b/chrome/browser/extensions/api/tab_capture/tab_capture_api.cc index ac0df0a..223a1e9 100644 --- a/chrome/browser/extensions/api/tab_capture/tab_capture_api.cc +++ b/chrome/browser/extensions/api/tab_capture/tab_capture_api.cc @@ -6,11 +6,13 @@ #include "chrome/browser/extensions/api/tab_capture/tab_capture_api.h" +#include <string> +#include <vector> + #include "base/command_line.h" #include "base/strings/stringprintf.h" #include "base/values.h" #include "chrome/browser/extensions/api/tab_capture/tab_capture_registry.h" -#include "chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.h" #include "chrome/browser/extensions/event_names.h" #include "chrome/browser/extensions/extension_renderer_state.h" #include "chrome/browser/extensions/tab_helper.h" @@ -128,7 +130,7 @@ bool TabCaptureCaptureFunction::RunImpl() { } extensions::TabCaptureRegistry* registry = - extensions::TabCaptureRegistryFactory::GetForProfile(profile()); + extensions::TabCaptureRegistry::Get(profile()); if (!registry->AddRequest(render_process_id, routing_id, extension_id, @@ -150,7 +152,7 @@ bool TabCaptureCaptureFunction::RunImpl() { bool TabCaptureGetCapturedTabsFunction::RunImpl() { extensions::TabCaptureRegistry* registry = - extensions::TabCaptureRegistryFactory::GetForProfile(profile()); + extensions::TabCaptureRegistry::Get(profile()); const TabCaptureRegistry::RegistryCaptureInfo& captured_tabs = registry->GetCapturedTabs(GetExtension()->id()); diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc b/chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc index 1fa0080..2e7b72b 100644 --- a/chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc +++ b/chrome/browser/extensions/api/tab_capture/tab_capture_registry.cc @@ -4,8 +4,7 @@ #include "chrome/browser/extensions/api/tab_capture/tab_capture_registry.h" -#include <utility> - +#include "base/lazy_instance.h" #include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/extensions/event_router.h" #include "chrome/browser/extensions/extension_system.h" @@ -121,6 +120,20 @@ TabCaptureRegistry::~TabCaptureRegistry() { MediaCaptureDevicesDispatcher::GetInstance()->RemoveObserver(this); } +// static +TabCaptureRegistry* TabCaptureRegistry::Get(Profile* profile) { + return ProfileKeyedAPIFactory<TabCaptureRegistry>::GetForProfile(profile); +} + +static base::LazyInstance<ProfileKeyedAPIFactory<TabCaptureRegistry> > + g_factory = LAZY_INSTANCE_INITIALIZER; + +// static +ProfileKeyedAPIFactory<TabCaptureRegistry>* +TabCaptureRegistry::GetFactoryInstance() { + return &g_factory.Get(); +} + const TabCaptureRegistry::RegistryCaptureInfo TabCaptureRegistry::GetCapturedTabs(const std::string& extension_id) const { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_registry.h b/chrome/browser/extensions/api/tab_capture/tab_capture_registry.h index 6472f1a..6f2fffe 100644 --- a/chrome/browser/extensions/api/tab_capture/tab_capture_registry.h +++ b/chrome/browser/extensions/api/tab_capture/tab_capture_registry.h @@ -6,11 +6,13 @@ #define CHROME_BROWSER_EXTENSIONS_API_TAB_CAPTURE_TAB_CAPTURE_REGISTRY_H_ #include <string> +#include <utility> +#include <vector> #include "base/memory/scoped_vector.h" +#include "chrome/browser/extensions/api/profile_keyed_api_factory.h" #include "chrome/browser/media/media_capture_devices_dispatcher.h" #include "chrome/common/extensions/api/tab_capture.h" -#include "components/browser_context_keyed_service/browser_context_keyed_service.h" #include "content/public/browser/media_request_state.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" @@ -24,14 +26,17 @@ class FullscreenObserver; namespace tab_capture = extensions::api::tab_capture; -class TabCaptureRegistry : public BrowserContextKeyedService, +class TabCaptureRegistry : public ProfileKeyedAPI, public content::NotificationObserver, public MediaCaptureDevicesDispatcher::Observer { public: typedef std::vector<std::pair<int, tab_capture::TabCaptureState> > RegistryCaptureInfo; - explicit TabCaptureRegistry(Profile* profile); + static TabCaptureRegistry* Get(Profile* profile); + + // Used by ProfileKeyedAPI. + static ProfileKeyedAPIFactory<TabCaptureRegistry>* GetFactoryInstance(); // List all pending, active and stopped capture requests. const RegistryCaptureInfo GetCapturedTabs( @@ -50,10 +55,20 @@ class TabCaptureRegistry : public BrowserContextKeyedService, bool VerifyRequest(int render_process_id, int render_view_id); private: + friend class ProfileKeyedAPIFactory<TabCaptureRegistry>; friend class FullscreenObserver; + explicit TabCaptureRegistry(Profile* profile); virtual ~TabCaptureRegistry(); + // Used by ProfileKeyedAPI. + static const char* service_name() { + return "TabCaptureRegistry"; + } + + static const bool kServiceIsCreatedWithBrowserContext = false; + static const bool kServiceRedirectedInIncognito = false; + // content::NotificationObserver implementation. virtual void Observe(int type, const content::NotificationSource& source, @@ -80,6 +95,6 @@ class TabCaptureRegistry : public BrowserContextKeyedService, DISALLOW_COPY_AND_ASSIGN(TabCaptureRegistry); }; -} // namespace extension +} // namespace extensions #endif // CHROME_BROWSER_EXTENSIONS_API_TAB_CAPTURE_TAB_CAPTURE_REGISTRY_H_ diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.cc b/chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.cc deleted file mode 100644 index e48fcf9..0000000 --- a/chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.cc +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright (c) 2012 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/api/tab_capture/tab_capture_registry_factory.h" - -#include "chrome/browser/extensions/api/discovery/suggested_links_registry.h" -#include "chrome/browser/extensions/api/tab_capture/tab_capture_registry.h" -#include "chrome/browser/extensions/extension_system_factory.h" -#include "chrome/browser/profiles/incognito_helpers.h" -#include "chrome/browser/profiles/profile.h" -#include "components/browser_context_keyed_service/browser_context_dependency_manager.h" - -namespace extensions { - -// static -TabCaptureRegistry* TabCaptureRegistryFactory::GetForProfile(Profile* profile) { - return static_cast<TabCaptureRegistry*>( - GetInstance()->GetServiceForBrowserContext(profile, true)); -} - -// static -TabCaptureRegistryFactory* TabCaptureRegistryFactory::GetInstance() { - return Singleton<TabCaptureRegistryFactory>::get(); -} - -bool TabCaptureRegistryFactory::ServiceIsCreatedWithBrowserContext() const { - return false; -} - -TabCaptureRegistryFactory::TabCaptureRegistryFactory() - : BrowserContextKeyedServiceFactory( - "TabCaptureRegistry", - BrowserContextDependencyManager::GetInstance()) { - DependsOn(ExtensionSystemFactory::GetInstance()); -} - -TabCaptureRegistryFactory::~TabCaptureRegistryFactory() { -} - -BrowserContextKeyedService* TabCaptureRegistryFactory::BuildServiceInstanceFor( - content::BrowserContext* profile) const { - return new TabCaptureRegistry(static_cast<Profile*>(profile)); -} - -content::BrowserContext* TabCaptureRegistryFactory::GetBrowserContextToUse( - content::BrowserContext* context) const { - return chrome::GetBrowserContextRedirectedInIncognito(context); -} - -} // namespace extensions diff --git a/chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.h b/chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.h deleted file mode 100644 index afd75d5..0000000 --- a/chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.h +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) 2012 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_API_TAB_CAPTURE_TAB_CAPTURE_REGISTRY_FACTORY_H_ -#define CHROME_BROWSER_EXTENSIONS_API_TAB_CAPTURE_TAB_CAPTURE_REGISTRY_FACTORY_H_ - -#include "base/memory/singleton.h" -#include "components/browser_context_keyed_service/browser_context_keyed_service_factory.h" - -class Profile; - -namespace extensions { - -class TabCaptureRegistry; - -class TabCaptureRegistryFactory : public BrowserContextKeyedServiceFactory { - public: - static TabCaptureRegistry* GetForProfile(Profile* profile); - - static TabCaptureRegistryFactory* GetInstance(); - - // BrowserContextKeyedBaseFactory: - virtual bool ServiceIsCreatedWithBrowserContext() const OVERRIDE; - - private: - friend struct DefaultSingletonTraits<TabCaptureRegistryFactory>; - - TabCaptureRegistryFactory(); - virtual ~TabCaptureRegistryFactory(); - - // BrowserContextKeyedServiceFactory: - virtual BrowserContextKeyedService* BuildServiceInstanceFor( - content::BrowserContext* profile) const OVERRIDE; - virtual content::BrowserContext* GetBrowserContextToUse( - content::BrowserContext* context) const OVERRIDE; - - DISALLOW_COPY_AND_ASSIGN(TabCaptureRegistryFactory); -}; - -} // namespace extensions - -#endif // CHROME_BROWSER_EXTENSIONS_API_TAB_CAPTURE_TAB_CAPTURE_REGISTRY_FACTORY_H_ diff --git a/chrome/browser/media/media_capture_devices_dispatcher.cc b/chrome/browser/media/media_capture_devices_dispatcher.cc index 9e36742..67f1bb8 100644 --- a/chrome/browser/media/media_capture_devices_dispatcher.cc +++ b/chrome/browser/media/media_capture_devices_dispatcher.cc @@ -12,7 +12,6 @@ #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "chrome/browser/extensions/api/tab_capture/tab_capture_registry.h" -#include "chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.h" #include "chrome/browser/media/audio_stream_indicator.h" #include "chrome/browser/media/desktop_streams_registry.h" #include "chrome/browser/media/media_stream_capture_indicator.h" @@ -381,7 +380,7 @@ void MediaCaptureDevicesDispatcher::ProcessTabCaptureAccessRequest( Profile* profile = Profile::FromBrowserContext(web_contents->GetBrowserContext()); extensions::TabCaptureRegistry* tab_capture_registry = - extensions::TabCaptureRegistryFactory::GetForProfile(profile); + extensions::TabCaptureRegistry::Get(profile); bool tab_capture_allowed = tab_capture_registry->VerifyRequest(request.render_process_id, request.render_view_id); @@ -623,7 +622,6 @@ void MediaCaptureDevicesDispatcher::OnMediaRequestStateChanged( &MediaCaptureDevicesDispatcher::UpdateMediaRequestStateOnUIThread, base::Unretained(this), render_process_id, render_view_id, page_request_id, device, state)); - } void MediaCaptureDevicesDispatcher::OnAudioStreamPlayingChanged( @@ -655,7 +653,7 @@ void MediaCaptureDevicesDispatcher::UpdateAudioDevicesOnUIThread( } void MediaCaptureDevicesDispatcher::UpdateVideoDevicesOnUIThread( - const content::MediaStreamDevices& devices){ + const content::MediaStreamDevices& devices) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); devices_enumerated_ = true; video_devices_ = devices; diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc index 3e0db36..7dc3f10 100644 --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc @@ -52,7 +52,7 @@ #include "chrome/browser/extensions/api/sockets_udp/udp_socket_event_dispatcher.h" #include "chrome/browser/extensions/api/streams_private/streams_private_api.h" #include "chrome/browser/extensions/api/system_info/system_info_api.h" -#include "chrome/browser/extensions/api/tab_capture/tab_capture_registry_factory.h" +#include "chrome/browser/extensions/api/tab_capture/tab_capture_registry.h" #include "chrome/browser/extensions/api/tabs/tabs_windows_api.h" #include "chrome/browser/extensions/api/usb/usb_device_resource.h" #include "chrome/browser/extensions/api/web_navigation/web_navigation_api.h" @@ -260,7 +260,7 @@ EnsureBrowserContextKeyedServiceFactoriesBuilt() { extensions::StreamsPrivateAPI::GetFactoryInstance(); extensions::SystemInfoAPI::GetFactoryInstance(); extensions::SuggestedLinksRegistryFactory::GetInstance(); - extensions::TabCaptureRegistryFactory::GetInstance(); + extensions::TabCaptureRegistry::GetFactoryInstance(); extensions::TabsWindowsAPI::GetFactoryInstance(); extensions::TtsAPI::GetFactoryInstance(); extensions::WebNavigationAPI::GetFactoryInstance(); diff --git a/chrome/chrome_browser_extensions.gypi b/chrome/chrome_browser_extensions.gypi index 301b965..c21b0aa 100644 --- a/chrome/chrome_browser_extensions.gypi +++ b/chrome/chrome_browser_extensions.gypi @@ -549,8 +549,6 @@ 'browser/extensions/api/tab_capture/tab_capture_api.h', 'browser/extensions/api/tab_capture/tab_capture_registry.cc', 'browser/extensions/api/tab_capture/tab_capture_registry.h', - 'browser/extensions/api/tab_capture/tab_capture_registry_factory.cc', - 'browser/extensions/api/tab_capture/tab_capture_registry_factory.h', 'browser/extensions/api/tabs/tabs_api.cc', 'browser/extensions/api/tabs/tabs_api.h', 'browser/extensions/api/tabs/tabs_windows_api.cc', |