diff options
26 files changed, 100 insertions, 166 deletions
diff --git a/apps/app_lifetime_monitor.cc b/apps/app_lifetime_monitor.cc index f2bb345..41d7f6b 100644 --- a/apps/app_lifetime_monitor.cc +++ b/apps/app_lifetime_monitor.cc @@ -82,8 +82,8 @@ void AppLifetimeMonitor::OnShellWindowAdded(ShellWindow* shell_window) { return; ShellWindowRegistry::ShellWindowList windows = - ShellWindowRegistry::Get(shell_window->browser_context()) - ->GetShellWindowsForApp(shell_window->extension_id()); + ShellWindowRegistry::Get(shell_window->profile())-> + GetShellWindowsForApp(shell_window->extension_id()); if (windows.size() == 1) NotifyAppActivated(shell_window->extension_id()); } @@ -92,8 +92,8 @@ void AppLifetimeMonitor::OnShellWindowIconChanged(ShellWindow* shell_window) {} void AppLifetimeMonitor::OnShellWindowRemoved(ShellWindow* shell_window) { ShellWindowRegistry::ShellWindowList windows = - ShellWindowRegistry::Get(shell_window->browser_context()) - ->GetShellWindowsForApp(shell_window->extension_id()); + ShellWindowRegistry::Get(shell_window->profile())-> + GetShellWindowsForApp(shell_window->extension_id()); if (windows.empty()) NotifyAppDeactivated(shell_window->extension_id()); } diff --git a/apps/app_shim/app_shim_handler_mac.h b/apps/app_shim/app_shim_handler_mac.h index 0ecde07..2e73181 100644 --- a/apps/app_shim/app_shim_handler_mac.h +++ b/apps/app_shim/app_shim_handler_mac.h @@ -11,6 +11,8 @@ #include "apps/app_shim/app_shim_launch.h" #include "base/files/file_path.h" +class Profile; + namespace apps { // Registrar, and interface for services that can handle interactions with OSX diff --git a/apps/app_shim/extension_app_shim_handler_mac.cc b/apps/app_shim/extension_app_shim_handler_mac.cc index d9917bc..4a580a5e 100644 --- a/apps/app_shim/extension_app_shim_handler_mac.cc +++ b/apps/app_shim/extension_app_shim_handler_mac.cc @@ -230,16 +230,14 @@ void ExtensionAppShimHandler::QuitAppForWindow(ShellWindow* shell_window) { ExtensionAppShimHandler* handler = g_browser_process->platform_part()->app_shim_host_manager()-> extension_app_shim_handler(); - Host* host = handler->FindHost( - Profile::FromBrowserContext(shell_window->browser_context()), - shell_window->extension_id()); + Host* host = handler->FindHost(shell_window->profile(), + shell_window->extension_id()); if (host) { handler->OnShimQuit(host); } else { // App shims might be disabled or the shim is still starting up. - ShellWindowRegistry::Get( - Profile::FromBrowserContext(shell_window->browser_context())) - ->CloseAllShellWindowsForApp(shell_window->extension_id()); + ShellWindowRegistry::Get(shell_window->profile())-> + CloseAllShellWindowsForApp(shell_window->extension_id()); } } @@ -247,8 +245,7 @@ void ExtensionAppShimHandler::HideAppForWindow(ShellWindow* shell_window) { ExtensionAppShimHandler* handler = g_browser_process->platform_part()->app_shim_host_manager()-> extension_app_shim_handler(); - Profile* profile = - Profile::FromBrowserContext(shell_window->browser_context()); + Profile* profile = shell_window->profile(); Host* host = handler->FindHost(profile, shell_window->extension_id()); if (host) host->OnAppHide(); @@ -261,8 +258,7 @@ void ExtensionAppShimHandler::FocusAppForWindow(ShellWindow* shell_window) { ExtensionAppShimHandler* handler = g_browser_process->platform_part()->app_shim_host_manager()-> extension_app_shim_handler(); - Profile* profile = - Profile::FromBrowserContext(shell_window->browser_context()); + Profile* profile = shell_window->profile(); const std::string& app_id = shell_window->extension_id(); Host* host = handler->FindHost(profile, app_id); if (host) { @@ -281,8 +277,7 @@ bool ExtensionAppShimHandler::RequestUserAttentionForWindow( ExtensionAppShimHandler* handler = g_browser_process->platform_part()->app_shim_host_manager()-> extension_app_shim_handler(); - Profile* profile = - Profile::FromBrowserContext(shell_window->browser_context()); + Profile* profile = shell_window->profile(); Host* host = handler->FindHost(profile, shell_window->extension_id()); if (host) { // Bring the window to the front without showing it. diff --git a/apps/app_window_contents.cc b/apps/app_window_contents.cc index fbe70cc..e3ddf7c 100644 --- a/apps/app_window_contents.cc +++ b/apps/app_window_contents.cc @@ -6,9 +6,9 @@ #include "apps/ui/native_app_window.h" #include "chrome/browser/chrome_notification_types.h" +#include "chrome/browser/profiles/profile.h" #include "chrome/common/extensions/api/app_window.h" #include "chrome/common/extensions/extension_messages.h" -#include "content/public/browser/browser_context.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/render_view_host.h" @@ -28,16 +28,15 @@ AppWindowContents::AppWindowContents(ShellWindow* host) AppWindowContents::~AppWindowContents() { } -void AppWindowContents::Initialize(content::BrowserContext* context, - const GURL& url) { +void AppWindowContents::Initialize(Profile* profile, const GURL& url) { url_ = url; extension_function_dispatcher_.reset( - new ExtensionFunctionDispatcher(context, this)); + new ExtensionFunctionDispatcher(profile, this)); - web_contents_.reset( - content::WebContents::Create(content::WebContents::CreateParams( - context, content::SiteInstance::CreateForURL(context, url_)))); + web_contents_.reset(content::WebContents::Create( + content::WebContents::CreateParams( + profile, content::SiteInstance::CreateForURL(profile, url_)))); content::WebContentsObserver::Observe(web_contents_.get()); web_contents_->GetMutableRendererPrefs()-> diff --git a/apps/app_window_contents.h b/apps/app_window_contents.h index ea09f83..80b95de 100644 --- a/apps/app_window_contents.h +++ b/apps/app_window_contents.h @@ -17,7 +17,7 @@ class GURL; namespace content { -class BrowserContext; +class RenderViewHost; } namespace extensions { @@ -38,8 +38,7 @@ class AppWindowContents : public ShellWindowContents, virtual ~AppWindowContents(); // ShellWindowContents - virtual void Initialize(content::BrowserContext* context, - const GURL& url) OVERRIDE; + virtual void Initialize(Profile* profile, const GURL& url) OVERRIDE; virtual void LoadContents(int32 creator_process_id) OVERRIDE; virtual void NativeWindowChanged(NativeAppWindow* native_app_window) OVERRIDE; virtual void NativeWindowClosed() OVERRIDE; diff --git a/apps/shell/browser/shell_extensions_browser_client.cc b/apps/shell/browser/shell_extensions_browser_client.cc index 2c9a56f..ec64cdf 100644 --- a/apps/shell/browser/shell_extensions_browser_client.cc +++ b/apps/shell/browser/shell_extensions_browser_client.cc @@ -82,10 +82,6 @@ BrowserContext* ShellExtensionsBrowserClient::GetOriginalContext( return context; } -bool ShellExtensionsBrowserClient::IsGuestSession(BrowserContext* context) { - return false; -} - bool ShellExtensionsBrowserClient::IsExtensionIncognitoEnabled( const std::string& extension_id, content::BrowserContext* context) const { diff --git a/apps/shell/browser/shell_extensions_browser_client.h b/apps/shell/browser/shell_extensions_browser_client.h index 206d189..d48ca9e 100644 --- a/apps/shell/browser/shell_extensions_browser_client.h +++ b/apps/shell/browser/shell_extensions_browser_client.h @@ -33,7 +33,6 @@ class ShellExtensionsBrowserClient : public ExtensionsBrowserClient { content::BrowserContext* context) OVERRIDE; virtual content::BrowserContext* GetOriginalContext( content::BrowserContext* context) OVERRIDE; - virtual bool IsGuestSession(content::BrowserContext* context) OVERRIDE; virtual bool IsExtensionIncognitoEnabled( const std::string& extension_id, content::BrowserContext* context) const OVERRIDE; diff --git a/apps/shell_window.cc b/apps/shell_window.cc index 8bb6262..d1ad0fe 100644 --- a/apps/shell_window.cc +++ b/apps/shell_window.cc @@ -15,11 +15,11 @@ #include "chrome/browser/extensions/extension_web_contents_observer.h" #include "chrome/browser/extensions/suggest_permission_util.h" #include "chrome/browser/lifetime/application_lifetime.h" +#include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_switches.h" #include "chrome/common/extensions/extension_messages.h" #include "chrome/common/extensions/manifest_handlers/icons_handler.h" #include "components/web_modal/web_contents_modal_dialog_manager.h" -#include "content/public/browser/browser_context.h" #include "content/public/browser/invalidate_type.h" #include "content/public/browser/navigation_entry.h" #include "content/public/browser/notification_details.h" @@ -32,7 +32,6 @@ #include "content/public/browser/web_contents_view.h" #include "content/public/common/media_stream_request.h" #include "extensions/browser/extension_system.h" -#include "extensions/browser/extensions_browser_client.h" #include "extensions/browser/process_manager.h" #include "extensions/browser/view_type_utils.h" #include "extensions/common/extension.h" @@ -44,7 +43,6 @@ #include "base/prefs/pref_service.h" #endif -using content::BrowserContext; using content::ConsoleMessageLevel; using content::WebContents; using extensions::APIPermission; @@ -139,10 +137,10 @@ ShellWindow::CreateParams::~CreateParams() {} ShellWindow::Delegate::~Delegate() {} -ShellWindow::ShellWindow(BrowserContext* context, +ShellWindow::ShellWindow(Profile* profile, Delegate* delegate, const extensions::Extension* extension) - : browser_context_(context), + : profile_(profile), extension_(extension), extension_id_(extension->id()), window_type_(WINDOW_TYPE_DEFAULT), @@ -152,9 +150,7 @@ ShellWindow::ShellWindow(BrowserContext* context, show_on_first_paint_(false), first_paint_complete_(false), cached_always_on_top_(false) { - extensions::ExtensionsBrowserClient* client = - extensions::ExtensionsBrowserClient::Get(); - CHECK(!client->IsGuestSession(context) || context->IsOffTheRecord()) + CHECK(!profile->IsGuestSession() || profile->IsOffTheRecord()) << "Only off the record window may be opened in the guest mode."; } @@ -163,7 +159,7 @@ void ShellWindow::Init(const GURL& url, const CreateParams& params) { // Initialize the render interface and web contents shell_window_contents_.reset(shell_window_contents); - shell_window_contents_->Initialize(browser_context(), url); + shell_window_contents_->Initialize(profile(), url); WebContents* web_contents = shell_window_contents_->GetWebContents(); if (CommandLine::ForCurrentProcess()->HasSwitch( switches::kEnableAppsShowOnFirstPaint)) { @@ -211,12 +207,8 @@ void ShellWindow::Init(const GURL& url, // about it in case it has any setup to do to make the renderer appear // properly. In particular, on Windows, the view's clickthrough region needs // to be set. - extensions::ExtensionsBrowserClient* client = - extensions::ExtensionsBrowserClient::Get(); - registrar_.Add(this, - chrome::NOTIFICATION_EXTENSION_UNLOADED, - content::Source<content::BrowserContext>( - client->GetOriginalContext(browser_context_))); + registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED, + content::Source<Profile>(profile_->GetOriginalProfile())); // Close when the browser process is exiting. registrar_.Add(this, chrome::NOTIFICATION_APP_TERMINATING, content::NotificationService::AllSources()); @@ -237,7 +229,7 @@ void ShellWindow::Init(const GURL& url, UpdateExtensionAppIcon(); - ShellWindowRegistry::Get(browser_context_)->AddShellWindow(this); + ShellWindowRegistry::Get(profile_)->AddShellWindow(this); } ShellWindow::~ShellWindow() { @@ -280,8 +272,8 @@ WebContents* ShellWindow::OpenURLFromTab(WebContents* source, return NULL; } - WebContents* contents = - delegate_->OpenURLFromTab(browser_context_, source, params); + WebContents* contents = delegate_->OpenURLFromTab(profile_, source, + params); if (!contents) { AddMessageToDevToolsConsole( content::CONSOLE_MESSAGE_LEVEL_ERROR, @@ -299,13 +291,10 @@ void ShellWindow::AddNewContents(WebContents* source, const gfx::Rect& initial_pos, bool user_gesture, bool* was_blocked) { - DCHECK(new_contents->GetBrowserContext() == browser_context_); - delegate_->AddNewContents(browser_context_, - new_contents, - disposition, - initial_pos, - user_gesture, - was_blocked); + DCHECK(Profile::FromBrowserContext(new_contents->GetBrowserContext()) == + profile_); + delegate_->AddNewContents(profile_, new_contents, disposition, + initial_pos, user_gesture, was_blocked); } bool ShellWindow::PreHandleKeyboardEvent( @@ -377,7 +366,7 @@ void ShellWindow::DidFirstVisuallyNonEmptyPaint(int32 page_id) { } void ShellWindow::OnNativeClose() { - ShellWindowRegistry::Get(browser_context_)->RemoveShellWindow(this); + ShellWindowRegistry::Get(profile_)->RemoveShellWindow(this); if (shell_window_contents_) { WebContents* web_contents = shell_window_contents_->GetWebContents(); WebContentsModalDialogManager::FromWebContents(web_contents)-> @@ -405,7 +394,7 @@ void ShellWindow::OnNativeWindowChanged() { } void ShellWindow::OnNativeWindowActivated() { - ShellWindowRegistry::Get(browser_context_)->ShellWindowActivated(this); + ShellWindowRegistry::Get(profile_)->ShellWindowActivated(this); } content::WebContents* ShellWindow::web_contents() const { @@ -499,16 +488,13 @@ void ShellWindow::UpdateAppIcon(const gfx::Image& image) { return; app_icon_ = image; native_app_window_->UpdateWindowIcon(); - ShellWindowRegistry::Get(browser_context_)->ShellWindowIconChanged(this); + ShellWindowRegistry::Get(profile_)->ShellWindowIconChanged(this); } void ShellWindow::Fullscreen() { #if !defined(OS_MACOSX) // Do not enter fullscreen mode if disallowed by pref. - PrefService* prefs = - extensions::ExtensionsBrowserClient::Get()->GetPrefServiceForContext( - browser_context()); - if (!prefs->GetBoolean(prefs::kAppFullscreenAllowed)) + if (!profile()->GetPrefs()->GetBoolean(prefs::kAppFullscreenAllowed)) return; #endif fullscreen_types_ |= FULLSCREEN_TYPE_WINDOW_API; @@ -535,10 +521,7 @@ void ShellWindow::Restore() { void ShellWindow::OSFullscreen() { #if !defined(OS_MACOSX) // Do not enter fullscreen mode if disallowed by pref. - PrefService* prefs = - extensions::ExtensionsBrowserClient::Get()->GetPrefServiceForContext( - browser_context()); - if (!prefs->GetBoolean(prefs::kAppFullscreenAllowed)) + if (!profile()->GetPrefs()->GetBoolean(prefs::kAppFullscreenAllowed)) return; #endif fullscreen_types_ |= FULLSCREEN_TYPE_OS; @@ -684,13 +667,13 @@ void ShellWindow::UpdateExtensionAppIcon() { // Avoid using any previous app icons were being downloaded. image_loader_ptr_factory_.InvalidateWeakPtrs(); - app_icon_image_.reset( - new extensions::IconImage(browser_context(), - extension(), - extensions::IconsInfo::GetIcons(extension()), - delegate_->PreferredIconSize(), - extensions::IconsInfo::GetDefaultAppIcon(), - this)); + app_icon_image_.reset(new extensions::IconImage( + profile(), + extension(), + extensions::IconsInfo::GetIcons(extension()), + delegate_->PreferredIconSize(), + extensions::IconsInfo::GetDefaultAppIcon(), + this)); // Triggers actual image loading with 1x resources. The 2x resource will // be handled by IconImage class when requested. @@ -803,10 +786,8 @@ void ShellWindow::ToggleFullscreenModeForTab(content::WebContents* source, // Do not enter fullscreen mode if disallowed by pref. // TODO(bartfab): Add a test once it becomes possible to simulate a user // gesture. http://crbug.com/174178 - PrefService* prefs = - extensions::ExtensionsBrowserClient::Get()->GetPrefServiceForContext( - browser_context()); - if (enter_fullscreen && !prefs->GetBoolean(prefs::kAppFullscreenAllowed)) { + if (enter_fullscreen && + !profile()->GetPrefs()->GetBoolean(prefs::kAppFullscreenAllowed)) { return; } #endif @@ -882,8 +863,7 @@ void ShellWindow::SaveWindowPosition() { if (!native_app_window_) return; - ShellWindowGeometryCache* cache = - ShellWindowGeometryCache::Get(browser_context()); + ShellWindowGeometryCache* cache = ShellWindowGeometryCache::Get(profile()); gfx::Rect bounds = native_app_window_->GetRestoredBounds(); bounds.Inset(native_app_window_->GetFrameInsets()); @@ -939,8 +919,7 @@ ShellWindow::CreateParams ShellWindow::LoadDefaultsAndConstrain( // Load cached state if it exists. if (!params.window_key.empty()) { - ShellWindowGeometryCache* cache = - ShellWindowGeometryCache::Get(browser_context()); + ShellWindowGeometryCache* cache = ShellWindowGeometryCache::Get(profile()); gfx::Rect cached_bounds; gfx::Rect cached_screen_bounds; diff --git a/apps/shell_window.h b/apps/shell_window.h index 2901376..8be7a595 100644 --- a/apps/shell_window.h +++ b/apps/shell_window.h @@ -21,6 +21,7 @@ #include "ui/gfx/rect.h" class GURL; +class Profile; class SkRegion; namespace base { @@ -28,7 +29,6 @@ class DictionaryValue; } namespace content { -class BrowserContext; class WebContents; } @@ -58,8 +58,7 @@ class ShellWindowContents { virtual ~ShellWindowContents() {} // Called to initialize the WebContents, before the app window is created. - virtual void Initialize(content::BrowserContext* context, - const GURL& url) = 0; + virtual void Initialize(Profile* profile, const GURL& url) = 0; // Called to load the contents, after the app window is created. virtual void LoadContents(int32 creator_process_id) = 0; @@ -202,10 +201,10 @@ class ShellWindow : public content::NotificationObserver, // Link handling. virtual content::WebContents* OpenURLFromTab( - content::BrowserContext* context, + Profile* profile, content::WebContents* source, const content::OpenURLParams& params) = 0; - virtual void AddNewContents(content::BrowserContext* context, + virtual void AddNewContents(Profile* profile, content::WebContents* new_contents, WindowOpenDisposition disposition, const gfx::Rect& initial_pos, @@ -240,7 +239,7 @@ class ShellWindow : public content::NotificationObserver, // with a non-standard render interface (e.g. v1 apps using Ash Panels). // Normally ShellWindow::Create should be used. // The constructed shell window takes ownership of |delegate|. - ShellWindow(content::BrowserContext* context, + ShellWindow(Profile* profile, Delegate* delegate, const extensions::Extension* extension); @@ -261,7 +260,7 @@ class ShellWindow : public content::NotificationObserver, return (window_type_ == WINDOW_TYPE_PANEL || window_type_ == WINDOW_TYPE_V1_PANEL); } - content::BrowserContext* browser_context() const { return browser_context_; } + Profile* profile() const { return profile_; } const gfx::Image& app_icon() const { return app_icon_; } const GURL& app_icon_url() const { return app_icon_url_; } const gfx::Image& badge_icon() const { return badge_icon_; } @@ -489,10 +488,7 @@ class ShellWindow : public content::NotificationObserver, virtual void OnExtensionIconImageChanged( extensions::IconImage* image) OVERRIDE; - // The browser context with which this window is associated. ShellWindow does - // not own this object. - content::BrowserContext* browser_context_; - + Profile* profile_; // weak pointer - owned by ProfileManager. // weak pointer - owned by ExtensionService. const extensions::Extension* extension_; const std::string extension_id_; diff --git a/chrome/browser/extensions/api/app_window/app_window_api.cc b/chrome/browser/extensions/api/app_window/app_window_api.cc index b709e6b..1bc4da4 100644 --- a/chrome/browser/extensions/api/app_window/app_window_api.cc +++ b/chrome/browser/extensions/api/app_window/app_window_api.cc @@ -14,7 +14,6 @@ #include "chrome/browser/app_mode/app_mode_utils.h" #include "chrome/browser/devtools/devtools_window.h" #include "chrome/browser/extensions/window_controller.h" -#include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/apps/chrome_shell_window_delegate.h" #include "chrome/common/extensions/api/app_window.h" #include "chrome/common/extensions/features/feature_channel.h" diff --git a/chrome/browser/extensions/api/tabs/ash_panel_contents.cc b/chrome/browser/extensions/api/tabs/ash_panel_contents.cc index b3f2891..408f29f 100644 --- a/chrome/browser/extensions/api/tabs/ash_panel_contents.cc +++ b/chrome/browser/extensions/api/tabs/ash_panel_contents.cc @@ -15,7 +15,6 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/browser/sessions/session_tab_helper.h" #include "chrome/common/extensions/extension_messages.h" -#include "content/public/browser/browser_context.h" #include "content/public/browser/site_instance.h" #include "content/public/browser/web_contents.h" #include "extensions/common/extension.h" @@ -168,16 +167,15 @@ AshPanelContents::AshPanelContents(ShellWindow* host) AshPanelContents::~AshPanelContents() { } -void AshPanelContents::Initialize(content::BrowserContext* context, - const GURL& url) { +void AshPanelContents::Initialize(Profile* profile, const GURL& url) { url_ = url; extension_function_dispatcher_.reset( - new ExtensionFunctionDispatcher(context, this)); + new ExtensionFunctionDispatcher(profile, this)); - web_contents_.reset( - content::WebContents::Create(content::WebContents::CreateParams( - context, content::SiteInstance::CreateForURL(context, url_)))); + web_contents_.reset(content::WebContents::Create( + content::WebContents::CreateParams( + profile, content::SiteInstance::CreateForURL(profile, url_)))); // Needed to give the web contents a Window ID. Extension APIs expect web // contents to have a Window ID. Also required for FaviconTabHelper to @@ -197,8 +195,8 @@ void AshPanelContents::Initialize(content::BrowserContext* context, void AshPanelContents::LoadContents(int32 creator_process_id) { // This must be created after the native window has been created. - window_controller_.reset(new AshPanelWindowController( - host_, Profile::FromBrowserContext(host_->browser_context()))); + window_controller_.reset( + new AshPanelWindowController(host_, host_->profile())); web_contents_->GetController().LoadURL( url_, content::Referrer(), content::PAGE_TRANSITION_LINK, diff --git a/chrome/browser/extensions/api/tabs/ash_panel_contents.h b/chrome/browser/extensions/api/tabs/ash_panel_contents.h index 021e6a6..0ccc9c9 100644 --- a/chrome/browser/extensions/api/tabs/ash_panel_contents.h +++ b/chrome/browser/extensions/api/tabs/ash_panel_contents.h @@ -39,8 +39,7 @@ class AshPanelContents : public apps::ShellWindowContents, virtual ~AshPanelContents(); // apps::ShellWindowContents - virtual void Initialize(content::BrowserContext* context, - const GURL& url) OVERRIDE; + virtual void Initialize(Profile* profile, const GURL& url) OVERRIDE; virtual void LoadContents(int32 creator_process_id) OVERRIDE; virtual void NativeWindowChanged(apps::NativeAppWindow* native_app_window) OVERRIDE; diff --git a/chrome/browser/extensions/chrome_extensions_browser_client.cc b/chrome/browser/extensions/chrome_extensions_browser_client.cc index d1e9f83..fa93a50 100644 --- a/chrome/browser/extensions/chrome_extensions_browser_client.cc +++ b/chrome/browser/extensions/chrome_extensions_browser_client.cc @@ -81,11 +81,6 @@ content::BrowserContext* ChromeExtensionsBrowserClient::GetOriginalContext( return static_cast<Profile*>(context)->GetOriginalProfile(); } -bool ChromeExtensionsBrowserClient::IsGuestSession( - content::BrowserContext* context) { - return static_cast<Profile*>(context)->IsGuestSession(); -} - bool ChromeExtensionsBrowserClient::IsExtensionIncognitoEnabled( const std::string& extension_id, content::BrowserContext* context) const { diff --git a/chrome/browser/extensions/chrome_extensions_browser_client.h b/chrome/browser/extensions/chrome_extensions_browser_client.h index d74c1cd..b89bef6 100644 --- a/chrome/browser/extensions/chrome_extensions_browser_client.h +++ b/chrome/browser/extensions/chrome_extensions_browser_client.h @@ -44,7 +44,6 @@ class ChromeExtensionsBrowserClient : public ExtensionsBrowserClient { content::BrowserContext* context) OVERRIDE; virtual content::BrowserContext* GetOriginalContext( content::BrowserContext* context) OVERRIDE; - virtual bool IsGuestSession(content::BrowserContext* context) OVERRIDE; virtual bool IsExtensionIncognitoEnabled( const std::string& extension_id, content::BrowserContext* context) const OVERRIDE; diff --git a/chrome/browser/ui/apps/chrome_shell_window_delegate.cc b/chrome/browser/ui/apps/chrome_shell_window_delegate.cc index 30e83bd..4d12672 100644 --- a/chrome/browser/ui/apps/chrome_shell_window_delegate.cc +++ b/chrome/browser/ui/apps/chrome_shell_window_delegate.cc @@ -9,7 +9,6 @@ #include "chrome/browser/file_select_helper.h" #include "chrome/browser/media/media_capture_devices_dispatcher.h" #include "chrome/browser/platform_util.h" -#include "chrome/browser/profiles/profile.h" #include "chrome/browser/shell_integration.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_dialogs.h" @@ -17,7 +16,6 @@ #include "chrome/browser/ui/browser_window.h" #include "chrome/browser/ui/scoped_tabbed_browser_displayer.h" #include "chrome/common/render_messages.h" -#include "content/public/browser/browser_context.h" #include "content/public/browser/render_view_host.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_view.h" @@ -41,7 +39,7 @@ bool disable_external_open_for_testing_ = false; // Opens a URL with Chromium (not external browser) with the right profile. content::WebContents* OpenURLFromTabInternal( - content::BrowserContext* context, + Profile* profile, content::WebContents* source, const content::OpenURLParams& params) { // Force all links to open in a new tab, even if they were trying to open a @@ -51,7 +49,7 @@ content::WebContents* OpenURLFromTabInternal( new_tab_params.disposition = params.disposition == NEW_BACKGROUND_TAB ? params.disposition : NEW_FOREGROUND_TAB; - new_tab_params.initiating_profile = Profile::FromBrowserContext(context); + new_tab_params.initiating_profile = profile; chrome::Navigate(&new_tab_params); return new_tab_params.target_contents; @@ -150,14 +148,14 @@ apps::NativeAppWindow* ChromeShellWindowDelegate::CreateNativeAppWindow( } content::WebContents* ChromeShellWindowDelegate::OpenURLFromTab( - content::BrowserContext* context, + Profile* profile, content::WebContents* source, const content::OpenURLParams& params) { - return OpenURLFromTabInternal(context, source, params); + return OpenURLFromTabInternal(profile, source, params); } void ChromeShellWindowDelegate::AddNewContents( - content::BrowserContext* context, + Profile* profile, content::WebContents* new_contents, WindowOpenDisposition disposition, const gfx::Rect& initial_pos, @@ -170,7 +168,7 @@ void ChromeShellWindowDelegate::AddNewContents( return; } chrome::ScopedTabbedBrowserDisplayer displayer( - Profile::FromBrowserContext(context), chrome::GetActiveDesktop()); + profile, chrome::GetActiveDesktop()); // Force all links to open in a new tab, even if they were trying to open a // new window. disposition = diff --git a/chrome/browser/ui/apps/chrome_shell_window_delegate.h b/chrome/browser/ui/apps/chrome_shell_window_delegate.h index 026e67c..1cd3fd7 100644 --- a/chrome/browser/ui/apps/chrome_shell_window_delegate.h +++ b/chrome/browser/ui/apps/chrome_shell_window_delegate.h @@ -7,15 +7,12 @@ #include "apps/shell_window.h" #include "base/memory/scoped_ptr.h" +#include "chrome/browser/profiles/profile.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_delegate.h" #include "ui/base/window_open_disposition.h" #include "ui/gfx/rect.h" -namespace content { -class BrowserContext; -} - class ShellWindowLinkDelegate : public content::WebContentsDelegate { public: ShellWindowLinkDelegate(); @@ -43,10 +40,10 @@ class ChromeShellWindowDelegate : public apps::ShellWindow::Delegate { apps::ShellWindow* window, const apps::ShellWindow::CreateParams& params) OVERRIDE; virtual content::WebContents* OpenURLFromTab( - content::BrowserContext* context, + Profile* profile, content::WebContents* source, const content::OpenURLParams& params) OVERRIDE; - virtual void AddNewContents(content::BrowserContext* context, + virtual void AddNewContents(Profile* profile, content::WebContents* new_contents, WindowOpenDisposition disposition, const gfx::Rect& initial_pos, diff --git a/chrome/browser/ui/ash/launcher/multi_profile_shell_window_launcher_controller.cc b/chrome/browser/ui/ash/launcher/multi_profile_shell_window_launcher_controller.cc index dd171f1..13280a9 100644 --- a/chrome/browser/ui/ash/launcher/multi_profile_shell_window_launcher_controller.cc +++ b/chrome/browser/ui/ash/launcher/multi_profile_shell_window_launcher_controller.cc @@ -43,18 +43,14 @@ void MultiProfileShellWindowLauncherController::ActiveUserChanged( for (ShellWindowList::iterator it = shell_window_list_.begin(); it != shell_window_list_.end(); ++it) { apps::ShellWindow* shell_window = *it; - Profile* profile = - Profile::FromBrowserContext(shell_window->browser_context()); - if (!multi_user_util::IsProfileFromActiveUser(profile) && + if (!multi_user_util::IsProfileFromActiveUser(shell_window->profile()) && IsRegisteredApp(shell_window->GetNativeWindow())) UnregisterApp(shell_window->GetNativeWindow()); } for (ShellWindowList::iterator it = shell_window_list_.begin(); it != shell_window_list_.end(); ++it) { apps::ShellWindow* shell_window = *it; - Profile* profile = - Profile::FromBrowserContext(shell_window->browser_context()); - if (multi_user_util::IsProfileFromActiveUser(profile) && + if (multi_user_util::IsProfileFromActiveUser(shell_window->profile()) && !IsRegisteredApp(shell_window->GetNativeWindow())) RegisterApp(*it); } @@ -73,9 +69,7 @@ void MultiProfileShellWindowLauncherController::OnShellWindowAdded( if (!ControlsWindow(shell_window->GetNativeWindow())) return; shell_window_list_.push_back(shell_window); - Profile* profile = - Profile::FromBrowserContext(shell_window->browser_context()); - if (multi_user_util::IsProfileFromActiveUser(profile)) + if (multi_user_util::IsProfileFromActiveUser(shell_window->profile())) RegisterApp(shell_window); } diff --git a/chrome/browser/ui/cocoa/apps/native_app_window_cocoa.h b/chrome/browser/ui/cocoa/apps/native_app_window_cocoa.h index b0f6775..b83f5fe 100644 --- a/chrome/browser/ui/cocoa/apps/native_app_window_cocoa.h +++ b/chrome/browser/ui/cocoa/apps/native_app_window_cocoa.h @@ -18,6 +18,7 @@ #include "ui/gfx/rect.h" class ExtensionKeybindingRegistryCocoa; +class Profile; class NativeAppWindowCocoa; @class ShellNSWindow; class SkRegion; diff --git a/chrome/browser/ui/cocoa/apps/native_app_window_cocoa.mm b/chrome/browser/ui/cocoa/apps/native_app_window_cocoa.mm index 790cb5f..54dedd36 100644 --- a/chrome/browser/ui/cocoa/apps/native_app_window_cocoa.mm +++ b/chrome/browser/ui/cocoa/apps/native_app_window_cocoa.mm @@ -365,7 +365,7 @@ NativeAppWindowCocoa::NativeAppWindowCocoa( UpdateWindowMinMaxSize(); extension_keybinding_registry_.reset(new ExtensionKeybindingRegistryCocoa( - Profile::FromBrowserContext(shell_window_->browser_context()), + shell_window_->profile(), window, extensions::ExtensionKeybindingRegistry::PLATFORM_APPS_ONLY, shell_window)); diff --git a/chrome/browser/ui/cocoa/apps/native_app_window_cocoa_browsertest.mm b/chrome/browser/ui/cocoa/apps/native_app_window_cocoa_browsertest.mm index 35bbfad..13afc2e 100644 --- a/chrome/browser/ui/cocoa/apps/native_app_window_cocoa_browsertest.mm +++ b/chrome/browser/ui/cocoa/apps/native_app_window_cocoa_browsertest.mm @@ -30,11 +30,8 @@ class NativeAppWindowCocoaBrowserTest : public PlatformAppBrowserTest { content::WindowedNotificationObserver app_loaded_observer( content::NOTIFICATION_LOAD_COMPLETED_MAIN_FRAME, content::NotificationService::AllSources()); - OpenApplication( - AppLaunchParams(profile(), - app_, - extensions::LAUNCH_CONTAINER_NONE, - NEW_WINDOW)); + OpenApplication(AppLaunchParams( + profile(), app_, extensions::LAUNCH_CONTAINER_NONE, NEW_WINDOW)); app_loaded_observer.Wait(); } } diff --git a/chrome/browser/ui/gtk/apps/native_app_window_gtk.cc b/chrome/browser/ui/gtk/apps/native_app_window_gtk.cc index 9242e94..a35491f 100644 --- a/chrome/browser/ui/gtk/apps/native_app_window_gtk.cc +++ b/chrome/browser/ui/gtk/apps/native_app_window_gtk.cc @@ -146,7 +146,7 @@ NativeAppWindowGtk::NativeAppWindowGtk(ShellWindow* shell_window, // Add the keybinding registry. extension_keybinding_registry_.reset(new ExtensionKeybindingRegistryGtk( - Profile::FromBrowserContext(shell_window_->browser_context()), + shell_window_->profile(), window_, extensions::ExtensionKeybindingRegistry::PLATFORM_APPS_ONLY, shell_window_)); @@ -624,8 +624,7 @@ bool NativeAppWindowGtk::IsDetached() const { } void NativeAppWindowGtk::UpdateWindowIcon() { - Profile* profile = - Profile::FromBrowserContext(shell_window_->browser_context()); + Profile* profile = shell_window_->profile(); gfx::Image app_icon = shell_window_->app_icon(); if (!app_icon.IsEmpty()) gtk_util::SetWindowIcon(window_, profile, app_icon.ToGdkPixbuf()); diff --git a/chrome/browser/ui/gtk/apps/native_app_window_gtk.h b/chrome/browser/ui/gtk/apps/native_app_window_gtk.h index ac15a4e..2e6504f 100644 --- a/chrome/browser/ui/gtk/apps/native_app_window_gtk.h +++ b/chrome/browser/ui/gtk/apps/native_app_window_gtk.h @@ -20,6 +20,7 @@ #include "ui/gfx/x/x11_atom_cache.h" class ExtensionKeybindingRegistryGtk; +class Profile; namespace extensions { class Extension; diff --git a/chrome/browser/ui/views/apps/native_app_window_views.cc b/chrome/browser/ui/views/apps/native_app_window_views.cc index 6adc3a6..0d90452 100644 --- a/chrome/browser/ui/views/apps/native_app_window_views.cc +++ b/chrome/browser/ui/views/apps/native_app_window_views.cc @@ -266,11 +266,12 @@ void NativeAppWindowViews::Init( } else { InitializeDefaultWindow(create_params); } - extension_keybinding_registry_.reset(new ExtensionKeybindingRegistryViews( - Profile::FromBrowserContext(browser_context()), - window_->GetFocusManager(), - extensions::ExtensionKeybindingRegistry::PLATFORM_APPS_ONLY, - shell_window_)); + extension_keybinding_registry_.reset( + new ExtensionKeybindingRegistryViews( + profile(), + window_->GetFocusManager(), + extensions::ExtensionKeybindingRegistry::PLATFORM_APPS_ONLY, + shell_window_)); OnViewWasResized(); window_->AddObserver(this); @@ -361,15 +362,11 @@ void NativeAppWindowViews::InitializeDefaultWindow( #if defined(OS_WIN) base::string16 app_name_wide = base::UTF8ToWide(app_name); HWND hwnd = GetNativeAppWindowHWND(); - ui::win::SetAppIdForWindow( - ShellIntegration::GetAppModelIdForProfile( - app_name_wide, - Profile::FromBrowserContext(browser_context())->GetPath()), - hwnd); + ui::win::SetAppIdForWindow(ShellIntegration::GetAppModelIdForProfile( + app_name_wide, profile()->GetPath()), hwnd); web_app::UpdateShortcutInfoAndIconForApp( - *extension(), - Profile::FromBrowserContext(browser_context()), + *extension(), profile(), base::Bind(&NativeAppWindowViews::OnShortcutInfoLoaded, weak_ptr_factory_.GetWeakPtr())); #endif diff --git a/chrome/browser/ui/views/apps/native_app_window_views.h b/chrome/browser/ui/views/apps/native_app_window_views.h index 4bd3fb6..9934fa0 100644 --- a/chrome/browser/ui/views/apps/native_app_window_views.h +++ b/chrome/browser/ui/views/apps/native_app_window_views.h @@ -29,13 +29,13 @@ class ImmersiveFullscreenController; #endif class ExtensionKeybindingRegistryViews; +class Profile; namespace apps { class ShellWindowFrameView; } namespace content { -class BrowserContext; class RenderViewHost; class WebContents; } @@ -76,10 +76,7 @@ class NativeAppWindowViews : public apps::NativeAppWindow, virtual void Show() OVERRIDE; virtual void Activate() OVERRIDE; - content::BrowserContext* browser_context() { - return shell_window_->browser_context(); - } - + Profile* profile() { return shell_window_->profile(); } const extensions::Extension* extension() { return shell_window_->extension(); } diff --git a/chrome/browser/ui/views/apps/native_app_window_views_win.cc b/chrome/browser/ui/views/apps/native_app_window_views_win.cc index 21b7fbb..5bdf999 100644 --- a/chrome/browser/ui/views/apps/native_app_window_views_win.cc +++ b/chrome/browser/ui/views/apps/native_app_window_views_win.cc @@ -10,6 +10,7 @@ #include "chrome/browser/apps/per_app_settings_service.h" #include "chrome/browser/apps/per_app_settings_service_factory.h" #include "chrome/browser/metro_utils/metro_chrome_win.h" +#include "chrome/browser/profiles/profile.h" #include "extensions/common/extension.h" #include "ui/aura/remote_root_window_host_win.h" #include "ui/views/widget/desktop_aura/desktop_native_widget_aura.h" @@ -39,15 +40,15 @@ void NativeAppWindowViewsWin::OnBeforeWidgetInit( // If an app has any existing windows, ensure new ones are created on the // same desktop. apps::ShellWindow* any_existing_window = - apps::ShellWindowRegistry::Get(browser_context()) - ->GetCurrentShellWindowForApp(extension()->id()); + apps::ShellWindowRegistry::Get(profile())-> + GetCurrentShellWindowForApp(extension()->id()); chrome::HostDesktopType desktop_type; if (any_existing_window) { desktop_type = chrome::GetHostDesktopTypeForNativeWindow( any_existing_window->GetNativeWindow()); } else { PerAppSettingsService* settings = - PerAppSettingsServiceFactory::GetForBrowserContext(browser_context()); + PerAppSettingsServiceFactory::GetForBrowserContext(profile()); if (settings->HasDesktopLastLaunchedFrom(extension()->id())) { desktop_type = settings->GetDesktopLastLaunchedFrom(extension()->id()); } else { diff --git a/extensions/browser/extensions_browser_client.h b/extensions/browser/extensions_browser_client.h index 08ffa58..dc75e91 100644 --- a/extensions/browser/extensions_browser_client.h +++ b/extensions/browser/extensions_browser_client.h @@ -69,9 +69,6 @@ class ExtensionsBrowserClient { virtual content::BrowserContext* GetOriginalContext( content::BrowserContext* context) = 0; - // Returns true if |context| corresponds to a guest session. - virtual bool IsGuestSession(content::BrowserContext* context) = 0; - // Returns true if |extension_id| can run in an incognito window. virtual bool IsExtensionIncognitoEnabled( const std::string& extension_id, |