Chromium Code Reviews| Index: content/browser/webui/url_data_manager_backend.cc |
| diff --git a/content/browser/webui/url_data_manager_backend.cc b/content/browser/webui/url_data_manager_backend.cc |
| index fe1015f87e445c77ae396386df9182b94fc81cd0..97850687f5acf260e6fd1c9a2db83f6f55370335 100644 |
| --- a/content/browser/webui/url_data_manager_backend.cc |
| +++ b/content/browser/webui/url_data_manager_backend.cc |
| @@ -30,11 +30,13 @@ |
| #include "content/browser/resource_context_impl.h" |
| #include "content/browser/webui/shared_resources_data_source.h" |
| #include "content/browser/webui/url_data_source_impl.h" |
| +#include "content/browser/webui/web_ui_impl.h" |
| #include "content/public/browser/browser_context.h" |
| #include "content/public/browser/browser_thread.h" |
| #include "content/public/browser/content_browser_client.h" |
| #include "content/public/browser/render_process_host.h" |
| #include "content/public/browser/resource_request_info.h" |
| +#include "content/public/common/browser_side_navigation_policy.h" |
| #include "content/public/common/url_constants.h" |
| #include "net/base/io_buffer.h" |
| #include "net/base/net_errors.h" |
| @@ -272,7 +274,12 @@ void URLRequestChromeJob::Start() { |
| bool is_renderer_request = ResourceRequestInfo::GetRenderFrameForRequest( |
| request_, &render_process_id, &unused); |
| - if (!is_renderer_request) { |
| + const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request_); |
|
Charlie Reis
2016/05/25 21:38:02
Wasn't this null in your previous patch set during
|
| + |
| + if (!is_renderer_request || (IsBrowserSideNavigationEnabled() && |
| + IsResourceTypeFrame(info->GetResourceType()))) { |
| + // PlzNavigate: the check for navigations is performed by the |
| + // NavigationRequest. |
| StartAsync(true); |
| return; |
| } |
| @@ -415,13 +422,8 @@ void URLRequestChromeJob::CheckStoragePartitionMatches( |
| // being in the same process. We do an extra check to guard against an |
| // exploited renderer pretending to add them as a subframe. We skip this check |
| // for resources. |
| - bool allowed = false; |
| - RenderProcessHost* process = RenderProcessHost::FromID(render_process_id); |
| - if (process) { |
| - StoragePartition* partition = BrowserContext::GetStoragePartitionForSite( |
| - process->GetBrowserContext(), url); |
| - allowed = partition == process->GetStoragePartition(); |
| - } |
| + bool allowed = WebUIImpl::RenderProcessAllowedForURL( |
| + RenderProcessHost::FromID(render_process_id), url); |
| BrowserThread::PostTask( |
| BrowserThread::IO, |
| FROM_HERE, |