Index: Source/bindings/core/v8/WindowProxy.cpp |
diff --git a/Source/bindings/core/v8/WindowProxy.cpp b/Source/bindings/core/v8/WindowProxy.cpp |
index 0feb32db4bbeed456e71777b4a2346a9e745af64..2d5f21fafe8ae1937998cbed64b137e6469bc3d2 100644 |
--- a/Source/bindings/core/v8/WindowProxy.cpp |
+++ b/Source/bindings/core/v8/WindowProxy.cpp |
@@ -454,8 +454,17 @@ void WindowProxy::setSecurityToken(SecurityOrigin* origin) |
return; |
} |
- if (m_world->isPrivateScriptIsolatedWorld()) |
+ if (m_world->isPrivateScriptIsolatedWorld()) { |
token = "private-script://" + token; |
+ } else if (m_world->isIsolatedWorld()) { |
+ SecurityOrigin* frameSecurityOrigin = m_frame->securityContext()->securityOrigin(); |
+ String frameSecurityToken = frameSecurityOrigin->toString(); |
+ if (frameSecurityOrigin->domainWasSetInDOM() || frameSecurityToken.isEmpty() || frameSecurityToken == "null") { |
haraken
2015/09/14 15:29:00
Would you help me understand why we need the domai
epertoso
2015/09/14 15:59:37
Added a comment.
|
+ context->UseDefaultSecurityToken(); |
+ return; |
+ } |
+ token = frameSecurityToken + token; |
+ } |
CString utf8Token = token.utf8(); |
// NOTE: V8 does identity comparison in fast path, must use a symbol |