diff options
Diffstat (limited to 'chrome/browser/ui/browser_navigator.cc')
-rw-r--r-- | chrome/browser/ui/browser_navigator.cc | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc index 6049b93..efaadee 100644 --- a/chrome/browser/ui/browser_navigator.cc +++ b/chrome/browser/ui/browser_navigator.cc @@ -132,11 +132,14 @@ Browser* GetBrowserForDisposition(chrome::NavigateParams* params) { params->extension_app_id); } else if (!params->browser->app_name().empty()) { app_name = params->browser->app_name(); - } else if (params->source_contents && - params->source_contents->extension_tab_helper()->is_app()) { - app_name = web_app::GenerateApplicationNameFromExtensionId( - params->source_contents->extension_tab_helper()-> - extension_app()->id()); + } else if (params->source_contents) { + extensions::TabHelper* extensions_tab_helper = + extensions::TabHelper::FromWebContents( + params->source_contents->web_contents()); + if (extensions_tab_helper->is_app()) { + app_name = web_app::GenerateApplicationNameFromExtensionId( + extensions_tab_helper->extension_app()->id()); + } } if (app_name.empty()) { Browser::CreateParams browser_params(Browser::TYPE_POPUP, profile); @@ -494,8 +497,9 @@ void Navigate(NavigateParams* params) { // This function takes ownership of |params->target_contents| until it // is added to a TabStripModel. target_contents_owner.TakeOwnership(); - params->target_contents->extension_tab_helper()-> - SetExtensionAppById(params->extension_app_id); + extensions::TabHelper::FromWebContents( + params->target_contents->web_contents())-> + SetExtensionAppById(params->extension_app_id); // TODO(sky): figure out why this is needed. Without it we seem to get // failures in startup tests. // By default, content believes it is not hidden. When adding contents |