Index: Source/bindings/core/v8/custom/V8InjectedScriptHostCustom.cpp |
diff --git a/Source/bindings/core/v8/custom/V8InjectedScriptHostCustom.cpp b/Source/bindings/core/v8/custom/V8InjectedScriptHostCustom.cpp |
index 17e238d1d7cc8cdee7ef7b121163b136ca644f3c..471b44867b5847a0a9b709f8767a7447fdcbc93f 100644 |
--- a/Source/bindings/core/v8/custom/V8InjectedScriptHostCustom.cpp |
+++ b/Source/bindings/core/v8/custom/V8InjectedScriptHostCustom.cpp |
@@ -139,24 +139,16 @@ void V8InjectedScriptHost::internalConstructorNameMethodCustom(const v8::Functio |
v8SetReturnValue(info, result); |
} |
-void V8InjectedScriptHost::isHTMLAllCollectionMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& info) |
+void V8InjectedScriptHost::isDOMWrapperMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& info) |
{ |
if (info.Length() < 1) |
return; |
- if (!info[0]->IsObject()) { |
- v8SetReturnValue(info, false); |
- return; |
- } |
- |
- v8SetReturnValue(info, V8HTMLAllCollection::hasInstance(info[0], info.GetIsolate())); |
+ v8SetReturnValue(info, V8DOMWrapper::isWrapper(info.GetIsolate(), info[0])); |
} |
-void V8InjectedScriptHost::isPopularDOMObjectMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& info) |
+void V8InjectedScriptHost::isHTMLAllCollectionMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& info) |
{ |
- // FIXME: Stop using this function (whilelisting) once we come up with a way |
- // to distinguish DOM wrappers from other obejcts. |
- |
if (info.Length() < 1) |
return; |
@@ -165,27 +157,7 @@ void V8InjectedScriptHost::isPopularDOMObjectMethodCustom(const v8::FunctionCall |
return; |
} |
- v8::Local<v8::Value> object = info[0]; |
- v8::Isolate* isolate = info.GetIsolate(); |
- bool isPopularDOMObject = false; |
- static bool (*hasInstances[])(v8::Local<v8::Value>, v8::Isolate*) = { |
- V8Blob::hasInstance, |
- V8DOMError::hasInstance, |
- V8DOMException::hasInstance, |
- V8Element::hasInstance, |
- V8Event::hasInstance, |
- V8EventTarget::hasInstance, |
- V8Location::hasInstance, |
- V8Navigator::hasInstance, |
- }; |
- for (size_t i = 0; i < sizeof hasInstances / sizeof *hasInstances; ++i) { |
- if (hasInstances[i](object, isolate)) { |
- isPopularDOMObject = true; |
- break; |
- } |
- } |
- |
- v8SetReturnValue(info, isPopularDOMObject); |
+ v8SetReturnValue(info, V8HTMLAllCollection::hasInstance(info[0], info.GetIsolate())); |
} |
void V8InjectedScriptHost::isTypedArrayMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& info) |
@@ -580,6 +552,30 @@ void V8InjectedScriptHost::setNonEnumPropertyMethodCustom(const v8::FunctionCall |
object->ForceSet(info[1], info[2], v8::DontEnum); |
} |
+void V8InjectedScriptHost::getDOMAttributesWithObservableSideEffectOnGetMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& info) |
+{ |
+ // Returns DOM attributes which have observable side effect on getter, |
+ // in the form of |
+ // {interfaceName1: {attributeName1: true, |
+ // attributeName2: true, |
+ // ...}, |
+ // interfaceName2: {...}, |
+ // ...} |
+ // These attributes should not be evaluated in the Inspector. |
+ |
+ typedef Vector<std::pair<String, bool>> AttributeSet; |
+ AttributeSet requestAttributes; |
+ requestAttributes.append(std::make_pair("body", true)); |
+ AttributeSet responseAttributes; |
+ responseAttributes.append(std::make_pair("body", true)); |
+ |
+ Vector<std::pair<String, AttributeSet>> attributesWithSideEffect; |
+ attributesWithSideEffect.append(std::make_pair("Request", requestAttributes)); |
+ attributesWithSideEffect.append(std::make_pair("Response", responseAttributes)); |
+ |
+ v8SetReturnValue(info, toV8(attributesWithSideEffect, info.Holder(), info.GetIsolate())); |
+} |
+ |
void V8InjectedScriptHost::bindMethodCustom(const v8::FunctionCallbackInfo<v8::Value>& info) |
{ |
if (info.Length() < 2 || !info[1]->IsString()) |