Index: athena/content/web_activity.cc |
diff --git a/athena/content/web_activity.cc b/athena/content/web_activity.cc |
index 2aae6e86b5f5a80e419906a4af7878e450a88aa1..d6801b84a6139ea7f50501dd054c239645074a60 100644 |
--- a/athena/content/web_activity.cc |
+++ b/athena/content/web_activity.cc |
@@ -6,6 +6,7 @@ |
#include "athena/activity/public/activity_factory.h" |
#include "athena/activity/public/activity_manager.h" |
+#include "athena/activity/public/activity_view.h" |
#include "athena/content/content_proxy.h" |
#include "athena/content/media_utils.h" |
#include "athena/content/public/dialogs.h" |
@@ -441,6 +442,7 @@ WebActivity::WebActivity(content::BrowserContext* browser_context, |
title_(title), |
title_color_(kDefaultTitleColor), |
current_state_(ACTIVITY_UNLOADED), |
+ activity_view_(nullptr), |
weak_ptr_factory_(this) { |
// Order is important. The web activity helpers must be attached prior to the |
// RenderView being created. |
@@ -453,6 +455,7 @@ WebActivity::WebActivity(content::WebContents* contents) |
web_view_(new AthenaWebView(contents, this)), |
title_color_(kDefaultTitleColor), |
current_state_(ACTIVITY_UNLOADED), |
+ activity_view_(nullptr), |
weak_ptr_factory_(this) { |
// If the activity was created as a result of |
// WebContentsDelegate::AddNewContents(), web activity helpers may not be |
@@ -557,6 +560,11 @@ gfx::ImageSkia WebActivity::GetIcon() const { |
return icon_; |
} |
+void WebActivity::SetActivityView(ActivityView* view) { |
+ DCHECK(!activity_view_); |
+ activity_view_ = view; |
+} |
+ |
bool WebActivity::UsesFrame() const { |
return true; |
} |
@@ -589,7 +597,8 @@ void WebActivity::ResetContentsView() { |
void WebActivity::TitleWasSet(content::NavigationEntry* entry, |
bool explicit_set) { |
- ActivityManager::Get()->UpdateActivity(this); |
+ if (activity_view_) |
+ activity_view_->UpdateTitle(); |
} |
void WebActivity::DidNavigateMainFrame( |
@@ -599,7 +608,8 @@ void WebActivity::DidNavigateMainFrame( |
weak_ptr_factory_.InvalidateWeakPtrs(); |
icon_ = gfx::ImageSkia(); |
- ActivityManager::Get()->UpdateActivity(this); |
+ if (activity_view_) |
+ activity_view_->UpdateIcon(); |
} |
void WebActivity::DidUpdateFaviconURL( |
@@ -629,12 +639,14 @@ void WebActivity::OnDidDownloadFavicon( |
const std::vector<gfx::Size>& original_bitmap_sizes) { |
icon_ = CreateFaviconImageSkia( |
bitmaps, original_bitmap_sizes, kIconSize, nullptr); |
- ActivityManager::Get()->UpdateActivity(this); |
+ if (activity_view_) |
+ activity_view_->UpdateIcon(); |
} |
void WebActivity::DidChangeThemeColor(SkColor theme_color) { |
title_color_ = theme_color; |
- ActivityManager::Get()->UpdateActivity(this); |
+ if (activity_view_) |
+ activity_view_->UpdateRepresentativeColor(); |
} |
void WebActivity::HideContentProxy() { |