Index: Source/bindings/core/v8/V8DOMConfiguration.cpp |
diff --git a/Source/bindings/core/v8/V8DOMConfiguration.cpp b/Source/bindings/core/v8/V8DOMConfiguration.cpp |
index 33d4e8aca01b103e71b30c02bf1a5d370a7970e0..a27f8525427c0b3cb460bccf410a5031700896b1 100644 |
--- a/Source/bindings/core/v8/V8DOMConfiguration.cpp |
+++ b/Source/bindings/core/v8/V8DOMConfiguration.cpp |
@@ -42,11 +42,14 @@ void V8DOMConfiguration::installAttributes(v8::Handle<v8::ObjectTemplate> instan |
void V8DOMConfiguration::installAccessors(v8::Handle<v8::ObjectTemplate> prototype, v8::Handle<v8::Signature> signature, const AccessorConfiguration* accessors, size_t accessorCount, v8::Isolate* isolate) |
{ |
- bool isMainWorld = DOMWrapperWorld::current(isolate).isMainWorld(); |
+ DOMWrapperWorld& world = DOMWrapperWorld::current(isolate); |
for (size_t i = 0; i < accessorCount; ++i) { |
+ if (accessors[i].exposeConfiguration == OnlyExposedToPrivateScript && !world.isPrivateScriptIsolatedWorld()) |
+ continue; |
+ |
v8::FunctionCallback getterCallback = accessors[i].getter; |
v8::FunctionCallback setterCallback = accessors[i].setter; |
- if (isMainWorld) { |
+ if (world.isMainWorld()) { |
if (accessors[i].getterForMainWorld) |
getterCallback = accessors[i].getterForMainWorld; |
if (accessors[i].setterForMainWorld) |
@@ -100,10 +103,13 @@ void V8DOMConfiguration::installConstants(v8::Handle<v8::FunctionTemplate> funct |
void V8DOMConfiguration::installMethods(v8::Handle<v8::ObjectTemplate> prototype, v8::Handle<v8::Signature> signature, v8::PropertyAttribute attributes, const MethodConfiguration* callbacks, size_t callbackCount, v8::Isolate* isolate) |
{ |
- bool isMainWorld = DOMWrapperWorld::current(isolate).isMainWorld(); |
+ DOMWrapperWorld& world = DOMWrapperWorld::current(isolate); |
for (size_t i = 0; i < callbackCount; ++i) { |
+ if (callbacks[i].exposeConfiguration == OnlyExposedToPrivateScript && !world.isPrivateScriptIsolatedWorld()) |
+ continue; |
+ |
v8::FunctionCallback callback = callbacks[i].callback; |
- if (isMainWorld && callbacks[i].callbackForMainWorld) |
+ if (world.isMainWorld() && callbacks[i].callbackForMainWorld) |
callback = callbacks[i].callbackForMainWorld; |
v8::Local<v8::FunctionTemplate> functionTemplate = v8::FunctionTemplate::New(isolate, callback, v8Undefined(), signature, callbacks[i].length); |
functionTemplate->RemovePrototype(); |