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 34bad5ad0e55ab8d4a4ce2b2b788f511271de1e8..ed946fd37326d37a6ac7265e3346e54cca3bb59e 100644 |
--- a/content/browser/child_process_security_policy_impl.cc |
+++ b/content/browser/child_process_security_policy_impl.cc |
@@ -10,6 +10,7 @@ |
#include "base/files/file_path.h" |
#include "base/logging.h" |
#include "base/macros.h" |
+#include "base/memory/ptr_util.h" |
#include "base/metrics/histogram.h" |
#include "base/stl_util.h" |
#include "base/strings/string_util.h" |
@@ -237,6 +238,9 @@ class ChildProcessSecurityPolicyImpl::SecurityState { |
return origin_lock_ == site_gurl; |
} |
+ // TODO(nick): Remove this once we understand http://crbug.com/600441 |
+ GURL GetOriginLock() { return origin_lock_; } |
+ |
void LockToOrigin(const GURL& gurl) { |
origin_lock_ = gurl; |
} |
@@ -822,6 +826,18 @@ bool ChildProcessSecurityPolicyImpl::CanAccessDataForOrigin(int child_id, |
return state->second->CanAccessDataForOrigin(gurl); |
} |
+// TODO(nick): Remove this once we understand http://crbug.com/600441 |
+std::unique_ptr<base::debug::ScopedCrashKey> |
+ChildProcessSecurityPolicyImpl::GetOriginLockCrashKey(int child_id) { |
+ base::AutoLock lock(lock_); |
+ SecurityStateMap::iterator state = security_state_.find(child_id); |
+ return base::WrapUnique(new base::debug::ScopedCrashKey( |
+ "security_policy_origin_lock", |
+ state == security_state_.end() |
+ ? "not-found" |
+ : state->second->GetOriginLock().possibly_invalid_spec())); |
+} |
+ |
void ChildProcessSecurityPolicyImpl::LockToOrigin(int child_id, |
const GURL& gurl) { |
// "gurl" can be currently empty in some cases, such as file://blah. |