Index: chrome/browser/ui/browser.cc |
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc |
index 91ee18e9f04e1babaa061f2cfb16efaf2f9338ca..78654b248970059e57fe1e7597ed27f4876aa5e9 100644 |
--- a/chrome/browser/ui/browser.cc |
+++ b/chrome/browser/ui/browser.cc |
@@ -133,6 +133,7 @@ |
#include "chrome/browser/ui/tabs/tab_strip_model.h" |
#include "chrome/browser/ui/toolbar/toolbar_model_impl.h" |
#include "chrome/browser/ui/unload_controller.h" |
+#include "chrome/browser/ui/web_applications/hosted_app_tab_helper.h" |
#include "chrome/browser/ui/web_applications/web_app_ui.h" |
#include "chrome/browser/ui/webui/signin/login_ui_service.h" |
#include "chrome/browser/ui/webui/signin/login_ui_service_factory.h" |
@@ -523,13 +524,20 @@ bool Browser::is_devtools() const { |
/////////////////////////////////////////////////////////////////////////////// |
// Browser, State Storage and Retrieval for UI: |
-gfx::Image Browser::GetCurrentPageIcon() const { |
+const gfx::Image Browser::GetCurrentPageIcon(int icon_size) const { |
WebContents* web_contents = tab_strip_model_->GetActiveWebContents(); |
// |web_contents| can be NULL since GetCurrentPageIcon() is called by the |
// window during the window's creation (before tabs have been added). |
- FaviconTabHelper* favicon_tab_helper = |
- web_contents ? FaviconTabHelper::FromWebContents(web_contents) : NULL; |
- return favicon_tab_helper ? favicon_tab_helper->GetFavicon() : gfx::Image(); |
+ HostedAppTabHelper* hosted_app_tab_helper = |
+ web_contents ? HostedAppTabHelper::FromWebContents(web_contents) |
+ : NULL; |
+ if (hosted_app_tab_helper) { |
+ const gfx::Image* icon = |
+ hosted_app_tab_helper->icon_family().GetBest(icon_size, icon_size); |
+ if (icon) |
+ return *icon; |
+ } |
+ return gfx::Image(); |
} |
string16 Browser::GetWindowTitleForCurrentTab() const { |
@@ -1741,6 +1749,13 @@ void Browser::URLStarredChanged(content::WebContents* web_contents, |
} |
/////////////////////////////////////////////////////////////////////////////// |
+// Browser, HostedAppTabHelperDelegate implementation: |
+ |
+void Browser::OnWindowIconLoaded(content::WebContents* source) { |
+ LoadingStateChanged(source); |
tapted
2013/11/11 08:52:57
This doesn't feel right. WebContentsImpl only call
calamity
2013/11/13 06:37:14
Yes, updating the loading animation and title bar
|
+} |
+ |
+/////////////////////////////////////////////////////////////////////////////// |
// Browser, ZoomObserver implementation: |
void Browser::OnZoomChanged(content::WebContents* source, |
@@ -2079,6 +2094,13 @@ void Browser::SetAsDelegate(WebContents* web_contents, Browser* delegate) { |
TranslateTabHelper::FromWebContents(web_contents); |
translate_tab_helper->language_state().set_observer( |
delegate ? delegate->language_state_observer_.get() : NULL); |
+ HostedAppTabHelper* hosted_app_tab_helper = |
tapted
2013/11/11 08:52:57
Is there an overhead to consider for this?
E.g. w
calamity
2013/11/13 06:37:14
I don't think so. Any overhead would be in creatin
tapted
2013/11/13 07:44:53
Yeah - that's what I meant (sorry - should have co
|
+ HostedAppTabHelper::FromWebContents(web_contents); |
+ hosted_app_tab_helper->set_delegate(delegate); |
tapted
2013/11/11 08:52:57
What about SetDelegate(delegate, is_app()) - that
benwells
2013/11/11 23:15:55
Why is this limited OS_WIN? This flag should work
calamity
2013/11/13 06:37:14
Done.
calamity
2013/11/13 06:37:14
This is for Window Icons which are only used on Wi
|
+#if defined(OS_WIN) |
+ // We need the window icon for hosted apps running as a window on Windows. |
+ hosted_app_tab_helper->set_fetch_icons_immediately(is_app()); |
+#endif |
} |
void Browser::CloseFrame() { |