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

Unified Diff: content/browser/loader/navigation_resource_throttle.cc

Issue 1617043002: Introduce AncestorThrottle, which will process 'X-Frame-Options' headers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@block-response
Patch Set: DCHECK. Created 4 years, 7 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/loader/navigation_resource_throttle.cc
diff --git a/content/browser/loader/navigation_resource_throttle.cc b/content/browser/loader/navigation_resource_throttle.cc
index 9112f7e8d8919dba6030a0eeae48843563e48c21..cc69069a9d7e41d206a0e2811925188bfd3ac8f9 100644
--- a/content/browser/loader/navigation_resource_throttle.cc
+++ b/content/browser/loader/navigation_resource_throttle.cc
@@ -235,6 +235,16 @@ void NavigationResourceThrottle::OnUIChecksPerformed(
controller()->CancelAndIgnore();
} else if (result == NavigationThrottle::CANCEL) {
controller()->Cancel();
+ } else if (result == NavigationThrottle::BLOCK_RESPONSE) {
+ // TODO(mkwst): If we cancel the main frame request with anything other than
+ // 'net::ERR_ABORTED', we'll trigger some special behavior that might not be
+ // desirable here (non-POSTs will reload the page, while POST has some logic
+ // around reloading to avoid duplicating actions server-side). For the
+ // moment, only child frame navigations should be blocked. If we need to
+ // block main frame navigations in the future, we'll need to carefully
+ // consider the right thing to do here.
+ DCHECK(!ResourceRequestInfo::ForRequest(request_)->IsMainFrame());
+ controller()->CancelWithError(net::ERR_BLOCKED_BY_RESPONSE);
} else {
controller()->Resume();
}

Powered by Google App Engine
This is Rietveld 408576698