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

Side by Side Diff: third_party/WebKit/Source/bindings/core/v8/ScriptCustomElementDefinitionBuilder.h

Issue 2024073002: Add callbacks to ScriptCustomElementDefinition (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: dominicc, yosin review 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef ScriptCustomElementDefinitionBuilder_h 5 #ifndef ScriptCustomElementDefinitionBuilder_h
6 #define ScriptCustomElementDefinitionBuilder_h 6 #define ScriptCustomElementDefinitionBuilder_h
7 7
8 #include "core/CoreExport.h" 8 #include "core/CoreExport.h"
9 #include "core/dom/custom/CustomElementDefinitionBuilder.h" 9 #include "core/dom/custom/CustomElementDefinitionBuilder.h"
10 #include "platform/heap/Handle.h" 10 #include "platform/heap/Handle.h"
11 #include "v8.h" 11 #include "v8.h"
12 #include "wtf/Allocator.h" 12 #include "wtf/Allocator.h"
13 #include "wtf/HashSet.h"
13 #include "wtf/Noncopyable.h" 14 #include "wtf/Noncopyable.h"
14 #include "wtf/RefPtr.h" 15 #include "wtf/RefPtr.h"
16 #include "wtf/text/AtomicString.h"
17 #include "wtf/text/AtomicStringHash.h"
15 18
16 namespace blink { 19 namespace blink {
17 20
18 class CustomElementsRegistry; 21 class CustomElementsRegistry;
19 class ExceptionState; 22 class ExceptionState;
20 class ScriptState; 23 class ScriptState;
21 class ScriptValue; 24 class ScriptValue;
22 25
23 class CORE_EXPORT ScriptCustomElementDefinitionBuilder 26 class CORE_EXPORT ScriptCustomElementDefinitionBuilder
24 : public CustomElementDefinitionBuilder { 27 : public CustomElementDefinitionBuilder {
25 STACK_ALLOCATED(); 28 STACK_ALLOCATED();
26 WTF_MAKE_NONCOPYABLE(ScriptCustomElementDefinitionBuilder); 29 WTF_MAKE_NONCOPYABLE(ScriptCustomElementDefinitionBuilder);
27 public: 30 public:
28 ScriptCustomElementDefinitionBuilder( 31 ScriptCustomElementDefinitionBuilder(
29 ScriptState*, 32 ScriptState*,
30 CustomElementsRegistry*, 33 CustomElementsRegistry*,
31 const ScriptValue& constructorScriptValue, 34 const ScriptValue& constructorScriptValue,
32 ExceptionState&); 35 ExceptionState&);
33 36
34 bool checkConstructorIntrinsics() override; 37 bool checkConstructorIntrinsics() override;
35 bool checkConstructorNotRegistered() override; 38 bool checkConstructorNotRegistered() override;
36 bool checkPrototype() override; 39 bool checkPrototype() override;
40 bool cacheProperties() override;
37 CustomElementDefinition* build(const CustomElementDescriptor&) override; 41 CustomElementDefinition* build(const CustomElementDescriptor&) override;
38 42
39 private: 43 private:
40 RefPtr<ScriptState> m_scriptState; 44 RefPtr<ScriptState> m_scriptState;
41 Member<CustomElementsRegistry> m_registry; 45 Member<CustomElementsRegistry> m_registry;
42 v8::Local<v8::Value> m_constructorValue; 46 v8::Local<v8::Value> m_constructorValue;
43 v8::Local<v8::Object> m_constructor; 47 v8::Local<v8::Object> m_constructor;
44 v8::Local<v8::Object> m_prototype; 48 v8::Local<v8::Object> m_prototype;
49 v8::Local<v8::Object> m_connectedCallback;
50 v8::Local<v8::Object> m_disconnectedCallback;
51 v8::Local<v8::Object> m_attributeChangedCallback;
52 HashSet<AtomicString> m_observedAttributes;
45 ExceptionState& m_exceptionState; 53 ExceptionState& m_exceptionState;
54
55 bool valueForName(const v8::Local<v8::Object>&, const char*,
56 v8::Local<v8::Value>&) const;
57 bool callableForName(const char*, v8::Local<v8::Object>&) const;
58 bool cacheObservedAttributes();
46 }; 59 };
47 60
48 } // namespace blink 61 } // namespace blink
49 62
50 #endif // ScriptCustomElementDefinitionBuilder_h 63 #endif // ScriptCustomElementDefinitionBuilder_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698