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 a9b54d8cfe3f82ccdb0085d3234220242e539a10..210a3c3c7cb5c9e7c2c9ab5e7c957a6a69c6cbc9 100644 |
--- a/content/browser/child_process_security_policy_impl.cc |
+++ b/content/browser/child_process_security_policy_impl.cc |
@@ -268,6 +268,20 @@ class ChildProcessSecurityPolicyImpl::SecurityState { |
origin_lock_ = gurl; |
} |
+ ChildProcessSecurityPolicyImpl::CheckOriginLockResult CheckOriginLock( |
+ const GURL& gurl) { |
+ if (origin_lock_.is_empty()) |
+ return ChildProcessSecurityPolicyImpl::CheckOriginLockResult::NO_LOCK; |
+ |
+ if (origin_lock_ == gurl) { |
+ return ChildProcessSecurityPolicyImpl::CheckOriginLockResult:: |
+ HAS_EQUAL_LOCK; |
+ } |
+ |
+ return ChildProcessSecurityPolicyImpl::CheckOriginLockResult:: |
+ HAS_WRONG_LOCK; |
+ } |
+ |
bool has_web_ui_bindings() const { |
return enabled_bindings_ & BINDINGS_POLICY_WEB_UI; |
} |
@@ -1025,6 +1039,16 @@ void ChildProcessSecurityPolicyImpl::LockToOrigin(int child_id, |
state->second->LockToOrigin(gurl); |
} |
+ChildProcessSecurityPolicyImpl::CheckOriginLockResult |
+ChildProcessSecurityPolicyImpl::CheckOriginLock(int child_id, |
+ const GURL& site_url) { |
+ base::AutoLock lock(lock_); |
+ SecurityStateMap::iterator state = security_state_.find(child_id); |
+ if (state == security_state_.end()) |
+ return ChildProcessSecurityPolicyImpl::CheckOriginLockResult::NO_LOCK; |
+ return state->second->CheckOriginLock(site_url); |
+} |
+ |
void ChildProcessSecurityPolicyImpl::GrantPermissionsForFileSystem( |
int child_id, |
const std::string& filesystem_id, |