Changeset 221645 in webkit


Ignore:
Timestamp:
Sep 5, 2017 4:28:54 PM (7 years ago)
Author:
Chris Dumez
Message:

Add support for input.webkitEntries
https://bugs.webkit.org/show_bug.cgi?id=176257
<rdar://problem/34218671>

Reviewed by Andreas Kling.

Source/WebCore:

Add support for input.webkitEntries as per:

Our behavior matches Chrome and Firefox, rather than the specification. This means
that webkitEntries is only populated if the webkitdirectory flag is unset.

Tests: fast/forms/file/entries-api/drag-folder-webkitEntries.html

fast/forms/file/entries-api/webkitdirectory-drag-folder-webkitEntries.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/entriesapi/HTMLInputElementEntriesAPI.cpp: Added.

(WebCore::HTMLInputElementEntriesAPI::webkitEntries):

  • Modules/entriesapi/HTMLInputElementEntriesAPI.h: Added.
  • Modules/entriesapi/HTMLInputElementEntriesAPI.idl: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/scripts/generate-bindings.pl:
  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::jsTestInterfaceReflectAttributeGetter):
(WebCore::jsTestInterfaceReflectAttribute):
(WebCore::setJSTestInterfaceReflectAttributeSetter):
(WebCore::setJSTestInterfaceReflectAttribute):

  • bindings/scripts/test/TestSupplemental.idl:
  • html/HTMLInputElement.idl:

LayoutTests:

Add layout test coverage.

  • fast/forms/file/entries-api/drag-folder-webkitEntries-expected.txt: Added.
  • fast/forms/file/entries-api/drag-folder-webkitEntries.html: Added.
  • fast/forms/file/entries-api/webkitdirectory-drag-folder-webkitEntries-expected.txt: Added.
  • fast/forms/file/entries-api/webkitdirectory-drag-folder-webkitEntries.html: Added.
  • http/wpt/entries-api/interfaces-expected.txt:
  • platform/wk2/TestExpectations:
Location:
trunk
Files:
7 added
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r221642 r221645  
     12017-09-05  Chris Dumez  <cdumez@apple.com>
     2
     3        Add support for input.webkitEntries
     4        https://bugs.webkit.org/show_bug.cgi?id=176257
     5        <rdar://problem/34218671>
     6
     7        Reviewed by Andreas Kling.
     8
     9        Add layout test coverage.
     10
     11        * fast/forms/file/entries-api/drag-folder-webkitEntries-expected.txt: Added.
     12        * fast/forms/file/entries-api/drag-folder-webkitEntries.html: Added.
     13        * fast/forms/file/entries-api/webkitdirectory-drag-folder-webkitEntries-expected.txt: Added.
     14        * fast/forms/file/entries-api/webkitdirectory-drag-folder-webkitEntries.html: Added.
     15        * http/wpt/entries-api/interfaces-expected.txt:
     16        * platform/wk2/TestExpectations:
     17
    1182017-09-05  Per Arne Vollan  <pvollan@apple.com>
    219
  • trunk/LayoutTests/http/wpt/entries-api/interfaces-expected.txt

    r221481 r221645  
    6161PASS File interface: new File(["myFileBits"], "myFileName") must inherit property "webkitRelativePath" with the proper type (0)
    6262PASS HTMLInputElement interface: attribute webkitdirectory
    63 FAIL HTMLInputElement interface: attribute webkitEntries assert_true: The prototype object must have a property "webkitEntries" expected true got false
     63PASS HTMLInputElement interface: attribute webkitEntries
    6464PASS HTMLInputElement must be primary interface of file_input
    6565PASS Stringification of file_input
    6666PASS HTMLInputElement interface: file_input must inherit property "webkitdirectory" with the proper type (0)
    67 FAIL HTMLInputElement interface: file_input must inherit property "webkitEntries" with the proper type (1) assert_inherits: property "webkitEntries" not found in prototype chain
     67PASS HTMLInputElement interface: file_input must inherit property "webkitEntries" with the proper type (1)
    6868PASS DataTransferItem interface: operation webkitGetAsEntry()
    6969
  • trunk/LayoutTests/platform/wk2/TestExpectations

    r221629 r221645  
    597597fast/files/workers/worker-read-file-async.html
    598598fast/files/workers/worker-read-file-sync.html
     599fast/forms/file/entries-api/drag-folder-webkitEntries.html
    599600fast/forms/file/entries-api/webkitdirectory-drag-folder.html
     601fast/forms/file/entries-api/webkitdirectory-drag-folder-webkitEntries.html
    600602fast/forms/file/file-input-change-event.html
    601603fast/forms/file/file-input-reset.html
  • trunk/Source/WebCore/CMakeLists.txt

    r221598 r221645  
    213213    Modules/entriesapi/FileSystemEntryCallback.idl
    214214    Modules/entriesapi/FileSystemFileEntry.idl
     215    Modules/entriesapi/HTMLInputElementEntriesAPI.idl
    215216
    216217    Modules/fetch/DOMWindowFetch.idl
     
    955956    Modules/entriesapi/FileSystemEntry.cpp
    956957    Modules/entriesapi/FileSystemFileEntry.cpp
     958    Modules/entriesapi/HTMLInputElementEntriesAPI.cpp
    957959
    958960    Modules/fetch/DOMWindowFetch.cpp
  • trunk/Source/WebCore/ChangeLog

    r221639 r221645  
     12017-09-05  Chris Dumez  <cdumez@apple.com>
     2
     3        Add support for input.webkitEntries
     4        https://bugs.webkit.org/show_bug.cgi?id=176257
     5        <rdar://problem/34218671>
     6
     7        Reviewed by Andreas Kling.
     8
     9        Add support for input.webkitEntries as per:
     10        - https://wicg.github.io/entries-api/#html-forms
     11
     12        Our behavior matches Chrome and Firefox, rather than the specification. This means
     13        that webkitEntries is only populated if the webkitdirectory flag is unset.
     14
     15        Tests: fast/forms/file/entries-api/drag-folder-webkitEntries.html
     16               fast/forms/file/entries-api/webkitdirectory-drag-folder-webkitEntries.html
     17
     18        * CMakeLists.txt:
     19        * DerivedSources.make:
     20        * Modules/entriesapi/HTMLInputElementEntriesAPI.cpp: Added.
     21        (WebCore::HTMLInputElementEntriesAPI::webkitEntries):
     22        * Modules/entriesapi/HTMLInputElementEntriesAPI.h: Added.
     23        * Modules/entriesapi/HTMLInputElementEntriesAPI.idl: Added.
     24        * WebCore.xcodeproj/project.pbxproj:
     25        * bindings/scripts/generate-bindings.pl:
     26        * bindings/scripts/test/JS/JSTestInterface.cpp:
     27        (WebCore::jsTestInterfaceReflectAttributeGetter):
     28        (WebCore::jsTestInterfaceReflectAttribute):
     29        (WebCore::setJSTestInterfaceReflectAttributeSetter):
     30        (WebCore::setJSTestInterfaceReflectAttribute):
     31        * bindings/scripts/test/TestSupplemental.idl:
     32        * html/HTMLInputElement.idl:
     33
    1342017-09-05  Chris Dumez  <cdumez@apple.com>
    235
  • trunk/Source/WebCore/DerivedSources.make

    r221598 r221645  
    144144    $(WebCore)/Modules/entriesapi/FileSystemEntryCallback.idl \
    145145    $(WebCore)/Modules/entriesapi/FileSystemFileEntry.idl \
     146    $(WebCore)/Modules/entriesapi/HTMLInputElementEntriesAPI.idl \
    146147    $(WebCore)/Modules/fetch/DOMWindowFetch.idl \
    147148    $(WebCore)/Modules/fetch/FetchBody.idl \
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r221617 r221645  
    34783478                8358CB701C53277500E0C2D8 /* JSXMLDocument.h in Headers */ = {isa = PBXBuildFile; fileRef = 83F570AD1C53268E007FD6CB /* JSXMLDocument.h */; };
    34793479                835B68101F548BE10071F7F6 /* JSFileSystemEntryCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 835B680E1F548BDE0071F7F6 /* JSFileSystemEntryCustom.cpp */; };
     3480                835D2D781F5F1FBD00141DED /* HTMLInputElementEntriesAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 835D2D751F5F1FB800141DED /* HTMLInputElementEntriesAPI.h */; };
     3481                835D2D791F5F1FC000141DED /* HTMLInputElementEntriesAPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 835D2D761F5F1FB800141DED /* HTMLInputElementEntriesAPI.cpp */; };
    34803482                835D363719FF6193004C93AB /* StyleBuilderCustom.h in Headers */ = {isa = PBXBuildFile; fileRef = 835D363619FF6193004C93AB /* StyleBuilderCustom.h */; };
    34813483                835D54C41F4DE53800E60671 /* FileListCreator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 835D54C11F4DE53400E60671 /* FileListCreator.cpp */; };
     
    34973499                836ACED51ECAAB19004BD012 /* JSDOMMatrixReadOnly.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836ACED01ECAAB04004BD012 /* JSDOMMatrixReadOnly.cpp */; };
    34983500                836ACED61ECAAB19004BD012 /* JSDOMMatrixReadOnly.h in Headers */ = {isa = PBXBuildFile; fileRef = 836ACED11ECAAB04004BD012 /* JSDOMMatrixReadOnly.h */; };
     3501                836B09551F5F34D9003C3702 /* JSHTMLInputElementEntriesAPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836B09531F5F34D0003C3702 /* JSHTMLInputElementEntriesAPI.cpp */; };
     3502                836B09561F5F34D9003C3702 /* JSHTMLInputElementEntriesAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 836B09521F5F34D0003C3702 /* JSHTMLInputElementEntriesAPI.h */; };
    34993503                836C14431CDEAFD80073493F /* JSXPathNSResolverCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 836C14421CDEAFCA0073493F /* JSXPathNSResolverCustom.cpp */; };
    35003504                836D032A1DA89B9200FFD96B /* EventInit.h in Headers */ = {isa = PBXBuildFile; fileRef = 836D03281DA89B7300FFD96B /* EventInit.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    1170211706                835657C61ECAB0E800CDE72D /* JSDOMMatrixInit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMMatrixInit.cpp; sourceTree = "<group>"; };
    1170311707                835B680E1F548BDE0071F7F6 /* JSFileSystemEntryCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSFileSystemEntryCustom.cpp; sourceTree = "<group>"; };
     11708                835D2D741F5F1FB800141DED /* HTMLInputElementEntriesAPI.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = HTMLInputElementEntriesAPI.idl; sourceTree = "<group>"; };
     11709                835D2D751F5F1FB800141DED /* HTMLInputElementEntriesAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTMLInputElementEntriesAPI.h; sourceTree = "<group>"; };
     11710                835D2D761F5F1FB800141DED /* HTMLInputElementEntriesAPI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HTMLInputElementEntriesAPI.cpp; sourceTree = "<group>"; };
    1170411711                835D363619FF6193004C93AB /* StyleBuilderCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StyleBuilderCustom.h; sourceTree = "<group>"; };
    1170511712                835D54C11F4DE53400E60671 /* FileListCreator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FileListCreator.cpp; sourceTree = "<group>"; };
     
    1172411731                836ACED01ECAAB04004BD012 /* JSDOMMatrixReadOnly.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSDOMMatrixReadOnly.cpp; sourceTree = "<group>"; };
    1172511732                836ACED11ECAAB04004BD012 /* JSDOMMatrixReadOnly.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSDOMMatrixReadOnly.h; sourceTree = "<group>"; };
     11733                836B09521F5F34D0003C3702 /* JSHTMLInputElementEntriesAPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSHTMLInputElementEntriesAPI.h; sourceTree = "<group>"; };
     11734                836B09531F5F34D0003C3702 /* JSHTMLInputElementEntriesAPI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSHTMLInputElementEntriesAPI.cpp; sourceTree = "<group>"; };
    1172611735                836C14421CDEAFCA0073493F /* JSXPathNSResolverCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSXPathNSResolverCustom.cpp; sourceTree = "<group>"; };
    1172711736                836D03271DA89B7300FFD96B /* ClipboardEvent.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ClipboardEvent.idl; sourceTree = "<group>"; };
     
    2023620245                                83FB336C1F508A4E00986E54 /* FileSystemFileEntry.h */,
    2023720246                                83FB33671F508A4E00986E54 /* FileSystemFileEntry.idl */,
     20247                                835D2D761F5F1FB800141DED /* HTMLInputElementEntriesAPI.cpp */,
     20248                                835D2D751F5F1FB800141DED /* HTMLInputElementEntriesAPI.h */,
     20249                                835D2D741F5F1FB800141DED /* HTMLInputElementEntriesAPI.idl */,
    2023820250                        );
    2023920251                        path = entriesapi;
     
    2026120273                                833B9E2D1F508D8000E0E428 /* JSFileSystemFileEntry.cpp */,
    2026220274                                833B9E2C1F508D8000E0E428 /* JSFileSystemFileEntry.h */,
     20275                                836B09531F5F34D0003C3702 /* JSHTMLInputElementEntriesAPI.cpp */,
     20276                                836B09521F5F34D0003C3702 /* JSHTMLInputElementEntriesAPI.h */,
    2026320277                        );
    2026420278                        name = EntriesAPI;
     
    2700627020                                FD8C46EC154608E700A5910C /* AudioScheduledSourceNode.h in Headers */,
    2700727021                                CDA7982A170A3D0000D45C55 /* AudioSession.h in Headers */,
    27008                                 7C193BF61F5E10990088F3E6 /* JSCanvasLineJoin.h in Headers */,
    2700927022                                FD31608912B026F700C1A359 /* AudioSourceProvider.h in Headers */,
    2701027023                                CD8A7BBC197735FE00CBD643 /* AudioSourceProviderAVFObjC.h in Headers */,
     
    2714027153                                952076061F2675FE007D2AAB /* CallTracerTypes.h in Headers */,
    2714127154                                415CDAF51E6B8F8B004F11EE /* CanvasCaptureMediaStreamTrack.h in Headers */,
     27155                                7C193BBB1F5E0EED0088F3E6 /* CanvasDirection.h in Headers */,
     27156                                7C193BBC1F5E0EED0088F3E6 /* CanvasFillRule.h in Headers */,
    2714227157                                49484FC2102CF23C00187DD3 /* CanvasGradient.h in Headers */,
     27158                                7C193BBD1F5E0EED0088F3E6 /* CanvasLineCap.h in Headers */,
     27159                                7C193BBE1F5E0EED0088F3E6 /* CanvasLineJoin.h in Headers */,
    2714327160                                4671E0661D67A59600C6B497 /* CanvasPath.h in Headers */,
    2714427161                                49484FC5102CF23C00187DD3 /* CanvasPattern.h in Headers */,
     
    2714627163                                49484FCB102CF23C00187DD3 /* CanvasRenderingContext2D.h in Headers */,
    2714727164                                49484FCE102CF23C00187DD3 /* CanvasStyle.h in Headers */,
     27165                                7C193BBF1F5E0EED0088F3E6 /* CanvasTextAlign.h in Headers */,
     27166                                7C193BC01F5E0EED0088F3E6 /* CanvasTextBaseline.h in Headers */,
    2714827167                                079D0868162F20E800DB8658 /* CaptionUserPreferences.h in Headers */,
    2714927168                                079D086B162F21F900DB8658 /* CaptionUserPreferencesMediaAF.h in Headers */,
     
    2722927248                                CE799F9C1C6A4BCD0097B518 /* ContentSecurityPolicyDirectiveList.h in Headers */,
    2723027249                                CE2849871CA360DF00B4A57F /* ContentSecurityPolicyDirectiveNames.h in Headers */,
    27231                                 7C193BBB1F5E0EED0088F3E6 /* CanvasDirection.h in Headers */,
    2723227250                                CE7E17831C83A49100AD06AF /* ContentSecurityPolicyHash.h in Headers */,
    2723327251                                CE799FA81C6A50570097B518 /* ContentSecurityPolicyMediaListDirective.h in Headers */,
     
    2733827356                                CAE9F910146441F000C245B0 /* CSSAspectRatioValue.h in Headers */,
    2733927357                                94DE5C821D7F3A1400164F2A /* CSSAtRuleID.h in Headers */,
    27340                                 7C193BF21F5E10990088F3E6 /* JSCanvasFillRule.h in Headers */,
    2734127358                                FBD6AF8815EF25C9008B7110 /* CSSBasicShapes.h in Headers */,
    2734227359                                E16A84FA14C85CCC002977DF /* CSSBorderImage.h in Headers */,
     
    2779527812                                65BF022F0974816300C43196 /* Frame.h in Headers */,
    2779627813                                974A862314B7ADBB003FDC76 /* FrameDestructionObserver.h in Headers */,
    27797                                 7C193BF81F5E10990088F3E6 /* JSCanvasTextAlign.h in Headers */,
    2779827814                                656D373C0ADBA5DE00A4554D /* FrameLoader.h in Headers */,
    2779927815                                656D373E0ADBA5DE00A4554D /* FrameLoaderClient.h in Headers */,
     
    2780727823                                65CBFEFA0974F607001DAC25 /* FrameView.h in Headers */,
    2780827824                                97205AB0123928CA00B17380 /* FTPDirectoryDocument.h in Headers */,
    27809                                 7C193C031F5E11050088F3E6 /* JSPath2D.h in Headers */,
    2781027825                                51C81B8A0C4422F70019ECE3 /* FTPDirectoryParser.h in Headers */,
    2781127826                                26B999931803B9D900D01121 /* FunctionCall.h in Headers */,
     
    2794927964                                A8EA7D2B0A19385500A8EF5F /* HTMLImageLoader.h in Headers */,
    2795027965                                A81369CC097374F600D74463 /* HTMLInputElement.h in Headers */,
     27966                                835D2D781F5F1FBD00141DED /* HTMLInputElementEntriesAPI.h in Headers */,
    2795127967                                97BC849B12370A4B000C6161 /* HTMLInputStream.h in Headers */,
    2795227968                                93309DE6099E64920056E581 /* HTMLInterchange.h in Headers */,
     
    2805928075                                5185FCA01BB4C4E80012898F /* IDBObjectStore.h in Headers */,
    2806028076                                5160712F1BD8307800DBC4F2 /* IDBObjectStoreInfo.h in Headers */,
    28061                                 7C193BC01F5E0EED0088F3E6 /* CanvasTextBaseline.h in Headers */,
    2806228077                                5185FCA41BB4C4E80012898F /* IDBOpenDBRequest.h in Headers */,
    2806328078                                5185FCA71BB4C4E80012898F /* IDBRecordIdentifier.h in Headers */,
     
    2810328118                                B51A2F3F17D7D3AE0072517A /* ImageQualityController.h in Headers */,
    2810428119                                49291E4B134172C800E753DE /* ImageRenderingMode.h in Headers */,
     28120                                7C193BC11F5E0EED0088F3E6 /* ImageSmoothingQuality.h in Headers */,
    2810528121                                B27535710B053814002CE64F /* ImageSource.h in Headers */,
    2810628122                                4B3480940EEF50D400AC1B41 /* ImageSourceCG.h in Headers */,
     
    2810928125                                26F756B51B3B68F20005DD79 /* ImmutableNFANodeBuilder.h in Headers */,
    2811028126                                316FE1180E6E1DA700BF6088 /* ImplicitAnimation.h in Headers */,
    28111                                 7C193BC21F5E0EED0088F3E6 /* Path2D.h in Headers */,
    2811228127                                BE961C5518AD338C00D07DC5 /* InbandDataTextTrack.h in Headers */,
    2811328128                                BE16C59317CFE17200852C04 /* InbandGenericTextTrack.h in Headers */,
     
    2823528250                                1449E24C107D4A8400B5793F /* JSCallbackData.h in Headers */,
    2823628251                                07277E4D17D018CC0015534E /* JSCanvasCaptureMediaStreamTrack.h in Headers */,
     28252                                7C193BF01F5E10990088F3E6 /* JSCanvasDirection.h in Headers */,
     28253                                7C193BF21F5E10990088F3E6 /* JSCanvasFillRule.h in Headers */,
    2823728254                                65DF323A09D1DE65000BE325 /* JSCanvasGradient.h in Headers */,
     28255                                7C193BF41F5E10990088F3E6 /* JSCanvasLineCap.h in Headers */,
     28256                                7C193BF61F5E10990088F3E6 /* JSCanvasLineJoin.h in Headers */,
    2823828257                                65DF323C09D1DE65000BE325 /* JSCanvasPattern.h in Headers */,
    2823928258                                49EED1451051969400099FAB /* JSCanvasRenderingContext2D.h in Headers */,
     28259                                7C193BF81F5E10990088F3E6 /* JSCanvasTextAlign.h in Headers */,
     28260                                7C193BFA1F5E10990088F3E6 /* JSCanvasTextBaseline.h in Headers */,
    2824028261                                93F9B7A10BA6032600854064 /* JSCDATASection.h in Headers */,
    2824128262                                FDA15EA212B03EE1003A583A /* JSChannelMergerNode.h in Headers */,
     
    2848128502                                1AE2AA980A1CDD2D00B42B25 /* JSHTMLImageElement.h in Headers */,
    2848228503                                A80E7E970A1A83E3007FB8C5 /* JSHTMLInputElement.h in Headers */,
     28504                                836B09561F5F34D9003C3702 /* JSHTMLInputElementEntriesAPI.h in Headers */,
    2848328505                                A6148A7912E41E3B0044A784 /* JSHTMLKeygenElement.h in Headers */,
    2848428506                                1AE2AB220A1CE63B00B42B25 /* JSHTMLLabelElement.h in Headers */,
     
    2853728559                                269239961505E1AA009E57FC /* JSIDBVersionChangeEvent.h in Headers */,
    2853828560                                A77979290D6B9E64003851B9 /* JSImageData.h in Headers */,
     28561                                7C193C011F5E11050088F3E6 /* JSImageSmoothingQuality.h in Headers */,
    2853928562                                A86629D309DA2B48009633A6 /* JSInputEvent.h in Headers */,
    2854028563                                7A0E771F10C00DB100A0276E /* JSInspectorFrontendHost.h in Headers */,
     
    2856528588                                2D9BF72E1DBFDB1C007A7D99 /* JSMediaKeySystemMediaCapability.h in Headers */,
    2856628589                                BC3C39B70C0D3D8D005F4D7A /* JSMediaList.h in Headers */,
    28567                                 7C193BF01F5E10990088F3E6 /* JSCanvasDirection.h in Headers */,
    2856828590                                93D437A31D57B7E200AB85EA /* JSMediaListCustom.h in Headers */,
    2856928591                                D3A94A47122DC40F00A37BBC /* JSMediaQueryList.h in Headers */,
     
    2861028632                                FDF6BAF9134A4C9800822920 /* JSOfflineAudioCompletionEvent.h in Headers */,
    2861128633                                FDA9326716703BA9008982DC /* JSOfflineAudioContext.h in Headers */,
    28612                                 7C193BBF1F5E0EED0088F3E6 /* CanvasTextAlign.h in Headers */,
    2861328634                                57E233651DC7DB1F00F28D01 /* JsonWebKey.h in Headers */,
    2861428635                                FDEA6243152102E200479DF0 /* JSOscillatorNode.h in Headers */,
     
    2862028641                                57B5F7F11E5B8C5A00F34F90 /* JSPasswordCredential.h in Headers */,
    2862128642                                77D50FF81ED4D9A000DA4C87 /* JSPasswordCredentialData.h in Headers */,
     28643                                7C193C031F5E11050088F3E6 /* JSPath2D.h in Headers */,
    2862228644                                A1CC56671F46147A00A4555B /* JSPaymentAddress.h in Headers */,
    2862328645                                A1CC56691F46148000A4555B /* JSPaymentComplete.h in Headers */,
     
    2872128743                                BC82432A0D0CE8A200460C8F /* JSSQLTransaction.h in Headers */,
    2872228744                                B59DD69D11902A42007E9684 /* JSSQLTransactionCallback.h in Headers */,
    28723                                 7C193BBD1F5E0EED0088F3E6 /* CanvasLineCap.h in Headers */,
    2872428745                                B59DD6A111902A52007E9684 /* JSSQLTransactionErrorCallback.h in Headers */,
    2872528746                                A86629D309DA2B48009633A7 /* JSStaticRange.h in Headers */,
     
    2923129252                                A9C6E5A60D746458006442E9 /* Navigator.h in Headers */,
    2923229253                                E12719C70EEEC16800F61213 /* NavigatorBase.h in Headers */,
    29233                                 7C193BFA1F5E10990088F3E6 /* JSCanvasTextBaseline.h in Headers */,
    2923429254                                8321507E1F27EA1B0095B136 /* NavigatorBeacon.h in Headers */,
    2923529255                                77D510201ED72D5F00DA4C87 /* NavigatorCredentials.h in Headers */,
     
    2934429364                                1AF5E4D51E56735B004A1F01 /* PasteboardWriterData.h in Headers */,
    2934529365                                B27535800B053814002CE64F /* Path.h in Headers */,
     29366                                7C193BC21F5E0EED0088F3E6 /* Path2D.h in Headers */,
    2934629367                                A88DD4870B4629A300C02990 /* PathTraversalState.h in Headers */,
    2934729368                                2D5002FC1B56D7990020AAF7 /* PathUtilities.h in Headers */,
     
    2940229423                                0F13163E16ED0CC80035CC04 /* PlatformCAFilters.h in Headers */,
    2940329424                                499B3EC5128CCC4700E726C2 /* PlatformCALayer.h in Headers */,
    29404                                 7C193BC11F5E0EED0088F3E6 /* ImageSmoothingQuality.h in Headers */,
    2940529425                                493E5E0912D6420500020081 /* PlatformCALayerClient.h in Headers */,
    2940629426                                2D70BA1318074DDF0001908A /* PlatformCALayerCocoa.h in Headers */,
     
    2951829538                                FD45A958175D414C00C21EC8 /* RectangleShape.h in Headers */,
    2951929539                                9831AE4A154225C900FE2644 /* ReferrerPolicy.h in Headers */,
    29520                                 7C193BF41F5E10990088F3E6 /* JSCanvasLineCap.h in Headers */,
    2952129540                                BCAB418213E356E800D8AAF3 /* Region.h in Headers */,
    2952229541                                6CDDE8D01770BB220016E072 /* RegionOversetState.h in Headers */,
     
    2954729566                                E43A023B17EB370A004CDD25 /* RenderElement.h in Headers */,
    2954829567                                0F5B7A5510F65D7A00376302 /* RenderEmbeddedObject.h in Headers */,
    29549                                 7C193BBC1F5E0EED0088F3E6 /* CanvasFillRule.h in Headers */,
    2955029568                                066C77310AB603FD00238CC4 /* RenderFileUploadControl.h in Headers */,
    2955129569                                53C8298E13D8D92700DE2DEB /* RenderFlexibleBox.h in Headers */,
     
    2988829906                                FD45A952175D3F3E00C21EC8 /* ShapeOutsideInfo.h in Headers */,
    2988929907                                FD1AF1501656F15100C6D4F7 /* ShapeValue.h in Headers */,
    29890                                 7C193BBE1F5E0EED0088F3E6 /* CanvasLineJoin.h in Headers */,
    2989129908                                1A4A954E0B4EDCCB002D8C3C /* SharedBuffer.h in Headers */,
    2989229909                                93309EA3099EB78C0056E581 /* SharedTimer.h in Headers */,
     
    3010330120                                B22279C50D00BF220071B782 /* SVGExternalResourcesRequired.h in Headers */,
    3010430121                                B22279C80D00BF220071B782 /* SVGFEBlendElement.h in Headers */,
    30105                                 7C193C011F5E11050088F3E6 /* JSImageSmoothingQuality.h in Headers */,
    3010630122                                B22279CB0D00BF220071B782 /* SVGFEColorMatrixElement.h in Headers */,
    3010730123                                B22279CE0D00BF220071B782 /* SVGFEComponentTransferElement.h in Headers */,
     
    3111531131                                FD31603D12B0267600C1A359 /* AnalyserNode.cpp in Sources */,
    3111631132                                31A795C81888BCB500382F90 /* ANGLEInstancedArrays.cpp in Sources */,
    31117                                 7C193BF31F5E10990088F3E6 /* JSCanvasLineCap.cpp in Sources */,
    3111831133                                490707E61219C04300D90E51 /* ANGLEWebKitBridge.cpp in Sources */,
    3111931134                                49E912AA0EFAC906009D0CAF /* Animation.cpp in Sources */,
     
    3139831413                                570440581E53851600356601 /* CryptoAlgorithmAES_CFBMac.cpp in Sources */,
    3139931414                                57E1E5A21E8C91B500EE37C9 /* CryptoAlgorithmAES_CTR.cpp in Sources */,
    31400                                 7C193BF11F5E10990088F3E6 /* JSCanvasFillRule.cpp in Sources */,
    3140131415                                57E1E5B11E8DD3A100EE37C9 /* CryptoAlgorithmAES_CTRMac.cpp in Sources */,
    3140231416                                57B5F7F81E5BE84000F34F90 /* CryptoAlgorithmAES_GCM.cpp in Sources */,
     
    3194631960                                A871D45E0A127CBC00B12A68 /* HTMLAppletElement.cpp in Sources */,
    3194731961                                A8EA7D2F0A19385500A8EF5F /* HTMLAreaElement.cpp in Sources */,
    31948                                 7C193C001F5E11050088F3E6 /* JSImageSmoothingQuality.cpp in Sources */,
    3194931962                                7C5F28FB1A827D8400C0F31F /* HTMLAttachmentElement.cpp in Sources */,
    3195031963                                E44613A10CD6331000FADA75 /* HTMLAudioElement.cpp in Sources */,
     
    3199132004                                A8EA7D300A19385500A8EF5F /* HTMLImageLoader.cpp in Sources */,
    3199232005                                A81369CD097374F600D74463 /* HTMLInputElement.cpp in Sources */,
     32006                                835D2D791F5F1FC000141DED /* HTMLInputElementEntriesAPI.cpp in Sources */,
    3199332007                                93309DE5099E64920056E581 /* HTMLInterchange.cpp in Sources */,
    3199432008                                A81369E5097374F600D74463 /* HTMLKeygenElement.cpp in Sources */,
     
    3226332277                                1449E287107D4DB400B5793F /* JSCallbackData.cpp in Sources */,
    3226432278                                07277E4C17D018CC0015534E /* JSCanvasCaptureMediaStreamTrack.cpp in Sources */,
     32279                                7C193BEF1F5E10990088F3E6 /* JSCanvasDirection.cpp in Sources */,
     32280                                7C193BF11F5E10990088F3E6 /* JSCanvasFillRule.cpp in Sources */,
    3226532281                                65DF323909D1DE65000BE325 /* JSCanvasGradient.cpp in Sources */,
     32282                                7C193BF31F5E10990088F3E6 /* JSCanvasLineCap.cpp in Sources */,
     32283                                7C193BF51F5E10990088F3E6 /* JSCanvasLineJoin.cpp in Sources */,
    3226632284                                65DF323B09D1DE65000BE325 /* JSCanvasPattern.cpp in Sources */,
    3226732285                                49EED1441051969400099FAB /* JSCanvasRenderingContext2D.cpp in Sources */,
    3226832286                                49EED14E1051971A00099FAB /* JSCanvasRenderingContext2DCustom.cpp in Sources */,
     32287                                7C193BF71F5E10990088F3E6 /* JSCanvasTextAlign.cpp in Sources */,
     32288                                7C193BF91F5E10990088F3E6 /* JSCanvasTextBaseline.cpp in Sources */,
    3226932289                                93F9B7A00BA6032600854064 /* JSCDATASection.cpp in Sources */,
    3227032290                                FDA15EA112B03EE1003A583A /* JSChannelMergerNode.cpp in Sources */,
     
    3231032330                                BC46C2060C0DDCA10020CFC3 /* JSCSSStyleRule.cpp in Sources */,
    3231132331                                BCC5BE000C0E93110011C2DB /* JSCSSStyleSheet.cpp in Sources */,
    32312                                 7C193BF91F5E10990088F3E6 /* JSCanvasTextBaseline.cpp in Sources */,
    3231332332                                FD67773A195CB14A0072E0D3 /* JSCSSSupportsRule.cpp in Sources */,
    3231432333                                9BD4E9161C462872005065BC /* JSCustomElementInterface.cpp in Sources */,
     
    3250232521                                1AE2AA970A1CDD2D00B42B25 /* JSHTMLImageElement.cpp in Sources */,
    3250332522                                A80E7E980A1A83E3007FB8C5 /* JSHTMLInputElement.cpp in Sources */,
     32523                                836B09551F5F34D9003C3702 /* JSHTMLInputElementEntriesAPI.cpp in Sources */,
    3250432524                                A6148A7812E41E3B0044A784 /* JSHTMLKeygenElement.cpp in Sources */,
    3250532525                                1AE2AB210A1CE63B00B42B25 /* JSHTMLLabelElement.cpp in Sources */,
    3250632526                                1AE2AB230A1CE63B00B42B25 /* JSHTMLLegendElement.cpp in Sources */,
    3250732527                                1AE2AB250A1CE63B00B42B25 /* JSHTMLLIElement.cpp in Sources */,
    32508                                 7C193BF71F5E10990088F3E6 /* JSCanvasTextAlign.cpp in Sources */,
    3250932528                                A80E7B100A19D606007FB8C5 /* JSHTMLLinkElement.cpp in Sources */,
    3251032529                                1AE2AB270A1CE63B00B42B25 /* JSHTMLMapElement.cpp in Sources */,
     
    3256832587                                A77979280D6B9E64003851B9 /* JSImageData.cpp in Sources */,
    3256932588                                A7D0318E0E93540300E24ACD /* JSImageDataCustom.cpp in Sources */,
     32589                                7C193C001F5E11050088F3E6 /* JSImageSmoothingQuality.cpp in Sources */,
    3257032590                                A86629D409DA2B48009633A6 /* JSInputEvent.cpp in Sources */,
    3257132591                                7A0E771E10C00DB100A0276E /* JSInspectorFrontendHost.cpp in Sources */,
     
    3265832678                                57B5F7F01E5B8C5A00F34F90 /* JSPasswordCredential.cpp in Sources */,
    3265932679                                77D50FF91ED4D9A400DA4C87 /* JSPasswordCredentialData.cpp in Sources */,
     32680                                7C193C021F5E11050088F3E6 /* JSPath2D.cpp in Sources */,
    3266032681                                A1CC56661F46147400A4555B /* JSPaymentAddress.cpp in Sources */,
    3266132682                                A1CC56681F46147D00A4555B /* JSPaymentComplete.cpp in Sources */,
     
    3313833159                                FABE72FE1059C21100D999DD /* MathMLNames.cpp in Sources */,
    3313933160                                16EA24CEEAB2A60534218ACF /* MathMLOperatorDictionary.cpp in Sources */,
    33140                                 7C193C021F5E11050088F3E6 /* JSPath2D.cpp in Sources */,
    3314133161                                FA654A6B1108ABED002616F1 /* MathMLOperatorElement.cpp in Sources */,
    3314233162                                B59CA390CED66C3255F72C59 /* MathMLPaddedElement.cpp in Sources */,
     
    3326733287                                D6E528A3149A926D00EFE1F3 /* MutationObserverInterestGroup.cpp in Sources */,
    3326833288                                D6E276AF14637455001D280A /* MutationObserverRegistration.cpp in Sources */,
    33269                                 7C193BEF1F5E10990088F3E6 /* JSCanvasDirection.cpp in Sources */,
    3327033289                                C6F08FBC1430FE8F00685849 /* MutationRecord.cpp in Sources */,
    3327133290                                52B6C9C515E3F4DF00690B05 /* NamedFlowCollection.cpp in Sources */,
     
    3336433383                                1AF5E4D41E56735B004A1F01 /* PasteboardWriterData.cpp in Sources */,
    3336533384                                B275357F0B053814002CE64F /* Path.cpp in Sources */,
     33385                                7C193C061F5E1FFD0088F3E6 /* Path2D.cpp in Sources */,
    3336633386                                B27535630B053814002CE64F /* PathCG.cpp in Sources */,
    3336733387                                A88DD4890B4629B000C02990 /* PathTraversalState.cpp in Sources */,
     
    3342533445                                CDA29A161CBDA56C00901CCF /* PlaybackSessionInterfaceMac.mm in Sources */,
    3342633446                                CDA29A0E1CBD9CFE00901CCF /* PlaybackSessionModelMediaElement.mm in Sources */,
    33427                                 7C193BF51F5E10990088F3E6 /* JSCanvasLineJoin.cpp in Sources */,
    3342833447                                1AFFC4551D5E81D000267A66 /* PluginBlacklist.mm in Sources */,
    3342933448                                A9C6E4F30D745E48006442E9 /* PluginData.cpp in Sources */,
     
    3435434373                                31A089141E737D51003B6609 /* WebGPURenderPipelineColorAttachmentDescriptor.cpp in Sources */,
    3435534374                                31A089151E737D51003B6609 /* WebGPURenderPipelineDescriptor.cpp in Sources */,
    34356                                 7C193C061F5E1FFD0088F3E6 /* Path2D.cpp in Sources */,
    3435734375                                31A089161E737D51003B6609 /* WebGPURenderPipelineState.cpp in Sources */,
    3435834376                                31A089171E737D51003B6609 /* WebGPUTexture.cpp in Sources */,
  • trunk/Source/WebCore/bindings/scripts/generate-bindings.pl

    r217451 r221645  
    171171
    172172                # Record that this attribute is implemented by $interfaceName.
    173                 $attribute->extendedAttributes->{"ImplementedBy"} = $interfaceName if $interface->isPartial;
     173                $attribute->extendedAttributes->{"ImplementedBy"} = $interfaceName if $interface->isPartial && !$attribute->extendedAttributes->{Reflect};
    174174
    175175                # Add interface-wide extended attributes to each attribute.
  • trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp

    r219981 r221645  
    2525#include "JSTestInterface.h"
    2626
     27#include "HTMLNames.h"
    2728#include "JSDOMAttribute.h"
    2829#include "JSDOMBinding.h"
     
    130131JSC::EncodedJSValue jsTestInterfaceSupplementalNode(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
    131132bool setJSTestInterfaceSupplementalNode(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
     133#endif
     134#if ENABLE(Condition11) || ENABLE(Condition12)
     135JSC::EncodedJSValue jsTestInterfaceReflectAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
     136bool setJSTestInterfaceReflectAttribute(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
    132137#endif
    133138
     
    310315#endif
    311316#if ENABLE(Condition11) || ENABLE(Condition12)
     317    { "reflectAttribute", CustomAccessor | DOMAttribute, NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestInterfaceReflectAttribute), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestInterfaceReflectAttribute) } },
     318#else
     319    { 0, 0, NoIntrinsic, { 0, 0 } },
     320#endif
     321#if ENABLE(Condition11) || ENABLE(Condition12)
    312322    { "builtinAttribute", Accessor | Builtin, NoIntrinsic, { (intptr_t)static_cast<BuiltinGenerator>(testSupplementalBuiltinAttributeCodeGenerator), (intptr_t) (setTestSupplementalBuiltinAttributeCodeGenerator) } },
    313323#else
     
    783793{
    784794    return IDLAttribute<JSTestInterface>::set<setJSTestInterfaceSupplementalNodeSetter>(*state, thisValue, encodedValue, "supplementalNode");
     795}
     796
     797#endif
     798
     799#if ENABLE(Condition11) || ENABLE(Condition12)
     800static inline JSValue jsTestInterfaceReflectAttributeGetter(ExecState& state, JSTestInterface& thisObject, ThrowScope& throwScope)
     801{
     802    UNUSED_PARAM(throwScope);
     803    UNUSED_PARAM(state);
     804    auto& impl = thisObject.wrapped();
     805    JSValue result = toJS<IDLDOMString>(state, impl.attributeWithoutSynchronization(WebCore::HTMLNames::reflectattributeAttr));
     806    return result;
     807}
     808
     809EncodedJSValue jsTestInterfaceReflectAttribute(ExecState* state, EncodedJSValue thisValue, PropertyName)
     810{
     811    return IDLAttribute<JSTestInterface>::get<jsTestInterfaceReflectAttributeGetter, CastedThisErrorBehavior::Assert>(*state, thisValue, "reflectAttribute");
     812}
     813
     814#endif
     815
     816#if ENABLE(Condition11) || ENABLE(Condition12)
     817static inline bool setJSTestInterfaceReflectAttributeSetter(ExecState& state, JSTestInterface& thisObject, JSValue value, ThrowScope& throwScope)
     818{
     819    UNUSED_PARAM(state);
     820    UNUSED_PARAM(throwScope);
     821    auto& impl = thisObject.wrapped();
     822    auto nativeValue = convert<IDLDOMString>(state, value);
     823    RETURN_IF_EXCEPTION(throwScope, false);
     824    impl.setAttributeWithoutSynchronization(WebCore::HTMLNames::reflectattributeAttr, WTFMove(nativeValue));
     825    return true;
     826}
     827
     828bool setJSTestInterfaceReflectAttribute(ExecState* state, EncodedJSValue thisValue, EncodedJSValue encodedValue)
     829{
     830    return IDLAttribute<JSTestInterface>::set<setJSTestInterfaceReflectAttributeSetter>(*state, thisValue, encodedValue, "reflectAttribute");
    785831}
    786832
  • trunk/Source/WebCore/bindings/scripts/test/TestSupplemental.idl

    r215403 r221645  
    3939    attribute Node supplementalNode;
    4040
     41    [Reflect] attribute DOMString reflectAttribute;
     42
    4143    void supplementalMethod1();
    4244    [CallWith=ScriptExecutionContext, MayThrowException] TestObj supplementalMethod2(DOMString strArg, TestObj objArg);
  • trunk/Source/WebCore/html/HTMLInputElement.idl

    r221177 r221645  
    9393    // See http://www.w3.org/TR/html-media-capture/
    9494    [Conditional=MEDIA_CAPTURE, Reflect] attribute DOMString capture;
    95 
    96     // https://wicg.github.io/entries-api/#dom-htmlinputelement-webkitdirectory
    97     [Reflect, EnabledAtRuntime=DirectoryUpload] attribute boolean webkitdirectory;
    98     // In Chrome & Firefox, webkitEntries is only populated if webkitdirectory is not set and the files were
    99     // dragged and dropped (not when the element is clicked).
    100     // [EnabledAtRuntime=DirectoryUpload] readonly attribute FrozenArray<FileSystemEntry> webkitEntries;
    10195};
Note: See TracChangeset for help on using the changeset viewer.