Index: chrome/renderer/chrome_render_frame_observer.cc |
diff --git a/chrome/renderer/chrome_render_frame_observer.cc b/chrome/renderer/chrome_render_frame_observer.cc |
index 8bef962e19cb3ac95ed267fdaf787198296c19f8..6f71da98b5d9fbd79ad933b15c6c5ddf2c62cd8c 100644 |
--- a/chrome/renderer/chrome_render_frame_observer.cc |
+++ b/chrome/renderer/chrome_render_frame_observer.cc |
@@ -373,8 +373,8 @@ void ChromeRenderFrameObserver::DidFinishLoad() { |
search_provider::AUTODETECTED_PROVIDER)); |
} |
- // Don't capture pages including refresh meta tag. |
- if (HasRefreshMetaTag(frame)) |
+ // Don't capture pages that have pending redirect or location change. |
+ if (frame->isNavigationScheduled()) |
return; |
page_info_.CapturePageInfoLater( |
@@ -403,8 +403,9 @@ void ChromeRenderFrameObserver::DidCommitProvisionalLoad( |
if (frame->parent()) |
return; |
- // Don't capture pages being not new, or including refresh meta tag. |
- if (!is_new_navigation || HasRefreshMetaTag(frame)) |
+ // Don't capture pages being not new, with pending redirect, or location |
+ // change. |
+ if (!is_new_navigation || frame->isNavigationScheduled()) |
return; |
base::debug::SetCrashKeyValue( |
@@ -416,33 +417,6 @@ void ChromeRenderFrameObserver::DidCommitProvisionalLoad( |
base::TimeDelta::FromMilliseconds(kDelayForForcedCaptureMs)); |
} |
-bool ChromeRenderFrameObserver::HasRefreshMetaTag(WebLocalFrame* frame) { |
- if (!frame) |
- return false; |
- WebElement head = frame->document().head(); |
- if (head.isNull() || !head.hasChildNodes()) |
- return false; |
- |
- const WebString tag_name(base::ASCIIToUTF16("meta")); |
- const WebString attribute_name(base::ASCIIToUTF16("http-equiv")); |
- |
- WebNodeList children = head.childNodes(); |
- for (size_t i = 0; i < children.length(); ++i) { |
- WebNode node = children.item(i); |
- if (!node.isElementNode()) |
- continue; |
- WebElement element = node.to<WebElement>(); |
- if (!element.hasHTMLTagName(tag_name)) |
- continue; |
- WebString value = element.getAttribute(attribute_name); |
- if (value.isNull() || |
- !base::LowerCaseEqualsASCII(base::StringPiece16(value), "refresh")) |
- continue; |
- return true; |
- } |
- return false; |
-} |
- |
void ChromeRenderFrameObserver::PageCaptured(base::string16* content, |
CaptureType capture_type) { |
if (translate_helper_) |