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, |