Support customized built-in elements for elements other than HTMLElement, HTMLDivElement, and HTMLParagraphElement |
||||||||
Issue descriptioni.e. Add [HTMLConstructor] to almost all of HTMLFooElement.idl. Excludes: - HTMLContentElement.id: obsolete - HTMLMediaElment.idl: abstract interface - HTMLShadowElement.idl: obsolete - HTMLUnknownElement.idl: per spec, intentionally not [HTMLConstructor]
,
Jan 26 2018
Thanks! Here is the test: LayoutTests/external/wpt/custom-elements/builtin-coverage.html
,
Jan 26 2018
,
Jan 26 2018
In review: http://crrev.com/c/888228 Exclude: - HTMLMediaElement.idl: abstract interface - HTMLCanvasElement.idl: Blink IDL parser error due by partial interface( issue 806163 ) - HTMLIFrameElement.idl: ditto - HTMLInputElement.idl: ditto - HTMLVideoElement.idl: ditto
,
Jan 26 2018
This is done by the script[1] and manual editing. [1] https://github.com/eval1749/workplace/blob/master/add_HTMLConstructor_in_idl.py
,
Jan 26 2018
Also exclude EMBED element due by runtime error in V8:
#
# Fatal error in ../../v8\src/api.h, line 354
# Debug check failed: that == nullptr || (*reinterpret_cast<v8::internal::Object* const*>(that))->IsJSReceiver().
#
Backtrace:
base::debug::StackTrace::StackTrace [0x100B8838+104] (C:\src\w\cr\src\base\debug\stack_trace_win.cc:286)
base::debug::StackTrace::StackTrace [0x100B73F3+35] (C:\src\w\cr\src\base\debug\stack_trace.cc:199)
gin::`anonymous namespace'::PrintStackTrace [0x111D61BF+31] (C:\src\w\cr\src\gin\v8_platform.cc:30)
V8_Fatal [0x2066AF8B+107] (C:\src\w\cr\src\v8\src\base\logging.cc:135)
v8::base::`anonymous namespace'::DefaultDcheckHandler [0x2066ACF6+22]
v8::Object::HasOwnProperty [0x112C6E16+342] (C:\src\w\cr\src\v8\src\api.cc:4857)
blink::`anonymous namespace'::GetScriptableObjectProperty<blink::V8HTMLEmbedElement> [0x1279717D+541] (C:\src\w\cr\src\third_party\WebKit\Source\bindings\core\v8\custom\V8HTMLPlugInElementCustom.cpp:68)
blink::V8HTMLEmbedElement::namedPropertyGetterCustom [0x12796F42+82] (C:\src\w\cr\src\third_party\WebKit\Source\bindings\core\v8\custom\V8HTMLPlugInElementCustom.cpp:125)
blink::V8HTMLEmbedElement::namedPropertyGetterCallback [0x15274EC8+216] (C:\src\w\cr\src\out\debug\gen\blink\bindings\core\v8\V8HTMLEmbedElement.cpp:385)
v8::internal::PropertyCallbackArguments::BasicCallNamedGetterCallback [0x11A83A18+392] (C:\src\w\cr\src\v8\src\api-arguments-inl.h:108)
v8::internal::PropertyCallbackArguments::CallNamedGetter [0x11A836FD+237] (C:\src\w\cr\src\v8\src\api-arguments-inl.h:85)
v8::internal::`anonymous namespace'::GetPropertyWithInterceptorInternal [0x11B9F0EE+366] (C:\src\w\cr\src\v8\src\objects.cc:1858)
v8::internal::JSObject::GetPropertyWithInterceptor [0x11B9953C+60] (C:\src\w\cr\src\v8\src\objects.cc:15753)
v8::internal::Object::GetProperty [0x11B98EDE+78] (C:\src\w\cr\src\v8\src\objects.cc:1124)
v8::internal::LoadIC::Load [0x11A6A193+723] (C:\src\w\cr\src\v8\src\ic\ic.cc:461)
v8::internal::__RT_impl_Runtime_LoadIC_Miss [0x11A79FD1+321] (C:\src\w\cr\src\v8\src\ic\ic.cc:2083)
v8::internal::Runtime_LoadIC_Miss [0x11A79BF7+199] (C:\src\w\cr\src\v8\src\ic\ic.cc:2066)
Assertion failed: false, file ../../third_party/swiftshader/src/OpenGL/common/Object.cpp, line 96
,
Jan 26 2018
Also exclude HTMLFormElement due by following crash:
listed_element is nullptr.
void HTMLFormControlsCollection::UpdateIdNameCache() const {
if (HasValidIdNameCache())
return;
NamedItemCache* cache = NamedItemCache::Create();
HashSet<StringImpl*> found_input_elements;
for (const auto& listed_element : ListedElements()) {
if (listed_element->IsEnumeratable()) {
HTMLElement* element = ToHTMLElement(listed_element);
HTMLFormControlsCollection::UpdateIdNameCache() Line 141
HTMLCollection::NamedItems(const WTF::AtomicString & name, blink::HeapVector<blink::Member<blink::Element>,0> & result) Line 528
HTMLFormElement::GetNamedElements(const WTF::AtomicString & name, blink::HeapVector<blink::Member<blink::Element>,0> & named_items) Line 769
HTMLFormElement::AnonymousNamedGetter(const WTF::AtomicString & name, blink::RadioNodeListOrElement & return_value) Line 806
HTMLFormElementV8Internal::namedPropertyGetter(const WTF::AtomicString & name, const v8::PropertyCallbackInfo<v8::Value> & info) Line 379
V8HTMLFormElement::namedPropertyGetterCallback(v8::Local<v8::Name> name, const v8::PropertyCallbackInfo<v8::Value> & info) Line 611
v8.dll!v8::internal::PropertyCallbackArguments::BasicCallNamedGetterCallback(void(*)(v8::Local<v8::Name>, const v8::PropertyCallbackInfo<v8::Value> &) f, v8::internal::Handle<v8::internal::Name> name) Line 108
v8.dll!v8::internal::PropertyCallbackArguments::CallNamedGetter(v8::internal::Handle<v8::internal::InterceptorInfo> interceptor, v8::internal::Handle<v8::internal::Name> name) Line 85
v8.dll!v8::internal::`anonymous namespace'::GetPropertyWithInterceptorInternal(v8::internal::LookupIterator * it, v8::internal::Handle<v8::internal::InterceptorInfo> interceptor, bool * done) Line 1858
v8.dll!v8::internal::JSObject::GetPropertyWithInterceptor(v8::internal::LookupIterator * it, bool * done) Line 15753
v8.dll!v8::internal::Object::GetProperty(v8::internal::LookupIterator * it) Line 1124
v8.dll!v8::internal::LoadIC::Load(v8::internal::Handle<v8::internal::Object> object, v8::internal::Handle<v8::internal::Name> name) Line 461
v8.dll!v8::internal::__RT_impl_Runtime_LoadIC_Miss(v8::internal::Arguments args, v8::internal::Isolate * isolate) Line 2083
v8.dll!v8::internal::Runtime_LoadIC_Miss(int args_length, v8::internal::Object * * args_object, v8::internal::Isolate * isolate) Line 2066
,
Jan 26 2018
Exclude OBJECT element due to below crash:
#
# Fatal error in ../../v8\src/api.h, line 354
# Debug check failed: that == nullptr || (*reinterpret_cast<v8::internal::Object* const*>(that))->IsJSReceiver().
#
Backtrace:
base::debug::StackTrace::StackTrace [0x100B8838+104] (C:\src\w\cr\src\base\debug\stack_trace_win.cc:286)
base::debug::StackTrace::StackTrace [0x100B73F3+35] (C:\src\w\cr\src\base\debug\stack_trace.cc:199)
gin::`anonymous namespace'::PrintStackTrace [0x093E61BF+31] (C:\src\w\cr\src\gin\v8_platform.cc:30)
V8_Fatal [0x18BCAF8B+107] (C:\src\w\cr\src\v8\src\base\logging.cc:135)
v8::base::`anonymous namespace'::DefaultDcheckHandler [0x18BCACF6+22]
v8::Object::HasOwnProperty [0x094D6E16+342] (C:\src\w\cr\src\v8\src\api.cc:4857)
blink::`anonymous namespace'::GetScriptableObjectProperty<blink::V8HTMLObjectElement> [0x0A9A766D+541] (C:\src\w\cr\src\third_party\WebKit\Source\bindings\core\v8\custom\V8HTMLPlugInElementCustom.cpp:68)
blink::V8HTMLObjectElement::namedPropertyGetterCustom [0x0A9A7432+82] (C:\src\w\cr\src\third_party\WebKit\Source\bindings\core\v8\custom\V8HTMLPlugInElementCustom.cpp:133)
blink::V8HTMLObjectElement::namedPropertyGetterCallback [0x0D4B95D8+216] (C:\src\w\cr\src\out\debug\gen\blink\bindings\core\v8\V8HTMLObjectElement.cpp:961)
v8::internal::PropertyCallbackArguments::BasicCallNamedGetterCallback [0x09C93A18+392] (C:\src\w\cr\src\v8\src\api-arguments-inl.h:108)
v8::internal::PropertyCallbackArguments::CallNamedGetter [0x09C936FD+237] (C:\src\w\cr\src\v8\src\api-arguments-inl.h:85)
v8::internal::`anonymous namespace'::GetPropertyWithInterceptorInternal [0x09DAF0EE+366] (C:\src\w\cr\src\v8\src\objects.cc:1858)
v8::internal::JSObject::GetPropertyWithInterceptor [0x09DA953C+60] (C:\src\w\cr\src\v8\src\objects.cc:15753)
v8::internal::Object::GetProperty [0x09DA8EDE+78] (C:\src\w\cr\src\v8\src\objects.cc:1124)
v8::internal::LoadIC::Load [0x09C7A193+723] (C:\src\w\cr\src\v8\src\ic\ic.cc:461)
v8::internal::__RT_impl_Runtime_LoadIC_Miss [0x09C89FD1+321] (C:\src\w\cr\src\v8\src\ic\ic.cc:2083)
v8::internal::Runtime_LoadIC_Miss [0x09C89BF7+199] (C:\src\w\cr\src\v8\src\ic\ic.cc:2066)
,
Jan 26 2018
,
Jan 26 2018
,
Jan 26 2018
,
Jan 26 2018
,
Jan 28 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ce8bf10a5bef91198c0c36b653562eb97b03468b commit ce8bf10a5bef91198c0c36b653562eb97b03468b Author: Yoshifumi Inoue <yosin@chromium.org> Date: Sun Jan 28 23:56:36 2018 Make most HTML elements to support custom element This patch add [HTMLConstructor] IDL extend attribute[1] to interface declaration of all of HTML element except for below to support custom element. Following HTML elements are not supported by this patch - <canvas> [2] Blink IDL compiler issue - <embed> [3] Crash in V8 - <form> [4] Crash in Blink - <iframe> [2] Blink IDL compiler issue - <input> [2] Blink IDL compiler issue - <object> [5] Crash in V8 - <video> [2] Blink IDL compiler issue [1] https://html.spec.whatwg.org/multipage/dom.html#htmlconstructor [2] http://crbug.com/806163 Blink IDL compiler should ignore HTMLConstructor extended attribute [3] http://crbug.com/806184 HTMLEmbedElement.idl should have HTMLConstruct extend attribute [4] http://crbug.com/806185 HTMLFormElement.idl should have HTMLConstruct extend attribute [5] http://crbug.com/806187 HTMLObjectElement.idl should have HTMLConstruct extend attribute Bug: 805326 Change-Id: Iccd292766102dbcd3eebf3ec1fd044dc4ff266b5 Reviewed-on: https://chromium-review.googlesource.com/888228 Commit-Queue: Kent Tamura <tkent@chromium.org> Reviewed-by: Kent Tamura <tkent@chromium.org> Cr-Commit-Position: refs/heads/master@{#532297} [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/LayoutTests/external/wpt/custom-elements/builtin-coverage-expected.txt [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLAnchorElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLAreaElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLBRElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLBaseElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLBodyElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLDListElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLDetailsElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLDialogElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLDirectoryElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLFontElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLFrameElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLFrameSetElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLHRElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLHeadElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLHeadingElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLHtmlElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLImageElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLLIElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLLinkElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLMapElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLMarqueeElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLMenuElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLMetaElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLMeterElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLModElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLOListElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLParamElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLPictureElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLPreElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLProgressElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLQuoteElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLScriptElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLSlotElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLSourceElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLSpanElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLStyleElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLTableCaptionElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLTableCellElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLTableColElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLTableElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLTableRowElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLTableSectionElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLTemplateElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLTitleElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/HTMLUListElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/forms/HTMLButtonElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/forms/HTMLDataListElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/forms/HTMLFieldSetElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/forms/HTMLLabelElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/forms/HTMLLegendElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/forms/HTMLOptGroupElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/forms/HTMLOptionElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/forms/HTMLOutputElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/forms/HTMLSelectElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/forms/HTMLTextAreaElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/media/HTMLAudioElement.idl [modify] https://crrev.com/ce8bf10a5bef91198c0c36b653562eb97b03468b/third_party/WebKit/Source/core/html/track/HTMLTrackElement.idl
,
Jan 29 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fa5541a1e6531fdf299672c64590198b97d6ed11 commit fa5541a1e6531fdf299672c64590198b97d6ed11 Author: Yoshifumi Inoue <yosin@chromium.org> Date: Mon Jan 29 08:40:51 2018 Make CANVAS, INPUT, IFRAME and VIDEO elements to support custom element This patch adds [HTMLConstructor] IDL extend attribute[1] to interface declaration to following elements to support custom element: - <canvas> - <iframe> - <input> - <video> Note: This is a follow-up patch of the patch[1]. [1] http://crrev.com/888228 Make most HTML elements to support custom element Bug: 805326 Change-Id: Ib2ddf6f3436810df9cafb06f13026375ee4a61e9 Reviewed-on: https://chromium-review.googlesource.com/890570 Commit-Queue: Yoshifumi Inoue <yosin@chromium.org> Reviewed-by: Kent Tamura <tkent@chromium.org> Cr-Commit-Position: refs/heads/master@{#532353} [modify] https://crrev.com/fa5541a1e6531fdf299672c64590198b97d6ed11/third_party/WebKit/LayoutTests/external/wpt/custom-elements/builtin-coverage-expected.txt [modify] https://crrev.com/fa5541a1e6531fdf299672c64590198b97d6ed11/third_party/WebKit/LayoutTests/external/wpt/custom-elements/reactions/HTMLInputElement-expected.txt [modify] https://crrev.com/fa5541a1e6531fdf299672c64590198b97d6ed11/third_party/WebKit/Source/core/html/HTMLIFrameElement.idl [modify] https://crrev.com/fa5541a1e6531fdf299672c64590198b97d6ed11/third_party/WebKit/Source/core/html/canvas/HTMLCanvasElement.idl [modify] https://crrev.com/fa5541a1e6531fdf299672c64590198b97d6ed11/third_party/WebKit/Source/core/html/forms/HTMLInputElement.idl [modify] https://crrev.com/fa5541a1e6531fdf299672c64590198b97d6ed11/third_party/WebKit/Source/core/html/media/HTMLVideoElement.idl
,
Jan 31 2018
|
||||||||
►
Sign in to add a comment |
||||||||
Comment 1 by yosin@chromium.org
, Jan 26 2018Status: Started (was: Available)