1. 09 May, 2013 2 commits
    • ch.dumez@sisa.samsung.com's avatar
      [NoInterfaceObject] extended attribute should be removed for several interfaces · b973ffd0
      ch.dumez@sisa.samsung.com authored
      https://bugs.webkit.org/show_bug.cgi?id=115852
      
      Reviewed by Benjamin Poulain.
      
      Source/WebCore:
      
      Remove [NoInterfaceObject] extended attribute from the following Web IDL
      interfaces: SecurityPolicy, History, Location, Navigator, Performance,
      PerformanceEntry, PerformanceMark, PerformanceMeasure, PerformanceNavigation,
      PerformanceResourceTiming, PerformanceTiming and Screen.
      
      These interfaces should not have the [NoInterfaceObject] extended attribute
      according to their respective specifications:
      - http://www.w3.org/html/wg/drafts/html/master/browsers.html#the-history-interface
      - http://www.w3.org/html/wg/drafts/html/master/browsers.html#the-location-interface
      - https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html#securitypolicy
      - http://www.w3.org/html/wg/drafts/html/master/webappapis.html#the-navigator-object
      - http://www.w3.org/TR/navigation-timing/#performance
      - https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/PerformanceTimeline/Overview.html#sec-PerformanceEntry-interface
      - http://www.w3.org/TR/navigation-timing/#performancenavigation
      - http://www.w3.org/TR/navigation-timing/#performancetiming
      - http://www.w3.org/TR/user-timing/#performancemark
      - http://www.w3.org/TR/user-timing/#performancemeasure
      - http://www.w3c-test.org/webperf/specs/ResourceTiming/#performanceresourcetiming
      - http://dev.w3.org/csswg/cssom-view/#the-screen-interface
      
      The new behavior is consistent with the specifications, Firefox and soon Blink.
      
      No new tests, already covered by existing tests.
      
      * page/DOMSecurityPolicy.idl:
      * page/History.idl:
      * page/Location.idl:
      * page/Navigator.idl:
      * page/Performance.idl:
      * page/PerformanceEntry.idl:
      * page/PerformanceMark.idl:
      * page/PerformanceMeasure.idl:
      * page/PerformanceNavigation.idl:
      * page/PerformanceResourceTiming.idl:
      * page/PerformanceTiming.idl:
      * page/Screen.idl:
      
      LayoutTests:
      
      Rebaseline several layout tests whose output has changed now that a few more
      global constructors are exposed.
      
      * fast/dom/dom-constructors-expected.txt:
      * fast/js/global-constructors-attributes-expected.txt:
      * platform/efl/fast/js/global-constructors-attributes-expected.txt:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149845 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b973ffd0
    • ch.dumez@sisa.samsung.com's avatar
      Add support for [NoInterfaceObject] Web IDL extended attribute · 077c4e77
      ch.dumez@sisa.samsung.com authored
      https://bugs.webkit.org/show_bug.cgi?id=115714
      
      Reviewed by Kentaro Hara.
      
      .:
      
      Update GENERATE_BINDINGS macro to take an additional _window_constructors_file
      optional argument.
      
      * Source/cmake/WebKitMacros.cmake:
      
      Source/WebCore:
      
      *Constructor attributes on the global DOMWindow object are now automatically
      generated for each non-callback interface that is not declared with the
      [NoInterfaceObject] extended attribute. It is thus no longer needed for
      developers to manually add *Constructor attributes for their new interfaces
      unless they wish to register an "extra" constructor for their interface.
      
      This patch does not modify at all the behavior on JS side. To achieve this,
      [NoInterfaceObject] extended attribute is added to interfaces that should
      not have it according to specification (e.g. History, Location, ...).
      This can be improved later as the behavior should not change with this
      patch.
      
      No new tests, no behavior change.
      
      * CMakeLists.txt:
      * DerivedSources.make:
      * DerivedSources.pri:
      * GNUmakefile.am:
      * GNUmakefile.list.am:
      * Modules/battery/BatteryManager.idl:
      * Modules/encryptedmedia/MediaKeyMessageEvent.idl:
      * Modules/encryptedmedia/MediaKeyNeededEvent.idl:
      * Modules/encryptedmedia/MediaKeySession.idl:
      * Modules/encryptedmedia/MediaKeys.idl:
      * Modules/filesystem/DOMFileSystem.idl:
      * Modules/filesystem/DOMFileSystemSync.idl:
      * Modules/filesystem/DirectoryEntry.idl:
      * Modules/filesystem/DirectoryEntrySync.idl:
      * Modules/filesystem/DirectoryReader.idl:
      * Modules/filesystem/DirectoryReaderSync.idl:
      * Modules/filesystem/Entry.idl:
      * Modules/filesystem/EntryArray.idl:
      * Modules/filesystem/EntryArraySync.idl:
      * Modules/filesystem/EntrySync.idl:
      * Modules/filesystem/FileEntry.idl:
      * Modules/filesystem/FileEntrySync.idl:
      * Modules/filesystem/FileWriter.idl:
      * Modules/filesystem/FileWriterSync.idl:
      * Modules/filesystem/Metadata.idl:
      * Modules/gamepad/Gamepad.idl:
      * Modules/gamepad/GamepadList.idl:
      * Modules/geolocation/Coordinates.idl:
      * Modules/geolocation/Geolocation.idl:
      * Modules/geolocation/Geoposition.idl:
      * Modules/geolocation/PositionError.idl:
      * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
      * Modules/indexeddb/IDBAny.idl:
      * Modules/mediasource/MediaSource.idl:
      * Modules/mediasource/SourceBuffer.idl:
      * Modules/mediasource/SourceBufferList.idl:
      * Modules/mediastream/DOMWindowMediaStream.idl: Removed.
      * Modules/mediastream/MediaStream.idl:
      * Modules/mediastream/MediaStreamTrack.idl:
      * Modules/mediastream/MediaStreamTrackEvent.idl:
      * Modules/mediastream/NavigatorUserMediaError.idl:
      * Modules/mediastream/RTCDTMFSender.idl:
      * Modules/mediastream/RTCDTMFToneChangeEvent.idl:
      * Modules/mediastream/RTCDataChannel.idl:
      * Modules/mediastream/RTCDataChannelEvent.idl:
      * Modules/mediastream/RTCIceCandidateEvent.idl:
      * Modules/mediastream/RTCPeerConnection.idl:
      * Modules/mediastream/RTCStatsReport.idl:
      * Modules/mediastream/RTCStatsResponse.idl:
      * Modules/networkinfo/NetworkInfoConnection.idl:
      * Modules/notifications/DOMWindowNotifications.idl:
      * Modules/notifications/NotificationCenter.idl:
      * Modules/quota/StorageInfo.idl:
      * Modules/quota/StorageQuota.idl:
      * Modules/speech/DOMWindowSpeech.idl: Removed.
      * Modules/speech/DOMWindowSpeechSynthesis.idl:
      * Modules/speech/SpeechGrammar.idl:
      * Modules/speech/SpeechGrammarList.idl:
      * Modules/speech/SpeechRecognition.idl:
      * Modules/speech/SpeechRecognitionAlternative.idl:
      * Modules/speech/SpeechRecognitionError.idl:
      * Modules/speech/SpeechRecognitionEvent.idl:
      * Modules/speech/SpeechRecognitionResult.idl:
      * Modules/speech/SpeechRecognitionResultList.idl:
      * Modules/speech/SpeechSynthesis.idl:
      * Modules/speech/SpeechSynthesisVoice.idl:
      * Modules/webaudio/AnalyserNode.idl:
      * Modules/webaudio/AudioBuffer.idl:
      * Modules/webaudio/AudioBufferSourceNode.idl:
      * Modules/webaudio/AudioContext.idl:
      * Modules/webaudio/AudioDestinationNode.idl:
      * Modules/webaudio/AudioListener.idl:
      * Modules/webaudio/AudioNode.idl:
      * Modules/webaudio/AudioParam.idl:
      * Modules/webaudio/AudioSourceNode.idl:
      * Modules/webaudio/BiquadFilterNode.idl:
      * Modules/webaudio/ChannelMergerNode.idl:
      * Modules/webaudio/ChannelSplitterNode.idl:
      * Modules/webaudio/ConvolverNode.idl:
      * Modules/webaudio/DOMWindowWebAudio.idl: Removed.
      * Modules/webaudio/DelayNode.idl:
      * Modules/webaudio/DynamicsCompressorNode.idl:
      * Modules/webaudio/GainNode.idl:
      * Modules/webaudio/MediaElementAudioSourceNode.idl:
      * Modules/webaudio/MediaStreamAudioDestinationNode.idl:
      * Modules/webaudio/MediaStreamAudioSourceNode.idl:
      * Modules/webaudio/OfflineAudioContext.idl:
      * Modules/webaudio/OscillatorNode.idl:
      * Modules/webaudio/PannerNode.idl:
      * Modules/webaudio/ScriptProcessorNode.idl:
      * Modules/webaudio/WaveShaperNode.idl:
      * Modules/webaudio/WaveTable.idl:
      * Modules/webdatabase/DOMWindowWebDatabase.idl:
      * Modules/webdatabase/Database.idl:
      * Modules/webdatabase/DatabaseSync.idl:
      * Modules/webdatabase/SQLError.idl:
      * Modules/webdatabase/SQLResultSet.idl:
      * Modules/webdatabase/SQLResultSetRowList.idl:
      * Modules/webdatabase/SQLTransaction.idl:
      * Modules/webdatabase/SQLTransactionSync.idl:
      * Modules/websockets/DOMWindowWebSocket.idl: Removed.
      * Modules/websockets/WebSocket.idl:
      * PlatformBlackBerry.cmake:
      * UseJSC.cmake:
      * WebCore.xcodeproj/project.pbxproj:
      * bindings/scripts/IDLAttributes.txt:
      * bindings/scripts/IDLParser.pm:
      (parseTypedef):
      * bindings/scripts/preprocess-idls.pl:
      (GenerateConstructorAttribute):
      (getFileContents):
      (getPartialInterfaceNameFromIDL):
      (isCallbackInterfaceFromIDL):
      (trim):
      (getInterfaceExtendedAttributesFromIDL):
      * css/CSSFontFaceLoadEvent.idl:
      * css/CSSFontFaceRule.idl:
      * css/CSSSupportsRule.idl:
      * css/CSSUnknownRule.idl:
      * css/DOMWindowCSS.idl:
      * css/FontLoader.idl:
      * css/MediaQueryList.idl:
      * css/MediaQueryListListener.idl:
      * css/StyleMedia.idl:
      * dom/CustomElementConstructor.idl:
      * dom/DOMError.idl:
      * dom/DOMNamedFlowCollection.idl:
      * dom/DataTransferItem.idl:
      * dom/DataTransferItemList.idl:
      * dom/EventListener.idl:
      * dom/EventTarget.idl:
      * dom/NodeIterator.idl:
      * dom/ShadowRoot.idl:
      * dom/TreeWalker.idl:
      * dom/WebKitNamedFlow.idl:
      * fileapi/FileException.idl:
      * fileapi/FileReaderSync.idl:
      * html/HTMLAudioElement.idl:
      * html/HTMLDetailsElement.idl:
      * html/HTMLOptionElement.idl:
      * html/MediaError.idl:
      * html/MediaKeyError.idl:
      * html/MicroDataItemValue.idl:
      * html/RadioNodeList.idl:
      * html/ValidityState.idl:
      * html/canvas/CanvasRenderingContext.idl:
      * html/canvas/DOMPath.idl:
      * html/canvas/EXTDrawBuffers.idl:
      * html/canvas/EXTTextureFilterAnisotropic.idl:
      * html/canvas/OESElementIndexUint.idl:
      * html/canvas/OESStandardDerivatives.idl:
      * html/canvas/OESTextureFloat.idl:
      * html/canvas/OESTextureHalfFloat.idl:
      * html/canvas/OESVertexArrayObject.idl:
      * html/canvas/WebGLCompressedTextureATC.idl:
      * html/canvas/WebGLCompressedTexturePVRTC.idl:
      * html/canvas/WebGLCompressedTextureS3TC.idl:
      * html/canvas/WebGLContextAttributes.idl:
      * html/canvas/WebGLDebugRendererInfo.idl:
      * html/canvas/WebGLDebugShaders.idl:
      * html/canvas/WebGLDepthTexture.idl:
      * html/canvas/WebGLLoseContext.idl:
      * html/canvas/WebGLVertexArrayObjectOES.idl:
      * html/track/AudioTrack.idl:
      * html/track/AudioTrackList.idl:
      * html/track/TextTrackRegionList.idl:
      * html/track/VideoTrack.idl:
      * html/track/VideoTrackList.idl:
      * inspector/InjectedScriptHost.idl:
      * inspector/InspectorFrontendHost.idl:
      * inspector/JavaScriptCallFrame.idl:
      * inspector/ScriptProfile.idl:
      * inspector/ScriptProfileNode.idl:
      * loader/appcache/DOMApplicationCache.idl:
      * page/AbstractView.idl:
      * page/BarInfo.idl:
      * page/Console.idl:
      * page/Crypto.idl:
      * page/DOMSecurityPolicy.idl:
      * page/DOMWindow.idl:
      * page/History.idl:
      * page/Location.idl:
      * page/MemoryInfo.idl:
      * page/Navigator.idl:
      * page/PagePopupController.idl:
      * page/Performance.idl:
      * page/PerformanceEntry.idl:
      * page/PerformanceEntryList.idl:
      * page/PerformanceMark.idl:
      * page/PerformanceMeasure.idl:
      * page/PerformanceNavigation.idl:
      * page/PerformanceResourceTiming.idl:
      * page/PerformanceTiming.idl:
      * page/Screen.idl:
      * page/SpeechInputResult.idl:
      * page/SpeechInputResultList.idl:
      * page/WorkerNavigator.idl:
      * page/make_settings.pl:
      (generateInternalSettingsIdlFile):
      * svg/ElementTimeControl.idl:
      * svg/SVGAnimationElement.idl:
      * svg/SVGExternalResourcesRequired.idl:
      * svg/SVGFilterPrimitiveStandardAttributes.idl:
      * svg/SVGFitToViewBox.idl:
      * svg/SVGLangSpace.idl:
      * svg/SVGLocatable.idl:
      * svg/SVGStyledElement.idl:
      * svg/SVGTests.idl:
      * svg/SVGTransformable.idl:
      * svg/SVGURIReference.idl:
      * testing/InternalSettings.idl:
      * testing/Internals.idl:
      * testing/MallocStatistics.idl:
      * testing/TypeConversions.idl:
      * workers/AbstractWorker.idl:
      * workers/DedicatedWorkerContext.idl:
      * workers/SharedWorker.idl:
      * workers/SharedWorkerContext.idl:
      * workers/WorkerContext.idl:
      * workers/WorkerLocation.idl:
      * xml/XPathExpression.idl:
      * xml/XPathNSResolver.idl:
      
      Tools:
      
      Update BindingsTests.generate_supplemental_dependency() to pass an
      additional windowConstructorsFile argument to preprocess-idls.pl.
      
      * Scripts/webkitpy/bindings/main.py:
      (BindingsTests.generate_supplemental_dependency):
      (BindingsTests.main):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@149796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      077c4e77
  2. 15 Nov, 2012 1 commit
  3. 17 Oct, 2012 1 commit
    • commit-queue@webkit.org's avatar
      Source/WebCore: [User Timing] implement main interface in of User Timing,... · e1e35a27
      commit-queue@webkit.org authored
      Source/WebCore: [User Timing] implement main interface in of User Timing, according to http://www.w3.org/TR/2012/CR-user-timing-20120726/
      https://bugs.webkit.org/show_bug.cgi?id=90963
      
      Patch by Pan Deng <pan.deng@intel.com> on 2012-10-17
      Reviewed by Tony Gentilcore.
      
      This patch implemented mark(), measure(), clearMarks() and clearMeasures() interface of User Timing. Getters are not exposed by Performance Timeline yet, it will be future patch.
      
      Tests: http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMarks.html
             http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMeasures.html
             http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark.html
             http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark_exception.html
             http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure.html
             http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_associate_with_navigation_timing.html
             http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_exception.html
             http/tests/w3c/webperf/submission/user-timing/test_user_timing_method_exist.html
      
      * GNUmakefile.list.am:
      * WebCore.gypi:
      * page/Performance.cpp:
      (WebCore::Performance::webkitGetEntries):
      (WebCore::Performance::webkitGetEntriesByType):
      (WebCore::Performance::webkitGetEntriesByName):
      (WebCore):
      (WebCore::Performance::webkitMark):
      (WebCore::Performance::webkitClearMarks):
      (WebCore::Performance::webkitMeasure):
      (WebCore::Performance::webkitClearMeasures):
      * page/Performance.h:
      (WebCore):
      (Performance):
      * page/Performance.idl:
      * page/PerformanceMark.h: Added.
      (WebCore):
      (PerformanceMark):
      (WebCore::PerformanceMark::create):
      (WebCore::PerformanceMark::PerformanceMark):
      (WebCore::PerformanceMark::~PerformanceMark):
      * page/PerformanceMark.idl: Added.
      * page/PerformanceMeasure.h: Added.
      (WebCore):
      (PerformanceMeasure):
      (WebCore::PerformanceMeasure::create):
      (WebCore::PerformanceMeasure::PerformanceMeasure):
      (WebCore::PerformanceMeasure::~PerformanceMeasure):
      * page/PerformanceMeasure.idl: Added.
      * page/PerformanceUserTiming.cpp: Added.
      (WebCore):
      (WebCore::UserTiming::UserTiming):
      (WebCore::insertPerformanceEntry):
      (WebCore::clearPeformanceEntries):
      (WebCore::UserTiming::mark):
      (WebCore::UserTiming::clearMarks):
      (WebCore::UserTiming::findExistingMarkStartTime):
      (WebCore::UserTiming::measure):
      (WebCore::UserTiming::clearMeasures):
      * page/PerformanceUserTiming.h: Added.
      (WebCore):
      (UserTiming):
      (WebCore::UserTiming::create):
      
      LayoutTests: [User Timing] Test Cases of User Timing. According to http://www.w3.org/TR/2012/CR-user-timing-20120726/
      https://bugs.webkit.org/show_bug.cgi?id=90963
      
      Patch by Pan Deng <pan.deng@intel.com> on 2012-10-17
      Reviewed by Tony Gentilcore.
      
      Test cases in this patch validate functionality of W3C User Timing interface. These test cases use W3C testharness. Since User Timing feature is not enabled in any platform yet, all skipped currenttly.
      
      * http/tests/w3c/webperf/resources/webperftestharnessextension.js: Added.
      (test_method_exists):
      (test_noless_than):
      (performance_entrylist_checker.entry_check.test_equals):
      (performance_entrylist_checker.entry_check):
      (performance_entrylist_checker.entrylist_order_check):
      (performance_entrylist_checker.entrylist_check):
      (PerformanceContext):
      (PerformanceContext.prototype.initialMeasures):
      (PerformanceContext.prototype.mark):
      (PerformanceContext.prototype.measure):
      (PerformanceContext.prototype.clearMarks):
      (PerformanceContext.prototype.clearMeasures):
      (PerformanceContext.prototype.getEntries):
      (PerformanceContext.prototype.getEntriesByType):
      (PerformanceContext.prototype.getEntriesByName):
      * http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMarks-expected.txt: Added.
      * http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMarks.html: Added.
      * http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMeasures-expected.txt: Added.
      * http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMeasures.html: Added.
      * http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark-expected.txt: Added.
      * http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark.html: Added.
      * http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark_exception-expected.txt: Added.
      * http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark_exception.html: Added.
      * http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure-expected.txt: Added.
      * http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure.html: Added.
      * http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_associate_with_navigation_timing-expected.txt: Added.
      * http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_associate_with_navigation_timing.html: Added.
      * http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_exception-expected.txt: Added.
      * http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_exception.html: Added.
      * http/tests/w3c/webperf/submission/user-timing/test_user_timing_method_exist-expected.txt: Added.
      * http/tests/w3c/webperf/submission/user-timing/test_user_timing_method_exist.html: Added.
      * platform/chromium/TestExpectations:
      * platform/efl/TestExpectations:
      * platform/gtk/TestExpectations:
      * platform/mac/TestExpectations:
      * platform/qt-5.0-wk2/TestExpectations:
      * platform/qt/TestExpectations:
      * platform/win/TestExpectations:
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@131693 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e1e35a27