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

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

Issue 2713413002: Blink bindings: use v8 to enforce method call access checks (Closed)
Patch Set: Restore comment Created 3 years, 10 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.h
diff --git a/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.h b/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.h
index 94b2b8d19504817edcd9ed738dccc223e63d36f7..5728b51438277024c82085462e3280290a8e29ef 100644
--- a/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.h
+++ b/third_party/WebKit/Source/bindings/core/v8/V8DOMConfiguration.h
@@ -49,17 +49,23 @@ class CORE_EXPORT V8DOMConfiguration final {
// data table driven setup.
// Bitflags to show where the member will be defined.
- enum PropertyLocationConfiguration {
+ enum PropertyLocationConfiguration : unsigned {
OnInstance = 1 << 0,
OnPrototype = 1 << 1,
OnInterface = 1 << 2,
};
- enum HolderCheckConfiguration {
+ // TODO(dcheng): Make these enum classes.
+ enum HolderCheckConfiguration : unsigned {
CheckHolder,
DoNotCheckHolder,
};
+ enum AccessCheckConfiguration : unsigned {
+ CheckAccess,
+ DoNotCheckAccess,
+ };
+
typedef v8::Local<v8::Private> (*CachedAccessorCallback)(v8::Isolate*);
// AttributeConfiguration translates into calls to SetNativeDataProperty() on
@@ -78,10 +84,12 @@ class CORE_EXPORT V8DOMConfiguration final {
// The accessor's 'result' is stored in a private property.
CachedAccessorCallback cachedAccessorCallback;
const WrapperTypeInfo* data;
- unsigned attribute : 8; // v8::PropertyAttribute
- unsigned
- propertyLocationConfiguration : 3; // PropertyLocationConfiguration
- unsigned holderCheckConfiguration : 1; // HolderCheckConfiguration
+ // v8::PropertyAttribute
+ unsigned attribute : 8;
+ // PropertyLocationConfiguration
+ unsigned propertyLocationConfiguration : 3;
+ // HolderCheckConfiguration
+ unsigned holderCheckConfiguration : 1;
};
static void installAttributes(v8::Isolate*,
@@ -130,10 +138,12 @@ class CORE_EXPORT V8DOMConfiguration final {
// The accessor's 'result' is stored in a private property.
CachedAccessorCallback cachedAccessorCallback;
const WrapperTypeInfo* data;
- unsigned attribute : 8; // v8::PropertyAttribute
- unsigned
- propertyLocationConfiguration : 3; // PropertyLocationConfiguration
- unsigned holderCheckConfiguration : 1; // HolderCheckConfiguration
+ // v8::PropertyAttribute
+ unsigned attribute : 8;
+ // PropertyLocationConfiguration
+ unsigned propertyLocationConfiguration : 3;
+ // HolderCheckConfiguration
+ unsigned holderCheckConfiguration : 1;
};
static void installAccessors(
@@ -233,10 +243,14 @@ class CORE_EXPORT V8DOMConfiguration final {
v8::FunctionCallback callback;
v8::FunctionCallback callbackForMainWorld;
int length;
- unsigned attribute : 8; // v8::PropertyAttribute
- unsigned
- propertyLocationConfiguration : 3; // PropertyLocationConfiguration
- unsigned holderCheckConfiguration : 1; // HolderCheckConfiguration
+ // v8::PropertyAttribute
+ unsigned attribute : 8;
+ // PropertyLocationConfiguration
+ unsigned propertyLocationConfiguration : 3;
+ // HolderCheckConfiguration
+ unsigned holderCheckConfiguration : 1;
+ // AccessCheckConfiguration
+ unsigned accessCheckConfiguration : 1;
};
struct SymbolKeyedMethodConfiguration {
@@ -254,10 +268,14 @@ class CORE_EXPORT V8DOMConfiguration final {
v8::FunctionCallback callback;
// SymbolKeyedMethodConfiguration doesn't support per-world bindings.
int length;
- unsigned attribute : 8; // v8::PropertyAttribute
- unsigned
- propertyLocationConfiguration : 3; // PropertyLocationConfiguration
- unsigned holderCheckConfiguration : 1; // HolderCheckConfiguration
+ // v8::PropertyAttribute
+ unsigned attribute : 8;
+ // PropertyLocationConfiguration
+ unsigned propertyLocationConfiguration : 3;
+ // HolderCheckConfiguration
+ unsigned holderCheckConfiguration : 1;
+ // AccessCheckConfiguration
+ unsigned accessCheckConfiguration : 1;
};
static void installMethods(v8::Isolate*,

Powered by Google App Engine
This is Rietveld 408576698