Chromium Code Reviews| Index: third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.cpp |
| diff --git a/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.cpp b/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.cpp |
| index 288633ca3b04386091e2453ed33aebd4b18f857d..f9c1bf229ee9e031ac7c3bcc84a1f9b088f2d9ed 100644 |
| --- a/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.cpp |
| +++ b/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.cpp |
| @@ -95,35 +95,36 @@ void InstallAttributeInternal( |
| const DOMWrapperWorld& world) { |
| if (!WorldConfigurationApplies(attribute, world)) |
| return; |
| + |
| v8::Local<v8::Name> name = V8AtomicString(isolate, attribute.name); |
| + v8::AccessorNameGetterCallback getter = attribute.getter; |
| + v8::AccessorNameSetterCallback setter = attribute.setter; |
| + v8::Local<v8::Value> data = |
| + v8::External::New(isolate, const_cast<WrapperTypeInfo*>(attribute.data)); |
| // This method is only being used for installing interfaces which are |
| // enabled through origin trials. Assert here that it is being called with |
| // an attribute configuration for a constructor. |
| // TODO(iclelland): Relax this constraint and allow arbitrary data-type |
| // properties to be added here. |
| - DCHECK_EQ(&V8ConstructorAttributeGetter, attribute.getter); |
| - |
| - V8PerContextData* per_context_data = |
| - V8PerContextData::From(isolate->GetCurrentContext()); |
| - v8::Local<v8::Function> data = |
| - per_context_data->ConstructorForType(attribute.data); |
| + DCHECK_EQ(&V8ConstructorAttributeGetter, getter); |
| + v8::Local<v8::Context> context = isolate->GetCurrentContext(); |
| DCHECK(attribute.property_location_configuration); |
| if (attribute.property_location_configuration & |
| - V8DOMConfiguration::kOnInstance) |
| + V8DOMConfiguration::kOnInstance) { |
| instance |
| - ->DefineOwnProperty( |
| - isolate->GetCurrentContext(), name, data, |
| - static_cast<v8::PropertyAttribute>(attribute.attribute)) |
| + ->SetAccessor(context, name, getter, setter, data, v8::DEFAULT, |
|
jbroman
2017/04/13 14:54:45
This is only for origin trials, so maybe you've al
haraken
2017/04/13 15:40:19
The name is really confusing but:
- SetAccessor =
jbroman
2017/04/13 17:11:23
Ah. If that's the case, then ignore me (though it
|
| + static_cast<v8::PropertyAttribute>(attribute.attribute)) |
| .ToChecked(); |
| + } |
| if (attribute.property_location_configuration & |
| - V8DOMConfiguration::kOnPrototype) |
| + V8DOMConfiguration::kOnPrototype) { |
| prototype |
| - ->DefineOwnProperty( |
| - isolate->GetCurrentContext(), name, data, |
| - static_cast<v8::PropertyAttribute>(attribute.attribute)) |
| + ->SetAccessor(context, name, getter, setter, data, v8::DEFAULT, |
| + static_cast<v8::PropertyAttribute>(attribute.attribute)) |
| .ToChecked(); |
| + } |
| if (attribute.property_location_configuration & |
| V8DOMConfiguration::kOnInterface) |
| NOTREACHED(); |