Chromium Code Reviews| Index: android_webview/browser/renderer_host/aw_resource_dispatcher_host_delegate.cc |
| diff --git a/android_webview/browser/renderer_host/aw_resource_dispatcher_host_delegate.cc b/android_webview/browser/renderer_host/aw_resource_dispatcher_host_delegate.cc |
| index b24eb2b56eac50e61bccdadb308a07a74515d6c0..328cecf30f5e2d69e86b84336118844603d64e20 100644 |
| --- a/android_webview/browser/renderer_host/aw_resource_dispatcher_host_delegate.cc |
| +++ b/android_webview/browser/renderer_host/aw_resource_dispatcher_host_delegate.cc |
| @@ -130,7 +130,22 @@ void AwResourceDispatcherHostDelegate::RequestBeginning( |
| throttles->push_back(new MaybeCancelResourceThrottle( |
| child_id, route_id, request)); |
| - if (resource_type == ResourceType::MAIN_FRAME) { |
| + bool allow_intercepting = |
| + // We ignore POST requests because of BUG=155250. |
|
John Knottenbelt
2012/11/19 14:09:03
Can you elaborate a little here why we ignore POST
|
| + request->method() != "POST" && |
| + // We allow intercepting navigations within subframes, but only if the |
| + // scheme other than http or https. This is because the embedder |
| + // can't distinguish main frame and subframe callbacks (which could lead |
| + // to broken content if the embedder decides to not ignore the main frame |
| + // navigation, but ignores the subframe navigation). |
| + // The reason this is supported at all is that certain JavaScript-based |
| + // frameworks use iframe navigation as a form of communication with the |
| + // embedder. |
|
joth
2012/11/20 20:08:02
is this a sane thing to support long term? if not,
|
| + (resource_type == ResourceType::MAIN_FRAME || |
| + (resource_type == ResourceType::SUB_FRAME && |
| + !request->url().SchemeIs(chrome::kHttpScheme) && |
| + !request->url().SchemeIs(chrome::kHttpsScheme))); |
|
joth
2012/11/20 20:08:02
nit: maybe easier to read as.
bool allow_intercep
|
| + if (allow_intercepting) { |
| throttles->push_back(InterceptNavigationDelegate::CreateThrottleFor( |
| request)); |
| } |