| Differences between
and this patch
- a/Source/WebCore/ChangeLog +28 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2019-08-28  Rob Buis  <rbuis@igalia.com>
2
3
        Implement MathMLIDL / HTMLOrForeignElement
4
        https://bugs.webkit.org/show_bug.cgi?id=200470
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Test: imported/w3c/web-platform-tests/mathml/relations/html5-tree/html-or-foreign-element-interfaces.tentative.html
9
10
        * CMakeLists.txt:
11
        * DerivedSources-input.xcfilelist:
12
        * DerivedSources-output.xcfilelist:
13
        * DerivedSources.make:
14
        * Sources.txt:
15
        * WebCore.xcodeproj/project.pbxproj:
16
        * bindings/js/JSElementCustom.cpp:
17
        (WebCore::createNewElementWrapper):
18
        * bindings/js/JSNodeCustom.cpp:
19
        (WebCore::createWrapperInline):
20
        * dom/StaticRange.h:
21
        * html/HTMLElement.idl:
22
        * html/HTMLOrForeignElement.idl: Added.
23
        * mathml/MathMLElement.cpp:
24
        (WebCore::MathMLElement::parseAttribute):
25
        * mathml/MathMLElement.idl: Added.
26
        * mathml/mathtags.in:
27
        * svg/SVGElement.idl:
28
1
2019-08-28  Said Abou-Hallawa  <sabouhallawa@apple.com>
29
2019-08-28  Said Abou-Hallawa  <sabouhallawa@apple.com>
2
30
3
        SVG2: Add length, item getter and item setter to all SVG lists
31
        SVG2: Add length, item getter and item setter to all SVG lists
- a/Source/WebCore/CMakeLists.txt +3 lines
Lines 824-829 set(WebCore_NON_SVG_IDL_FILES a/Source/WebCore/CMakeLists.txt_sec1
824
    html/HTMLOptGroupElement.idl
824
    html/HTMLOptGroupElement.idl
825
    html/HTMLOptionElement.idl
825
    html/HTMLOptionElement.idl
826
    html/HTMLOptionsCollection.idl
826
    html/HTMLOptionsCollection.idl
827
    html/HTMLOrForeignElement.idl
827
    html/HTMLOutputElement.idl
828
    html/HTMLOutputElement.idl
828
    html/HTMLParagraphElement.idl
829
    html/HTMLParagraphElement.idl
829
    html/HTMLParamElement.idl
830
    html/HTMLParamElement.idl
Lines 904-909 set(WebCore_NON_SVG_IDL_FILES a/Source/WebCore/CMakeLists.txt_sec2
904
905
905
    loader/appcache/DOMApplicationCache.idl
906
    loader/appcache/DOMApplicationCache.idl
906
907
908
    mathml/MathMLElement.idl
909
907
    page/BarProp.idl
910
    page/BarProp.idl
908
    page/Crypto.idl
911
    page/Crypto.idl
909
    page/DOMSelection.idl
912
    page/DOMSelection.idl
- a/Source/WebCore/DerivedSources-input.xcfilelist +2 lines
Lines 712-717 $(PROJECT_DIR)/html/HTMLObjectElement.idl a/Source/WebCore/DerivedSources-input.xcfilelist_sec1
712
$(PROJECT_DIR)/html/HTMLOptGroupElement.idl
712
$(PROJECT_DIR)/html/HTMLOptGroupElement.idl
713
$(PROJECT_DIR)/html/HTMLOptionElement.idl
713
$(PROJECT_DIR)/html/HTMLOptionElement.idl
714
$(PROJECT_DIR)/html/HTMLOptionsCollection.idl
714
$(PROJECT_DIR)/html/HTMLOptionsCollection.idl
715
$(PROJECT_DIR)/html/HTMLOrForeignElement.idl
715
$(PROJECT_DIR)/html/HTMLOutputElement.idl
716
$(PROJECT_DIR)/html/HTMLOutputElement.idl
716
$(PROJECT_DIR)/html/HTMLParagraphElement.idl
717
$(PROJECT_DIR)/html/HTMLParagraphElement.idl
717
$(PROJECT_DIR)/html/HTMLParamElement.idl
718
$(PROJECT_DIR)/html/HTMLParamElement.idl
Lines 853-858 $(PROJECT_DIR)/inspector/InspectorAuditResourcesObject.idl a/Source/WebCore/DerivedSources-input.xcfilelist_sec2
853
$(PROJECT_DIR)/inspector/InspectorFrontendHost.idl
854
$(PROJECT_DIR)/inspector/InspectorFrontendHost.idl
854
$(PROJECT_DIR)/loader/appcache/DOMApplicationCache.idl
855
$(PROJECT_DIR)/loader/appcache/DOMApplicationCache.idl
855
$(PROJECT_DIR)/make-hash-tools.pl
856
$(PROJECT_DIR)/make-hash-tools.pl
857
$(PROJECT_DIR)/mathml/MathMLElement.idl
856
$(PROJECT_DIR)/mathml/mathattrs.in
858
$(PROJECT_DIR)/mathml/mathattrs.in
857
$(PROJECT_DIR)/mathml/mathtags.in
859
$(PROJECT_DIR)/mathml/mathtags.in
858
$(PROJECT_DIR)/page/BarProp.idl
860
$(PROJECT_DIR)/page/BarProp.idl
- a/Source/WebCore/DerivedSources-output.xcfilelist +4 lines
Lines 775-780 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLMeterElement.cpp a/Source/WebCore/DerivedSources-output.xcfilelist_sec1
775
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLMeterElement.h
775
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLMeterElement.h
776
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLModElement.cpp
776
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLModElement.cpp
777
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLModElement.h
777
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLModElement.h
778
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLOrForeignElement.cpp
779
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLOrForeignElement.h
778
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLOListElement.cpp
780
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLOListElement.cpp
779
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLOListElement.h
781
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLOListElement.h
780
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLObjectElement.cpp
782
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSHTMLObjectElement.cpp
Lines 927-932 $(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMallocStatistics.cpp a/Source/WebCore/DerivedSources-output.xcfilelist_sec2
927
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMallocStatistics.h
929
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMallocStatistics.h
928
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMathMLElementWrapperFactory.cpp
930
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMathMLElementWrapperFactory.cpp
929
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMathMLElementWrapperFactory.h
931
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMathMLElementWrapperFactory.h
932
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMathMLElement.cpp
933
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMathMLElement.h
930
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMediaCapabilities.cpp
934
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMediaCapabilities.cpp
931
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMediaCapabilities.h
935
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMediaCapabilities.h
932
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMediaCapabilitiesDecodingInfo.cpp
936
$(BUILT_PRODUCTS_DIR)/DerivedSources/WebCore/JSMediaCapabilitiesDecodingInfo.cpp
- a/Source/WebCore/DerivedSources.make +4 lines
Lines 78-83 VPATH = \ a/Source/WebCore/DerivedSources.make_sec1
78
    $(WebCore)/html/track \
78
    $(WebCore)/html/track \
79
    $(WebCore)/inspector \
79
    $(WebCore)/inspector \
80
    $(WebCore)/loader/appcache \
80
    $(WebCore)/loader/appcache \
81
    $(WebCore)/mathml \
81
    $(WebCore)/page \
82
    $(WebCore)/page \
82
    $(WebCore)/platform/network \
83
    $(WebCore)/platform/network \
83
    $(WebCore)/plugins \
84
    $(WebCore)/plugins \
Lines 716-721 JS_BINDING_IDLS = \ a/Source/WebCore/DerivedSources.make_sec2
716
    $(WebCore)/html/HTMLOptGroupElement.idl \
717
    $(WebCore)/html/HTMLOptGroupElement.idl \
717
    $(WebCore)/html/HTMLOptionElement.idl \
718
    $(WebCore)/html/HTMLOptionElement.idl \
718
    $(WebCore)/html/HTMLOptionsCollection.idl \
719
    $(WebCore)/html/HTMLOptionsCollection.idl \
720
    $(WebCore)/html/HTMLOrForeignElement.idl \
719
    $(WebCore)/html/HTMLOutputElement.idl \
721
    $(WebCore)/html/HTMLOutputElement.idl \
720
    $(WebCore)/html/HTMLParagraphElement.idl \
722
    $(WebCore)/html/HTMLParagraphElement.idl \
721
    $(WebCore)/html/HTMLParamElement.idl \
723
    $(WebCore)/html/HTMLParamElement.idl \
Lines 844-849 JS_BINDING_IDLS = \ a/Source/WebCore/DerivedSources.make_sec3
844
    $(WebCore)/html/track/VTTRegionList.idl \
846
    $(WebCore)/html/track/VTTRegionList.idl \
845
    $(WebCore)/html/track/VideoTrack.idl \
847
    $(WebCore)/html/track/VideoTrack.idl \
846
    $(WebCore)/html/track/VideoTrackList.idl \
848
    $(WebCore)/html/track/VideoTrackList.idl \
849
    $(WebCore)/mathml/MathMLElement.idl \
847
    $(WebCore)/inspector/CommandLineAPIHost.idl \
850
    $(WebCore)/inspector/CommandLineAPIHost.idl \
848
    $(WebCore)/inspector/InspectorAuditAccessibilityObject.idl \
851
    $(WebCore)/inspector/InspectorAuditAccessibilityObject.idl \
849
    $(WebCore)/inspector/InspectorAuditDOMObject.idl \
852
    $(WebCore)/inspector/InspectorAuditDOMObject.idl \
Lines 1679-1684 IDL_INCLUDES = \ a/Source/WebCore/DerivedSources.make_sec4
1679
    $(WebCore)/html/track \
1682
    $(WebCore)/html/track \
1680
    $(WebCore)/inspector \
1683
    $(WebCore)/inspector \
1681
    $(WebCore)/loader/appcache \
1684
    $(WebCore)/loader/appcache \
1685
    $(WebCore)/mathml \
1682
    $(WebCore)/page \
1686
    $(WebCore)/page \
1683
    $(WebCore)/plugins \
1687
    $(WebCore)/plugins \
1684
    $(WebCore)/storage \
1688
    $(WebCore)/storage \
- a/Source/WebCore/Sources.txt -1 / +4 lines
Lines 2560-2567 StylePropertyShorthandFunctions.cpp a/Source/WebCore/Sources.txt_sec1
2560
UserAgentStyleSheetsData.cpp
2560
UserAgentStyleSheetsData.cpp
2561
WebCoreJSBuiltinInternals.cpp
2561
WebCoreJSBuiltinInternals.cpp
2562
WebCoreJSBuiltins.cpp
2562
WebCoreJSBuiltins.cpp
2563
JSSVGElementWrapperFactory.cpp
2564
JSHTMLElementWrapperFactory.cpp
2563
JSHTMLElementWrapperFactory.cpp
2564
JSMathMLElementWrapperFactory.cpp
2565
JSSVGElementWrapperFactory.cpp
2565
2566
2566
// IDL bindings
2567
// IDL bindings
2567
// FIXME: We should probably move these into ${DerivedSources}/bindings/js/ so they get bundled with the custom bindings.
2568
// FIXME: We should probably move these into ${DerivedSources}/bindings/js/ so they get bundled with the custom bindings.
Lines 2889-2894 JSHTMLMenuItemElement.cpp a/Source/WebCore/Sources.txt_sec2
2889
JSHTMLMetaElement.cpp
2890
JSHTMLMetaElement.cpp
2890
JSHTMLMeterElement.cpp
2891
JSHTMLMeterElement.cpp
2891
JSHTMLModElement.cpp
2892
JSHTMLModElement.cpp
2893
JSHTMLOrForeignElement.cpp
2892
JSHTMLOListElement.cpp
2894
JSHTMLOListElement.cpp
2893
JSHTMLObjectElement.cpp
2895
JSHTMLObjectElement.cpp
2894
JSHTMLOptGroupElement.cpp
2896
JSHTMLOptGroupElement.cpp
Lines 2925-2930 JSHashChangeEvent.cpp a/Source/WebCore/Sources.txt_sec3
2925
JSHistory.cpp
2927
JSHistory.cpp
2926
JSHkdfParams.cpp
2928
JSHkdfParams.cpp
2927
JSHmacKeyParams.cpp
2929
JSHmacKeyParams.cpp
2930
JSMathMLElement.cpp
2928
JSIDBCursor.cpp
2931
JSIDBCursor.cpp
2929
JSIDBCursorDirection.cpp
2932
JSIDBCursorDirection.cpp
2930
JSIDBCursorWithValue.cpp
2933
JSIDBCursorWithValue.cpp
- a/Source/WebCore/WebCore.xcodeproj/project.pbxproj +24 lines
Lines 11978-11983 a/Source/WebCore/WebCore.xcodeproj/project.pbxproj_sec1
11978
		AA4C3A740B2B1679002334A2 /* InlineStyleSheetOwner.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = InlineStyleSheetOwner.cpp; sourceTree = "<group>"; };
11978
		AA4C3A740B2B1679002334A2 /* InlineStyleSheetOwner.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = InlineStyleSheetOwner.cpp; sourceTree = "<group>"; };
11979
		AA4C3A750B2B1679002334A2 /* InlineStyleSheetOwner.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = InlineStyleSheetOwner.h; sourceTree = "<group>"; };
11979
		AA4C3A750B2B1679002334A2 /* InlineStyleSheetOwner.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = InlineStyleSheetOwner.h; sourceTree = "<group>"; };
11980
		AA5F3B9016CC5BEB00455EB0 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
11980
		AA5F3B9016CC5BEB00455EB0 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
11981
		AA61BB5223167473002FE25A /* JSMathMLElementWrapperFactory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JSMathMLElementWrapperFactory.cpp; path = DerivedSources/WebCore/JSMathMLElementWrapperFactory.cpp; sourceTree = BUILT_PRODUCTS_DIR; };
11982
		AA61BB5423167474002FE25A /* JSMathMLElementWrapperFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JSMathMLElementWrapperFactory.h; path = DerivedSources/WebCore/JSMathMLElementWrapperFactory.h; sourceTree = BUILT_PRODUCTS_DIR; };
11981
		AA7FEE9C16A4E6F3004C0C33 /* JSSpeechSynthesis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSpeechSynthesis.cpp; sourceTree = "<group>"; };
11983
		AA7FEE9C16A4E6F3004C0C33 /* JSSpeechSynthesis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSpeechSynthesis.cpp; sourceTree = "<group>"; };
11982
		AA7FEE9E16A4E6F3004C0C33 /* JSSpeechSynthesisUtterance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSpeechSynthesisUtterance.cpp; sourceTree = "<group>"; };
11984
		AA7FEE9E16A4E6F3004C0C33 /* JSSpeechSynthesisUtterance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSpeechSynthesisUtterance.cpp; sourceTree = "<group>"; };
11983
		AA7FEE9F16A4E6F3004C0C33 /* JSSpeechSynthesisUtterance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSSpeechSynthesisUtterance.h; sourceTree = "<group>"; };
11985
		AA7FEE9F16A4E6F3004C0C33 /* JSSpeechSynthesisUtterance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSSpeechSynthesisUtterance.h; sourceTree = "<group>"; };
Lines 11990-11995 a/Source/WebCore/WebCore.xcodeproj/project.pbxproj_sec2
11990
		AAA728F316D1D8BC00D3BBC6 /* AXObjectCacheIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AXObjectCacheIOS.mm; sourceTree = "<group>"; };
11992
		AAA728F316D1D8BC00D3BBC6 /* AXObjectCacheIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AXObjectCacheIOS.mm; sourceTree = "<group>"; };
11991
		AAC08CF015F941FC00F1E188 /* AccessibilitySVGRoot.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AccessibilitySVGRoot.cpp; sourceTree = "<group>"; };
11993
		AAC08CF015F941FC00F1E188 /* AccessibilitySVGRoot.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AccessibilitySVGRoot.cpp; sourceTree = "<group>"; };
11992
		AAC08CF115F941FC00F1E188 /* AccessibilitySVGRoot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilitySVGRoot.h; sourceTree = "<group>"; };
11994
		AAC08CF115F941FC00F1E188 /* AccessibilitySVGRoot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilitySVGRoot.h; sourceTree = "<group>"; };
11995
		AACC83D42316568700EB6BF5 /* MathMLElement.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = MathMLElement.idl; sourceTree = "<group>"; };
11996
		AACC83D62316569E00EB6BF5 /* HTMLOrForeignElement.idl */ = {isa = PBXFileReference; lastKnownFileType = text; path = HTMLOrForeignElement.idl; sourceTree = "<group>"; };
11997
		AACC83D72316576A00EB6BF5 /* JSHTMLOrForeignElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JSHTMLOrForeignElement.h; sourceTree = "<group>"; };
11998
		AACC83D82316576B00EB6BF5 /* JSHTMLOrForeignElement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLOrForeignElement.cpp; sourceTree = "<group>"; };
11999
		AACC83DA231657EC00EB6BF5 /* JSMathMLElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JSMathMLElement.h; sourceTree = "<group>"; };
12000
		AACC83DB2316583200EB6BF5 /* JSMathMLElement.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = JSMathMLElement.cpp; sourceTree = "<group>"; };
11993
		AAE27B7416CBFC0D00623043 /* PlatformSpeechSynthesizerMock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlatformSpeechSynthesizerMock.cpp; sourceTree = "<group>"; };
12001
		AAE27B7416CBFC0D00623043 /* PlatformSpeechSynthesizerMock.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlatformSpeechSynthesizerMock.cpp; sourceTree = "<group>"; };
11994
		AAE27B7516CBFC0D00623043 /* PlatformSpeechSynthesizerMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformSpeechSynthesizerMock.h; sourceTree = "<group>"; };
12002
		AAE27B7516CBFC0D00623043 /* PlatformSpeechSynthesizerMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformSpeechSynthesizerMock.h; sourceTree = "<group>"; };
11995
		AAE3755D17429BCC006200C2 /* PlatformSpeechSynthesizerIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PlatformSpeechSynthesizerIOS.mm; sourceTree = "<group>"; };
12003
		AAE3755D17429BCC006200C2 /* PlatformSpeechSynthesizerIOS.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PlatformSpeechSynthesizerIOS.mm; sourceTree = "<group>"; };
Lines 16504-16509 a/Source/WebCore/WebCore.xcodeproj/project.pbxproj_sec3
16504
				7C330A041DF9F93B00D3395C /* Geolocation */,
16512
				7C330A041DF9F93B00D3395C /* Geolocation */,
16505
				A83B79080CCAFF2B000B0825 /* HTML */,
16513
				A83B79080CCAFF2B000B0825 /* HTML */,
16506
				1C5FAECA0DCFD8C900D58F78 /* Inspector */,
16514
				1C5FAECA0DCFD8C900D58F78 /* Inspector */,
16515
				AACC83D92316578600EB6BF5 /* MATHML */,
16507
				CDAB6D2A17C7E97D00C60B34 /* MediaControls */,
16516
				CDAB6D2A17C7E97D00C60B34 /* MediaControls */,
16508
				CD61FE7B1794CA02004101EB /* MediaSource */,
16517
				CD61FE7B1794CA02004101EB /* MediaSource */,
16509
				07CFD99317D01405001C4FFC /* MediaStream */,
16518
				07CFD99317D01405001C4FFC /* MediaStream */,
Lines 19840-19845 a/Source/WebCore/WebCore.xcodeproj/project.pbxproj_sec4
19840
				1C24EEA71C72A7B40080F8FC /* JSFontFaceSet.h */,
19849
				1C24EEA71C72A7B40080F8FC /* JSFontFaceSet.h */,
19841
				938E65F609F0985D008A48EC /* JSHTMLElementWrapperFactory.cpp */,
19850
				938E65F609F0985D008A48EC /* JSHTMLElementWrapperFactory.cpp */,
19842
				938E65F009F09840008A48EC /* JSHTMLElementWrapperFactory.h */,
19851
				938E65F009F09840008A48EC /* JSHTMLElementWrapperFactory.h */,
19852
				AA61BB5223167473002FE25A /* JSMathMLElementWrapperFactory.cpp */,
19853
				AA61BB5423167474002FE25A /* JSMathMLElementWrapperFactory.h */,
19843
				8574D1F10ADE6122004CBA11 /* JSSVGElementWrapperFactory.cpp */,
19854
				8574D1F10ADE6122004CBA11 /* JSSVGElementWrapperFactory.cpp */,
19844
				8574D1F20ADE6122004CBA11 /* JSSVGElementWrapperFactory.h */,
19855
				8574D1F20ADE6122004CBA11 /* JSSVGElementWrapperFactory.h */,
19845
				FABE72FB1059C21100D999DD /* MathMLElementFactory.cpp */,
19856
				FABE72FB1059C21100D999DD /* MathMLElementFactory.cpp */,
Lines 21525-21530 a/Source/WebCore/WebCore.xcodeproj/project.pbxproj_sec5
21525
				9327A94109968D1A0068A546 /* HTMLOptionsCollection.cpp */,
21536
				9327A94109968D1A0068A546 /* HTMLOptionsCollection.cpp */,
21526
				A81369BE097374F500D74463 /* HTMLOptionsCollection.h */,
21537
				A81369BE097374F500D74463 /* HTMLOptionsCollection.h */,
21527
				85DF2F920AA3C9B600AD64C5 /* HTMLOptionsCollection.idl */,
21538
				85DF2F920AA3C9B600AD64C5 /* HTMLOptionsCollection.idl */,
21539
				AACC83D62316569E00EB6BF5 /* HTMLOrForeignElement.idl */,
21528
				4AD01005127E642A0015035F /* HTMLOutputElement.cpp */,
21540
				4AD01005127E642A0015035F /* HTMLOutputElement.cpp */,
21529
				4AD01006127E642A0015035F /* HTMLOutputElement.h */,
21541
				4AD01006127E642A0015035F /* HTMLOutputElement.h */,
21530
				4AD01007127E642A0015035F /* HTMLOutputElement.idl */,
21542
				4AD01007127E642A0015035F /* HTMLOutputElement.idl */,
Lines 22795-22800 a/Source/WebCore/WebCore.xcodeproj/project.pbxproj_sec6
22795
				A80E7E8F0A1A83E3007FB8C5 /* JSHTMLOptionElement.h */,
22807
				A80E7E8F0A1A83E3007FB8C5 /* JSHTMLOptionElement.h */,
22796
				448A29BE0A46D9CB0030759F /* JSHTMLOptionsCollection.cpp */,
22808
				448A29BE0A46D9CB0030759F /* JSHTMLOptionsCollection.cpp */,
22797
				448A29BD0A46D9CB0030759F /* JSHTMLOptionsCollection.h */,
22809
				448A29BD0A46D9CB0030759F /* JSHTMLOptionsCollection.h */,
22810
				AACC83D82316576B00EB6BF5 /* JSHTMLOrForeignElement.cpp */,
22811
				AACC83D72316576A00EB6BF5 /* JSHTMLOrForeignElement.h */,
22798
				4AD0173A127E82860015035F /* JSHTMLOutputElement.cpp */,
22812
				4AD0173A127E82860015035F /* JSHTMLOutputElement.cpp */,
22799
				4AD0173B127E82860015035F /* JSHTMLOutputElement.h */,
22813
				4AD0173B127E82860015035F /* JSHTMLOutputElement.h */,
22800
				1AE2AB9E0A1CE90500B42B25 /* JSHTMLParagraphElement.cpp */,
22814
				1AE2AB9E0A1CE90500B42B25 /* JSHTMLParagraphElement.cpp */,
Lines 23778-23783 a/Source/WebCore/WebCore.xcodeproj/project.pbxproj_sec7
23778
			path = ios;
23792
			path = ios;
23779
			sourceTree = "<group>";
23793
			sourceTree = "<group>";
23780
		};
23794
		};
23795
		AACC83D92316578600EB6BF5 /* MATHML */ = {
23796
			isa = PBXGroup;
23797
			children = (
23798
				AACC83DB2316583200EB6BF5 /* JSMathMLElement.cpp */,
23799
				AACC83DA231657EC00EB6BF5 /* JSMathMLElement.h */,
23800
			);
23801
			name = MATHML;
23802
			sourceTree = "<group>";
23803
		};
23781
		B1A942DD15B5CE2200D525D1 /* mediasource */ = {
23804
		B1A942DD15B5CE2200D525D1 /* mediasource */ = {
23782
			isa = PBXGroup;
23805
			isa = PBXGroup;
23783
			children = (
23806
			children = (
Lines 27798-27803 a/Source/WebCore/WebCore.xcodeproj/project.pbxproj_sec8
27798
				FABE72EE1059C1EB00D888CC /* MathMLAnnotationElement.h */,
27821
				FABE72EE1059C1EB00D888CC /* MathMLAnnotationElement.h */,
27799
				FABE72ED1059C1EB00D999DD /* MathMLElement.cpp */,
27822
				FABE72ED1059C1EB00D999DD /* MathMLElement.cpp */,
27800
				FABE72EE1059C1EB00D999DD /* MathMLElement.h */,
27823
				FABE72EE1059C1EB00D999DD /* MathMLElement.h */,
27824
				AACC83D42316568700EB6BF5 /* MathMLElement.idl */,
27801
				0BCF83EF1059C1EB00D999DD /* MathMLFractionElement.cpp */,
27825
				0BCF83EF1059C1EB00D999DD /* MathMLFractionElement.cpp */,
27802
				0BCF83F01059C1EB00D999DD /* MathMLFractionElement.h */,
27826
				0BCF83F01059C1EB00D999DD /* MathMLFractionElement.h */,
27803
				FABE72F11059C1EB00D999DD /* MathMLMathElement.cpp */,
27827
				FABE72F11059C1EB00D999DD /* MathMLMathElement.cpp */,
- a/Source/WebCore/bindings/js/JSElementCustom.cpp +4 lines
Lines 36-43 a/Source/WebCore/bindings/js/JSElementCustom.cpp_sec1
36
#include "JSAttr.h"
36
#include "JSAttr.h"
37
#include "JSDOMBinding.h"
37
#include "JSDOMBinding.h"
38
#include "JSHTMLElementWrapperFactory.h"
38
#include "JSHTMLElementWrapperFactory.h"
39
#include "JSMathMLElementWrapperFactory.h"
39
#include "JSNodeList.h"
40
#include "JSNodeList.h"
40
#include "JSSVGElementWrapperFactory.h"
41
#include "JSSVGElementWrapperFactory.h"
42
#include "MathMLElement.h"
41
#include "NodeList.h"
43
#include "NodeList.h"
42
#include "SVGElement.h"
44
#include "SVGElement.h"
43
45
Lines 53-58 static JSValue createNewElementWrapper(JSDOMGlobalObject* globalObject, Ref<Elem a/Source/WebCore/bindings/js/JSElementCustom.cpp_sec2
53
        return createJSHTMLWrapper(globalObject, static_reference_cast<HTMLElement>(WTFMove(element)));
55
        return createJSHTMLWrapper(globalObject, static_reference_cast<HTMLElement>(WTFMove(element)));
54
    if (is<SVGElement>(element))
56
    if (is<SVGElement>(element))
55
        return createJSSVGWrapper(globalObject, static_reference_cast<SVGElement>(WTFMove(element)));
57
        return createJSSVGWrapper(globalObject, static_reference_cast<SVGElement>(WTFMove(element)));
58
    if (is<MathMLElement>(element))
59
        return createJSMathMLWrapper(globalObject, static_reference_cast<MathMLElement>(WTFMove(element)));
56
    return createWrapper<Element>(globalObject, WTFMove(element));
60
    return createWrapper<Element>(globalObject, WTFMove(element));
57
}
61
}
58
62
- a/Source/WebCore/bindings/js/JSNodeCustom.cpp +4 lines
Lines 51-60 a/Source/WebCore/bindings/js/JSNodeCustom.cpp_sec1
51
#include "JSEventListener.h"
51
#include "JSEventListener.h"
52
#include "JSHTMLElement.h"
52
#include "JSHTMLElement.h"
53
#include "JSHTMLElementWrapperFactory.h"
53
#include "JSHTMLElementWrapperFactory.h"
54
#include "JSMathMLElementWrapperFactory.h"
54
#include "JSProcessingInstruction.h"
55
#include "JSProcessingInstruction.h"
55
#include "JSSVGElementWrapperFactory.h"
56
#include "JSSVGElementWrapperFactory.h"
56
#include "JSShadowRoot.h"
57
#include "JSShadowRoot.h"
57
#include "JSText.h"
58
#include "JSText.h"
59
#include "MathMLElement.h"
58
#include "Node.h"
60
#include "Node.h"
59
#include "ProcessingInstruction.h"
61
#include "ProcessingInstruction.h"
60
#include "RegisteredEventListener.h"
62
#include "RegisteredEventListener.h"
Lines 150-155 static ALWAYS_INLINE JSValue createWrapperInline(ExecState* exec, JSDOMGlobalObj a/Source/WebCore/bindings/js/JSNodeCustom.cpp_sec2
150
                wrapper = createJSHTMLWrapper(globalObject, static_reference_cast<HTMLElement>(WTFMove(node)));
152
                wrapper = createJSHTMLWrapper(globalObject, static_reference_cast<HTMLElement>(WTFMove(node)));
151
            else if (is<SVGElement>(node))
153
            else if (is<SVGElement>(node))
152
                wrapper = createJSSVGWrapper(globalObject, static_reference_cast<SVGElement>(WTFMove(node)));
154
                wrapper = createJSSVGWrapper(globalObject, static_reference_cast<SVGElement>(WTFMove(node)));
155
            else if (is<MathMLElement>(node))
156
                wrapper = createJSMathMLWrapper(globalObject, static_reference_cast<MathMLElement>(WTFMove(node)));
153
            else
157
            else
154
                wrapper = createWrapper<Element>(globalObject, WTFMove(node));
158
                wrapper = createWrapper<Element>(globalObject, WTFMove(node));
155
            break;
159
            break;
- a/Source/WebCore/dom/StaticRange.h +1 lines
Lines 25-30 a/Source/WebCore/dom/StaticRange.h_sec1
25
25
26
#pragma once
26
#pragma once
27
27
28
#include "ExceptionOr.h"
28
#include <wtf/Ref.h>
29
#include <wtf/Ref.h>
29
#include <wtf/RefCounted.h>
30
#include <wtf/RefCounted.h>
30
31
- a/Source/WebCore/html/HTMLElement.idl -4 / +1 lines
Lines 29-42 a/Source/WebCore/html/HTMLElement.idl_sec1
29
    [CEReactions, Reflect] attribute DOMString lang;
29
    [CEReactions, Reflect] attribute DOMString lang;
30
    [CEReactions] attribute boolean translate;
30
    [CEReactions] attribute boolean translate;
31
    [CEReactions] attribute DOMString dir;
31
    [CEReactions] attribute DOMString dir;
32
    readonly attribute DOMStringMap dataset; // FIXME: Should be [SameObject].
33
32
34
    // User interaction.
33
    // User interaction.
35
    [CEReactions, Reflect] attribute boolean hidden;
34
    [CEReactions, Reflect] attribute boolean hidden;
36
    void click();
35
    void click();
37
    [CEReactions, ImplementedAs=tabIndexForBindings] attribute long tabIndex;
38
    void focus();
39
    void blur();
40
    [CEReactions, Reflect] attribute DOMString accessKey;
36
    [CEReactions, Reflect] attribute DOMString accessKey;
41
    // readonly attribute DOMString accessKeyLabel; // FIXME: Not supported.
37
    // readonly attribute DOMString accessKeyLabel; // FIXME: Not supported.
42
    [CEReactions] attribute boolean draggable;
38
    [CEReactions] attribute boolean draggable;
Lines 73-75 a/Source/WebCore/html/HTMLElement.idl_sec2
73
69
74
HTMLElement implements ElementCSSInlineStyle;
70
HTMLElement implements ElementCSSInlineStyle;
75
HTMLElement implements GlobalEventHandlers;
71
HTMLElement implements GlobalEventHandlers;
72
HTMLElement implements HTMLOrForeignElement;
- a/Source/WebCore/html/HTMLOrForeignElement.idl +35 lines
Line 0 a/Source/WebCore/html/HTMLOrForeignElement.idl_sec1
1
/*
2
 * Copyright (C) 2019 Igalia S.L. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 * 1. Redistributions of source code must retain the above copyright
8
 *    notice, this list of conditions and the following disclaimer.
9
 * 2. Redistributions in binary form must reproduce the above copyright
10
 *    notice, this list of conditions and the following disclaimer in the
11
 *    documentation and/or other materials provided with the distribution.
12
 *
13
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
17
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21
 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
// https://html.spec.whatwg.org/multipage/dom.html#htmlorsvgelement
27
// https://github.com/whatwg/html/issues/4702
28
[
29
    NoInterfaceObject,
30
] interface HTMLOrForeignElement {
31
  readonly attribute DOMStringMap dataset; // FIXME: Should be [SameObject].
32
  [CEReactions, ImplementedAs=tabIndexForBindings] attribute long tabIndex;
33
  void focus();
34
  void blur();
35
};
- a/Source/WebCore/mathml/MathMLElement.cpp -4 / +28 lines
Lines 34-39 a/Source/WebCore/mathml/MathMLElement.cpp_sec1
34
#include "EventHandler.h"
34
#include "EventHandler.h"
35
#include "FrameLoader.h"
35
#include "FrameLoader.h"
36
#include "HTMLAnchorElement.h"
36
#include "HTMLAnchorElement.h"
37
#include "HTMLElement.h"
38
#include "HTMLNames.h"
37
#include "HTMLParserIdioms.h"
39
#include "HTMLParserIdioms.h"
38
#include "MathMLNames.h"
40
#include "MathMLNames.h"
39
#include "MouseEvent.h"
41
#include "MouseEvent.h"
Lines 81-94 void MathMLElement::parseAttribute(const QualifiedName& name, const AtomString& a/Source/WebCore/mathml/MathMLElement.cpp_sec2
81
        setIsLink(!value.isNull() && !shouldProhibitLinks(this));
83
        setIsLink(!value.isNull() && !shouldProhibitLinks(this));
82
        if (wasLink != isLink())
84
        if (wasLink != isLink())
83
            invalidateStyleForSubtree();
85
            invalidateStyleForSubtree();
84
    } else if (name == rowspanAttr) {
86
        return;
87
    }
88
89
    if (name == rowspanAttr) {
85
        if (is<RenderTableCell>(renderer()) && hasTagName(mtdTag))
90
        if (is<RenderTableCell>(renderer()) && hasTagName(mtdTag))
86
            downcast<RenderTableCell>(*renderer()).colSpanOrRowSpanChanged();
91
            downcast<RenderTableCell>(*renderer()).colSpanOrRowSpanChanged();
87
    } else if (name == columnspanAttr) {
92
        return;
93
    }
94
95
    if (name == columnspanAttr) {
88
        if (is<RenderTableCell>(renderer()) && hasTagName(mtdTag))
96
        if (is<RenderTableCell>(renderer()) && hasTagName(mtdTag))
89
            downcast<RenderTableCell>(renderer())->colSpanOrRowSpanChanged();
97
            downcast<RenderTableCell>(renderer())->colSpanOrRowSpanChanged();
90
    } else
98
        return;
91
        StyledElement::parseAttribute(name, value);
99
    }
100
101
    if (name == HTMLNames::tabindexAttr) {
102
        if (value.isEmpty())
103
            clearTabIndexExplicitlyIfNeeded();
104
        else if (auto optionalTabIndex = parseHTMLInteger(value))
105
            setTabIndexExplicitly(optionalTabIndex.value());
106
        return;
107
    }
108
109
    auto& eventName = HTMLElement::eventNameForEventHandlerAttribute(name);
110
    if (!eventName.isNull()) {
111
        setAttributeEventListener(eventName, name, value);
112
        return;
113
    }
114
115
    StyledElement::parseAttribute(name, value);
92
}
116
}
93
117
94
bool MathMLElement::isPresentationAttribute(const QualifiedName& name) const
118
bool MathMLElement::isPresentationAttribute(const QualifiedName& name) const
- a/Source/WebCore/mathml/MathMLElement.idl +33 lines
Line 0 a/Source/WebCore/mathml/MathMLElement.idl_sec1
1
/*
2
 * Copyright (C) 2019 Igalia S.L. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 * 1. Redistributions of source code must retain the above copyright
8
 *    notice, this list of conditions and the following disclaimer.
9
 * 2. Redistributions in binary form must reproduce the above copyright
10
 *    notice, this list of conditions and the following disclaimer in the
11
 *    documentation and/or other materials provided with the distribution.
12
 *
13
 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
17
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21
 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
[
27
    JSGenerateToNativeObject,
28
] interface MathMLElement : Element { };
29
30
MathMLElement implements ElementCSSInlineStyle;
31
MathMLElement implements GlobalEventHandlers;
32
MathMLElement implements DocumentAndElementEventHandlers;
33
MathMLElement implements HTMLOrForeignElement;
- a/Source/WebCore/mathml/mathtags.in -44 / +45 lines
Lines 2-50 namespace="MathML" a/Source/WebCore/mathml/mathtags.in_sec1
2
namespaceURI="http://www.w3.org/1998/Math/MathML"
2
namespaceURI="http://www.w3.org/1998/Math/MathML"
3
guardFactoryWith="ENABLE(MATHML)"
3
guardFactoryWith="ENABLE(MATHML)"
4
fallbackInterfaceName="MathMLUnknownElement"
4
fallbackInterfaceName="MathMLUnknownElement"
5
fallbackJSInterfaceName="MathMLElement"
5
6
6
annotation interfaceName=MathMLAnnotationElement
7
annotation interfaceName=MathMLAnnotationElement, JSInterfaceName=MathMLElement
7
annotation-xml interfaceName=MathMLAnnotationElement
8
annotation-xml interfaceName=MathMLAnnotationElement, JSInterfaceName=MathMLElement
8
maction interfaceName=MathMLSelectElement
9
maction interfaceName=MathMLSelectElement, JSInterfaceName=MathMLElement
9
math
10
math JSInterfaceName=MathMLElement
10
mfrac interfaceName=MathMLFractionElement
11
mfrac interfaceName=MathMLFractionElement, JSInterfaceName=MathMLElement
11
mfenced interfaceName=MathMLRowElement
12
mfenced interfaceName=MathMLRowElement, JSInterfaceName=MathMLElement
12
msubsup interfaceName=MathMLScriptsElement
13
msubsup interfaceName=MathMLScriptsElement, JSInterfaceName=MathMLElement
13
merror interfaceName=MathMLRowElement
14
merror interfaceName=MathMLRowElement, JSInterfaceName=MathMLElement
14
mpadded interfaceName=MathMLPaddedElement
15
mpadded interfaceName=MathMLPaddedElement, JSInterfaceName=MathMLElement
15
mphantom interfaceName=MathMLRowElement
16
mphantom interfaceName=MathMLRowElement, JSInterfaceName=MathMLElement
16
mrow interfaceName=MathMLRowElement
17
mrow interfaceName=MathMLRowElement, JSInterfaceName=MathMLElement
17
mstyle interfaceName=MathMLRowElement
18
mstyle interfaceName=MathMLRowElement, JSInterfaceName=MathMLElement
18
mover interfaceName=MathMLUnderOverElement
19
mover interfaceName=MathMLUnderOverElement, JSInterfaceName=MathMLElement
19
munder interfaceName=MathMLUnderOverElement
20
munder interfaceName=MathMLUnderOverElement, JSInterfaceName=MathMLElement
20
munderover interfaceName=MathMLUnderOverElement
21
munderover interfaceName=MathMLUnderOverElement, JSInterfaceName=MathMLElement
21
msqrt interfaceName=MathMLRootElement
22
msqrt interfaceName=MathMLRootElement, JSInterfaceName=MathMLElement
22
mroot interfaceName=MathMLRootElement
23
mroot interfaceName=MathMLRootElement, JSInterfaceName=MathMLElement
23
mi interfaceName=MathMLTokenElement
24
mi interfaceName=MathMLTokenElement, JSInterfaceName=MathMLElement
24
mn interfaceName=MathMLTokenElement
25
mn interfaceName=MathMLTokenElement, JSInterfaceName=MathMLElement
25
mo interfaceName=MathMLOperatorElement
26
mo interfaceName=MathMLOperatorElement, JSInterfaceName=MathMLElement
26
mtext interfaceName=MathMLTokenElement
27
mtext interfaceName=MathMLTokenElement, JSInterfaceName=MathMLElement
27
ms interfaceName=MathMLTokenElement
28
ms interfaceName=MathMLTokenElement, JSInterfaceName=MathMLElement
28
mspace interfaceName=MathMLSpaceElement
29
mspace interfaceName=MathMLSpaceElement, JSInterfaceName=MathMLElement
29
msub interfaceName=MathMLScriptsElement
30
msub interfaceName=MathMLScriptsElement, JSInterfaceName=MathMLElement
30
msup interfaceName=MathMLScriptsElement
31
msup interfaceName=MathMLScriptsElement, JSInterfaceName=MathMLElement
31
mtable interfaceName=MathMLPresentationElement
32
mtable interfaceName=MathMLPresentationElement, JSInterfaceName=MathMLElement
32
mtr interfaceName=MathMLPresentationElement
33
mtr interfaceName=MathMLPresentationElement, JSInterfaceName=MathMLElement
33
mtd interfaceName=MathMLPresentationElement
34
mtd interfaceName=MathMLPresentationElement, JSInterfaceName=MathMLElement
34
mmultiscripts interfaceName=MathMLScriptsElement
35
mmultiscripts interfaceName=MathMLScriptsElement, JSInterfaceName=MathMLElement
35
mprescripts interfaceName=MathMLPresentationElement
36
mprescripts interfaceName=MathMLPresentationElement, JSInterfaceName=MathMLElement
36
menclose interfaceName=MathMLMencloseElement
37
menclose interfaceName=MathMLMencloseElement, JSInterfaceName=MathMLElement
37
none interfaceName=MathMLPresentationElement
38
none interfaceName=MathMLPresentationElement, JSInterfaceName=MathMLElement
38
semantics interfaceName=MathMLSelectElement
39
semantics interfaceName=MathMLSelectElement, JSInterfaceName=MathMLElement
39
40
40
maligngroup interfaceName=MathMLPresentationElement
41
maligngroup interfaceName=MathMLPresentationElement, JSInterfaceName=MathMLElement
41
malignmark interfaceName=MathMLPresentationElement
42
malignmark interfaceName=MathMLPresentationElement, JSInterfaceName=MathMLElement
42
mglyph interfaceName=MathMLPresentationElement
43
mglyph interfaceName=MathMLPresentationElement, JSInterfaceName=MathMLElement
43
mlabeledtr interfaceName=MathMLPresentationElement
44
mlabeledtr interfaceName=MathMLPresentationElement, JSInterfaceName=MathMLElement
44
mlongdiv interfaceName=MathMLPresentationElement
45
mlongdiv interfaceName=MathMLPresentationElement, JSInterfaceName=MathMLElement
45
mscarries interfaceName=MathMLPresentationElement
46
mscarries interfaceName=MathMLPresentationElement, JSInterfaceName=MathMLElement
46
mscarry interfaceName=MathMLPresentationElement
47
mscarry interfaceName=MathMLPresentationElement, JSInterfaceName=MathMLElement
47
msgroup interfaceName=MathMLPresentationElement
48
msgroup interfaceName=MathMLPresentationElement, JSInterfaceName=MathMLElement
48
msline interfaceName=MathMLPresentationElement
49
msline interfaceName=MathMLPresentationElement, JSInterfaceName=MathMLElement
49
msrow interfaceName=MathMLPresentationElement
50
msrow interfaceName=MathMLPresentationElement, JSInterfaceName=MathMLElement
50
mstack interfaceName=MathMLPresentationElement
51
mstack interfaceName=MathMLPresentationElement, JSInterfaceName=MathMLElement
- a/Source/WebCore/svg/SVGElement.idl -7 / +1 lines
Lines 31-47 a/Source/WebCore/svg/SVGElement.idl_sec1
31
31
32
    readonly attribute SVGAnimatedString className;
32
    readonly attribute SVGAnimatedString className;
33
33
34
    [CEReactions=NotNeeded, ImplementedAs=tabIndexForBindings] attribute long tabIndex;
35
36
    // FIXME: Using "undefined" as default parameter value is wrong.
34
    // FIXME: Using "undefined" as default parameter value is wrong.
37
    // This method is deprecated, and we'd like to remove it someday.
35
    // This method is deprecated, and we'd like to remove it someday.
38
    DeprecatedCSSOMValue getPresentationAttribute(optional DOMString name = "undefined");
36
    DeprecatedCSSOMValue getPresentationAttribute(optional DOMString name = "undefined");
39
40
    void focus();
41
    void blur();
42
43
    readonly attribute DOMStringMap dataset;
44
};
37
};
45
38
46
SVGElement implements ElementCSSInlineStyle;
39
SVGElement implements ElementCSSInlineStyle;
47
SVGElement implements GlobalEventHandlers;
40
SVGElement implements GlobalEventHandlers;
41
SVGElement implements HTMLOrForeignElement;
- a/LayoutTests/imported/w3c/ChangeLog +11 lines
Lines 1-3 a/LayoutTests/imported/w3c/ChangeLog_sec1
1
2019-08-28  Rob Buis  <rbuis@igalia.com>
2
3
        Implement MathMLIDL / HTMLOrForeignElement
4
        https://bugs.webkit.org/show_bug.cgi?id=200470
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        * web-platform-tests/mathml/relations/html5-tree/html-or-foreign-element-interfaces.tentative-expected.txt: Added.
9
        * web-platform-tests/mathml/relations/html5-tree/html-or-foreign-element-interfaces.tentative.html: Added.
10
        * web-platform-tests/mathml/relations/html5-tree/w3c-import.log:
11
1
2019-08-26  Chris Dumez  <cdumez@apple.com>
12
2019-08-26  Chris Dumez  <cdumez@apple.com>
2
13
3
        Change default value of window.open()'s url argument
14
        Change default value of window.open()'s url argument
- a/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/html-or-foreign-element-interfaces.tentative-expected.txt +9 lines
Line 0 a/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/html-or-foreign-element-interfaces.tentative-expected.txt_sec1
1
This tests the presence and functionality of features of `HTMLOrForeignElement` (currently `HTMLOrSVGElement`) 
2
E
3
4
PASS MathML elements should have a .dataset 
5
PASS The dataset property should be present and be functional. 
6
PASS MathML elements should have a tabIndex property 
7
PASS MathML elements should work with focus predictably 
8
PASS MathML elements should work with blur predictably 
9
- a/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/html-or-foreign-element-interfaces.tentative.html +111 lines
Line 0 a/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/html-or-foreign-element-interfaces.tentative.html_sec1
1
<!DOCTYPE html>
2
<html>
3
  <head>
4
    <meta charset="utf-8" />
5
    <title>MathML 'HTMLOrForeignElement` Mixin Tests</title>
6
    <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#dom-and-javascript"/>
7
    <style>
8
      mi {
9
        background-color: red;
10
      }
11
      :focus {
12
        background-color: rgb(0, 255, 0);
13
      }
14
    </style>
15
    <meta
16
      name="assert"
17
      content="MathMLElements incorporate a functional HTMLOrForeignElement interface"
18
    />
19
    <script src="/resources/testharness.js"></script>
20
    <script src="/resources/testharnessreport.js"></script>
21
  </head>
22
  <body tabindex="-1">
23
    <span tabindex="-1"
24
      >This tests the presence and functionality of features of
25
      `HTMLOrForeignElement` (currently `HTMLOrSVGElement`)</span
26
    >
27
    <math tabindex="-1">
28
      <mi>E</mi>
29
    </math>
30
  </body>
31
  <script>
32
    // spot check the functionality of several interfaces
33
    let el = document.querySelector("mi");
34
    let mathEl = document.querySelector("math");
35
36
    // this really belongs in
37
    // https://github.com/web-platform-tests/wpt/blob/master/html/dom/elements/global-attributes/dataset.html
38
    // it is here tentatively
39
    test(function() {
40
      var mathml = document.createElementNS(
41
        "http://www.w3.org/1998/Math/MathML",
42
        "math"
43
      );
44
      assert_true(mathml.dataset instanceof DOMStringMap);
45
    }, "MathML elements should have a .dataset");
46
47
    // exercise some basic tests on .dataset
48
    test(function() {
49
      assert_equals(
50
        Object.keys(el.dataset).toString(),
51
        "",
52
        "The .dataset property should be present"
53
      );
54
55
      el.setAttribute("data-one", "x");
56
      el.setAttribute("data-two", "y");
57
58
      assert_equals(
59
        el.dataset.one,
60
        "x",
61
        '.one should be "x" after setting the data-one attribute'
62
      );
63
      assert_equals(
64
        el.dataset.two,
65
        "y",
66
        '.one should be "y" after setting the data-two attribute'
67
      );
68
69
      el.dataset.one = "o";
70
      assert_equals(
71
        el.getAttribute("data-one"),
72
        "o",
73
        'the data-one attribute should reflect a change to dataset.one and contain "o"'
74
      );
75
    }, "The dataset property should be present and be functional.");
76
77
    test(function() {
78
      assert_equals(mathEl.tabIndex, -1);
79
    }, "MathML elements should have a tabIndex property");
80
81
    promise_test(function() {
82
      function focus() {
83
        mathEl.focus();
84
        return Promise.resolve();
85
      }
86
87
      return focus().then(() => {
88
        assert_equals(
89
          getComputedStyle(mathEl).backgroundColor,
90
          "rgb(0, 255, 0)",
91
          "MathML elements with tabindex=-1 should be programmatically focusable and apply :focus"
92
        );
93
      });
94
    }, "MathML elements should work with focus predictably");
95
96
    promise_test(function() {
97
      function blur() {
98
        mathEl.blur();
99
        return Promise.resolve();
100
      }
101
102
      return blur().then(() => {
103
        assert_equals(
104
          getComputedStyle(mathEl).backgroundColor,
105
          "rgba(0, 0, 0, 0)",
106
          "MathML elements with tabindex=-1 be programmatically blur() able"
107
        );
108
      });
109
    }, "MathML elements should work with blur predictably");
110
  </script>
111
</html>
- a/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/w3c-import.log +1 lines
Lines 27-32 List of files: a/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/w3c-import.log_sec1
27
/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-2-expected.html
27
/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-2-expected.html
28
/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-2.html
28
/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-2.html
29
/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-3.html
29
/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/href-click-3.html
30
/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/html-or-foreign-element-interfaces.tentative.html
30
/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/integration-point-1-expected.html
31
/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/integration-point-1-expected.html
31
/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/integration-point-1.html
32
/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/integration-point-1.html
32
/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/integration-point-2-expected.html
33
/LayoutTests/imported/w3c/web-platform-tests/mathml/relations/html5-tree/integration-point-2-expected.html

Return to Bug 200470