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

Unified Diff: content/browser/webui/url_data_manager_backend.cc

Issue 2002633002: PlzNavigate: fix issue preventing navigations to WebUIs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Now checking when ready to commit 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/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,

Powered by Google App Engine
This is Rietveld 408576698