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

Unified Diff: content/browser/frame_host/navigation_controller_impl.cc

Issue 304313003: Allow view-source of pages fully-blocked by Blink's XSS filter. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add Unit Test. Created 6 years, 6 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: content/browser/frame_host/navigation_controller_impl.cc
diff --git a/content/browser/frame_host/navigation_controller_impl.cc b/content/browser/frame_host/navigation_controller_impl.cc
index 6d1c597d7604629df1b636ed8947c099fbc40c5c..cda5a721bab4baf1259ddf39a64a7b791d19b794 100644
--- a/content/browser/frame_host/navigation_controller_impl.cc
+++ b/content/browser/frame_host/navigation_controller_impl.cc
@@ -769,12 +769,14 @@ bool NavigationControllerImpl::RendererDidNavigate(
details->is_in_page = IsURLInPageNavigation(
params.url, params.was_within_same_page, details->type);
+ bool clear_blocked_page_entry = true;
switch (details->type) {
case NAVIGATION_TYPE_NEW_PAGE:
RendererDidNavigateToNewPage(rfh, params, details->did_replace_entry);
break;
case NAVIGATION_TYPE_EXISTING_PAGE:
RendererDidNavigateToExistingPage(rfh, params);
+ clear_blocked_page_entry = false;
break;
case NAVIGATION_TYPE_SAME_PAGE:
RendererDidNavigateToSamePage(rfh, params);
@@ -803,6 +805,9 @@ bool NavigationControllerImpl::RendererDidNavigate(
NOTREACHED();
}
+ if (clear_blocked_page_entry)
+ blocked_page_entry_.reset(NULL);
+
// At this point, we know that the navigation has just completed, so
// record the time.
//
@@ -1755,6 +1760,15 @@ void NavigationControllerImpl::SetTransientEntry(NavigationEntry* entry) {
delegate_->NotifyNavigationStateChanged(kInvalidateAll);
}
+NavigationEntry* NavigationControllerImpl::GetBlockedPageEntry() const {
+ return blocked_page_entry_.get();
+}
+
+void NavigationControllerImpl::SetBlockedPageEntry(NavigationEntry* entry) {
+ NavigationEntry* copy = NavigationEntry::Create(*entry);
+ blocked_page_entry_.reset(static_cast<NavigationEntryImpl*>(copy));
+}
+
void NavigationControllerImpl::InsertEntriesFrom(
const NavigationControllerImpl& source,
int max_index) {

Powered by Google App Engine
This is Rietveld 408576698