| 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..fe1915594e13afcbe74ebaa52b2bb6329f011f5a 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;
|
| +
|
| + if (!extension->from_bookmark())
|
| + return false;
|
| +
|
| + GURL launch_url = AppLaunchInfo::GetLaunchWebURL(extension);
|
| + return !(IsSameOriginOrMoreSecure(launch_url,
|
| + web_contents->GetVisibleURL()) &&
|
| + IsSameOriginOrMoreSecure(launch_url,
|
| + web_contents->GetLastCommittedURL()));
|
| +}
|
| +
|
| } // namespace ui_util
|
| } // namespace extensions
|
|
|