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

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

Issue 2060753002: Implement script-side of callback reactions for Custom Elements V1 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@callback-ce
Patch Set: enqueueAttributeChangedCallbackForAllAttributes and test fixes Created 4 years, 6 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/ScriptCustomElementDefinition.h
diff --git a/third_party/WebKit/Source/bindings/core/v8/ScriptCustomElementDefinition.h b/third_party/WebKit/Source/bindings/core/v8/ScriptCustomElementDefinition.h
index c2b10c03da91e9a412ea1ae7f859050a70106726..9d28522785205217133f2072bc19715423819624 100644
--- a/third_party/WebKit/Source/bindings/core/v8/ScriptCustomElementDefinition.h
+++ b/third_party/WebKit/Source/bindings/core/v8/ScriptCustomElementDefinition.h
@@ -10,11 +10,8 @@
#include "core/CoreExport.h"
#include "core/dom/custom/CustomElementDefinition.h"
#include "v8.h"
-#include "wtf/HashSet.h"
dominicc (has gone to gerrit) 2016/06/14 09:19:45 Thanks for doing all this clean-up.
#include "wtf/Noncopyable.h"
#include "wtf/RefPtr.h"
-#include "wtf/text/AtomicString.h"
-#include "wtf/text/AtomicStringHash.h"
namespace blink {
@@ -36,9 +33,9 @@ public:
const CustomElementDescriptor&,
const v8::Local<v8::Object>& constructor,
const v8::Local<v8::Object>& prototype,
- const v8::Local<v8::Object>& connectedCallback,
- const v8::Local<v8::Object>& disconnectedCallback,
- const v8::Local<v8::Object>& attributeChangedCallback,
+ const v8::Local<v8::Function>& connectedCallback,
+ const v8::Local<v8::Function>& disconnectedCallback,
+ const v8::Local<v8::Function>& attributeChangedCallback,
const HashSet<AtomicString>& observedAttributes);
virtual ~ScriptCustomElementDefinition() = default;
@@ -46,28 +43,38 @@ public:
v8::Local<v8::Object> constructor() const;
v8::Local<v8::Object> prototype() const;
+ bool hasConnectedCallback() const override;
+ bool hasDisconnectedCallback() const override;
+
+ void runConnectedCallback(Element*) override;
+ void runDisconnectedCallback(Element*) override;
+ void runAttributeChangedCallback(Element*, const QualifiedName&,
+ const AtomicString& oldValue, const AtomicString& newValue) override;
+
private:
ScriptCustomElementDefinition(
ScriptState*,
const CustomElementDescriptor&,
const v8::Local<v8::Object>& constructor,
const v8::Local<v8::Object>& prototype,
- const v8::Local<v8::Object>& connectedCallback,
- const v8::Local<v8::Object>& disconnectedCallback,
- const v8::Local<v8::Object>& attributeChangedCallback,
+ const v8::Local<v8::Function>& connectedCallback,
+ const v8::Local<v8::Function>& disconnectedCallback,
+ const v8::Local<v8::Function>& attributeChangedCallback,
const HashSet<AtomicString>& observedAttributes);
// Implementations of |CustomElementDefinition|
ScriptValue getConstructorForScript() final;
bool runConstructor(Element*) override;
+ void runCallback(ScopedPersistent<v8::Function>&, Element*,
+ int argc = 0, v8::Local<v8::Value> argv[] = nullptr);
+
RefPtr<ScriptState> m_scriptState;
ScopedPersistent<v8::Object> m_constructor;
ScopedPersistent<v8::Object> m_prototype;
- ScopedPersistent<v8::Object> m_connectedCallback;
- ScopedPersistent<v8::Object> m_disconnectedCallback;
- ScopedPersistent<v8::Object> m_attributeChangedCallback;
- HashSet<AtomicString> m_observedAttributes;
+ ScopedPersistent<v8::Function> m_connectedCallback;
+ ScopedPersistent<v8::Function> m_disconnectedCallback;
+ ScopedPersistent<v8::Function> m_attributeChangedCallback;
};
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698