summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSadrul Habib Chowdhury <sadrul@chromium.org>2014-11-03 18:56:09 -0500
committerSadrul Habib Chowdhury <sadrul@chromium.org>2014-11-03 23:57:00 +0000
commit03222bda6cf957c899b7b312d53d7af80a6bc167 (patch)
tree06806957f14465e7b69963bba543ee4ea7cd3e1e
parentf00bafe1a7f9a3047e1c2abb41d3b1350d45d8c2 (diff)
downloadchromium_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.cc8
-rw-r--r--athena/activity/public/activity_view_model.h4
-rw-r--r--athena/content/app_activity.cc35
-rw-r--r--athena/content/app_activity.h1
-rw-r--r--athena/content/app_activity_proxy.cc6
-rw-r--r--athena/content/app_activity_proxy.h1
-rw-r--r--athena/content/app_activity_unittest.cc3
-rw-r--r--athena/content/web_activity.cc7
-rw-r--r--athena/content/web_activity.h1
-rw-r--r--athena/test/base/sample_activity.cc4
-rw-r--r--athena/test/base/sample_activity.h1
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;