Index: chrome/browser/banners/app_banner_manager.cc |
diff --git a/chrome/browser/banners/app_banner_manager.cc b/chrome/browser/banners/app_banner_manager.cc |
index fdbf80b17677caf4fe6eeca51a5d479730fdffaf..033b022772e92f5d6f3a15ce2df314c64dd0cfb0 100644 |
--- a/chrome/browser/banners/app_banner_manager.cc |
+++ b/chrome/browser/banners/app_banner_manager.cc |
@@ -41,21 +41,8 @@ AppBannerManager::~AppBannerManager() { |
void AppBannerManager::DidFinishLoad( |
content::RenderFrameHost* render_frame_host, |
const GURL& validated_url) { |
- if (render_frame_host->GetParent()) |
- return; |
- |
- if (data_fetcher_.get() && data_fetcher_->is_active() && |
- URLsAreForTheSamePage(data_fetcher_->validated_url(), validated_url)) { |
+ if (!ValidateFrameHostAndOrigin(render_frame_host, validated_url)) |
return; |
- } |
- |
- // A secure origin is required to show banners, so exit early if we see the |
- // URL is invalid. |
- if (!content::IsOriginSecure(validated_url) && |
- !gDisableSecureCheckForTesting) { |
- OutputDeveloperNotShownMessage(web_contents(), kNotServedFromSecureOrigin); |
- return; |
- } |
// Kick off the data retrieval pipeline. |
data_fetcher_ = CreateAppBannerDataFetcher(weak_factory_.GetWeakPtr(), |
@@ -70,6 +57,27 @@ bool AppBannerManager::HandleNonWebApp(const std::string& platform, |
return false; |
} |
+bool AppBannerManager::ValidateFrameHostAndOrigin( |
+ content::RenderFrameHost* render_frame_host, |
+ const GURL& validated_url) { |
+ if (render_frame_host->GetParent()) |
+ return false; |
+ |
+ if (data_fetcher_.get() && data_fetcher_->is_active() && |
+ URLsAreForTheSamePage(data_fetcher_->validated_url(), validated_url)) { |
+ return false; |
+ } |
+ |
+ // A secure origin is required to show banners, so exit early if we see the |
+ // URL is invalid. |
+ if (!content::IsOriginSecure(validated_url) && |
+ !gDisableSecureCheckForTesting) { |
+ OutputDeveloperNotShownMessage(web_contents(), kNotServedFromSecureOrigin); |
+ return false; |
+ } |
+ return true; |
+} |
+ |
void AppBannerManager::ReplaceWebContents(content::WebContents* web_contents) { |
Observe(web_contents); |
if (data_fetcher_.get()) |