Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2032)

Unified Diff: third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.cpp

Issue 2458183002: Eagerly install Origin Trial features on window (Closed)
Patch Set: Clean up Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 1f7d79ad77138ed6a703d0afcebaaea6af7ebb0f..9227686b3b291001b7399a63f7173b16d92af28e 100644
--- a/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.cpp
+++ b/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.cpp
@@ -29,6 +29,7 @@
#include "bindings/core/v8/V8DOMConfiguration.h"
#include "bindings/core/v8/GeneratedCodeHelper.h" // just for DCHECK
+#include "bindings/core/v8/ScriptState.h"
#include "bindings/core/v8/V8ObjectConstructor.h"
#include "bindings/core/v8/V8PerContextData.h"
#include "platform/tracing/TraceEvent.h"
@@ -78,11 +79,13 @@ void installAttributeInternal(
}
void installAttributeInternal(
- v8::Isolate* isolate,
+ const ScriptState* scriptState,
v8::Local<v8::Object> instance,
Yuki 2016/11/01 11:37:54 Shall we change the function name and argument nam
iclelland 2016/11/01 17:06:27 I have no problem renaming, or even restructuring
v8::Local<v8::Object> prototype,
- const V8DOMConfiguration::AttributeConfiguration& attribute,
- const DOMWrapperWorld& world) {
+ const V8DOMConfiguration::AttributeConfiguration& attribute) {
+ v8::Isolate* isolate = scriptState->isolate();
+ const DOMWrapperWorld& world = scriptState->world();
+
if (attribute.exposeConfiguration ==
V8DOMConfiguration::OnlyExposedToPrivateScript &&
!world.isPrivateScriptIsolatedWorld())
Yuki 2016/11/01 11:37:54 Given that this function is so special, do you nee
iclelland 2016/11/01 17:06:27 Not for origin trials. Again, this method was writ
@@ -98,7 +101,7 @@ void installAttributeInternal(
DCHECK_EQ(&v8ConstructorAttributeGetter, attribute.getter);
V8PerContextData* perContextData =
- V8PerContextData::from(isolate->GetCurrentContext());
+ V8PerContextData::from(scriptState->context());
v8::Local<v8::Function> data =
Yuki 2016/11/01 11:37:54 nit: s/data/value/ since this is used the value of
iclelland 2016/11/02 13:49:37 Sure, done. Should this also be the case for insta
Yuki 2016/11/04 08:12:31 No. Data property setting on V8 takes a pair of (
perContextData->constructorForType(attribute.data);
@@ -106,13 +109,13 @@ void installAttributeInternal(
if (attribute.propertyLocationConfiguration & V8DOMConfiguration::OnInstance)
instance
->DefineOwnProperty(
- isolate->GetCurrentContext(), name, data,
+ scriptState->context(), name, data,
Yuki 2016/11/01 11:37:54 The context here must always be the current contex
iclelland 2016/11/01 17:06:27 I mentioned this in another comment as well; I ran
haraken 2016/11/02 02:35:45 As shiino-san mentioned, scriptState->context() ==
iclelland 2016/11/02 13:49:37 Thanks for your patience. I've reverted this to is
Yuki 2016/11/04 08:12:31 Yes, it's correct to use scriptState->context() to
static_cast<v8::PropertyAttribute>(attribute.attribute))
.ToChecked();
if (attribute.propertyLocationConfiguration & V8DOMConfiguration::OnPrototype)
prototype
->DefineOwnProperty(
- isolate->GetCurrentContext(), name, data,
+ scriptState->context(), name, data,
Yuki 2016/11/01 11:37:54 ditto.
iclelland 2016/11/02 13:49:37 Done.
static_cast<v8::PropertyAttribute>(attribute.attribute))
.ToChecked();
if (attribute.propertyLocationConfiguration & V8DOMConfiguration::OnInterface)
@@ -415,12 +418,11 @@ void V8DOMConfiguration::installAttribute(
}
void V8DOMConfiguration::installAttribute(
- v8::Isolate* isolate,
- const DOMWrapperWorld& world,
+ const ScriptState* scriptState,
v8::Local<v8::Object> instance,
v8::Local<v8::Object> prototype,
const AttributeConfiguration& attribute) {
- installAttributeInternal(isolate, instance, prototype, attribute, world);
+ installAttributeInternal(scriptState, instance, prototype, attribute);
}
void V8DOMConfiguration::installAccessors(

Powered by Google App Engine
This is Rietveld 408576698