Index: android_webview/browser/net/aw_request_interceptor.cc |
diff --git a/android_webview/browser/net/aw_request_interceptor.cc b/android_webview/browser/net/aw_request_interceptor.cc |
index 3645f2fefe3321da95684c607d2c7f5868e6ed65..eb856432ae3a7cf4aecf63b8e3e080de7eb4fceb 100644 |
--- a/android_webview/browser/net/aw_request_interceptor.cc |
+++ b/android_webview/browser/net/aw_request_interceptor.cc |
@@ -18,6 +18,7 @@ |
#include "content/public/browser/resource_request_info.h" |
#include "net/http/http_response_headers.h" |
#include "net/url_request/url_request_job.h" |
+#include "url/url_constants.h" |
namespace android_webview { |
@@ -119,13 +120,22 @@ std::unique_ptr<AwContentsIoThreadClient> GetCorrespondingIoThreadClient( |
net::URLRequest* request) { |
if (content::ResourceRequestInfo::OriginatedFromServiceWorker(request)) |
return AwContentsIoThreadClient::GetServiceWorkerIoThreadClient(); |
- |
int render_process_id, render_frame_id; |
if (!content::ResourceRequestInfo::GetRenderFrameForRequest( |
request, &render_process_id, &render_frame_id)) { |
return nullptr; |
} |
+ if (render_process_id == -1 || render_frame_id == -1) { |
+ const content::ResourceRequestInfo* resourceRequestInfo = |
+ content::ResourceRequestInfo::ForRequest(request); |
+ if (resourceRequestInfo == nullptr) { |
+ return nullptr; |
+ } |
+ return AwContentsIoThreadClient::FromID( |
+ resourceRequestInfo->GetFrameTreeNodeId()); |
+ } |
+ |
return AwContentsIoThreadClient::FromID(render_process_id, render_frame_id); |
} |
@@ -144,6 +154,13 @@ net::URLRequestJob* AwRequestInterceptor::MaybeInterceptRequest( |
if (request->GetUserData(kRequestAlreadyHasJobDataKey)) |
return nullptr; |
+ // With PlzNavigate, we now seem to receive blob URLs in interceptor. |
+ // Ignore these URLs. |
+ // TODO(sgurun) is this the best place to do that? Talk with jam@. |
+ if (request->url().SchemeIs(url::kBlobScheme)) { |
+ return nullptr; |
+ } |
+ |
std::unique_ptr<AwContentsIoThreadClient> io_thread_client = |
GetCorrespondingIoThreadClient(request); |