Bug 115714

Summary: Add support for [NoInterfaceObject] Web IDL extended attribute
Product: WebKit Reporter: Chris Dumez <cdumez>
Component: Tools / TestsAssignee: Chris Dumez <cdumez>
Status: RESOLVED FIXED    
Severity: Normal CC: benjamin, buildbot, commit-queue, gtk-ews, haraken, laszlo.gombos, rego+ews, rniwa, webkit-ews, xan.lopez
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
URL: http://dev.w3.org/2006/webapi/WebIDL/#NoInterfaceObject
Bug Depends on: 115724    
Bug Blocks: 115853    
Attachments:
Description Flags
WIP Patch
webkit-ews: commit-queue-
WIP Patch
webkit-ews: commit-queue-
WIP Patch
buildbot: commit-queue-
WIP Patch
none
Patch none

Description Chris Dumez 2013-05-06 23:28:10 PDT
We should add support for [NoInterfaceObject] Web IDL extended attribute and generate corresponding *Constructor properties on the global window object automatically.

Corresponding Blink patch:
https://codereview.chromium.org/14179013/
Comment 1 Chris Dumez 2013-05-07 06:28:17 PDT
Created attachment 200896 [details]
WIP Patch
Comment 2 WebKit Commit Bot 2013-05-07 06:30:38 PDT
Attachment 200896 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/WebCore/CMakeLists.txt', u'Source/WebCore/DerivedSources.make', u'Source/WebCore/DerivedSources.pri', u'Source/WebCore/GNUmakefile.am', u'Source/WebCore/GNUmakefile.list.am', u'Source/WebCore/Modules/battery/BatteryManager.idl', u'Source/WebCore/Modules/filesystem/DOMFileSystem.idl', u'Source/WebCore/Modules/filesystem/DOMFileSystemSync.idl', u'Source/WebCore/Modules/filesystem/DirectoryEntry.idl', u'Source/WebCore/Modules/filesystem/DirectoryEntrySync.idl', u'Source/WebCore/Modules/filesystem/DirectoryReader.idl', u'Source/WebCore/Modules/filesystem/DirectoryReaderSync.idl', u'Source/WebCore/Modules/filesystem/Entry.idl', u'Source/WebCore/Modules/filesystem/EntryArray.idl', u'Source/WebCore/Modules/filesystem/EntryArraySync.idl', u'Source/WebCore/Modules/filesystem/EntrySync.idl', u'Source/WebCore/Modules/filesystem/FileEntry.idl', u'Source/WebCore/Modules/filesystem/FileEntrySync.idl', u'Source/WebCore/Modules/filesystem/FileWriter.idl', u'Source/WebCore/Modules/filesystem/FileWriterSync.idl', u'Source/WebCore/Modules/filesystem/Metadata.idl', u'Source/WebCore/Modules/gamepad/Gamepad.idl', u'Source/WebCore/Modules/gamepad/GamepadList.idl', u'Source/WebCore/Modules/geolocation/Coordinates.idl', u'Source/WebCore/Modules/geolocation/Geolocation.idl', u'Source/WebCore/Modules/geolocation/Geoposition.idl', u'Source/WebCore/Modules/geolocation/PositionError.idl', u'Source/WebCore/Modules/indexeddb/DOMWindowIndexedDatabase.idl', u'Source/WebCore/Modules/indexeddb/IDBAny.idl', u'Source/WebCore/Modules/mediasource/MediaSource.idl', u'Source/WebCore/Modules/mediasource/SourceBuffer.idl', u'Source/WebCore/Modules/mediasource/SourceBufferList.idl', u'Source/WebCore/Modules/mediastream/DOMWindowMediaStream.idl', u'Source/WebCore/Modules/mediastream/MediaStream.idl', u'Source/WebCore/Modules/mediastream/MediaStreamTrack.idl', u'Source/WebCore/Modules/mediastream/MediaStreamTrackEvent.idl', u'Source/WebCore/Modules/mediastream/NavigatorUserMediaError.idl', u'Source/WebCore/Modules/mediastream/RTCDTMFSender.idl', u'Source/WebCore/Modules/mediastream/RTCDTMFToneChangeEvent.idl', u'Source/WebCore/Modules/mediastream/RTCDataChannel.idl', u'Source/WebCore/Modules/mediastream/RTCDataChannelEvent.idl', u'Source/WebCore/Modules/mediastream/RTCIceCandidateEvent.idl', u'Source/WebCore/Modules/mediastream/RTCPeerConnection.idl', u'Source/WebCore/Modules/mediastream/RTCStatsReport.idl', u'Source/WebCore/Modules/mediastream/RTCStatsResponse.idl', u'Source/WebCore/Modules/notifications/DOMWindowNotifications.idl', u'Source/WebCore/Modules/notifications/NotificationCenter.idl', u'Source/WebCore/Modules/quota/StorageInfo.idl', u'Source/WebCore/Modules/quota/StorageQuota.idl', u'Source/WebCore/Modules/speech/DOMWindowSpeech.idl', u'Source/WebCore/Modules/speech/DOMWindowSpeechSynthesis.idl', u'Source/WebCore/Modules/speech/SpeechGrammar.idl', u'Source/WebCore/Modules/speech/SpeechGrammarList.idl', u'Source/WebCore/Modules/speech/SpeechRecognition.idl', u'Source/WebCore/Modules/speech/SpeechRecognitionAlternative.idl', u'Source/WebCore/Modules/speech/SpeechRecognitionError.idl', u'Source/WebCore/Modules/speech/SpeechRecognitionEvent.idl', u'Source/WebCore/Modules/speech/SpeechRecognitionResult.idl', u'Source/WebCore/Modules/speech/SpeechRecognitionResultList.idl', u'Source/WebCore/Modules/speech/SpeechSynthesis.idl', u'Source/WebCore/Modules/speech/SpeechSynthesisVoice.idl', u'Source/WebCore/Modules/webaudio/AnalyserNode.idl', u'Source/WebCore/Modules/webaudio/AudioBuffer.idl', u'Source/WebCore/Modules/webaudio/AudioBufferSourceNode.idl', u'Source/WebCore/Modules/webaudio/AudioContext.idl', u'Source/WebCore/Modules/webaudio/AudioDestinationNode.idl', u'Source/WebCore/Modules/webaudio/AudioListener.idl', u'Source/WebCore/Modules/webaudio/AudioNode.idl', u'Source/WebCore/Modules/webaudio/AudioParam.idl', u'Source/WebCore/Modules/webaudio/AudioSourceNode.idl', u'Source/WebCore/Modules/webaudio/BiquadFilterNode.idl', u'Source/WebCore/Modules/webaudio/ChannelMergerNode.idl', u'Source/WebCore/Modules/webaudio/ChannelSplitterNode.idl', u'Source/WebCore/Modules/webaudio/ConvolverNode.idl', u'Source/WebCore/Modules/webaudio/DOMWindowWebAudio.idl', u'Source/WebCore/Modules/webaudio/DelayNode.idl', u'Source/WebCore/Modules/webaudio/DynamicsCompressorNode.idl', u'Source/WebCore/Modules/webaudio/GainNode.idl', u'Source/WebCore/Modules/webaudio/MediaElementAudioSourceNode.idl', u'Source/WebCore/Modules/webaudio/MediaStreamAudioDestinationNode.idl', u'Source/WebCore/Modules/webaudio/MediaStreamAudioSourceNode.idl', u'Source/WebCore/Modules/webaudio/OfflineAudioContext.idl', u'Source/WebCore/Modules/webaudio/OscillatorNode.idl', u'Source/WebCore/Modules/webaudio/PannerNode.idl', u'Source/WebCore/Modules/webaudio/ScriptProcessorNode.idl', u'Source/WebCore/Modules/webaudio/WaveShaperNode.idl', u'Source/WebCore/Modules/webaudio/WaveTable.idl', u'Source/WebCore/Modules/webdatabase/DOMWindowWebDatabase.idl', u'Source/WebCore/Modules/webdatabase/Database.idl', u'Source/WebCore/Modules/webdatabase/DatabaseSync.idl', u'Source/WebCore/Modules/webdatabase/SQLError.idl', u'Source/WebCore/Modules/webdatabase/SQLResultSet.idl', u'Source/WebCore/Modules/webdatabase/SQLResultSetRowList.idl', u'Source/WebCore/Modules/webdatabase/SQLTransaction.idl', u'Source/WebCore/Modules/webdatabase/SQLTransactionSync.idl', u'Source/WebCore/Modules/websockets/DOMWindowWebSocket.idl', u'Source/WebCore/Modules/websockets/WebSocket.idl', u'Source/WebCore/PlatformBlackBerry.cmake', u'Source/WebCore/UseJSC.cmake', u'Source/WebCore/WebCore.xcodeproj/project.pbxproj', u'Source/WebCore/bindings/scripts/IDLAttributes.txt', u'Source/WebCore/bindings/scripts/IDLParser.pm', u'Source/WebCore/bindings/scripts/preprocess-idls.pl', u'Source/WebCore/css/CSSFontFaceLoadEvent.idl', u'Source/WebCore/css/CSSSupportsRule.idl', u'Source/WebCore/css/DOMWindowCSS.idl', u'Source/WebCore/css/FontLoader.idl', u'Source/WebCore/css/MediaQueryList.idl', u'Source/WebCore/css/StyleMedia.idl', u'Source/WebCore/dom/CustomElementConstructor.idl', u'Source/WebCore/dom/DOMError.idl', u'Source/WebCore/dom/DOMNamedFlowCollection.idl', u'Source/WebCore/dom/DataTransferItem.idl', u'Source/WebCore/dom/DataTransferItemList.idl', u'Source/WebCore/dom/EventTarget.idl', u'Source/WebCore/dom/NodeIterator.idl', u'Source/WebCore/dom/ShadowRoot.idl', u'Source/WebCore/dom/TreeWalker.idl', u'Source/WebCore/fileapi/FileException.idl', u'Source/WebCore/fileapi/FileReaderSync.idl', u'Source/WebCore/html/HTMLAudioElement.idl', u'Source/WebCore/html/HTMLDetailsElement.idl', u'Source/WebCore/html/HTMLOptionElement.idl', u'Source/WebCore/html/MediaError.idl', u'Source/WebCore/html/MicroDataItemValue.idl', u'Source/WebCore/html/RadioNodeList.idl', u'Source/WebCore/html/ValidityState.idl', u'Source/WebCore/html/canvas/CanvasRenderingContext.idl', u'Source/WebCore/html/canvas/EXTDrawBuffers.idl', u'Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl', u'Source/WebCore/html/canvas/OESElementIndexUint.idl', u'Source/WebCore/html/canvas/OESStandardDerivatives.idl', u'Source/WebCore/html/canvas/OESTextureFloat.idl', u'Source/WebCore/html/canvas/OESTextureHalfFloat.idl', u'Source/WebCore/html/canvas/OESVertexArrayObject.idl', u'Source/WebCore/html/canvas/WebGLCompressedTextureATC.idl', u'Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.idl', u'Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.idl', u'Source/WebCore/html/canvas/WebGLContextAttributes.idl', u'Source/WebCore/html/canvas/WebGLDebugRendererInfo.idl', u'Source/WebCore/html/canvas/WebGLDebugShaders.idl', u'Source/WebCore/html/canvas/WebGLDepthTexture.idl', u'Source/WebCore/html/canvas/WebGLLoseContext.idl', u'Source/WebCore/html/canvas/WebGLVertexArrayObjectOES.idl', u'Source/WebCore/html/track/TextTrackRegionList.idl', u'Source/WebCore/inspector/InjectedScriptHost.idl', u'Source/WebCore/inspector/InspectorFrontendHost.idl', u'Source/WebCore/inspector/JavaScriptCallFrame.idl', u'Source/WebCore/inspector/ScriptProfile.idl', u'Source/WebCore/inspector/ScriptProfileNode.idl', u'Source/WebCore/loader/appcache/DOMApplicationCache.idl', u'Source/WebCore/page/BarInfo.idl', u'Source/WebCore/page/Console.idl', u'Source/WebCore/page/Crypto.idl', u'Source/WebCore/page/DOMSecurityPolicy.idl', u'Source/WebCore/page/DOMWindow.idl', u'Source/WebCore/page/History.idl', u'Source/WebCore/page/Location.idl', u'Source/WebCore/page/MemoryInfo.idl', u'Source/WebCore/page/Navigator.idl', u'Source/WebCore/page/PagePopupController.idl', u'Source/WebCore/page/Performance.idl', u'Source/WebCore/page/PerformanceEntry.idl', u'Source/WebCore/page/PerformanceMark.idl', u'Source/WebCore/page/PerformanceMeasure.idl', u'Source/WebCore/page/PerformanceNavigation.idl', u'Source/WebCore/page/PerformanceResourceTiming.idl', u'Source/WebCore/page/PerformanceTiming.idl', u'Source/WebCore/page/Screen.idl', u'Source/WebCore/page/SpeechInputResult.idl', u'Source/WebCore/page/SpeechInputResultList.idl', u'Source/WebCore/page/WorkerNavigator.idl', u'Source/WebCore/page/make_settings.pl', u'Source/WebCore/svg/SVGAnimationElement.idl', u'Source/WebCore/svg/SVGStyledElement.idl', u'Source/WebCore/testing/InternalSettings.idl', u'Source/WebCore/testing/Internals.idl', u'Source/WebCore/testing/MallocStatistics.idl', u'Source/WebCore/testing/TypeConversions.idl', u'Source/WebCore/workers/AbstractWorker.idl', u'Source/WebCore/workers/DedicatedWorkerContext.idl', u'Source/WebCore/workers/SharedWorker.idl', u'Source/WebCore/workers/SharedWorkerContext.idl', u'Source/WebCore/workers/WorkerContext.idl', u'Source/WebCore/workers/WorkerLocation.idl', u'Source/WebCore/xml/XPathExpression.idl', u'Source/WebCore/xml/XPathNSResolver.idl', u'Source/cmake/WebKitMacros.cmake', u'Tools/Scripts/webkitpy/bindings/main.py']" exit_code: 1
Source/cmake/WebKitMacros.cmake:39:  Use lowercase command "set"  [command/lowercase] [5]
Source/cmake/WebKitMacros.cmake:40:  No space between command "list" and its parentheses, should be "list("  [whitespace/parentheses] [5]
Source/cmake/WebKitMacros.cmake:42:  No space between command "list" and its parentheses, should be "list("  [whitespace/parentheses] [5]
Source/cmake/WebKitMacros.cmake:46:  No space between command "list" and its parentheses, should be "list("  [whitespace/parentheses] [5]
Total errors found: 4 in 179 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Early Warning System Bot 2013-05-07 06:33:44 PDT
Comment on attachment 200896 [details]
WIP Patch

Attachment 200896 [details] did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/355047
Comment 4 Early Warning System Bot 2013-05-07 06:34:36 PDT
Comment on attachment 200896 [details]
WIP Patch

Attachment 200896 [details] did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/338051
Comment 5 kov's GTK+ EWS bot 2013-05-07 06:47:25 PDT
Comment on attachment 200896 [details]
WIP Patch

Attachment 200896 [details] did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/323012
Comment 6 Build Bot 2013-05-07 06:52:26 PDT
Comment on attachment 200896 [details]
WIP Patch

Attachment 200896 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/338054
Comment 7 Build Bot 2013-05-07 07:10:17 PDT
Comment on attachment 200896 [details]
WIP Patch

Attachment 200896 [details] did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/373265
Comment 8 Build Bot 2013-05-07 07:11:48 PDT
Comment on attachment 200896 [details]
WIP Patch

Attachment 200896 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/284260
Comment 9 Chris Dumez 2013-05-07 08:17:32 PDT
Created attachment 200906 [details]
WIP Patch
Comment 10 Early Warning System Bot 2013-05-07 08:22:46 PDT
Comment on attachment 200906 [details]
WIP Patch

Attachment 200906 [details] did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/373279
Comment 11 Build Bot 2013-05-07 08:41:51 PDT
Comment on attachment 200906 [details]
WIP Patch

Attachment 200906 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/373283
Comment 12 Build Bot 2013-05-07 08:48:17 PDT
Comment on attachment 200906 [details]
WIP Patch

Attachment 200906 [details] did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/373286
Comment 13 Build Bot 2013-05-07 09:01:59 PDT
Comment on attachment 200906 [details]
WIP Patch

Attachment 200906 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/359070
Comment 14 Early Warning System Bot 2013-05-07 09:26:04 PDT
Comment on attachment 200906 [details]
WIP Patch

Attachment 200906 [details] did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/359080
Comment 15 Chris Dumez 2013-05-07 11:20:03 PDT
Created attachment 200941 [details]
WIP Patch
Comment 16 Build Bot 2013-05-07 11:53:26 PDT
Comment on attachment 200941 [details]
WIP Patch

Attachment 200941 [details] did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/271137
Comment 17 Chris Dumez 2013-05-07 12:09:47 PDT
Created attachment 200955 [details]
WIP Patch
Comment 18 Chris Dumez 2013-05-08 12:37:32 PDT
Created attachment 201098 [details]
Patch
Comment 19 Kentaro Hara 2013-05-08 22:18:05 PDT
Comment on attachment 201098 [details]
Patch

Excellent patch! Please cq+ it when you can watch the build trees.
Comment 20 WebKit Commit Bot 2013-05-09 00:36:25 PDT
The commit-queue encountered the following flaky tests while processing attachment 201098 [details]:

platform/mac/editing/deleting/deletionUI-single-instance.html bug 114181 (author: rniwa@webkit.org)
transitions/color-transition-rounding.html bug 114182 (author: simon.fraser@apple.com)
transitions/cubic-bezier-overflow-svg-length.html bug 114183 (author: peter@chromium.org)
transitions/interrupt-zero-duration.html bug 114184 (authors: cmarrin@apple.com, rniwa@webkit.org, and simon.fraser@apple.com)
transitions/multiple-background-transitions.html bug 114185 (author: simon.fraser@apple.com)
transitions/cubic-bezier-overflow-color.html bug 114186 (author: peter@chromium.org)
transitions/multiple-shadow-transitions.html bug 114187 (author: simon.fraser@apple.com)
transitions/mismatched-shadow-transitions.html bug 114188 (author: simon.fraser@apple.com)
transitions/color-transition-all.html bug 114189 (authors: ossy@webkit.org and simon.fraser@apple.com)
transitions/negative-delay.html bug 114190 (author: simon.fraser@apple.com)
transitions/cubic-bezier-overflow-shadow.html bug 114191 (author: peter@chromium.org)
transitions/min-max-width-height-transitions.html bug 114192 (author: simon.fraser@apple.com)
transitions/cancel-transition.html bug 114193 (authors: ojan@chromium.org, rniwa@webkit.org, and simon.fraser@apple.com)
transitions/border-radius-transition.html bug 114194 (author: simon.fraser@apple.com)
transitions/flex-transitions.html bug 114195 (author: tony@chromium.org)
transitions/mixed-type.html bug 114196 (author: mikelawther@chromium.org)
transitions/multiple-mask-transitions.html bug 114197 (author: simon.fraser@apple.com)
transitions/color-transition-premultiplied.html bug 114198 (author: simon.fraser@apple.com)
transitions/mismatched-shadow-styles.html bug 114199 (author: simon.fraser@apple.com)
transitions/mask-transitions.html bug 114200 (authors: ojan@chromium.org, oliver@apple.com, and simon.fraser@apple.com)
transitions/cubic-bezier-overflow-length.html bug 114201 (author: peter@chromium.org)
transitions/multiple-background-size-transitions.html bug 114202 (authors: mitz@webkit.org and simon.fraser@apple.com)
transitions/clip-transition.html bug 114203 (authors: dglazkov@chromium.org, krit@webkit.org, and simon.fraser@apple.com)
transitions/cubic-bezier-overflow-transform.html bug 114204 (author: peter@chromium.org)
transitions/interrupted-accelerated-transition.html bug 56242 (authors: rniwa@webkit.org, simon.fraser@apple.com, and tonyg@chromium.org)
transitions/background-transitions.html bug 114206 (author: simon.fraser@apple.com)
http/tests/security/cookies/third-party-cookie-blocking-user-action.html bug 114511 (authors: ap@webkit.org, jochen@chromium.org, and rniwa@webkit.org)
http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame.html bug 114208 (authors: abarth@webkit.org and rniwa@webkit.org)
fast/loader/javascript-url-in-object.html bug 114210 (authors: rniwa@webkit.org and sam@webkit.org)
svg/animations/smil-leak-dynamically-added-element-instances.svg bug 114281 (authors: fmalita@chromium.org and timothy_horton@apple.com)
The commit-queue is continuing to process your patch.
Comment 21 WebKit Commit Bot 2013-05-09 00:37:38 PDT
Comment on attachment 201098 [details]
Patch

Clearing flags on attachment: 201098

Committed r149796: <http://trac.webkit.org/changeset/149796>
Comment 22 WebKit Commit Bot 2013-05-09 00:37:43 PDT
All reviewed patches have been landed.  Closing bug.
Comment 23 Chris Dumez 2013-05-09 01:14:42 PDT
Unreviewed build fix when WEB_SOCKETS flag is off landed in <http://trac.webkit.org/changeset/149797>.
Comment 24 Chris Dumez 2013-05-09 03:03:30 PDT
I updated the WebKit IDL wiki accordingly:
http://trac.webkit.org/wiki/WebKitIDL?action=diff&version=116&old_version=115

FYI, I have made a lot of changes to that wiki recently as it was getting outdated:
http://trac.webkit.org/wiki/WebKitIDL?action=diff&version=116&old_version=85