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

Unified Diff: content/browser/child_process_security_policy_impl.cc

Issue 2332263002: Updated suborigin serialization to latest spec proposal (Closed)
Patch Set: Actually disable test Created 4 years, 3 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/child_process_security_policy_impl.cc
diff --git a/content/browser/child_process_security_policy_impl.cc b/content/browser/child_process_security_policy_impl.cc
index 60d7a7aed73f25731d5c5079c183ea8a0fdacd73..db3fb1b3a7d08a2bb529a5db43c0569830973605 100644
--- a/content/browser/child_process_security_policy_impl.cc
+++ b/content/browser/child_process_security_policy_impl.cc
@@ -333,6 +333,8 @@ ChildProcessSecurityPolicyImpl::ChildProcessSecurityPolicyImpl() {
RegisterPseudoScheme(url::kAboutScheme);
RegisterPseudoScheme(url::kJavaScriptScheme);
RegisterPseudoScheme(kViewSourceScheme);
+ RegisterPseudoScheme(kHttpSuboriginScheme);
+ RegisterPseudoScheme(kHttpsSuboriginScheme);
}
ChildProcessSecurityPolicyImpl::~ChildProcessSecurityPolicyImpl() {
@@ -648,6 +650,21 @@ bool ChildProcessSecurityPolicyImpl::CanCommitURL(int child_id,
}
}
+bool ChildProcessSecurityPolicyImpl::CanSetAsOriginHeader(int child_id,
+ const GURL& url) {
+ if (!url.is_valid())
+ return false; // Can't set invalid URLs as origin headers.
+
+ // Suborigin URLs are a special case and are allowed to be an origin header.
+ if (url.scheme() == kHttpSuboriginScheme ||
+ url.scheme() == kHttpsSuboriginScheme) {
+ DCHECK(IsPseudoScheme(url.scheme()));
+ return true;
+ }
+
+ return CanCommitURL(child_id, url);
+}
+
bool ChildProcessSecurityPolicyImpl::CanReadFile(int child_id,
const base::FilePath& file) {
return HasPermissionsForFile(child_id, file, READ_FILE_GRANT);
« no previous file with comments | « content/browser/child_process_security_policy_impl.h ('k') | content/browser/child_process_security_policy_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698