| 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())
|
|
|