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

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

Issue 1837823003: [Binding] Add [OverrideBuiltins] label onto HTMLDocument interface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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/WindowProxy.cpp
diff --git a/third_party/WebKit/Source/bindings/core/v8/WindowProxy.cpp b/third_party/WebKit/Source/bindings/core/v8/WindowProxy.cpp
index 7b6d9481037862a9ae2daf4096626ba8ec1464c3..b74f0d9bab846ddf1c1f1d0cb4cba67677557bbf 100644
--- a/third_party/WebKit/Source/bindings/core/v8/WindowProxy.cpp
+++ b/third_party/WebKit/Source/bindings/core/v8/WindowProxy.cpp
@@ -478,79 +478,6 @@ void WindowProxy::updateDocument()
updateSecurityOrigin(m_frame->securityContext()->getSecurityOrigin());
}
-static v8::Local<v8::Value> getNamedProperty(HTMLDocument* htmlDocument, const AtomicString& key, v8::Local<v8::Object> creationContext, v8::Isolate* isolate)
-{
- if (!htmlDocument->hasNamedItem(key) && !htmlDocument->hasExtraNamedItem(key))
- return v8Undefined();
-
- DocumentNameCollection* items = htmlDocument->documentNamedItems(key);
- if (items->isEmpty())
- return v8Undefined();
-
- if (items->hasExactlyOneItem()) {
- HTMLElement* element = items->item(0);
- ASSERT(element);
- Frame* frame = isHTMLIFrameElement(*element) ? toHTMLIFrameElement(*element).contentFrame() : 0;
- if (frame)
- return toV8(frame->domWindow(), creationContext, isolate);
- return toV8(element, creationContext, isolate);
- }
- return toV8(items, creationContext, isolate);
-}
-
-static void getter(v8::Local<v8::Name> property, const v8::PropertyCallbackInfo<v8::Value>& info)
-{
- if (!property->IsString())
- return;
- // FIXME: Consider passing StringImpl directly.
- AtomicString name = toCoreAtomicString(property.As<v8::String>());
- HTMLDocument* htmlDocument = V8HTMLDocument::toImpl(info.Holder());
- ASSERT(htmlDocument);
- v8::Local<v8::Value> result = getNamedProperty(htmlDocument, name, info.Holder(), info.GetIsolate());
- if (!result.IsEmpty()) {
- v8SetReturnValue(info, result);
- return;
- }
- v8::Local<v8::Value> prototype = info.Holder()->GetPrototype();
- if (prototype->IsObject()) {
- v8::Local<v8::Value> value;
- if (prototype.As<v8::Object>()->Get(info.GetIsolate()->GetCurrentContext(), property).ToLocal(&value))
- v8SetReturnValue(info, value);
- }
-}
-
-void WindowProxy::namedItemAdded(HTMLDocument* document, const AtomicString& name)
-{
- ASSERT(m_world->isMainWorld());
-
- if (!isContextInitialized() || !m_scriptState->contextIsValid())
- return;
-
- ScriptState::Scope scope(m_scriptState.get());
- ASSERT(!m_document.isEmpty());
- v8::Local<v8::Context> context = m_scriptState->context();
- v8::Local<v8::Object> documentHandle = m_document.newLocal(m_isolate);
- checkDocumentWrapper(documentHandle, document);
- documentHandle->SetAccessor(context, v8String(m_isolate, name), getter);
-}
-
-void WindowProxy::namedItemRemoved(HTMLDocument* document, const AtomicString& name)
-{
- ASSERT(m_world->isMainWorld());
-
- if (!isContextInitialized())
- return;
-
- if (document->hasNamedItem(name) || document->hasExtraNamedItem(name))
- return;
-
- ScriptState::Scope scope(m_scriptState.get());
- ASSERT(!m_document.isEmpty());
- v8::Local<v8::Object> documentHandle = m_document.newLocal(m_isolate);
- checkDocumentWrapper(documentHandle, document);
- documentHandle->Delete(m_isolate->GetCurrentContext(), v8String(m_isolate, name));
-}
-
void WindowProxy::updateSecurityOrigin(SecurityOrigin* origin)
{
if (!isContextInitialized())

Powered by Google App Engine
This is Rietveld 408576698