Chromium Code Reviews| Index: chrome/browser/extensions/extension_ui_util.cc |
| diff --git a/chrome/browser/extensions/extension_ui_util.cc b/chrome/browser/extensions/extension_ui_util.cc |
| index 4cf4fa89775566d31d8bf15def03738d868f8219..74a46227e98060b14e2927548d84ff9737fa7650 100644 |
| --- a/chrome/browser/extensions/extension_ui_util.cc |
| +++ b/chrome/browser/extensions/extension_ui_util.cc |
| @@ -7,7 +7,9 @@ |
| #include "base/prefs/pref_service.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/common/extensions/extension_constants.h" |
| +#include "chrome/common/extensions/manifest_handlers/app_launch_info.h" |
| #include "chrome/common/pref_names.h" |
| +#include "content/public/browser/web_contents.h" |
| #include "extensions/browser/extension_util.h" |
| #include "extensions/common/constants.h" |
| #include "extensions/common/extension.h" |
| @@ -25,6 +27,13 @@ bool IsBlockedByPolicy(const Extension* app, content::BrowserContext* context) { |
| profile->GetPrefs()->GetBoolean(prefs::kHideWebStoreIcon); |
| } |
| +bool IsSameOriginOrMoreSecure(const GURL& app_url, const GURL& page_url) { |
| + return (app_url.scheme() == page_url.scheme() || |
| + page_url.scheme() == url::kHttpsScheme) && |
| + app_url.host() == page_url.host() && |
| + app_url.port() == page_url.port(); |
| +} |
| + |
| } // namespace |
| namespace ui_util { |
| @@ -60,5 +69,22 @@ bool ShouldNotBeVisible(const Extension* extension, |
| util::IsEphemeralApp(extension->id(), context); |
| } |
| +bool ShouldShowLocationBar(const Extension* extension, |
| + const content::WebContents* web_contents) { |
| + // Default to not showing the location bar if either |extension| or |
| + // |web_contents| are null. |extension| is null for the dev tools. |
| + if (!extension || !web_contents) |
| + return false; |
| + |
| + GURL launch_url = AppLaunchInfo::GetLaunchWebURL(extension); |
|
felt
2015/03/18 14:42:03
Since launch_url isn't being used until after this
benwells
2015/03/19 01:23:43
Done.
|
| + if (!extension->from_bookmark()) |
| + return false; |
| + |
| + return !(IsSameOriginOrMoreSecure(launch_url, |
| + web_contents->GetVisibleURL()) && |
| + IsSameOriginOrMoreSecure(launch_url, |
| + web_contents->GetLastCommittedURL())); |
| +} |
| + |
| } // namespace ui_util |
| } // namespace extensions |