Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4697)

Unified Diff: chrome/browser/extensions/api/web_navigation/frame_navigation_state.cc

Issue 11791018: When an iframe displays its srcdoc, generate navigation events for about:srcdoc (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/web_navigation/frame_navigation_state.cc
diff --git a/chrome/browser/extensions/api/web_navigation/frame_navigation_state.cc b/chrome/browser/extensions/api/web_navigation/frame_navigation_state.cc
index 05df57ddd888d8639a0ed599292e2de9138301f6..d26536ee230414aa6d693ab60e2de011a1e7fb36 100644
--- a/chrome/browser/extensions/api/web_navigation/frame_navigation_state.cc
+++ b/chrome/browser/extensions/api/web_navigation/frame_navigation_state.cc
@@ -55,6 +55,8 @@ bool FrameNavigationState::FrameID::operator!=(
return !(*this == other);
}
+FrameNavigationState::FrameState::FrameState() {}
+
// static
bool FrameNavigationState::allow_extension_scheme_ = false;
@@ -77,9 +79,11 @@ bool FrameNavigationState::IsValidUrl(const GURL& url) const {
if (url.scheme() == kValidSchemes[i])
return true;
}
- // Allow about:blank.
- if (url.spec() == chrome::kAboutBlankURL)
+ // Allow about:blank and about:srcdoc.
+ if (url.spec() == chrome::kAboutBlankURL ||
+ url.spec() == chrome::kAboutSrcDocURL) {
return true;
+ }
if (allow_extension_scheme_ && url.scheme() == extensions::kExtensionScheme)
return true;
return false;
@@ -89,11 +93,14 @@ void FrameNavigationState::TrackFrame(FrameID frame_id,
FrameID parent_frame_id,
const GURL& url,
bool is_main_frame,
- bool is_error_page) {
+ bool is_error_page,
+ bool is_iframe_srcdoc) {
FrameState& frame_state = frame_state_map_[frame_id];
frame_state.error_occurred = is_error_page;
frame_state.url = url;
frame_state.is_main_frame = is_main_frame;
+ frame_state.is_iframe_srcdoc = is_iframe_srcdoc;
+ DCHECK(!is_iframe_srcdoc || url == GURL(chrome::kAboutBlankURL));
frame_state.is_navigating = true;
frame_state.is_committed = false;
frame_state.is_server_redirected = false;
@@ -146,6 +153,8 @@ GURL FrameNavigationState::GetUrl(FrameID frame_id) const {
NOTREACHED();
return GURL();
}
+ if (frame_state->second.is_iframe_srcdoc)
+ return GURL(chrome::kAboutSrcDocURL);
return frame_state->second.url;
}

Powered by Google App Engine
This is Rietveld 408576698