diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-19 18:06:39 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-19 18:06:39 +0000 |
commit | 7c1913843901b5fd273c82ae33a126f4f648fb4e (patch) | |
tree | 0321feec2d4443327320f00cf587e09832a77344 | |
parent | 960b0378ebc8c18bfa13f8c24bb1070d641ba74b (diff) | |
download | chromium_src-7c1913843901b5fd273c82ae33a126f4f648fb4e.zip chromium_src-7c1913843901b5fd273c82ae33a126f4f648fb4e.tar.gz chromium_src-7c1913843901b5fd273c82ae33a126f4f648fb4e.tar.bz2 |
Adds ViewsDelegate::GetContextFactory
This is needed to provide a ContextFactory to the Compositor so that
we can create Compositors on multiple threads.
BUG=none
TEST=none
R=ben@chromium.org
Review URL: https://codereview.chromium.org/284233009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271422 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/ui/views/chrome_views_delegate.cc | 7 | ||||
-rw-r--r-- | chrome/browser/ui/views/chrome_views_delegate.h | 3 | ||||
-rw-r--r-- | ui/views/test/test_views_delegate.cc | 12 | ||||
-rw-r--r-- | ui/views/test/test_views_delegate.h | 13 | ||||
-rw-r--r-- | ui/views/views_delegate.cc | 6 | ||||
-rw-r--r-- | ui/views/views_delegate.h | 9 |
6 files changed, 49 insertions, 1 deletions
diff --git a/chrome/browser/ui/views/chrome_views_delegate.cc b/chrome/browser/ui/views/chrome_views_delegate.cc index 3626587..21dae89 100644 --- a/chrome/browser/ui/views/chrome_views_delegate.cc +++ b/chrome/browser/ui/views/chrome_views_delegate.cc @@ -33,6 +33,7 @@ #endif #if defined(USE_AURA) +#include "content/public/browser/context_factory.h" #include "ui/aura/window.h" #include "ui/aura/window_event_dispatcher.h" #endif @@ -371,6 +372,12 @@ bool ChromeViewsDelegate::WindowManagerProvidesTitleBar(bool maximized) { } #endif +#if defined(USE_AURA) +ui::ContextFactory* ChromeViewsDelegate::GetContextFactory() { + return content::GetContextFactory(); +} +#endif + #if defined(OS_WIN) int ChromeViewsDelegate::GetAppbarAutohideEdges(HMONITOR monitor, const base::Closure& callback) { diff --git a/chrome/browser/ui/views/chrome_views_delegate.h b/chrome/browser/ui/views/chrome_views_delegate.h index 62a77b0..4ff83d5 100644 --- a/chrome/browser/ui/views/chrome_views_delegate.h +++ b/chrome/browser/ui/views/chrome_views_delegate.h @@ -51,6 +51,9 @@ class ChromeViewsDelegate : public views::ViewsDelegate { #if defined(OS_LINUX) && !defined(OS_CHROMEOS) virtual bool WindowManagerProvidesTitleBar(bool maximized) OVERRIDE; #endif +#if defined(USE_AURA) + virtual ui::ContextFactory* GetContextFactory() OVERRIDE; +#endif #if defined(OS_WIN) virtual int GetAppbarAutohideEdges(HMONITOR monitor, const base::Closure& callback) OVERRIDE; diff --git a/ui/views/test/test_views_delegate.cc b/ui/views/test/test_views_delegate.cc index 0d437ea..7a4b78d 100644 --- a/ui/views/test/test_views_delegate.cc +++ b/ui/views/test/test_views_delegate.cc @@ -15,7 +15,11 @@ namespace views { TestViewsDelegate::TestViewsDelegate() : use_desktop_native_widgets_(false), - use_transparent_windows_(false) { + use_transparent_windows_(false) +#if defined(USE_AURA) + , context_factory_(NULL) +#endif + { DCHECK(!ViewsDelegate::views_delegate); ViewsDelegate::views_delegate = this; #if defined(USE_AURA) @@ -42,4 +46,10 @@ void TestViewsDelegate::OnBeforeWidgetInit( #endif // !defined(OS_CHROMEOS) } +#if defined(USE_AURA) +ui::ContextFactory* TestViewsDelegate::GetContextFactory() { + return context_factory_; +} +#endif + } // namespace views diff --git a/ui/views/test/test_views_delegate.h b/ui/views/test/test_views_delegate.h index 5d80e08..384d7ac 100644 --- a/ui/views/test/test_views_delegate.h +++ b/ui/views/test/test_views_delegate.h @@ -30,16 +30,29 @@ class TestViewsDelegate : public ViewsDelegate { use_transparent_windows_ = transparent; } +#if defined(USE_AURA) + void set_context_factory(ui::ContextFactory* context_factory) { + context_factory_ = context_factory; + } +#endif + // ViewsDelegate: virtual void OnBeforeWidgetInit( Widget::InitParams* params, internal::NativeWidgetDelegate* delegate) OVERRIDE; +#if defined(USE_AURA) + virtual ui::ContextFactory* GetContextFactory() OVERRIDE; +#endif private: bool use_desktop_native_widgets_; + bool use_transparent_windows_; + #if defined(USE_AURA) scoped_ptr<wm::WMState> wm_state_; + + ui::ContextFactory* context_factory_; #endif DISALLOW_COPY_AND_ASSIGN(TestViewsDelegate); diff --git a/ui/views/views_delegate.cc b/ui/views/views_delegate.cc index bef6cdc..c1c7ca6 100644 --- a/ui/views/views_delegate.cc +++ b/ui/views/views_delegate.cc @@ -81,6 +81,12 @@ bool ViewsDelegate::WindowManagerProvidesTitleBar(bool maximized) { return false; } +#if defined(USE_AURA) +ui::ContextFactory* ViewsDelegate::GetContextFactory() { + return NULL; +} +#endif + #if defined(OS_WIN) int ViewsDelegate::GetAppbarAutohideEdges(HMONITOR monitor, const base::Closure& callback) { diff --git a/ui/views/views_delegate.h b/ui/views/views_delegate.h index 8be8a0d..0175c8b 100644 --- a/ui/views/views_delegate.h +++ b/ui/views/views_delegate.h @@ -33,6 +33,10 @@ class ImageSkia; class Rect; } +namespace ui { +class ContextFactory; +} + namespace views { class NativeWidget; @@ -126,6 +130,11 @@ class VIEWS_EXPORT ViewsDelegate { // maximized windows; otherwise to restored windows. virtual bool WindowManagerProvidesTitleBar(bool maximized); +#if defined(USE_AURA) + // Returns the context factory for new windows. + virtual ui::ContextFactory* GetContextFactory(); +#endif + #if defined(OS_WIN) // Starts a query for the appbar autohide edges of the specified monitor and // returns the current value. If the query finds the edges have changed from |