diff options
author | Sadrul Habib Chowdhury <sadrul@chromium.org> | 2014-11-03 18:56:09 -0500 |
---|---|---|
committer | Sadrul Habib Chowdhury <sadrul@chromium.org> | 2014-11-03 23:57:00 +0000 |
commit | 03222bda6cf957c899b7b312d53d7af80a6bc167 (patch) | |
tree | 06806957f14465e7b69963bba543ee4ea7cd3e1e | |
parent | f00bafe1a7f9a3047e1c2abb41d3b1350d45d8c2 (diff) | |
download | chromium_src-03222bda6cf957c899b7b312d53d7af80a6bc167.zip chromium_src-03222bda6cf957c899b7b312d53d7af80a6bc167.tar.gz chromium_src-03222bda6cf957c899b7b312d53d7af80a6bc167.tar.bz2 |
athena: Remove ActivityViewModel::CreateWidget().
Use the existing views API (views::Widget::GetWidgetForNativeView()) to
get any existing views::Widget for an athena::Activity, instead of asking
its ActivityViewModel.
BUG=none
R=oshima@chromium.org
Review URL: https://codereview.chromium.org/702473005
Cr-Commit-Position: refs/heads/master@{#302523}
-rw-r--r-- | athena/activity/activity_manager_impl.cc | 8 | ||||
-rw-r--r-- | athena/activity/public/activity_view_model.h | 4 | ||||
-rw-r--r-- | athena/content/app_activity.cc | 35 | ||||
-rw-r--r-- | athena/content/app_activity.h | 1 | ||||
-rw-r--r-- | athena/content/app_activity_proxy.cc | 6 | ||||
-rw-r--r-- | athena/content/app_activity_proxy.h | 1 | ||||
-rw-r--r-- | athena/content/app_activity_unittest.cc | 3 | ||||
-rw-r--r-- | athena/content/web_activity.cc | 7 | ||||
-rw-r--r-- | athena/content/web_activity.h | 1 | ||||
-rw-r--r-- | athena/test/base/sample_activity.cc | 4 | ||||
-rw-r--r-- | athena/test/base/sample_activity.h | 1 |
11 files changed, 26 insertions, 45 deletions
diff --git a/athena/activity/activity_manager_impl.cc b/athena/activity/activity_manager_impl.cc index 71216df..f8590f6 100644 --- a/athena/activity/activity_manager_impl.cc +++ b/athena/activity/activity_manager_impl.cc @@ -21,13 +21,15 @@ namespace { ActivityManager* instance = nullptr; views::Widget* CreateWidget(Activity* activity) { - ActivityViewModel* view_model = activity->GetActivityViewModel(); - views::Widget* widget = view_model->CreateWidget(); + aura::Window* window = activity->GetWindow(); + views::Widget* widget = + window ? views::Widget::GetWidgetForNativeView(window) : nullptr; if (widget) return widget; widget = new views::Widget; views::Widget::InitParams params(views::Widget::InitParams::TYPE_WINDOW); - params.delegate = new ActivityWidgetDelegate(view_model); + params.delegate = + new ActivityWidgetDelegate(activity->GetActivityViewModel()); widget->Init(params); activity->GetActivityViewModel()->Init(); return widget; diff --git a/athena/activity/public/activity_view_model.h b/athena/activity/public/activity_view_model.h index 69b98f1..c22c863 100644 --- a/athena/activity/public/activity_view_model.h +++ b/athena/activity/public/activity_view_model.h @@ -50,10 +50,6 @@ class ATHENA_EXPORT ActivityViewModel { // be deleted by the resource manager. virtual views::View* GetContentsView() = 0; - // Creates a custom widget for the activity. Returns nullptr to use default - // implementation. - virtual views::Widget* CreateWidget() = 0; - // Returns an image which can be used to represent the activity in e.g. the // overview mode. The returned image can have no size if either a view exists // or the activity has not yet been loaded or ever been presented. In that diff --git a/athena/content/app_activity.cc b/athena/content/app_activity.cc index f5c2866..9824ca2b 100644 --- a/athena/content/app_activity.cc +++ b/athena/content/app_activity.cc @@ -93,7 +93,9 @@ Activity::ActivityMediaState AppActivity::GetMediaState() { } aura::Window* AppActivity::GetWindow() { - return !web_view_ ? nullptr : web_view_->GetWidget()->GetNativeWindow(); + return web_view_ && web_view_->GetWidget() + ? web_view_->GetWidget()->GetNativeWindow() + : nullptr; } content::WebContents* AppActivity::GetWebContents() { @@ -101,6 +103,10 @@ content::WebContents* AppActivity::GetWebContents() { } void AppActivity::Init() { + // Before we remove the proxy, we have to register the activity and + // initialize its to move it to the proper activity list location. + RegisterActivity(); + DCHECK(app_activity_registry_); Activity* app_proxy = app_activity_registry_->unloaded_activity_proxy(); if (app_proxy) { @@ -135,6 +141,16 @@ void AppActivity::Init() { // The proxy should now be deleted. DCHECK(!app_activity_registry_->unloaded_activity_proxy()); } + + // Make sure the content gets properly shown. + if (current_state_ == ACTIVITY_VISIBLE) { + HideContentProxy(); + } else if (current_state_ == ACTIVITY_INVISIBLE) { + ShowContentProxy(); + } else { + // If not previously specified, we change the state now to invisible.. + SetCurrentState(ACTIVITY_INVISIBLE); + } } SkColor AppActivity::GetRepresentativeColor() const { @@ -154,23 +170,6 @@ bool AppActivity::UsesFrame() const { return false; } -views::Widget* AppActivity::CreateWidget() { - // Before we remove the proxy, we have to register the activity and - // initialize its to move it to the proper activity list location. - RegisterActivity(); - Init(); - // Make sure the content gets properly shown. - if (current_state_ == ACTIVITY_VISIBLE) { - HideContentProxy(); - } else if (current_state_ == ACTIVITY_INVISIBLE) { - ShowContentProxy(); - } else { - // If not previously specified, we change the state now to invisible.. - SetCurrentState(ACTIVITY_INVISIBLE); - } - return web_view_->GetWidget(); -} - views::View* AppActivity::GetContentsView() { return web_view_; } diff --git a/athena/content/app_activity.h b/athena/content/app_activity.h index 4dfcc45..db90cfe 100644 --- a/athena/content/app_activity.h +++ b/athena/content/app_activity.h @@ -45,7 +45,6 @@ class AppActivity : public Activity, base::string16 GetTitle() const override; gfx::ImageSkia GetIcon() const override; bool UsesFrame() const override; - views::Widget* CreateWidget() override; views::View* GetContentsView() override; gfx::ImageSkia GetOverviewModeImage() override; void PrepareContentsForOverview() override; diff --git a/athena/content/app_activity_proxy.cc b/athena/content/app_activity_proxy.cc index c2d0e34..77953ce 100644 --- a/athena/content/app_activity_proxy.cc +++ b/athena/content/app_activity_proxy.cc @@ -52,7 +52,7 @@ Activity::ActivityMediaState AppActivityProxy::GetMediaState() { } aura::Window* AppActivityProxy::GetWindow() { - return view_->GetWidget()->GetNativeWindow(); + return view_->GetWidget() ? view_->GetWidget()->GetNativeWindow() : nullptr; } content::WebContents* AppActivityProxy::GetWebContents() { @@ -92,10 +92,6 @@ views::View* AppActivityProxy::GetContentsView() { return view_; } -views::Widget* AppActivityProxy::CreateWidget() { - return nullptr; -} - gfx::ImageSkia AppActivityProxy::GetOverviewModeImage() { return content_proxy_->GetContentImage(); } diff --git a/athena/content/app_activity_proxy.h b/athena/content/app_activity_proxy.h index 6586837..ebb43cb 100644 --- a/athena/content/app_activity_proxy.h +++ b/athena/content/app_activity_proxy.h @@ -45,7 +45,6 @@ class AppActivityProxy : public Activity, gfx::ImageSkia GetIcon() const override; bool UsesFrame() const override; views::View* GetContentsView() override; - views::Widget* CreateWidget() override; gfx::ImageSkia GetOverviewModeImage() override; void PrepareContentsForOverview() override; void ResetContentsView() override; diff --git a/athena/content/app_activity_unittest.cc b/athena/content/app_activity_unittest.cc index c5ee0be..266b940 100644 --- a/athena/content/app_activity_unittest.cc +++ b/athena/content/app_activity_unittest.cc @@ -61,7 +61,7 @@ class TestAppActivity : public AppActivity { return Activity::ACTIVITY_MEDIA_STATE_NONE; } aura::Window* GetWindow() override { - return view_->GetWidget()->GetNativeWindow(); + return view_->GetWidget() ? view_->GetWidget()->GetNativeWindow() : nullptr; } // ActivityViewModel: @@ -70,7 +70,6 @@ class TestAppActivity : public AppActivity { base::string16 GetTitle() const override { return title_; } bool UsesFrame() const override { return true; } views::View* GetContentsView() override { return view_; } - views::Widget* CreateWidget() override { return nullptr; } gfx::ImageSkia GetOverviewModeImage() override { return gfx::ImageSkia(); } private: diff --git a/athena/content/web_activity.cc b/athena/content/web_activity.cc index b29deef..2aae6e8 100644 --- a/athena/content/web_activity.cc +++ b/athena/content/web_activity.cc @@ -528,7 +528,8 @@ Activity::ActivityMediaState WebActivity::GetMediaState() { } aura::Window* WebActivity::GetWindow() { - return web_view_->GetWidget()->GetNativeWindow(); + return web_view_->GetWidget() ? web_view_->GetWidget()->GetNativeWindow() + : nullptr; } content::WebContents* WebActivity::GetWebContents() { @@ -564,10 +565,6 @@ views::View* WebActivity::GetContentsView() { return web_view_; } -views::Widget* WebActivity::CreateWidget() { - return nullptr; // Use default widget. -} - gfx::ImageSkia WebActivity::GetOverviewModeImage() { if (content_proxy_.get()) return content_proxy_->GetContentImage(); diff --git a/athena/content/web_activity.h b/athena/content/web_activity.h index 7a15d12..d3ee98d 100644 --- a/athena/content/web_activity.h +++ b/athena/content/web_activity.h @@ -64,7 +64,6 @@ class WebActivity : public Activity, gfx::ImageSkia GetIcon() const override; bool UsesFrame() const override; views::View* GetContentsView() override; - views::Widget* CreateWidget() override; gfx::ImageSkia GetOverviewModeImage() override; void PrepareContentsForOverview() override; void ResetContentsView() override; diff --git a/athena/test/base/sample_activity.cc b/athena/test/base/sample_activity.cc index fb90202..060fded 100644 --- a/athena/test/base/sample_activity.cc +++ b/athena/test/base/sample_activity.cc @@ -85,10 +85,6 @@ views::View* SampleActivity::GetContentsView() { return contents_view_; } -views::Widget* SampleActivity::CreateWidget() { - return nullptr; -} - gfx::ImageSkia SampleActivity::GetOverviewModeImage() { return gfx::ImageSkia(); } diff --git a/athena/test/base/sample_activity.h b/athena/test/base/sample_activity.h index 4b2b2eb..9776e28 100644 --- a/athena/test/base/sample_activity.h +++ b/athena/test/base/sample_activity.h @@ -42,7 +42,6 @@ class SampleActivity : public Activity, gfx::ImageSkia GetIcon() const override; bool UsesFrame() const override; views::View* GetContentsView() override; - views::Widget* CreateWidget() override; gfx::ImageSkia GetOverviewModeImage() override; void PrepareContentsForOverview() override; void ResetContentsView() override; |