⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Oct 26, 2016:

11:49 PM Changeset in webkit [207943] by Carlos Garcia Campos
  • 5 edits
    3 adds in releases/WebKitGTK/webkit-2.14

Merge r206855 - [WK2] 304 revalidation on the network process does not update the validated response
https://bugs.webkit.org/show_bug.cgi?id=162973

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-06
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/basic/conditional-get-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/conditional-get.html: Added.
  • web-platform-tests/fetch/api/resources/cache.py: Added.

Source/WebKit2:

  • NetworkProcess/NetworkResourceLoader.cpp: Updating cache entry with the revalidated one.

LayoutTests:

  • http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header-expected.txt:

Rebasing expectation as memory cache revalidation is no longer needed now that the disk cache is updating the response passed to the memory cache.
The disk cache is doing revalidation on the second load. It receives the updated response with longer validity.
As the extended validity response is now passed to the memory cache, the memory cache revalidation no longer happens.

11:46 PM Changeset in webkit [207942] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r206821 - Missing quotation mark when <q> gets reparented.
https://bugs.webkit.org/show_bug.cgi?id=162940

Reviewed by Darin Adler.

Source/WebCore:

When an opening RenderQuote gets removed due to some change in the render tree,
we notify the closing RenderQuote so that it can update its content (") accordingly (and vice versa).
However when the same RenderQuote is added back to the render tree (aka reparenting), we fail to
let the other RenderQuote know about it and its content becomes stale.
This patch ensures that when either the opening or closing part of the quotation mark gets reparented,
we inform the other, corresponding opening/closing renderer about it.

Test: fast/css-generated-content/missing-quotes-with-dynamic-content.html

  • dom/PseudoElement.cpp:

(WebCore::PseudoElement::didAttachRenderers):

  • rendering/RenderQuote.cpp:

(WebCore::RenderQuote::insertedIntoTree):

  • rendering/RenderQuote.h:

LayoutTests:

The position of the closing quotation mark is driven by the multicolumn code hence the cover div.

  • fast/css-generated-content/missing-quotes-with-dynamic-content-expected.html: Added.
  • fast/css-generated-content/missing-quotes-with-dynamic-content.html: Added.
11:40 PM Changeset in webkit [207941] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r206765 - [ListItems] Render tree should be all clean by the end of FrameView::layout().
https://bugs.webkit.org/show_bug.cgi?id=162832

Reviewed by Simon Fraser.

List item markers are inserted into the tree during layout, right before laying out
the list item (that's a big FIXME). At this point we already know what part of the tree
needs to be laid out. Inserting a list item marker does not expand this dirty area.
However whenever we insert a new renderer into the tree, we call setNeedsLayout on the contining block chain.
In certain cases (floating renderers), it could potentially trigger some unintentional markings
and we return from FrameView::layout() with a dirty subtree.

This patch preemptively marks the list item and its marker dirty so that
when the marker is getting inserted into the tree, we stop the marking at the parent.

Not testable.

  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::insertOrMoveMarkerRendererIfNeeded):

11:37 PM Changeset in webkit [207940] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.14/Source

Merge r206906 - [GTK] Expose WebKitDOMHTMLInputElement APIs for form autofill
https://bugs.webkit.org/show_bug.cgi?id=163082

Reviewed by Darin Adler.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp:

(webkit_dom_html_input_element_get_auto_filled): Added.
(webkit_dom_html_input_element_set_auto_filled): Added.
(webkit_dom_html_input_element_set_editing_value): Added.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-4.0-sections.txt:
11:33 PM Changeset in webkit [207939] by commit-queue@webkit.org
  • 102 edits
    9 copies
    127 adds in trunk/LayoutTests

Refresh WPT tests up to 0acd8f6
https://bugs.webkit.org/show_bug.cgi?id=164009

Patch by Youenn Fablet <youennf@gmail.com> on 2016-10-26
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • resources/ImportExpectations:
  • resources/TestRepositories:
  • resources/resource-files.json:
  • resources/web-platform-tests-modules.json:
  • web-platform-tests/WebIDL/current-realm-expected.txt: Added.
  • web-platform-tests/WebIDL/current-realm.html: Added.
  • web-platform-tests/WebIDL/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/abort-during-open-expected.txt:
  • web-platform-tests/XMLHttpRequest/abort-during-open.js:

(test.async_test.test.step):

  • web-platform-tests/XMLHttpRequest/abort-event-abort-expected.txt:
  • web-platform-tests/XMLHttpRequest/abort-event-abort.htm:
  • web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm: Added.
  • web-platform-tests/XMLHttpRequest/open-during-abort-expected.txt:
  • web-platform-tests/XMLHttpRequest/open-during-abort.htm:
  • web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type.html:
  • web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring.htm:
  • web-platform-tests/XMLHttpRequest/send-non-same-origin-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/send-non-same-origin.htm: Added.
  • web-platform-tests/XMLHttpRequest/w3c-import.log:
  • web-platform-tests/check_stability.py: Added.
  • web-platform-tests/ci_lint.sh: Added.
  • web-platform-tests/ci_stability.sh: Added.
  • web-platform-tests/config.json: Added.
  • web-platform-tests/dom/events/Event-dispatch-click-expected.txt: Added.
  • web-platform-tests/dom/events/Event-dispatch-click.html: Added.
  • web-platform-tests/dom/events/w3c-import.log:
  • web-platform-tests/dom/nodes/Node-contains-expected.txt:
  • web-platform-tests/dom/nodes/Node-contains.html:
  • web-platform-tests/dom/ranges/Range-mutations-appendChild-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-appendChild.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-appendData-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-appendData.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-dataChange-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-dataChange.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-deleteData-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-deleteData.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-insertBefore-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-insertBefore.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-insertData-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-insertData.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-removeChild-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-removeChild.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-replaceChild-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-replaceChild.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-replaceData-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-replaceData.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-splitText-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-splitText.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations.js: Added.
  • web-platform-tests/dom/ranges/w3c-import.log:
  • web-platform-tests/encrypted-media/content/video_512x288_h264-360k_multikey_key1_dashinit.mp4: Added.
  • web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html:
  • web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.html:
  • web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html:
  • web-platform-tests/encrypted-media/scripts/clearkey-update-non-ascii-input.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/generate-request-disallowed-input.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/invalid-license.js:

(runTest.):
(runTest):

  • web-platform-tests/encrypted-media/scripts/onencrypted.js:

(runTest.):
(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-destroy-persistent-license.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-persistent-license-events.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-persistent-license.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-persistent-usage-record-events.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-persistent-usage-record.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-license.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-usage-record.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary-encrypted-clear-sources.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary-events.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary-expired.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary-multikey-sequential.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary-multisession.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary-setMediaKeys.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary-two-videos.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary-waitingforkey.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/requestmediakeysystemaccess.js:

(expect_error):

  • web-platform-tests/encrypted-media/scripts/setmediakeys-multiple-times-with-different-mediakeys.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/setmediakeys.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/syntax-mediakeysession.js:

(runTest.test_generateRequest):
(runTest.create_remove_exception_test):

  • web-platform-tests/encrypted-media/scripts/syntax-mediakeysystemaccess.js:

(runTest.func):

  • web-platform-tests/encrypted-media/scripts/update-disallowed-input.js:

(runTest.):
(runTest):

  • web-platform-tests/encrypted-media/scripts/w3c-import.log:
  • web-platform-tests/encrypted-media/util/drm-messagehandler.js:
  • web-platform-tests/encrypted-media/util/testmediasource.js:

(testmediasource.):
(testmediasource):

  • web-platform-tests/encrypted-media/util/utils.js:
  • web-platform-tests/fetch/api/basic/error-after-response.html:
  • web-platform-tests/fetch/api/basic/scheme-data-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-data-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-data.js:

(checkFetchResponse):

  • web-platform-tests/fetch/api/basic/text-utf8.html:
  • web-platform-tests/fetch/api/basic/w3c-import.log:
  • web-platform-tests/fetch/api/cors/cors-redirect.js:

(corsRedirect):

  • web-platform-tests/fetch/api/headers/headers-basic.html:
  • web-platform-tests/fetch/api/redirect/redirect-count-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-count.js:

(redirectCount):

  • web-platform-tests/fetch/api/request/multi-globals/current/current.html: Added.
  • web-platform-tests/fetch/api/request/multi-globals/current/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
  • web-platform-tests/fetch/api/request/multi-globals/incumbent/incumbent.html: Added.
  • web-platform-tests/fetch/api/request/multi-globals/incumbent/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
  • web-platform-tests/fetch/api/request/multi-globals/url-parsing-expected.txt: Added.
  • web-platform-tests/fetch/api/request/multi-globals/url-parsing.html: Added.
  • web-platform-tests/fetch/api/request/multi-globals/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
  • web-platform-tests/fetch/api/request/request-consume-empty.html:
  • web-platform-tests/fetch/api/request/w3c-import.log:
  • web-platform-tests/fetch/api/resources/bad-chunk-encoding.py:

(main):

  • web-platform-tests/fetch/api/resources/utils.js:

(encode_utf8):

  • web-platform-tests/fetch/api/resources/w3c-import.log:
  • web-platform-tests/fetch/api/response/multi-globals/current/current.html: Added.
  • web-platform-tests/fetch/api/response/multi-globals/current/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
  • web-platform-tests/fetch/api/response/multi-globals/incumbent/incumbent.html: Added.
  • web-platform-tests/fetch/api/response/multi-globals/incumbent/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
  • web-platform-tests/fetch/api/response/multi-globals/relevant/relevant.html: Added.
  • web-platform-tests/fetch/api/response/multi-globals/relevant/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
  • web-platform-tests/fetch/api/response/multi-globals/url-parsing-expected.txt: Added.
  • web-platform-tests/fetch/api/response/multi-globals/url-parsing.html: Added.
  • web-platform-tests/fetch/api/response/multi-globals/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
  • web-platform-tests/fetch/api/response/response-clone-expected.txt:
  • web-platform-tests/fetch/api/response/response-clone.html:
  • web-platform-tests/fetch/api/response/response-consume-stream-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume-stream.html:
  • web-platform-tests/fetch/api/response/response-consume.html:
  • web-platform-tests/fonts/math/axisheight5000-verticalarrow14000.woff: Added.
  • web-platform-tests/fonts/math/fraction-axisheight7000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-rulethickness10000.woff: Added.
  • web-platform-tests/fonts/math/largeop-displayoperatorminheight5000.woff: Added.
  • web-platform-tests/fonts/math/limits-lowerlimitbaselinedropmin3000.woff: Added.
  • web-platform-tests/fonts/math/limits-lowerlimitgapmin11000.woff: Added.
  • web-platform-tests/fonts/math/limits-upperlimitbaselinerisemin5000.woff: Added.
  • web-platform-tests/fonts/math/limits-upperlimitgapmin7000.woff: Added.
  • web-platform-tests/fonts/math/lineheight5000-typolineheight2300.woff: Added.
  • web-platform-tests/fonts/math/radical-degreebottomraisepercent25-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/radical-displaystyleverticalgap7000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/radical-extraascender3000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/radical-kernafterdegreeminus5000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/radical-kernbeforedegree4000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/radical-rulethickness8000.woff: Added.
  • web-platform-tests/fonts/math/radical-verticalgap6000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/scripts-spaceafterscript3000.woff: Added.
  • web-platform-tests/fonts/math/scripts-subscriptbaselinedropmin9000.woff: Added.
  • web-platform-tests/fonts/math/scripts-subscriptshiftdown6000.woff: Added.
  • web-platform-tests/fonts/math/scripts-subscripttopmax4000.woff: Added.
  • web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff: Added.
  • web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000.woff: Added.
  • web-platform-tests/fonts/math/scripts-superscriptbaselinedropmax10000.woff: Added.
  • web-platform-tests/fonts/math/scripts-superscriptbottommin8000.woff: Added.
  • web-platform-tests/fonts/math/scripts-superscriptshiftup7000.woff: Added.
  • web-platform-tests/fonts/math/scripts-superscriptshiftupcramped5000.woff: Added.
  • web-platform-tests/fonts/math/stack-axisheight7000.woff: Added.
  • web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff: Added.
  • web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff: Added.
  • web-platform-tests/fonts/math/stack-displaystylegapmin4000.woff: Added.
  • web-platform-tests/fonts/math/stack-gapmin8000.woff: Added.
  • web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff: Added.
  • web-platform-tests/fonts/math/stack-topshiftup9000.woff: Added.
  • web-platform-tests/fonts/math/stretchstack-bottomshiftdown3000.woff: Added.
  • web-platform-tests/fonts/math/stretchstack-gapabovemin7000.woff: Added.
  • web-platform-tests/fonts/math/stretchstack-gapbelowmin11000.woff: Added.
  • web-platform-tests/fonts/math/stretchstack-topshiftup5000.woff: Added.
  • web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarextraascender3000.woff: Added.
  • web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarverticalgap11000.woff: Added.
  • web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarextradescender5000.woff: Added.
  • web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarverticalgap7000.woff: Added.
  • web-platform-tests/fonts/math/w3c-import.log: Added.
  • web-platform-tests/fonts/math/xheight500.woff: Added.
  • web-platform-tests/html/browsers/history/the-location-interface/security_location_0-expected.txt: Added.
  • web-platform-tests/html/browsers/history/the-location-interface/security_location_0.htm: Added.
  • web-platform-tests/html/browsers/history/the-location-interface/w3c-import.log:
  • web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log:
  • web-platform-tests/html/browsers/the-window-object/security-window/window-security-expected.txt: Added.
  • web-platform-tests/html/browsers/the-window-object/security-window/window-security.html: Added.
  • web-platform-tests/html/browsers/windows/nested-browsing-contexts/w3c-import.log:
  • web-platform-tests/html/browsers/windows/w3c-import.log:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript-expected.txt: Added.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript.html: Added.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified-expected.txt: Added.
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-base-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/data-url-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/data-url.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/usemap-casing-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/usemap-casing.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-object-element/usemap-casing-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-object-element/usemap-casing.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-input-element/radio-groupname-case-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/radio-groupname-case.html:
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-expected.txt:
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol.html:
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2-expected.txt:
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2.html:
  • web-platform-tests/html/semantics/interactive-elements/the-details-element/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/data-url-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log:
  • web-platform-tests/html/webappapis/scripting/events/messageevent-constructor-expected.txt: Added.
  • web-platform-tests/html/webappapis/scripting/events/messageevent-constructor.html: Added.
  • web-platform-tests/html/webappapis/scripting/events/w3c-import.log:
  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID-expected.txt:
  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.js:

(run_test):

  • web-platform-tests/lint.whitelist:
  • web-platform-tests/url/setters_tests.json:
  • web-platform-tests/url/url-setters-expected.txt:
  • web-platform-tests/url/url-setters.html:
  • web-platform-tests/w3c-import.log:
  • web-platform-tests/webrtc/OWNERS: Added.
  • web-platform-tests/webrtc/datachannel-emptystring.html: Added.
  • web-platform-tests/webrtc/no-media-call.html: Added.
  • web-platform-tests/webrtc/promises-call.html: Added.
  • web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-constructor.html: Added.
  • web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl.html: Added.
  • web-platform-tests/webrtc/rtcpeerconnection/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/w3c-import.log.
  • web-platform-tests/webrtc/simplecall.html: Added.
  • web-platform-tests/webrtc/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/w3c-import.log.

LayoutTests:

11:01 PM Changeset in webkit [207938] by mitz@apple.com
  • 3 edits in trunk/Source/WebCore

Improved the last build fix.

Darin pointed out I could have kept the function inline and just removed the WEBCORE_EXPORT.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::document): Deleted.

  • Modules/mediastream/UserMediaRequest.h:

(WebCore::UserMediaRequest::document):

11:00 PM Changeset in webkit [207937] by Chris Dumez
  • 35 edits
    2 copies
    3 adds in trunk

[Web IDL] Add support for having string enumerations in their own IDL file
https://bugs.webkit.org/show_bug.cgi?id=164025

Reviewed by Darin Adler.

Source/WebCore:

Add support for having string enumerations in their own IDL file to facilitate
sharing them. Use this new support to implement IDBTransactionMode enumeration
for IndexedDB:

No new tests, rebaselined existing tests.

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::transaction):
(WebCore::IDBDatabase::startVersionChangeTransaction):

  • Modules/indexeddb/IDBDatabase.h:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::onUpgradeNeeded):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::IDBTransaction):

  • Modules/indexeddb/IDBTransaction.h:

(WebCore::IDBTransaction::mode):
(WebCore::IDBTransaction::isVersionChange):
(WebCore::IDBTransaction::isReadOnly):

  • Modules/indexeddb/IDBTransaction.idl:
  • Modules/indexeddb/IDBTransactionMode.h: Added.
  • Modules/indexeddb/IDBTransactionMode.idl: Copied from Source/WebCore/Modules/indexeddb/IDBTransaction.idl.
  • Modules/indexeddb/IndexedDB.h:
  • Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:

(WebCore::IDBServer::MemoryBackingStoreTransaction::MemoryBackingStoreTransaction):
(WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreRenamed):
(WebCore::IDBServer::MemoryBackingStoreTransaction::indexRenamed):
(WebCore::IDBServer::MemoryBackingStoreTransaction::abort):

  • Modules/indexeddb/server/MemoryBackingStoreTransaction.h:

(WebCore::IDBServer::MemoryBackingStoreTransaction::isVersionChange):
(WebCore::IDBServer::MemoryBackingStoreTransaction::isWriting):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::beginTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::abortTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::commitTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::createObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::renameObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::clearObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::renameIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteRange):
(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::generateKeyNumber):
(WebCore::IDBServer::SQLiteIDBBackingStore::revertGeneratedKeyNumber):
(WebCore::IDBServer::SQLiteIDBBackingStore::maybeUpdateKeyGeneratorNumber):

  • Modules/indexeddb/server/SQLiteIDBTransaction.cpp:

(WebCore::IDBServer::SQLiteIDBTransaction::begin):

  • Modules/indexeddb/server/SQLiteIDBTransaction.h:

(WebCore::IDBServer::SQLiteIDBTransaction::mode):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::enqueueTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction):

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::establishTransaction):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::originalDatabaseInfo):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::isVersionChange):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::isReadOnly):

  • Modules/indexeddb/shared/IDBTransactionInfo.cpp:

(WebCore::IDBTransactionInfo::clientTransaction):
(WebCore::IDBTransactionInfo::versionChange):
(WebCore::IDBTransactionInfo::loggingString):

  • Modules/indexeddb/shared/IDBTransactionInfo.h:

(WebCore::IDBTransactionInfo::mode):

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/scripts/CodeGenerator.pm:

(ProcessDocument):
(IsEnumType):
(GetEnumByName):
(IsExternalEnumType):
(ValidEnumValues):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateEnumeration):
(AddToImplIncludesForIDLType):
(GetEnumerationClassName):
(GenerateEnumerationHeader):
(GenerateEnumerationImplementation):
(GenerateEnumerationImplementationContent):
(GenerateEnumerationsImplementationContent):
(GenerateEnumerationHeaderContent):
(GenerateEnumerationsHeaderContent):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArgCaller):
(WebCore::jsTestObjPrototypeFunctionMethodWithStandaloneEnumArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithStandaloneEnumArgCaller):

  • bindings/scripts/test/JS/JSTestStandaloneEnumeration.cpp: Added.

(WebCore::convertEnumerationToJS):
(WebCore::parseEnumeration<TestStandaloneEnumeration>):
(WebCore::convertEnumeration<TestStandaloneEnumeration>):
(WebCore::expectedEnumerationValues<TestStandaloneEnumeration>):

  • bindings/scripts/test/JS/JSTestStandaloneEnumeration.h: Added.
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestStandaloneEnumeration.idl: Copied from Source/WebCore/Modules/indexeddb/IDBTransaction.idl.
  • inspector/InspectorIndexedDBAgent.cpp:

LayoutTests:

Rebaseline existign tests as the exception messages differ slightly.

  • storage/indexeddb/exceptions-expected.txt:
  • storage/indexeddb/exceptions-private-expected.txt:
  • storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
  • storage/indexeddb/modern/idbdatabase-transaction-failures-private-expected.txt:
  • storage/indexeddb/transaction-basics-expected.txt:
  • storage/indexeddb/transaction-basics-private-expected.txt:
10:51 PM Changeset in webkit [207936] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch/Source

Merge r207171. rdar://problem/28857503

10:46 PM Changeset in webkit [207935] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit/ios

Tried to fix the iOS build after r207934.

  • WebCoreSupport/WebFrameIOS.mm:

(-[WebFrame closestCaretRectInMarkedTextRangeForPoint:]): Removed commented-out code and

a comment that had a typo in it and looked like a bad Doxygen trailing comment.

10:17 PM Changeset in webkit [207934] by mitz@apple.com
  • 16 edits in trunk/Source/WebKit/mac

[Xcode] WebKit fails to build when CLANG_WARN_DOCUMENTATION_COMMENTS is enabled
https://bugs.webkit.org/show_bug.cgi?id=164048

Reviewed by Tim Horton.

  • Configurations/Base.xcconfig: Enabled CLANG_WARN_DOCUMENTATION_COMMENTS.
  • Configurations/WebKitLegacy.xcconfig: Made the compiler treat the icu headers as system headers.
  • History/WebBackForwardList.h: Fixed parameter name in @param entry.
  • Misc/WebDownload.h: Removed empty entries.
  • Misc/WebIconDatabase.h: Remove incorrect @param entries.
  • Misc/WebQuotaManager.h: Added missing parameter names in @param entries.
  • WebView/WebFrameLoadDelegate.h: Corrected parameter names in @param entries.
  • WebView/WebFrameViewPrivate.h: Changed incorrect @result to @abstract.
  • WebView/WebPolicyDelegate.h: Fixed parameter name and removed incorrect @param entries.
  • WebView/WebPreferences.h: Changed @method to @property in a couple of places.
  • WebView/WebResourceLoadDelegate.h: Fixed parameter names.
  • WebView/WebUIDelegate.h: Filled in two empty @param entries. Added missing parameter name, Fixed a typo and removed empty @discussion entry. Fixed some parameter names.
  • WebView/WebUIDelegatePrivate.h: Fixed parameter names.
  • WebView/WebView.h: Changed @method to @property in a couple of places.
  • WebView/WebViewPrivate.h: Fixed parameter names, changed incorrect @result to @abstract.
9:54 PM Changeset in webkit [207933] by mitz@apple.com
  • 3 edits in trunk/Source/WebCore

Fixed the WebKit2 build.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::document): Moved the definition of this function to here from…

  • Modules/mediastream/UserMediaRequest.h:

(WebCore::UserMediaRequest::document): …here, so that the WebKit2 build doesn’t encounter an

exported inline function.

8:42 PM Changeset in webkit [207932] by Yusuke Suzuki
  • 5 edits
    2 adds in trunk

[DOMJIT] Implement Node::ownerDocument
https://bugs.webkit.org/show_bug.cgi?id=164004

Reviewed by Darin Adler.

Source/WebCore:

Test: js/dom/domjit-accessor-owner-document.html

Implement Node.ownerDocument DOMJIT accessor.
According to the result of the profiler, jQuery's prop()
function is frequently called in Ember.js SpeedoMeter.
And this function calls jQuery.isXMLDoc(). And this isXMLDoc()
function calls element.ownerDocument accessor. And our WebKit
inspector also uses ownerDocument accessor frequently.

Interesting thing is this ownerDocument functionality is used
in CSSJIT, so CSSJIT has similar helper function to look up the
owner document of the element. As a result, all the necessary
functionality is already implemented, DOMJIT just utilizes it.
For example, Node::treeScopeMemoryOffset() and
TreeScope::documentScopeMemoryOffset() is implemented before this
patch.

In the future, we will convert CSSJIT's Assembler& to CCallHelpers&
and share the code with DOMJIT[1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=164006

  • dom/Node.idl:
  • domjit/DOMJITAbstractHeapRepository.h:
  • domjit/JSNodeDOMJIT.cpp:

(WebCore::NodeOwnerDocumentDOMJIT::checkDOM):
(WebCore::NodeOwnerDocumentDOMJIT::callDOM):

LayoutTests:

  • js/dom/domjit-accessor-owner-document-expected.txt: Added.
  • js/dom/domjit-accessor-owner-document.html: Added.
8:13 PM Changeset in webkit [207931] by Chris Dumez
  • 29 edits in trunk

Replace IDBKeyPath with a WTF::Variant
https://bugs.webkit.org/show_bug.cgi?id=163909

Reviewed by Darin Adler.

Source/WebCore:

Replace IDBKeyPath class with the IDBKeyPathVariant type entirely
and rename IDBKeyPathVariant to IDBKeyPath.

Unfortunately, IDBKeyPath still needs some special handling when
returned to the JavaScript because we do not have a toJS() accepting
a WTF::Variant as input yet.

There should be no significant behavior change except that
IDBIndex.keyPath / IDBObjectStore.keyPath now returns an array of
Strings instead of a DOMStringList object when the IDBKeyPath
contains a vector. This is a progression and matches the
specification:

No new tests, rebaselined existing tests.

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::update):

  • Modules/indexeddb/IDBDatabase.h:
  • Modules/indexeddb/IDBGetResult.cpp:

(WebCore::IDBGetResult::isolatedCopy):

  • Modules/indexeddb/IDBKeyPath.cpp:

(WebCore::isIDBKeyPathValid):
(WebCore::IDBKeyPathIsolatedCopy):

  • Modules/indexeddb/IDBKeyPath.h:

(WebCore::IDBKeyPathIsolatedCopy):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::keyPath):
(WebCore::IDBObjectStore::putOrAdd):
(WebCore::IDBObjectStore::createIndex):

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/server/IDBSerialization.cpp:

(WebCore::serializeIDBKeyPath):
(WebCore::deserializeIDBKeyPath):

  • Modules/indexeddb/server/IDBSerialization.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::extractExistingDatabaseInfo):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):

  • Modules/indexeddb/shared/IDBDatabaseInfo.cpp:

(WebCore::IDBDatabaseInfo::createNewObjectStore):

  • Modules/indexeddb/shared/IDBDatabaseInfo.h:
  • Modules/indexeddb/shared/IDBIndexInfo.cpp:

(WebCore::IDBIndexInfo::IDBIndexInfo):
(WebCore::IDBIndexInfo::isolatedCopy):

  • Modules/indexeddb/shared/IDBIndexInfo.h:
  • Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:

(WebCore::IDBObjectStoreInfo::IDBObjectStoreInfo):
(WebCore::IDBObjectStoreInfo::createNewIndex):
(WebCore::IDBObjectStoreInfo::isolatedCopy):

  • Modules/indexeddb/shared/IDBObjectStoreInfo.h:

(WebCore::IDBObjectStoreInfo::keyPath):

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::injectIDBKeyIntoScriptValue):
(WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath):
(WebCore::canInjectIDBKeyIntoScriptValue):
(WebCore::createKeyPathArray):
(WebCore::toJS):

  • bindings/js/IDBBindingUtilities.h:
  • inspector/InspectorIndexedDBAgent.cpp:

Source/WebKit2:

Add coders to encode / decode IDBKeyPath type for IPC.

  • Shared/Databases/IndexedDB/WebIDBResult.cpp:
  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<IDBKeyPath>::encode):
(IPC::ArgumentCoder<IDBKeyPath>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

LayoutTests:

Rebaseline a few tests now that IDBIndex.keyPath / IDBObjectStore.keyPath
no longer incorrectly return DOMStringList objects and return regular
arrays instead.

  • storage/indexeddb/modern/idbindex-properties-basic-expected.txt:
  • storage/indexeddb/modern/idbindex-properties-basic-private-expected.txt:
7:49 PM Changeset in webkit [207930] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Ignore out-of-flow siblings when searching for a spanner candidate.
https://bugs.webkit.org/show_bug.cgi?id=164042.
<rdar://problem/28758456>

Reviewed by Simon Fraser.

Source/WebCore:

While searching for the spanner candidates in a flow thread, we have to take into account
whether renderers are in- or out-of-flow.
What it means is that while traversing the renderer tree to find the the candidate
renderer (next sibling/ancestor's next child in pre-order traversal), we have to check if the candidate
is in the same layout context too.

Test: fast/multicol/crash-when-spanner-candidate-is-out-of-flow.html

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::spannerPlacehoderCandidate):
(WebCore::RenderMultiColumnFlowThread::processPossibleSpannerDescendant):

LayoutTests:

  • fast/multicol/crash-when-spanner-candidate-is-out-of-flow-expected.txt: Added.
  • fast/multicol/crash-when-spanner-candidate-is-out-of-flow.html: Added.
7:18 PM Changeset in webkit [207929] by jfbastien@apple.com
  • 10 edits
    1 add in trunk

WebAssembly API: implement Instance

As described in: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblyinstance-objects

  • Take ownership of Wasm::Plan's compilation result when successfully creating a JSWebAssemblyModule object.
  • Construct a basic Instance with a Module.
  • Handle second argument (importObject) of WebAssembly.Instance.
  • Add reference text from the spec to WebAssembly.Module's code.
  • Expose and test an empty 'exports' ModuleNamespaceObject on WebAssembly.Instance.

The implementation isn't complete yet: it relies on further work for which I've filed bugs.

WebAssembly API: implement Instance
https://bugs.webkit.org/show_bug.cgi?id=163998

Reviewed by Keith Miller.

JSTests:

  • wasm/js-api/test_Instance.js: Added.

(EmptyModule): use the Builder, create the simplest Module possible, and create an Instance from it

  • wasm/js-api/test_basic_api.js:

(const.c.in.constructorProperties.switch): basic tests of the API

Source/JavaScriptCore:

  • wasm/WasmPlan.h:

(JSC::Wasm::Plan::getFunctions): allow transfering state out
(JSC::Wasm::Plan::getMemory): allow transfering state out

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::create):
(JSC::JSWebAssemblyInstance::finishCreation): set the ModuleNamespaceObject, and expose it as "exports"
(JSC::JSWebAssemblyInstance::visitChildren): visit the ModuleNamespaceObject child

  • wasm/js/JSWebAssemblyInstance.h:
  • wasm/js/JSWebAssemblyModule.cpp:

(JSC::JSWebAssemblyModule::create):
(JSC::JSWebAssemblyModule::JSWebAssemblyModule): move in the compiled functions and the memory

  • wasm/js/JSWebAssemblyModule.h:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::constructJSWebAssemblyInstance): take the Module, extract the Plan's results, and create the (empty for now) ModuleNamespaceObject

  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::constructJSWebAssemblyModule): add a few comments from the spec, and pass out the Plan's results

5:17 PM Changeset in webkit [207928] by BJ Burg
  • 17 edits in trunk/Source

Web Inspector: remove unused bool return value from FrontendChannel::sendMessageToFrontend
https://bugs.webkit.org/show_bug.cgi?id=164046

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/InspectorFrontendChannel.h:
  • inspector/remote/RemoteConnectionToTarget.h:
  • inspector/remote/RemoteConnectionToTarget.mm:

(Inspector::RemoteConnectionToTarget::sendMessageToFrontend):

Source/WebCore:

  • inspector/InspectorClient.cpp:

(WebCore::InspectorClient::doDispatchMessageOnFrontendPage):

  • inspector/InspectorClient.h:
  • testing/Internals.cpp:

(WebCore::InspectorStubFrontend::sendMessageToFrontend):

Source/WebKit/cf:

  • WebCoreSupport/WebInspectorClientCF.cpp:

(WebInspectorClient::sendMessageToFrontend):

Source/WebKit/mac:

  • WebCoreSupport/WebInspectorClient.h:

Source/WebKit/win:

  • WebCoreSupport/WebInspectorClient.h:

Source/WebKit2:

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::sendMessageToFrontend):

  • WebProcess/WebPage/WebInspector.h:
4:57 PM Changeset in webkit [207927] by jfbastien@apple.com
  • 6 edits
    2 deletes in trunk/Source/JavaScriptCore

WebAssembly: remove now-dead JSWasmModule
https://bugs.webkit.org/show_bug.cgi?id=164044

Reviewed by Keith Miller.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • runtime/Executable.cpp:

(JSC::WebAssemblyExecutable::WebAssemblyExecutable):
(JSC::WebAssemblyExecutable::visitChildren):

  • runtime/Executable.h:
  • wasm/JSWasmModule.cpp: Removed.
  • wasm/JSWasmModule.h: Removed.
  • wasm/WasmModuleParser.cpp:
4:19 PM Changeset in webkit [207926] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-602-branch

Merge r207547. rdar://problem/28810755

4:18 PM Changeset in webkit [207925] by matthew_hanson@apple.com
  • 11 edits
    2 adds in branches/safari-602-branch

Merge r207804. rdar://problem/28849628

4:18 PM Changeset in webkit [207924] by matthew_hanson@apple.com
  • 6 edits
    2 adds in branches/safari-602-branch

Merge r207692. rdar://problem/28810751

4:18 PM Changeset in webkit [207923] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r207683. rdar://problem/28849627

4:18 PM Changeset in webkit [207922] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r207661. rdar://problem/28857478

4:18 PM Changeset in webkit [207921] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-602-branch

Merge r207631. rdar://problem/28810750

4:18 PM Changeset in webkit [207920] by matthew_hanson@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r207477. rdar://problem/28810756

4:17 PM Changeset in webkit [207919] by matthew_hanson@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r207221. rdar://problem/28894492

4:17 PM Changeset in webkit [207918] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r206190. rdar://problem/28744102

4:17 PM Changeset in webkit [207917] by matthew_hanson@apple.com
  • 6 edits
    2 adds in branches/safari-602-branch

Merge r206102. rdar://problem/28744106

4:17 PM Changeset in webkit [207916] by matthew_hanson@apple.com
  • 6 edits
    1 add in branches/safari-602-branch

Merge r206281. rdar://problem/28870938

4:17 PM Changeset in webkit [207915] by matthew_hanson@apple.com
  • 3 edits
    1 add in branches/safari-602-branch

Merge r207623. rdar://problem/28857477

4:15 PM Changeset in webkit [207914] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

The URLSearchParams constructor should take a union in parameter
https://bugs.webkit.org/show_bug.cgi?id=163906

Reviewed by Darin Adler.

The URLSearchParams constructor should take a union in parameter:

No new tests, no web-exposed behavior change.

  • html/URLSearchParams.h:

(WebCore::URLSearchParams::create):

  • html/URLSearchParams.idl:
2:09 PM Changeset in webkit [207913] by Yusuke Suzuki
  • 2 edits in trunk/Tools

[GTK] JSC test wasm.yaml/wasm/js-api/test_basic_api.js.default-wasm and wasm.yaml/wasm/js-api/test_Module.js.default-wasm fail with Exception: ReferenceError: Can't find variable: WebAssembly
https://bugs.webkit.org/show_bug.cgi?id=163846

Reviewed by Michael Catanzaro.

WebAssembly is now developed for Darwin right now.
Disable WASM tests in the other platforms.

  • Scripts/run-jsc-stress-tests:
2:05 PM Changeset in webkit [207912] by weinig@apple.com
  • 32 edits in trunk/Source/WebCore

[WebIDL] Move more string conversions over to JSDOMConvert
https://bugs.webkit.org/show_bug.cgi?id=164021

Reviewed by Tim Horton.

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::JSCSSStyleDeclaration::putDelegate):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::open):
(WebCore::JSDOMWindow::showModalDialog):
(WebCore::handlePostMessage):

  • bindings/js/JSHTMLCanvasElementCustom.cpp:

(WebCore::JSHTMLCanvasElement::toDataURL):

  • bindings/js/JSHistoryCustom.cpp:

(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):
Switch to convert functions.

  • bindings/js/JSApplePaySessionCustom.cpp:

(WebCore::JSApplePaySession::completeShippingMethodSelection):
(WebCore::JSApplePaySession::completeShippingContactSelection):

  • bindings/js/JSCryptoAlgorithmDictionary.cpp:

(WebCore::createAesKeyGenParams):
(WebCore::createRsaKeyGenParams):

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::JSDocument::getCSSCanvasContext):

  • bindings/js/JSMockContentFilterSettingsCustom.cpp:

(WebCore::JSMockContentFilterSettings::setDecisionPoint):
(WebCore::toDecision):

  • bindings/js/JSNodeFilterCustom.cpp:

(WebCore::JSNodeFilter::acceptNode):

  • bindings/js/JSDOMBinding.cpp:

(WebCore::toSmallerInt):
(WebCore::toSmallerUInt):
(WebCore::toInt8EnforceRange):
(WebCore::toUInt8EnforceRange):
(WebCore::toInt8Clamp):
(WebCore::toUInt8Clamp):
(WebCore::toInt8):
(WebCore::toUInt8):
(WebCore::toInt16EnforceRange):
(WebCore::toUInt16EnforceRange):
(WebCore::toInt16Clamp):
(WebCore::toUInt16Clamp):
(WebCore::toInt16):
(WebCore::toUInt16):
Use updated IntegerConversionConfiguration naming.

(WebCore::valueToStringTreatingNullAsEmptyString): Deleted.
(WebCore::valueToStringWithUndefinedOrNullCheck): Deleted.
(WebCore::valueToUSVStringTreatingNullAsEmptyString): Deleted.
(WebCore::valueToUSVStringWithUndefinedOrNullCheck): Deleted.

  • bindings/js/JSDOMBinding.h:

Remove unused functions.

  • bindings/js/JSDOMConvert.h:

(WebCore::convert):
Add StringConversionConfiguration, to match IntegerConversionConfiguration which moved here,
and make them both enum classes. Remove SFINAE based overloading of convert<>, which is not
needed if we get rid of the default parameter, which we can, since the two parameter convert
routes to the right place.

(WebCore::Converter<IDLNullable<T>>::convert):
Add overloads converts that take a Integer/String configuration.

(WebCore::Converter<IDLByte>::convert):
(WebCore::Converter<IDLOctet>::convert):
(WebCore::Converter<IDLShort>::convert):
(WebCore::Converter<IDLUnsignedShort>::convert):
(WebCore::Converter<IDLLong>::convert):
(WebCore::Converter<IDLUnsignedLong>::convert):
(WebCore::Converter<IDLLongLong>::convert):
(WebCore::Converter<IDLUnsignedLongLong>::convert):
Use updated IntegerConversionConfiguration naming.

(WebCore::Converter<IDLDOMString>::convert):
(WebCore::Converter<IDLUSVString>::convert):
Add a configuration parameter, similar to the one used for integers
that changes the behavior of string conversions to return an empty
string for null.

  • bindings/js/JSDOMIterator.h:

(WebCore::iteratorCreate):
(WebCore::IteratorTraits>::asJS):
(WebCore::appendForEachArguments):
Simplify a bit by extracting the SFINAE helpers into a EnableIfMap and EnableIfSet.

  • bindings/scripts/CodeGeneratorJS.pm:

(GetIntegerConversionConfiguration):
(GetStringConversionConfiguration):
(JSValueToNativeIsHandledByDOMConvert):
(JSValueToNative):
Add support for converting more string types and passing the StringConversionConfiguration.

2:02 PM Changeset in webkit [207911] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 16

Added a tag for Safari Technology Preview release 16.

1:39 PM Changeset in webkit [207910] by mitz@apple.com
  • 6 edits in trunk

When pasting web archive, width specifiers in srcset attribute change into density specifiers
https://bugs.webkit.org/show_bug.cgi?id=164027
<rdar://problem/28964948>

Reviewed by Tim Horton.

Source/WebCore:

Updated editing/pasteboard/img-srcset-copy-paste-canonicalization.html.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::completeURLsInAttributeValue): Use 'w' when writing out a width

specifier.

LayoutTests:

  • editing/pasteboard/img-srcset-copy-paste-canonicalization-expected.txt: Updated.
  • editing/pasteboard/img-srcset-copy-paste-canonicalization.html: Changed to expect a 200w specifier to round-trip.
  • editing/pasteboard/resources/img-srcset-copy-paste-canonicalization-iframe.html: Changed a 1x specifier to 200w.
1:26 PM Changeset in webkit [207909] by commit-queue@webkit.org
  • 20 edits
    4 copies
    4 adds in trunk

[Modern Media Controls] Media Controller: playback support
https://bugs.webkit.org/show_bug.cgi?id=163678
<rdar://problem/27989479>

Patch by Antoine Quint <Antoine Quint> on 2016-10-26
Reviewed by Dean Jackson.

Source/WebCore:

We introduce the PlaybackSupport class which brings support for playing and pausing
the media by clicking on the play/pause button in the media controls and correctly
reflecting the media's playback state as the media is played or paused via the media API.

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/media-controller.js:

(MediaController):

  • Modules/modern-media-controls/media/playback-support.js: Copied from Source/WebCore/Modules/modern-media-controls/media/media-controller.js.

(PlaybackSupport.prototype.get control):
(PlaybackSupport.prototype.get mediaEvents):
(PlaybackSupport.prototype.buttonWasClicked):
(PlaybackSupport.prototype.syncControl):
(PlaybackSupport):

  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

New tests for the PlaybackSupport class and adding the new resource to other MediaController tests.

  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
  • media/modern-media-controls/elapsed-time-support/elapsed-time-support.html:
  • media/modern-media-controls/media-controller/media-controller-constructor.html:
  • media/modern-media-controls/media-controller/media-controller-resize.html:
  • media/modern-media-controls/mute-support/mute-support-button-click.html:
  • media/modern-media-controls/mute-support/mute-support-media-api.html:
  • media/modern-media-controls/mute-support/mute-support-muted.html:
  • media/modern-media-controls/playback-support/playback-support-autoplay-expected.txt: Added.
  • media/modern-media-controls/playback-support/playback-support-autoplay.html: Copied from LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support.html.
  • media/modern-media-controls/playback-support/playback-support-button-click-expected.txt: Added.
  • media/modern-media-controls/playback-support/playback-support-button-click.html: Copied from LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html.
  • media/modern-media-controls/playback-support/playback-support-media-api-expected.txt: Added.
  • media/modern-media-controls/playback-support/playback-support-media-api.html: Copied from LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html.
  • media/modern-media-controls/remaining-time-support/remaining-time-support.html:
  • media/modern-media-controls/start-support/start-support-audio.html:
  • media/modern-media-controls/start-support/start-support-autoplay.html:
  • media/modern-media-controls/start-support/start-support-click-to-start.html:
  • media/modern-media-controls/start-support/start-support-error.html:
  • media/modern-media-controls/start-support/start-support-fullscreen.html:
  • media/modern-media-controls/start-support/start-support-manual-play.html:
  • media/modern-media-controls/start-support/start-support-no-source.html:
1:20 PM October 2016 Meeting edited by Jon Davis
Added morning transcripts (diff)
1:17 PM WebComponents2016 created by Jon Davis
1:17 PM Changeset in webkit [207908] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

Regression(r203848): 百度糯米 app fails to load content due to a JavaScript error
https://bugs.webkit.org/show_bug.cgi?id=163967
<rdar://problem/28707838>

Reviewed by Ryosuke Niwa.

Add quirk for 百度糯米 app making the 2 last parameters to Event.prototype.initEvent()
optional.

No new tests, change only impacts this specific application.

  • bindings/scripts/CodeGeneratorJS.pm:

(GeneratePropertiesHashTable):

  • dom/Event.cpp:

(WebCore::Event::initEventForBindings):

  • dom/Event.h:
  • dom/Event.idl:
  • platform/RuntimeApplicationChecks.h:
  • platform/RuntimeApplicationChecks.mm:

(WebCore::IOSApplication::isBaiduNuomi):

1:15 PM StateofJSC2016 created by Jon Davis
1:15 PM October 2016 Meeting edited by rniwa@webkit.org
Add web components slides (diff)
1:13 PM StateofWebInspector2016 created by Jon Davis
1:09 PM Web Components - 2016 WebKit Contributors Meeting.key attached to October 2016 Meeting by rniwa@webkit.org
Web Components
1:02 PM October 2016 Meeting edited by Jon Davis
(diff)
12:27 PM Changeset in webkit [207907] by Chris Dumez
  • 9 edits
    2 adds in trunk

First parameter to TextTrack.addCue() / removeCue() should not be nullable
https://bugs.webkit.org/show_bug.cgi?id=164020

Reviewed by Eric Carlson.

Source/WebCore:

First parameter to TextTrack.addCue() / removeCue() should not be nullable:

Firefox and Chrome agree with the specification.

Test: media/track/texttrack-addCue-null.html

  • html/track/InbandDataTextTrack.cpp:

(WebCore::InbandDataTextTrack::removeDataCue):
(WebCore::InbandDataTextTrack::removeCue):

  • html/track/InbandDataTextTrack.h:
  • html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::addGenericCue):
(WebCore::InbandGenericTextTrack::removeGenericCue):
(WebCore::InbandGenericTextTrack::removeCue):

  • html/track/InbandGenericTextTrack.h:
  • html/track/TextTrack.cpp:

(WebCore::TextTrack::addCue):
(WebCore::TextTrack::removeCue):

  • html/track/TextTrack.h:
  • html/track/TextTrack.idl:

LayoutTests:

Add layout test coverage.

  • media/track/texttrack-addCue-null-expected.txt: Added.
  • media/track/texttrack-addCue-null.html: Added.
12:23 PM Changeset in webkit [207906] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

JSGenericTypedArrayView::set() should check for exceptions.
https://bugs.webkit.org/show_bug.cgi?id=164007
<rdar://problem/28853775>

Reviewed by Filip Pizlo.

JSTests:

  • stress/typed-array-view-set-should-not-crash-on-exception.js: Added.

Source/JavaScriptCore:

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::set):

12:07 PM Changeset in webkit [207905] by commit-queue@webkit.org
  • 18 edits
    4 copies
    4 adds in trunk

[Modern Media Controls] Media Controller: elapsed and remaining time support
https://bugs.webkit.org/show_bug.cgi?id=163679
<rdar://problem/28851675>

Patch by Antoine Quint <Antoine Quint> on 2016-10-26
Reviewed by Dean Jackson.

Source/WebCore:

We introduce the ElapsedTimeSupport and RemainingTimeSupport classes which bring
support for displaying the elapsed and remaining time in the time control.

Tests: media/modern-media-controls/elapsed-time-support/elapsed-time-support.html

media/modern-media-controls/remaining-time-support/remaining-time-support.html

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/elapsed-time-support.js: Added.

(ElapsedTimeSupport.prototype.get control):
(ElapsedTimeSupport.prototype.get mediaEvents):
(ElapsedTimeSupport.prototype.syncControl):
(ElapsedTimeSupport):

  • Modules/modern-media-controls/media/media-controller.js:

(MediaController):

  • Modules/modern-media-controls/media/remaining-time-support.js: Added.

(RemainingTimeSupport.prototype.get control):
(RemainingTimeSupport.prototype.get mediaEvents):
(RemainingTimeSupport.prototype.syncControl):
(RemainingTimeSupport):

  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

New tests for the ElapsedTimeSupport and RemainingTimeSupport classes and adding the
new resources to other MediaController tests.

  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
  • media/modern-media-controls/elapsed-time-support/elapsed-time-support-expected.txt: Added.
  • media/modern-media-controls/elapsed-time-support/elapsed-time-support.html: Added.
  • media/modern-media-controls/media-controller/media-controller-constructor.html:
  • media/modern-media-controls/media-controller/media-controller-resize.html:
  • media/modern-media-controls/mute-support/mute-support-button-click.html:
  • media/modern-media-controls/mute-support/mute-support-media-api.html:
  • media/modern-media-controls/mute-support/mute-support-muted.html:
  • media/modern-media-controls/remaining-time-support/remaining-time-support-expected.txt: Added.
  • media/modern-media-controls/remaining-time-support/remaining-time-support.html: Added.
  • media/modern-media-controls/start-support/start-support-audio.html:
  • media/modern-media-controls/start-support/start-support-autoplay.html:
  • media/modern-media-controls/start-support/start-support-click-to-start.html:
  • media/modern-media-controls/start-support/start-support-error.html:
  • media/modern-media-controls/start-support/start-support-fullscreen.html:
  • media/modern-media-controls/start-support/start-support-manual-play.html:
  • media/modern-media-controls/start-support/start-support-no-source.html:
11:17 AM October 2016 Meeting edited by Brent Fulgham
(diff)
11:13 AM October 2016 Meeting edited by sun.shin@webkit.org
(diff)
10:45 AM Changeset in webkit [207904] by Michael Catanzaro
  • 1 edit
    1 add in trunk/LayoutTests

Unreviewed GTK test gardening

  • platform/gtk/fast/events/input-events-paste-rich-datatransfer-expected.txt: Added.
10:44 AM Changeset in webkit [207903] by hyatt@apple.com
  • 12 edits
    2 deletes in trunk/Source/WebCore

[CSS Parser] Unify CSSCustomPropertyValue and CSSCustomPropertyDeclaration
https://bugs.webkit.org/show_bug.cgi?id=164019

Reviewed by Zalan Bujtas.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSCustomPropertyDeclaration.cpp: Removed.
  • css/CSSCustomPropertyDeclaration.h: Removed.

Get rid of CSSCustomPropertyDeclaration.

  • css/CSSCustomPropertyValue.h:

Add new constructors to handle the new variable data format (either a CSSValueId or a
CSSVariableData object that holds parser tokens).

  • css/CSSValue.cpp:

(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isCustomPropertyDeclaration): Deleted.
Get rid of CSSCustomPropertyDeclaration cases.

  • css/CSSVariableData.h:

Switch to CSSCustomPropertyValue.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyProperty):
We've renamed the old parser variable data to deprecatedValue to make it clear it's going
to be removed eventually.

  • css/parser/CSSParserImpl.cpp:

(WebCore::filterProperties):
(WebCore::CSSParserImpl::consumeVariableValue):

  • css/parser/CSSVariableParser.cpp:

(WebCore::CSSVariableParser::parseDeclarationValue):

  • css/parser/CSSVariableParser.h:

Switch to CSSCustomPropertyValue.

10:43 AM Changeset in webkit [207902] by commit-queue@webkit.org
  • 3 edits
    1 copy
    2 adds in trunk/LayoutTests

[Modern Media Controls] http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=164013

Unreviewed.

Make the test more robust by only responding to "canplaythrough" once, since it might have fired again
after seeking, and registering for "seeked" events only after we've reached "canplaythrough", and accounting
for the first seek to 50s.

Patch by Antoine Quint <Antoine Quint> on 2016-10-26

  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click-expected.txt:
  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
  • platform/mac-yosemite/http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click-expected.txt: Added.
9:46 AM Changeset in webkit [207901] by commit-queue@webkit.org
  • 17 edits
    1 delete in trunk

Enable SDPProcessor for Mac bots
https://bugs.webkit.org/show_bug.cgi?id=163940

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-26
Reviewed by Eric Carlson.

Source/WebCore:

Covered by activated tests.

Activating processing of SDPProcessor scripts for Mac bots.
Moving platform/mediastream/openwebrtc/SDPProcessorScriptResource.cpp to platform/mediastream/SDPProcessorScriptResource.cpp.
This file is not tied to openwebrtc and allows retrieving the SDPProcessor script resource file content.

  • DerivedSources.make:
  • PlatformGTK.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/SDPProcessorScriptResource.cpp:

(WebCore::SDPProcessorScriptResource::scriptString):

  • platform/mediastream/openwebrtc/SDPProcessorScriptResource.cpp: Removed.

LayoutTests:

This is the first time the tests are activated since a long time.
Further patches should make the tests pass and/or update them according latest spec.

  • fast/mediastream/RTCPeerConnection-createAnswer-expected.txt:
  • fast/mediastream/RTCPeerConnection-createOffer-expected.txt:
  • fast/mediastream/RTCPeerConnection-have-local-offer-expected.txt:
  • fast/mediastream/RTCPeerConnection-have-local-pranswer-expected.txt:
  • fast/mediastream/RTCPeerConnection-have-remote-offer-expected.txt:
  • fast/mediastream/RTCPeerConnection-have-remote-pranswer-expected.txt:
  • fast/mediastream/RTCPeerConnection-localDescription-expected.txt:
  • fast/mediastream/RTCPeerConnection-remoteDescription-expected.txt:
  • fast/mediastream/RTCPeerConnection-stable-expected.txt:
  • platform/mac/TestExpectations:
9:23 AM October 2016 Meeting edited by Jon Davis
(diff)
9:14 AM Changeset in webkit [207900] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Get functional pseudos parsing
https://bugs.webkit.org/show_bug.cgi?id=164018

Reviewed by Zalan Bujtas.

  • css/parser/CSSParserValues.cpp:

(WebCore::CSSParserSelector::parsePseudoClassSelectorFromStringView):
Remove the ( check so that we can parse strings that end in (.

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumePseudo):
Put in a hack that adds a ( to the end of the string so that it will be found in the map.

8:36 AM Changeset in webkit [207899] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fixing compiler warnings in PlaybackPipeline
that are popping up in GTK+ builds.

  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:

(WebCore::PlaybackPipeline::addSourceBuffer):
(WebCore::PlaybackPipeline::attachTrack):

8:08 AM Changeset in webkit [207898] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebKit2

[MediaStream] Add "has capture device" bit to media state flags
https://bugs.webkit.org/show_bug.cgi?id=163952

Unreviewed fix after r207839.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setMuted): Take an MutedStateFlags, not a bool.

  • WebProcess/WebPage/WebPage.h:
7:49 AM Changeset in webkit [207897] by commit-queue@webkit.org
  • 13 edits in trunk/Source/WebCore

IceCandidate does not need to be refcounted
https://bugs.webkit.org/show_bug.cgi?id=163944

Patch by Youenn Fablet <youennf@gmail.com> on 2016-10-26
Reviewed by Eric Carlson.

No change of behavior.

Simplifying IceCandidate class into a simple structure, no longer refcounted.
Updated call sites accordingly.
Updated SDP parsing of candidates to return a Variant instead of having both a return and an out parameter.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::addIceCandidateTask):
(WebCore::MediaEndpointPeerConnection::gotIceCandidate):

  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • Modules/mediastream/SDPProcessor.cpp:

(WebCore::createCandidateObject):
(WebCore::createCandidate):
(WebCore::iceCandidateFromJSON):
(WebCore::configurationToJSON):
(WebCore::SDPProcessor::parseCandidateLine):

  • Modules/mediastream/SDPProcessor.h:

(WebCore::SDPProcessor::ParsingResult::parsingStatus):
(WebCore::SDPProcessor::ParsingResult::candidate):

  • platform/mediastream/IceCandidate.h:
  • platform/mediastream/MediaEndpoint.cpp:
  • platform/mediastream/MediaEndpoint.h:
  • platform/mediastream/PeerMediaDescription.h:

(WebCore::PeerMediaDescription::iceCandidates):
(WebCore::PeerMediaDescription::addIceCandidate):
(WebCore::PeerMediaDescription::clone):

  • platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:

(WebCore::MediaEndpointOwr::updateSendConfiguration):
(WebCore::MediaEndpointOwr::addRemoteCandidate):
(WebCore::MediaEndpointOwr::dispatchNewIceCandidate):
(WebCore::MediaEndpointOwr::internalAddRemoteCandidate):

  • platform/mediastream/openwebrtc/MediaEndpointOwr.h:
  • platform/mock/MockMediaEndpoint.cpp:

(WebCore::MockMediaEndpoint::addRemoteCandidate):
(WebCore::MockMediaEndpoint::dispatchFakeIceCandidates):

  • platform/mock/MockMediaEndpoint.h:
6:24 AM Changeset in webkit [207896] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Fix mach port leak in ResourceUsageThread.
<https://webkit.org/b/164012>

Reviewed by Antti Koivisto.

The threads returned by task_threads() need to be deallocated.

  • page/cocoa/ResourceUsageThreadCocoa.mm:

(WebCore::cpuUsage):

5:54 AM Changeset in webkit [207895] by nael.ouedraogo@crf.canon.fr
  • 5 edits in trunk

WebRTC: The RTCTrackEventInit dictionary needs required members
https://bugs.webkit.org/show_bug.cgi?id=158536

Source/WebCore:

Reviewed by Chris Dumez.

Update RTCTrackEvent IDL as per specification.

No additional test required, rebase existing tests.

  • Modules/mediastream/RTCTrackEvent.idl:

LayoutTests:

Update RTCTrackEvent IDL as per specification. Rebase existing tests.

Reviewed by Chris Dumez.

  • fast/mediastream/RTCTrackEvent-constructor-expected.txt:
  • fast/mediastream/RTCTrackEvent-constructor.html:
3:09 AM Changeset in webkit [207894] by eocanha@igalia.com
  • 3 edits in trunk/Source/WebCore

[GStreamer][GTK+][MSE] Unreviewed debug build fix.

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::resetPipeline):

  • platform/graphics/gstreamer/mse/AppendPipeline.h:
2:57 AM Changeset in webkit [207893] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.15.1

WebKitGTK+ 2.15.1

2:56 AM Changeset in webkit [207892] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.15.1 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.15.1.
1:48 AM Changeset in webkit [207891] by eocanha@igalia.com
  • 6 edits
    1 add in trunk

[cmake][GStreamer][MSE][EME] Build MSE and EME code after refactoring
https://bugs.webkit.org/show_bug.cgi?id=162928

Reviewed by Xabier Rodriguez-Calvar.

.:

Consolidate all the source file tree changes after refactoring.

This patch is co-authored with Philippe Normand <philn@igalia.com> (EME support).

  • Source/cmake/FindLibGcrypt.cmake: Added.
  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

Consolidate all the source file tree changes after refactoring.

This patch is co-authored with Philippe Normand <philn@igalia.com> (EME support).

  • platform/GStreamer.cmake:

Tools:

Explicitly enable MSE and EME on WebKitGTK+ buildbots.

This patch is co-authored with Philippe Normand <philn@igalia.com> (EME support).

  • Scripts/webkitperl/FeatureList.pm:
1:47 AM Changeset in webkit [207890] by eocanha@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Enable QUOTA_EXCEEDED_ERR support for GStreamer
https://bugs.webkit.org/show_bug.cgi?id=162922

Reviewed by Xabier Rodriguez-Calvar.

QUOTA_EXCEEDED_ERR should be reported by SourceBuffer when appropriate, at least on the
GStreamer implementation.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::appendBufferInternal):

1:47 AM Changeset in webkit [207889] by eocanha@igalia.com
  • 4 edits in trunk/Source/WebCore

[MSE] Expose additional MediaSource methods to MediaSourcePrivate
https://bugs.webkit.org/show_bug.cgi?id=162920

Reviewed by Xabier Rodriguez-Calvar.

The GStreamer MSE platform implementation needs to report duration changes and trigger
monitorSourceBuffers() calls.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::durationChanged):

  • Modules/mediasource/MediaSource.h:
  • platform/graphics/MediaSourcePrivateClient.h:
1:46 AM Changeset in webkit [207888] by eocanha@igalia.com
  • 1 edit
    2 adds in trunk/Source/WebCore

[GStreamer][EME] ClearKey decryption support
https://bugs.webkit.org/show_bug.cgi?id=162918

Reviewed by Xabier Rodriguez-Calvar.

This patch is authored by Philippe Normand <philn@igalia.com>.

  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp: Added.

(webkit_media_clear_key_decrypt_class_init):
(webkit_media_clear_key_decrypt_init):
(webKitMediaClearKeyDecryptorFinalize):
(webKitMediaClearKeyDecryptorRequestDecryptionKey):
(webKitMediaClearKeyDecryptorHandleKeyResponse):
(webKitMediaClearKeyDecryptorSetupCipher):
(webKitMediaClearKeyDecryptorDecrypt):
(webKitMediaClearKeyDecryptorReleaseCipher):

  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.h: Added.
1:45 AM Changeset in webkit [207887] by eocanha@igalia.com
  • 1 edit
    3 adds in trunk/Source/WebCore

[GStreamer][EME] Base class for decryption support
https://bugs.webkit.org/show_bug.cgi?id=162915

Reviewed by Xabier Rodriguez-Calvar.

Add common encryption base class.

This patch is authored by Philippe Normand <philn@igalia.com>.

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: Added.

(webkit_media_common_encryption_decrypt_class_init):
(webkit_media_common_encryption_decrypt_init):
(webKitMediaCommonEncryptionDecryptorFinalize):
(webkitMediaCommonEncryptionDecryptTransformCaps):
(webkitMediaCommonEncryptionDecryptTransformInPlace):
(webkitMediaCommonEncryptionDecryptSinkEventHandler):
(webKitMediaCommonEncryptionDecryptorChangeState):
(webKitMediaCommonEncryptionDecryptDefaultSetupCipher):
(webKitMediaCommonEncryptionDecryptDefaultReleaseCipher):

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h: Added.
1:45 AM Changeset in webkit [207886] by eocanha@igalia.com
  • 3 edits in trunk/Source/WebCore

[GStreamer][EME] Utility function to create decryptor
https://bugs.webkit.org/show_bug.cgi?id=162914

Reviewed by Xabier Rodriguez-Calvar.

Add a utility function to find a suitable GStreamer decryptor element.

This patch is authored by Philippe Normand <philn@igalia.com>.

  • platform/graphics/gstreamer/GStreamerUtilities.cpp:

(WebCore::createGstDecryptor):
(WebCore::gstRegistryHasElementForMediaType): Deleted.

  • platform/graphics/gstreamer/GStreamerUtilities.h:
1:44 AM Changeset in webkit [207885] by eocanha@igalia.com
  • 3 edits in trunk/Source/WebCore

[GStreamer][MSE][EME] Remove MSE code from regular player and add EME support
https://bugs.webkit.org/show_bug.cgi?id=162911

Now that the MSE responsibility has been refactored to the dedicated
MediaPlayerPrivateGStreamerMSE subclass, the regular player no longer needs the MSE code,
just to expose some more methods to the subclass. Float timestamps have been migrated to
double. Also, small changes to accomodate the EME support are needed.

This patch is co-authored with Philippe Normand <philn@igalia.com> (EME support) and
Žan Doberšek <zandobersek@gmail.com> (double timestamps).

Reviewed by Xabier Rodriguez-Calvar.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::busMessageCallback):
(WebCore::MediaPlayerPrivateGStreamer::registerMediaEngine):
(WebCore::initializeGStreamerAndRegisterWebKitElements):
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::load):
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition):
(WebCore::MediaPlayerPrivateGStreamer::durationMediaTime):
(WebCore::MediaPlayerPrivateGStreamer::currentMediaTime):
(WebCore::MediaPlayerPrivateGStreamer::seek):
(WebCore::MediaPlayerPrivateGStreamer::doSeek):
(WebCore::MediaPlayerPrivateGStreamer::paused):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfText):
(WebCore::MediaPlayerPrivateGStreamer::buffered):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::processMpegTsSection):
(WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeLoaded):
(WebCore::MediaPlayerPrivateGStreamer::didLoadingProgress):
(WebCore::MediaPlayerPrivateGStreamer::sourceChanged):
(WebCore::MediaPlayerPrivateGStreamer::didEnd):
(WebCore::MediaPlayerPrivateGStreamer::durationChanged):
(WebCore::MediaPlayerPrivateGStreamer::supportsType):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage):
(WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::commitLoad): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::pause): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::videoChangedCallback): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::videoSinkCapsChangedCallback): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideoCaps): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::setRate): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::processTableOfContentsEntry): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::totalBytes): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::loadStateChanged): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::timeChanged): Deleted.
(WebCore::mimeTypeSet): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::createAudioSink): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(WebCore::MediaPlayerPrivateGStreamer::configurePlaySink):
(WebCore::MediaPlayerPrivateGStreamer::isMediaSource):
(WebCore::MediaPlayerPrivateGStreamer::createWeakPtr): Deleted.

1:44 AM Changeset in webkit [207884] by eocanha@igalia.com
  • 3 edits in trunk/Source/WebCore

[GStreamer][EME] Add EME support to base private player
https://bugs.webkit.org/show_bug.cgi?id=162908

Reviewed by Xabier Rodriguez-Calvar.

Add encryption key management support.

This patch is authored by Philippe Normand <philn@igalia.com>.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::registerWebKitGStreamerElements):
(WebCore::MediaPlayerPrivateGStreamerBase::handleSyncMessage):
(WebCore::MediaPlayerPrivateGStreamerBase::needKey):
(WebCore::MediaPlayerPrivateGStreamerBase::setCDMSession):
(WebCore::MediaPlayerPrivateGStreamerBase::keyAdded):
(WebCore::MediaPlayerPrivateGStreamerBase::createSession):
(WebCore::MediaPlayerPrivateGStreamerBase::dispatchDecryptionKey):
(WebCore::MediaPlayerPrivateGStreamerBase::supportsKeySystem):
(WebCore::MediaPlayerPrivateGStreamerBase::extendedSupportsType):
(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase): Deleted.
(WebCore::MediaPlayerPrivateGStreamerBase::setPipeline): Deleted.
(WebCore::MediaPlayerPrivateGStreamerBase::setStreamVolumeElement): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:

(WebCore::MediaPlayerPrivateGStreamerBase::pipeline):

1:43 AM Changeset in webkit [207883] by eocanha@igalia.com
  • 1 edit
    1 move
    2 adds
    1 delete in trunk/Source/WebCore

[GStreamer][MSE] WebKitMediaSourceGStreamer refactoring
https://bugs.webkit.org/show_bug.cgi?id=162902

Reviewed by Xabier Rodriguez-Calvar.

Move WebKitMediaSourceGStreamer to the mse directory, split public and private header
sections, manage stream data throttling and seek synchronization, audio/video/text stream
counting, improve GStreamer duration query, stream initialization, remove
MediaSourceClientGStreamer logic (factored out to its own class in another patch) and
interaction with MediaPlayerPrivateGStreamerMSE, PlaybackPipeline and
SourceBufferPrivateGStreamer.

  • platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp: Removed.
  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp: Added.

(disabledAppsrcNeedData):
(disabledAppsrcEnoughData):
(disabledAppsrcSeekData):
(enabledAppsrcEnoughData):
(enabledAppsrcSeekData):
(getStreamByAppsrc):
(webkit_media_src_init):
(webKitMediaSrcFinalize):
(webKitMediaSrcSetProperty):
(webKitMediaSrcGetProperty):
(webKitMediaSrcDoAsyncStart):
(webKitMediaSrcDoAsyncDone):
(webKitMediaSrcChangeState):
(webKitMediaSrcGetSize):
(webKitMediaSrcQueryWithParent):
(webKitMediaSrcUpdatePresentationSize):
(webKitMediaSrcLinkStreamToSrcPad):
(webKitMediaSrcLinkParser):
(webKitMediaSrcFreeStream):
(webKitMediaSrcCheckAllTracksConfigured):
(webKitMediaSrcUriGetType):
(webKitMediaSrcGetProtocols):
(webKitMediaSrcGetUri):
(webKitMediaSrcSetUri):
(webKitMediaSrcUriHandlerInit):
(seekNeedsDataMainThread):
(notifyReadyForMoreSamplesMainThread):
(applicationMessageCallback):
(webKitMediaSrcSetMediaPlayerPrivate):
(webKitMediaSrcSetReadyForSamples):
(webKitMediaSrcPrepareSeek):
(WTF::adoptGRef):
(WTF::refGPtr<WebKitMediaSrc>):
(WTF::derefGPtr<WebKitMediaSrc>):

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h: Renamed from Source/WebCore/platform/graphics/gstreamer/WebKitMediaSourceGStreamer.h.
  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamerPrivate.h: Added.
1:42 AM Changeset in webkit [207882] by eocanha@igalia.com
  • 1 edit
    2 adds in trunk/Source/WebCore

[GStreamer][MSE] Playback pipeline
https://bugs.webkit.org/show_bug.cgi?id=162901

Reviewed by Xabier Rodriguez-Calvar.

Encapsulate the responsibility to interact with the GStreamer playback pipeline and the
different streams managed by the WebKitMediaSrc element into a new PlaybackPipeline class.

  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp: Added.

(getStreamByTrackId):
(getStreamBySourceBufferPrivate):
(pushSample):
(WebCore::PlaybackPipeline::create):
(WebCore::PlaybackPipeline::PlaybackPipeline):
(WebCore::PlaybackPipeline::~PlaybackPipeline):
(WebCore::PlaybackPipeline::setWebKitMediaSrc):
(WebCore::PlaybackPipeline::webKitMediaSrc):
(WebCore::PlaybackPipeline::addSourceBuffer):
(WebCore::PlaybackPipeline::removeSourceBuffer):
(WebCore::PlaybackPipeline::attachTrack):
(WebCore::PlaybackPipeline::reattachTrack):
(WebCore::PlaybackPipeline::notifyDurationChanged):
(WebCore::PlaybackPipeline::markEndOfStream):
(WebCore::PlaybackPipeline::flushAndEnqueueNonDisplayingSamples):
(WebCore::PlaybackPipeline::enqueueSample):
(WebCore::PlaybackPipeline::pipeline):

  • platform/graphics/gstreamer/mse/PlaybackPipeline.h: Added.
1:41 AM Changeset in webkit [207881] by eocanha@igalia.com
  • 2 edits
    2 adds in trunk/Source/WebCore

[GStreamer][MSE][EME] MSE specialization of Media Player Private for GStreamer
https://bugs.webkit.org/show_bug.cgi?id=162900

Reviewed by Xabier Rodriguez-Calvar.

Refactor MSE-specific logic to its own GStreamer player. This new MSE player coordinates
data appending, media playback and interaction with MediaSource by delegating to
AppendPipeline (one instance per SourceBuffer), PlaybackPipeline and
MediaSourceClientGStreamerMSE/MediaSourcePrivateClient respectively.

This patch is co-authored with Philippe Normand <philn@igalia.com> (EME support).

  • platform/graphics/MediaPlayer.cpp:

(WebCore::buildMediaEnginesVector):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp: Added.

(dumpReadyState):
(WebCore::MediaPlayerPrivateGStreamerMSE::registerMediaEngine):
(WebCore::initializeGStreamerAndRegisterWebKitMSEElement):
(WebCore::MediaPlayerPrivateGStreamerMSE::isAvailable):
(WebCore::MediaPlayerPrivateGStreamerMSE::MediaPlayerPrivateGStreamerMSE):
(WebCore::MediaPlayerPrivateGStreamerMSE::~MediaPlayerPrivateGStreamerMSE):
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::pause):
(WebCore::MediaPlayerPrivateGStreamerMSE::durationMediaTime):
(WebCore::MediaPlayerPrivateGStreamerMSE::seek):
(WebCore::MediaPlayerPrivateGStreamerMSE::configurePlaySink):
(WebCore::MediaPlayerPrivateGStreamerMSE::changePipelineState):
(WebCore::MediaPlayerPrivateGStreamerMSE::notifySeekNeedsDataForTime):
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek):
(WebCore::MediaPlayerPrivateGStreamerMSE::maybeFinishSeek):
(WebCore::MediaPlayerPrivateGStreamerMSE::updatePlaybackRate):
(WebCore::MediaPlayerPrivateGStreamerMSE::seeking):
(WebCore::MediaPlayerPrivateGStreamerMSE::setReadyState):
(WebCore::MediaPlayerPrivateGStreamerMSE::waitForSeekCompleted):
(WebCore::MediaPlayerPrivateGStreamerMSE::seekCompleted):
(WebCore::MediaPlayerPrivateGStreamerMSE::setRate):
(WebCore::MediaPlayerPrivateGStreamerMSE::buffered):
(WebCore::MediaPlayerPrivateGStreamerMSE::sourceChanged):
(WebCore::MediaPlayerPrivateGStreamerMSE::updateStates):
(WebCore::MediaPlayerPrivateGStreamerMSE::asyncStateChangeDone):
(WebCore::MediaPlayerPrivateGStreamerMSE::isTimeBuffered):
(WebCore::MediaPlayerPrivateGStreamerMSE::setMediaSourceClient):
(WebCore::MediaPlayerPrivateGStreamerMSE::mediaSourceClient):
(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
(WebCore::mimeTypeCache):
(WebCore::MediaPlayerPrivateGStreamerMSE::getSupportedTypes):
(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected):
(WebCore::MediaPlayerPrivateGStreamerMSE::supportsType):
(WebCore::MediaPlayerPrivateGStreamerMSE::dispatchDecryptionKey):
(WebCore::MediaPlayerPrivateGStreamerMSE::markEndOfStream):
(WebCore::MediaPlayerPrivateGStreamerMSE::currentMediaTime):
(WebCore::MediaPlayerPrivateGStreamerMSE::maxTimeSeekable):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h: Added.

(WebCore::MediaPlayerPrivateGStreamerMSE::mediaSourcePrivateClient):

1:41 AM Changeset in webkit [207880] by eocanha@igalia.com
  • 1 edit
    2 moves in trunk/Source/WebCore

[GStreamer][MSE] MediaSourceGStreamer refactoring
https://bugs.webkit.org/show_bug.cgi?id=162899

Reviewed by Žan Doberšek.

Move MediaSourceGStreamer to the mse directory, manage SourceBufferPrivates and delegate WebKitMediaSrc operations to the MSE private player.

  • platform/graphics/gstreamer/mse/MediaSourceGStreamer.cpp: Renamed from Source/WebCore/platform/graphics/gstreamer/MediaSourceGStreamer.cpp.

(WebCore::MediaSourceGStreamer::open):
(WebCore::MediaSourceGStreamer::MediaSourceGStreamer):
(WebCore::MediaSourceGStreamer::~MediaSourceGStreamer):
(WebCore::MediaSourceGStreamer::addSourceBuffer):
(WebCore::MediaSourceGStreamer::removeSourceBuffer):
(WebCore::MediaSourceGStreamer::durationChanged):
(WebCore::MediaSourceGStreamer::markEndOfStream):
(WebCore::MediaSourceGStreamer::unmarkEndOfStream):
(WebCore::MediaSourceGStreamer::readyState):
(WebCore::MediaSourceGStreamer::setReadyState):
(WebCore::MediaSourceGStreamer::waitForSeekCompleted):
(WebCore::MediaSourceGStreamer::seekCompleted):
(WebCore::MediaSourceGStreamer::sourceBufferPrivateDidChangeActiveState):
(WebCore::MediaSourceGStreamer::buffered):

  • platform/graphics/gstreamer/mse/MediaSourceGStreamer.h: Renamed from Source/WebCore/platform/graphics/gstreamer/MediaSourceGStreamer.h.
1:40 AM Changeset in webkit [207879] by eocanha@igalia.com
  • 1 edit
    2 moves in trunk/Source/WebCore

[GStreamer][MSE] SourceBufferPrivateGStreamer refactoring
https://bugs.webkit.org/show_bug.cgi?id=162898

Reviewed by Xabier Rodriguez-Calvar.

Moved SourceBufferPrivateGStreamer to an mse directory and added unimplemented features (abort, enqueueing and sample flow control).

  • platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp: Removed.
  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp: Added.

(WebCore::SourceBufferPrivateGStreamer::create):
(WebCore::SourceBufferPrivateGStreamer::SourceBufferPrivateGStreamer):
(WebCore::SourceBufferPrivateGStreamer::~SourceBufferPrivateGStreamer):
(WebCore::SourceBufferPrivateGStreamer::setClient):
(WebCore::SourceBufferPrivateGStreamer::append):
(WebCore::SourceBufferPrivateGStreamer::abort):
(WebCore::SourceBufferPrivateGStreamer::resetParserState):
(WebCore::SourceBufferPrivateGStreamer::removedFromMediaSource):
(WebCore::SourceBufferPrivateGStreamer::readyState):
(WebCore::SourceBufferPrivateGStreamer::setReadyState):
(WebCore::SourceBufferPrivateGStreamer::flushAndEnqueueNonDisplayingSamples):
(WebCore::SourceBufferPrivateGStreamer::enqueueSample):
(WebCore::SourceBufferPrivateGStreamer::isReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::setReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::notifyReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::setActive):
(WebCore::SourceBufferPrivateGStreamer::stopAskingForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::notifyClientWhenReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::didReceiveInitializationSegment):
(WebCore::SourceBufferPrivateGStreamer::didReceiveSample):
(WebCore::SourceBufferPrivateGStreamer::didReceiveAllPendingSamples):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h: Renamed from Source/WebCore/platform/graphics/gstreamer/SourceBufferPrivateGStreamer.h.
1:39 AM Changeset in webkit [207878] by eocanha@igalia.com
  • 1 edit
    2 adds in trunk/Source/WebCore

[GStreamer][MSE] MediaSourceClientGStreamerMSE
https://bugs.webkit.org/show_bug.cgi?id=162896

Reviewed by Xabier Rodriguez-Calvar.

This class encapsulates the MediaSource interaction responsibility for the
GStreamer platform.

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp: Added.

(WebCore::MediaSourceClientGStreamerMSE::create):
(WebCore::MediaSourceClientGStreamerMSE::MediaSourceClientGStreamerMSE):
(WebCore::MediaSourceClientGStreamerMSE::~MediaSourceClientGStreamerMSE):
(WebCore::MediaSourceClientGStreamerMSE::addSourceBuffer):
(WebCore::MediaSourceClientGStreamerMSE::duration):
(WebCore::MediaSourceClientGStreamerMSE::durationChanged):
(WebCore::MediaSourceClientGStreamerMSE::abort):
(WebCore::MediaSourceClientGStreamerMSE::append):
(WebCore::MediaSourceClientGStreamerMSE::markEndOfStream):
(WebCore::MediaSourceClientGStreamerMSE::removedFromMediaSource):
(WebCore::MediaSourceClientGStreamerMSE::flushAndEnqueueNonDisplayingSamples):
(WebCore::MediaSourceClientGStreamerMSE::enqueueSample):
(WebCore::MediaSourceClientGStreamerMSE::webKitMediaSrc):
(WebCore::MediaSourceClientGStreamerMSE::clearPlayerPrivate):

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h: Added.
1:39 AM Changeset in webkit [207877] by eocanha@igalia.com
  • 1 edit
    2 adds in trunk/Source/WebCore

[GStreamer] GStreamer Media Sample
https://bugs.webkit.org/show_bug.cgi?id=162894

Reviewed by Xabier Rodriguez-Calvar.

Implement the MediaSample interface for the GStreamer platform.

  • platform/graphics/gstreamer/mse/GStreamerMediaSample.cpp: Added.

(WebCore::GStreamerMediaSample::GStreamerMediaSample):
(WebCore::GStreamerMediaSample::create):
(WebCore::GStreamerMediaSample::createFakeSample):
(WebCore::GStreamerMediaSample::applyPtsOffset):
(WebCore::GStreamerMediaSample::offsetTimestampsBy):
(WebCore::GStreamerMediaSample::~GStreamerMediaSample):

  • platform/graphics/gstreamer/mse/GStreamerMediaSample.h: Added.

(WebCore::GStreamerMediaSample::presentationTime):
(WebCore::GStreamerMediaSample::decodeTime):
(WebCore::GStreamerMediaSample::duration):
(WebCore::GStreamerMediaSample::trackID):
(WebCore::GStreamerMediaSample::setTrackID):
(WebCore::GStreamerMediaSample::sizeInBytes):
(WebCore::GStreamerMediaSample::sample):
(WebCore::GStreamerMediaSample::presentationSize):
(WebCore::GStreamerMediaSample::setTimestamps):
(WebCore::GStreamerMediaSample::isDivisable):
(WebCore::GStreamerMediaSample::divide):
(WebCore::GStreamerMediaSample::flags):
(WebCore::GStreamerMediaSample::platformSample):
(WebCore::GStreamerMediaSample::dump):

1:38 AM Changeset in webkit [207876] by eocanha@igalia.com
  • 1 edit
    2 adds in trunk/Source/WebCore

[GStreamer] GStreamer Media Description
https://bugs.webkit.org/show_bug.cgi?id=162893

Reviewed by Xabier Rodriguez-Calvar.

Implement the MediaDescription interface for the GStreamer platform.

  • platform/graphics/gstreamer/mse/GStreamerMediaDescription.cpp: Added.

(WebCore::GStreamerMediaDescription::codec):
(WebCore::GStreamerMediaDescription::isVideo):
(WebCore::GStreamerMediaDescription::isAudio):
(WebCore::GStreamerMediaDescription::isText):

  • platform/graphics/gstreamer/mse/GStreamerMediaDescription.h: Added.

(WebCore::GStreamerMediaDescription::create):
(WebCore::GStreamerMediaDescription::~GStreamerMediaDescription):
(WebCore::GStreamerMediaDescription::GStreamerMediaDescription):

1:37 AM Changeset in webkit [207875] by eocanha@igalia.com
  • 1 edit
    3 adds in trunk/Source/WebCore

[GStreamer][MSE][EME] Append Pipeline
https://bugs.webkit.org/show_bug.cgi?id=162874

Reviewed by Žan Doberšek.

This patch is co-authored with Xabier Rodriguez-Calvar <calvaris@igalia.com> (data starve
and last sample detection, debug features) and Philippe Normand <philn@igalia.com> (EME
support).

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp: Added.

(WebCore::dumpAppendState):
(WebCore::appendPipelineElementMessageCallback):
(WebCore::appendPipelineApplicationMessageCallback):
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
(WebCore::AppendPipeline::clearPlayerPrivate):
(WebCore::AppendPipeline::handleElementMessage):
(WebCore::AppendPipeline::handleApplicationMessage):
(WebCore::AppendPipeline::handleAppsrcNeedDataReceived):
(WebCore::AppendPipeline::handleAppsrcAtLeastABufferLeft):
(WebCore::AppendPipeline::id):
(WebCore::AppendPipeline::setAppendState):
(WebCore::AppendPipeline::parseDemuxerSrcPadCaps):
(WebCore::AppendPipeline::appsinkCapsChanged):
(WebCore::AppendPipeline::checkEndOfAppend):
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::appsinkEOS):
(WebCore::AppendPipeline::didReceiveInitializationSegment):
(WebCore::AppendPipeline::trackId):
(WebCore::AppendPipeline::resetPipeline):
(WebCore::AppendPipeline::setAppsrcDataLeavingProbe):
(WebCore::AppendPipeline::removeAppsrcDataLeavingProbe):
(WebCore::AppendPipeline::abort):
(WebCore::AppendPipeline::pushNewBuffer):
(WebCore::AppendPipeline::reportAppsrcAtLeastABufferLeft):
(WebCore::AppendPipeline::reportAppsrcNeedDataReceived):
(WebCore::AppendPipeline::handleNewAppsinkSample):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):
(WebCore::AppendPipeline::disconnectDemuxerSrcPadFromAppsinkFromAnyThread):
(WebCore::appendPipelineAppsinkCapsChanged):
(WebCore::appendPipelineAppsrcDataLeaving):
(WebCore::appendPipelinePadProbeDebugInformation):
(WebCore::appendPipelineAppsrcNeedData):
(WebCore::appendPipelineDemuxerPadAdded):
(WebCore::appendPipelineDemuxerPadRemoved):
(WebCore::appendPipelineAppsinkNewSample):
(WebCore::appendPipelineAppsinkEOS):

  • platform/graphics/gstreamer/mse/AppendPipeline.h: Added.

(WebCore::AppendPipeline::appendState):
(WebCore::AppendPipeline::mediaSourceClient):
(WebCore::AppendPipeline::sourceBufferPrivate):
(WebCore::AppendPipeline::bus):
(WebCore::AppendPipeline::pipeline):
(WebCore::AppendPipeline::appsrc):
(WebCore::AppendPipeline::appsink):
(WebCore::AppendPipeline::demuxerSrcPadCaps):
(WebCore::AppendPipeline::appsinkCaps):
(WebCore::AppendPipeline::track):
(WebCore::AppendPipeline::streamType):

1:37 AM Changeset in webkit [207874] by eocanha@igalia.com
  • 4 edits in trunk/Source/WebCore

[GStreamer] Drain query support
https://bugs.webkit.org/show_bug.cgi?id=162872

Reviewed by Žan Doberšek.

Under some circumstances, GStreamer deadlocks completely during MSE seeks on OpenGL ES
systems. This is because the video sink still holds samples. Proper DRAIN support
fixes this issue and is also good for all the platforms, not only OpenGL ES.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::triggerDrain):
(WebCore::MediaPlayerPrivateGStreamerBase::drainCallback):
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSinkGL): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:

(VideoRenderRequestScheduler::drain):
(webkitVideoSinkQuery):
(webkitVideoSinkEvent):
(webkit_video_sink_class_init):
(VideoRenderRequestScheduler::stop): Deleted.
(webkitVideoSinkProposeAllocation): Deleted.

1:36 AM Changeset in webkit [207873] by eocanha@igalia.com
  • 6 edits in trunk/Source/WebCore

[GStreamer] Track enhancements for MSE support
https://bugs.webkit.org/show_bug.cgi?id=162869

Reviewed by Xabier Rodriguez-Calvar.

Add 'id' field to Audio/VideoTrackPrivateGStreamer. Make TrackPrivateBaseGStreamer
work anyway in cases where the demuxer isn't contained in a GstPlaybin.

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer):

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::tagsChanged):
(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfActiveChanged):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:

(WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:
1:35 AM Changeset in webkit [207872] by eocanha@igalia.com
  • 2 edits in trunk

[GTK][GStreamer] Disable MEDIA_SOURCE and ENCRYPTED_MEDIA_V2 by default
https://bugs.webkit.org/show_bug.cgi?id=162623

Reviewed by Xabier Rodriguez-Calvar.

  • Source/cmake/OptionsGTK.cmake:
1:08 AM Changeset in webkit [207871] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Make CachedResourceLoader originsMatch check more efficient
https://bugs.webkit.org/show_bug.cgi?id=163938

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-26
Reviewed by Darin Adler.

No change of behavior.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::shouldUpdateCachedResourceWithCurrentRequest):
(WebCore::originsMatch): Moved to SecurityOrigin.cpp.

  • page/SecurityOrigin.cpp:

(WebCore::areOriginsMatching): Helper routine to check whether origins are matching.
(WebCore::originsMatch): Ensuring string comparison provides the same result as this function.

  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::protocol):
(WebCore::SecurityOrigin::host):
(WebCore::SecurityOrigin::domain):

12:45 AM Changeset in webkit [207870] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r206505) [GTK] Build broken with GTK+ 3.14
https://bugs.webkit.org/show_bug.cgi?id=162776

Reviewed by Xabier Rodriguez-Calvar.

Do not use gtk_widget_get_action_group() when GTK+ < 3.16, use g_object_set instead to attach the action group
to the menu widget.

  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:

(WebKit::WebContextMenuProxyGtk::append):
(WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk):
(WebKit::WebContextMenuProxyGtk::~WebContextMenuProxyGtk):

Oct 25, 2016:

10:43 PM Changeset in webkit [207869] by Yusuke Suzuki
  • 6 edits
    3 adds in trunk/Source

[DOMJIT] Tell IDL result type to DFG to drop type checks in AI
https://bugs.webkit.org/show_bug.cgi?id=163900

Reviewed by Sam Weinig.

Source/JavaScriptCore:

The IDL tells the conservative result type. While we use the heap prediction
for prediction propagation phase in DOMJIT getter (it is offered by get_by_id!),
we leverage the type told by IDL to produce the abstract value with the proven type
in AI. It effectively drops unnecessary type checks followed by CallDOM operations.

For example, when you write the code like,

if (node.nodeType === 9) {

document.

}

Previously, we inserted a Int32 check for the result of node.nodeType.
It is dropped now.

We annotate the DOMJIT getter in jsc.cpp to ensure that the unnecessary type checks
are correctly dropped when executing JSTests/stress/domjit-getter.js.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • domjit/DOMJITGetterSetter.h:

(JSC::DOMJIT::GetterSetter::GetterSetter):
(JSC::DOMJIT::GetterSetter::resultType):

  • jsc.cpp:

(WTF::DOMJITGetter::DOMJITNodeDOMJIT::DOMJITNodeDOMJIT):
(WTF::DOMJITGetterComplex::DOMJITNodeDOMJIT::DOMJITNodeDOMJIT):

Source/WebCore:

Add TestDOMJIT.idl for bindings generation tests.

  • bindings/scripts/CodeGeneratorJS.pm:

(GetResultTypeFilter):
(GenerateImplementation):

  • bindings/scripts/test/JS/JSTestDOMJIT.cpp: Added.

(WebCore::JSTestDOMJITPrototype::create):
(WebCore::JSTestDOMJITPrototype::createStructure):
(WebCore::JSTestDOMJITPrototype::JSTestDOMJITPrototype):
(WebCore::JSTestDOMJITConstructor::prototypeForStructure):
(WebCore::JSTestDOMJITConstructor::initializeProperties):
(WebCore::JSTestDOMJITPrototype::finishCreation):
(WebCore::JSTestDOMJIT::JSTestDOMJIT):
(WebCore::JSTestDOMJIT::createPrototype):
(WebCore::JSTestDOMJIT::prototype):
(WebCore::BindingCaller<JSTestDOMJIT>::castForAttribute):
(WebCore::jsTestDOMJITAnyAttr):
(WebCore::jsTestDOMJITAnyAttrGetter):
(WebCore::TestDOMJITAnyAttrDOMJIT::TestDOMJITAnyAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITAnyAttr):
(WebCore::jsTestDOMJITBooleanAttr):
(WebCore::jsTestDOMJITBooleanAttrGetter):
(WebCore::TestDOMJITBooleanAttrDOMJIT::TestDOMJITBooleanAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITBooleanAttr):
(WebCore::jsTestDOMJITByteAttr):
(WebCore::jsTestDOMJITByteAttrGetter):
(WebCore::TestDOMJITByteAttrDOMJIT::TestDOMJITByteAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITByteAttr):
(WebCore::jsTestDOMJITOctetAttr):
(WebCore::jsTestDOMJITOctetAttrGetter):
(WebCore::TestDOMJITOctetAttrDOMJIT::TestDOMJITOctetAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITOctetAttr):
(WebCore::jsTestDOMJITShortAttr):
(WebCore::jsTestDOMJITShortAttrGetter):
(WebCore::TestDOMJITShortAttrDOMJIT::TestDOMJITShortAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITShortAttr):
(WebCore::jsTestDOMJITUnsignedShortAttr):
(WebCore::jsTestDOMJITUnsignedShortAttrGetter):
(WebCore::TestDOMJITUnsignedShortAttrDOMJIT::TestDOMJITUnsignedShortAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnsignedShortAttr):
(WebCore::jsTestDOMJITLongAttr):
(WebCore::jsTestDOMJITLongAttrGetter):
(WebCore::TestDOMJITLongAttrDOMJIT::TestDOMJITLongAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITLongAttr):
(WebCore::jsTestDOMJITUnsignedLongAttr):
(WebCore::jsTestDOMJITUnsignedLongAttrGetter):
(WebCore::TestDOMJITUnsignedLongAttrDOMJIT::TestDOMJITUnsignedLongAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnsignedLongAttr):
(WebCore::jsTestDOMJITLongLongAttr):
(WebCore::jsTestDOMJITLongLongAttrGetter):
(WebCore::TestDOMJITLongLongAttrDOMJIT::TestDOMJITLongLongAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITLongLongAttr):
(WebCore::jsTestDOMJITUnsignedLongLongAttr):
(WebCore::jsTestDOMJITUnsignedLongLongAttrGetter):
(WebCore::TestDOMJITUnsignedLongLongAttrDOMJIT::TestDOMJITUnsignedLongLongAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnsignedLongLongAttr):
(WebCore::jsTestDOMJITFloatAttr):
(WebCore::jsTestDOMJITFloatAttrGetter):
(WebCore::TestDOMJITFloatAttrDOMJIT::TestDOMJITFloatAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITFloatAttr):
(WebCore::jsTestDOMJITUnrestrictedFloatAttr):
(WebCore::jsTestDOMJITUnrestrictedFloatAttrGetter):
(WebCore::TestDOMJITUnrestrictedFloatAttrDOMJIT::TestDOMJITUnrestrictedFloatAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnrestrictedFloatAttr):
(WebCore::jsTestDOMJITDoubleAttr):
(WebCore::jsTestDOMJITDoubleAttrGetter):
(WebCore::TestDOMJITDoubleAttrDOMJIT::TestDOMJITDoubleAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITDoubleAttr):
(WebCore::jsTestDOMJITUnrestrictedDoubleAttr):
(WebCore::jsTestDOMJITUnrestrictedDoubleAttrGetter):
(WebCore::TestDOMJITUnrestrictedDoubleAttrDOMJIT::TestDOMJITUnrestrictedDoubleAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnrestrictedDoubleAttr):
(WebCore::jsTestDOMJITDomStringAttr):
(WebCore::jsTestDOMJITDomStringAttrGetter):
(WebCore::TestDOMJITDomStringAttrDOMJIT::TestDOMJITDomStringAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITDomStringAttr):
(WebCore::jsTestDOMJITByteStringAttr):
(WebCore::jsTestDOMJITByteStringAttrGetter):
(WebCore::TestDOMJITByteStringAttrDOMJIT::TestDOMJITByteStringAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITByteStringAttr):
(WebCore::jsTestDOMJITUsvStringAttr):
(WebCore::jsTestDOMJITUsvStringAttrGetter):
(WebCore::TestDOMJITUsvStringAttrDOMJIT::TestDOMJITUsvStringAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUsvStringAttr):
(WebCore::jsTestDOMJITNodeAttr):
(WebCore::jsTestDOMJITNodeAttrGetter):
(WebCore::TestDOMJITNodeAttrDOMJIT::TestDOMJITNodeAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITNodeAttr):
(WebCore::jsTestDOMJITBooleanNullableAttr):
(WebCore::jsTestDOMJITBooleanNullableAttrGetter):
(WebCore::TestDOMJITBooleanNullableAttrDOMJIT::TestDOMJITBooleanNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITBooleanNullableAttr):
(WebCore::jsTestDOMJITByteNullableAttr):
(WebCore::jsTestDOMJITByteNullableAttrGetter):
(WebCore::TestDOMJITByteNullableAttrDOMJIT::TestDOMJITByteNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITByteNullableAttr):
(WebCore::jsTestDOMJITOctetNullableAttr):
(WebCore::jsTestDOMJITOctetNullableAttrGetter):
(WebCore::TestDOMJITOctetNullableAttrDOMJIT::TestDOMJITOctetNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITOctetNullableAttr):
(WebCore::jsTestDOMJITShortNullableAttr):
(WebCore::jsTestDOMJITShortNullableAttrGetter):
(WebCore::TestDOMJITShortNullableAttrDOMJIT::TestDOMJITShortNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITShortNullableAttr):
(WebCore::jsTestDOMJITUnsignedShortNullableAttr):
(WebCore::jsTestDOMJITUnsignedShortNullableAttrGetter):
(WebCore::TestDOMJITUnsignedShortNullableAttrDOMJIT::TestDOMJITUnsignedShortNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnsignedShortNullableAttr):
(WebCore::jsTestDOMJITLongNullableAttr):
(WebCore::jsTestDOMJITLongNullableAttrGetter):
(WebCore::TestDOMJITLongNullableAttrDOMJIT::TestDOMJITLongNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITLongNullableAttr):
(WebCore::jsTestDOMJITUnsignedLongNullableAttr):
(WebCore::jsTestDOMJITUnsignedLongNullableAttrGetter):
(WebCore::TestDOMJITUnsignedLongNullableAttrDOMJIT::TestDOMJITUnsignedLongNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnsignedLongNullableAttr):
(WebCore::jsTestDOMJITLongLongNullableAttr):
(WebCore::jsTestDOMJITLongLongNullableAttrGetter):
(WebCore::TestDOMJITLongLongNullableAttrDOMJIT::TestDOMJITLongLongNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITLongLongNullableAttr):
(WebCore::jsTestDOMJITUnsignedLongLongNullableAttr):
(WebCore::jsTestDOMJITUnsignedLongLongNullableAttrGetter):
(WebCore::TestDOMJITUnsignedLongLongNullableAttrDOMJIT::TestDOMJITUnsignedLongLongNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnsignedLongLongNullableAttr):
(WebCore::jsTestDOMJITFloatNullableAttr):
(WebCore::jsTestDOMJITFloatNullableAttrGetter):
(WebCore::TestDOMJITFloatNullableAttrDOMJIT::TestDOMJITFloatNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITFloatNullableAttr):
(WebCore::jsTestDOMJITUnrestrictedFloatNullableAttr):
(WebCore::jsTestDOMJITUnrestrictedFloatNullableAttrGetter):
(WebCore::TestDOMJITUnrestrictedFloatNullableAttrDOMJIT::TestDOMJITUnrestrictedFloatNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnrestrictedFloatNullableAttr):
(WebCore::jsTestDOMJITDoubleNullableAttr):
(WebCore::jsTestDOMJITDoubleNullableAttrGetter):
(WebCore::TestDOMJITDoubleNullableAttrDOMJIT::TestDOMJITDoubleNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITDoubleNullableAttr):
(WebCore::jsTestDOMJITUnrestrictedDoubleNullableAttr):
(WebCore::jsTestDOMJITUnrestrictedDoubleNullableAttrGetter):
(WebCore::TestDOMJITUnrestrictedDoubleNullableAttrDOMJIT::TestDOMJITUnrestrictedDoubleNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnrestrictedDoubleNullableAttr):
(WebCore::jsTestDOMJITDomStringNullableAttr):
(WebCore::jsTestDOMJITDomStringNullableAttrGetter):
(WebCore::TestDOMJITDomStringNullableAttrDOMJIT::TestDOMJITDomStringNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITDomStringNullableAttr):
(WebCore::jsTestDOMJITByteStringNullableAttr):
(WebCore::jsTestDOMJITByteStringNullableAttrGetter):
(WebCore::TestDOMJITByteStringNullableAttrDOMJIT::TestDOMJITByteStringNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITByteStringNullableAttr):
(WebCore::jsTestDOMJITUsvStringNullableAttr):
(WebCore::jsTestDOMJITUsvStringNullableAttrGetter):
(WebCore::TestDOMJITUsvStringNullableAttrDOMJIT::TestDOMJITUsvStringNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUsvStringNullableAttr):
(WebCore::jsTestDOMJITNodeNullableAttr):
(WebCore::jsTestDOMJITNodeNullableAttrGetter):
(WebCore::TestDOMJITNodeNullableAttrDOMJIT::TestDOMJITNodeNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITNodeNullableAttr):
(WebCore::jsTestDOMJITConstructor):
(WebCore::setJSTestDOMJITConstructor):
(WebCore::JSTestDOMJIT::getConstructor):
(WebCore::JSTestDOMJIT::visitChildren):

  • bindings/scripts/test/JS/JSTestDOMJIT.h: Added.

(WebCore::JSTestDOMJIT::create):
(WebCore::JSTestDOMJIT::createStructure):
(WebCore::JSTestDOMJIT::wrapped):
(WebCore::JSTestDOMJIT::finishCreation):

  • bindings/scripts/test/TestDOMJIT.idl: Added.
10:12 PM Changeset in webkit [207868] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed build fix.

  • platform/graphics/GraphicsContext.h: Add missing declaration.
10:11 PM Changeset in webkit [207867] by bshafiei@apple.com
  • 2 edits in tags/Safari-603.1.10.0.2/Source/WebCore

Merged r207712. rdar://problem/28187870

10:10 PM Changeset in webkit [207866] by bshafiei@apple.com
  • 5 edits in tags/Safari-603.1.10.0.2/Source

Versioning.

9:53 PM Changeset in webkit [207865] by bshafiei@apple.com
  • 1 copy in tags/Safari-603.1.10.0.2

New tag.

9:45 PM Changeset in webkit [207864] by rniwa@webkit.org
  • 6 edits
    2 adds in trunk

Updating attribute by textContent must create a single mutation record and custom element reaction
https://bugs.webkit.org/show_bug.cgi?id=164003

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Rebaselined the test now that all test cases are passing.

  • web-platform-tests/custom-elements/reactions/Node-expected.txt:

Source/WebCore:

The bug was caused by setTextContent not invoking setNodeValue for Attr nodes.
Use setNodeValue to match the specification: https://dom.spec.whatwg.org/#dom-node-textcontent

Test: fast/dom/MutationObserver/text-content-on-attr.html

  • dom/Node.cpp:

(WebCore::Node::setTextContent):

LayoutTests:

Added a test for ensuring mutating the attribute by nodeValue and textContent creates exactly one mutation record.

  • fast/custom-elements/reactions-for-webkit-extensions.html: Updated the description.
  • fast/dom/MutationObserver/text-content-on-attr-expected.txt: Added.
  • fast/dom/MutationObserver/text-content-on-attr.html: Added.
6:57 PM Changeset in webkit [207863] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

[Win][Direct2D] Use smart pointers for Direct2D Path types
https://bugs.webkit.org/show_bug.cgi?id=163994

Reviewed by Alex Christensen.

Tested by existing path tests.

  • platform/graphics/Path.h:

(WebCore::Path::platformPath): Use a COMPtr for m_path.

  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::systemFactory): Present better D2D debug output
when running a debug build.
(WebCore::GraphicsContext::platformInit): Initialize a D2D device from a
native GDI device context.
(WebCore::GraphicsContext::platformStrokeStyle): Added.
(WebCore::GraphicsContext::clipBounds): Simplify clip boundary calculations and
avoid doing math on infinities.

  • platform/graphics/win/PathDirect2D.cpp:

(WebCore::scratchRenderTarget): Added.
(WebCore::Path::~Path): Switch to COMPtr implementation.
(WebCore::Path::ensurePlatformPath): Ditto.
(WebCore::Path::appendGeometry): Ditto.
(WebCore::Path::operator=): Ditto.
(WebCore::Path::initializePathState): Ditto.
(WebCore::Path::strokeContains): Provide an implementation.
(WebCore::Path::transform): Ditto.
(WebCore::Path::addEllipse): No need for explicit construction of the
D2D1::Point2F object.
(WebCore::Path::clear): Switch to COMPtr implementation.

6:28 PM Changeset in webkit [207862] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed, fix duplicate GTK expectations

  • platform/gtk/TestExpectations:
6:25 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
6:15 PM Changeset in webkit [207861] by mark.lam@apple.com
  • 5 edits
    1 add in trunk

String.prototype.replace() should throw an OutOfMemoryError when using too much memory.
https://bugs.webkit.org/show_bug.cgi?id=163996
<rdar://problem/28263117>

Reviewed by Geoffrey Garen.

JSTests:

  • stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js: Added.

Source/JavaScriptCore:

String.prototype.replace() uses a Vector internally for bookkeeping work.
Currently, if this vector gets too big, we just crash on allocation failure.
While this is correct behavior, it is not too friendly.

We now detect the imminent failure, and throw a OutOfMemoryError instead.

  • runtime/StringPrototype.cpp:

(JSC::removeUsingRegExpSearch):
(JSC::replaceUsingRegExpSearch):
(JSC::operationStringProtoFuncReplaceRegExpEmptyStr):
(JSC::stringProtoFuncReplaceUsingRegExp):

Source/WTF:

  • wtf/Vector.h:

(WTF::minCapacity>::tryConstructAndAppend):
(WTF::minCapacity>::tryConstructAndAppendSlowCase):

  • Added try versions of constructAndAppend() so that we can handle the failure to allocate more gracefully.
6:15 PM Changeset in webkit [207860] by n_wang@apple.com
  • 5 edits in trunk

LayoutTest accessibility/mac/meter-gauge-value-description.html failing
https://bugs.webkit.org/show_bug.cgi?id=163997
<rdar://problem/28948637>

Reviewed by Chris Fleizach.

Source/WebCore:

I hand-edited the Localizable.strings file in a previous patch and my changes
were replaced by running update-webkit-localizable-strings script. Changed the
key to be the same as the value to keep consistency with other entries.

Re-enabled the failing test.

  • English.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::AXMeterGaugeRegionOptimumText):
(WebCore::AXMeterGaugeRegionSuboptimalText):
(WebCore::AXMeterGaugeRegionLessGoodText):

LayoutTests:

  • platform/mac/TestExpectations:
6:10 PM Changeset in webkit [207859] by mark.lam@apple.com
  • 18 edits
    1 move in trunk/Source/JavaScriptCore

Rename the reject() helper function to something more meaningful.
https://bugs.webkit.org/show_bug.cgi?id=163549

Reviewed by Saam Barati.

We'll rename reject() to typeError(). The intuition behind this is that all the
clients that uses this function will return typeError(..., shouldThrow, ...).
In a sense, they are returning a "type" of TypeError (which happened to be the
value false). In addition, it may also throw a JS TypeError if the shouldThrow
parameter is true.

(JSC::callSetter):

  • runtime/JSArray.cpp:

(JSC::JSArray::defineOwnProperty):
(JSC::JSArray::setLengthWithArrayStorage):

  • runtime/JSArrayBuffer.cpp:

(JSC::JSArrayBuffer::put):
(JSC::JSArrayBuffer::defineOwnProperty):

  • runtime/JSArrayBufferView.cpp:
  • runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitive):
(JSC::JSValue::putToPrimitiveByIndex):

  • runtime/JSDataView.cpp:

(JSC::JSDataView::put):
(JSC::JSDataView::defineOwnProperty):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::put):
(JSC::JSFunction::defineOwnProperty):

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::deleteProperty):

  • runtime/JSObject.cpp:

(JSC::ordinarySetSlow):
(JSC::JSObject::putInlineSlow):
(JSC::JSObject::setPrototypeWithCycleCheck):
(JSC::JSObject::defineOwnIndexedProperty):
(JSC::JSObject::putByIndexBeyondVectorLengthWithArrayStorage):
(JSC::JSObject::putDirectIndexBeyondVectorLengthWithArrayStorage):
(JSC::validateAndApplyPropertyDescriptor):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::putInline):

  • runtime/JSProxy.cpp:

(JSC::JSProxy::setPrototype):

  • runtime/Lookup.h:

(JSC::putEntry):

  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::defineOwnProperty):

  • runtime/RegExpObject.h:

(JSC::RegExpObject::setLastIndex):

  • runtime/Reject.h: Removed.
  • runtime/SparseArrayValueMap.cpp:

(JSC::SparseArrayValueMap::putEntry):
(JSC::SparseArrayValueMap::putDirect):
(JSC::SparseArrayEntry::put):

  • runtime/StringObject.cpp:

(JSC::StringObject::put):
(JSC::StringObject::putByIndex):

  • runtime/TypeError.h: Copied from Source/JavaScriptCore/runtime/Reject.h.

(JSC::typeError):
(JSC::reject): Deleted.

5:36 PM October 2016 Meeting edited by Jon Davis
(diff)
5:11 PM Changeset in webkit [207858] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking accessibility/mac/meter-gauge-value-description.html as failing on mac.
https://bugs.webkit.org/show_bug.cgi?id=163997

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:59 PM Changeset in webkit [207857] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit2

CMake build fix.

  • PlatformMac.cmake:
  • Shared/WebHitTestResultData.cpp:

(WebKit::WebHitTestResultData::WebHitTestResultData):
Explicitly call AtomicString::string to make the String constructor no longer ambiguous.
It couldn't decide whether to use operator const String& or operator NSString*.

4:42 PM Changeset in webkit [207856] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[SOUP] Network process assertion in NetworkDataTask::continueHTTPRedirection
https://bugs.webkit.org/show_bug.cgi?id=163941

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2016-10-25
Reviewed by Michael Catanzaro.

equalLettersIgnoringASCIICase() expects the second argument to be the letters to compare in lowercase, so use
"get" instead of "GET".

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::continueHTTPRedirection):

4:22 PM Changeset in webkit [207855] by fpizlo@apple.com
  • 16 edits in trunk/Source

HeapTimer should not hardcode all of its subclasses and USE(CF) shouldn't be a bizarre special case
https://bugs.webkit.org/show_bug.cgi?id=163947

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:


I want to introduce another HeapTimer. Prior to this change, that would have meant writing
exact copies of that timer's logic for each platform that has a HeapTimer (CF, GLIB, and
EFL). That logic would in turn be a duplicate of the logic already present in
IncrementalSweeper and GCActivityCallback: all of the subclasses of HeapTimer have their
own code for scheduling timers, so a new subclass would have to duplicate that code. Then,
to add insult to injury, the USE(CF) version of HeapTimer would have to have an extra case
for that new subclass since it doesn't use virtual methods effectively.

This changes HeapTimer on USE(CF) to know to get its runloop from Heap and to use virtual
methods effectively so that it doesn't have to know about all of its subclasses.

This also moves IncrementalSweeper's code for scheduling timers into HeapTimer. This means
that future subclasses of HeapTimer could simply use that logic.

This keeps changes to GCActivityCallback to a minimum. It still has a lot of
platform-specific code and I'm not sure that this code can be trivially deduplicated since
that code has more quirks. That's fine for now, since I mainly just need a sane way of
creating new timers that use IncrementalSweeper-like scheduling logic.

  • heap/EdenGCActivityCallback.cpp:
  • heap/EdenGCActivityCallback.h:
  • heap/FullGCActivityCallback.cpp:
  • heap/FullGCActivityCallback.h:
  • heap/GCActivityCallback.cpp:

(JSC::GCActivityCallback::GCActivityCallback):

  • heap/GCActivityCallback.h:
  • heap/Heap.cpp:

(JSC::Heap::Heap):

  • heap/Heap.h:

(JSC::Heap::runLoop):

  • heap/HeapTimer.cpp:

(JSC::HeapTimer::HeapTimer):
(JSC::HeapTimer::setRunLoop):
(JSC::HeapTimer::~HeapTimer):
(JSC::HeapTimer::timerDidFire):
(JSC::HeapTimer::scheduleTimer):
(JSC::HeapTimer::cancelTimer):
(JSC::retainAPILock): Deleted.
(JSC::releaseAPILock): Deleted.

  • heap/HeapTimer.h:
  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::scheduleTimer):
(JSC::IncrementalSweeper::cancelTimer): Deleted.

  • heap/IncrementalSweeper.h:

Source/WebCore:

No new tests because no new behavior.

  • platform/ios/WebSafeGCActivityCallbackIOS.h:
  • platform/ios/WebSafeIncrementalSweeperIOS.h:
4:21 PM Changeset in webkit [207854] by hyatt@apple.com
  • 9 edits in trunk/Source/WebCore

[CSS Parser] Improvements to selector parsing
https://bugs.webkit.org/show_bug.cgi?id=163964

Reviewed by Zalan Bujtas.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::setAttribute):
(WebCore::CSSSelector::setNth):

  • css/CSSSelector.h:

(WebCore::CSSSelector::setAttributeValueMatchingIsCaseInsensitive):

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::StyleSheetContents):
(WebCore::StyleSheetContents::parserAppendRule):
(WebCore::StyleSheetContents::ruleAt):
(WebCore::StyleSheetContents::ruleCount):
(WebCore::StyleSheetContents::clearRules):
(WebCore::StyleSheetContents::wrapperInsertRule):
(WebCore::StyleSheetContents::wrapperDeleteRule):

  • css/StyleSheetContents.h:
  • css/parser/CSSParser.cpp:

(WebCore::CSSParserContext::CSSParserContext):
(WebCore::CSSParser::parseSelector):

  • css/parser/CSSParserValues.h:

(WebCore::CSSParserSelector::setAttribute):
(WebCore::CSSParserSelector::setArgument):
(WebCore::CSSParserSelector::setNth):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::consumeLangArgumentList):
(WebCore::CSSSelectorParser::consumeCompoundSelector):
(WebCore::CSSSelectorParser::consumeAttribute):
(WebCore::isPseudoClassFunction):
(WebCore::isPseudoElementFunction):
(WebCore::CSSSelectorParser::consumePseudo):
(WebCore::CSSSelectorParser::consumeCombinator):

4:01 PM Changeset in webkit [207853] by Beth Dakin
  • 3 edits in trunk/Source/WebCore

Numbered list should be represented without ‘…’
https://bugs.webkit.org/show_bug.cgi?id=163992
-and corresponding-
rdar://problem/28911337

Reviewed by Darin Adler.

  • English.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::insertListTypeNumbered):

3:41 PM Changeset in webkit [207852] by jfbastien@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Remove redundant argument count check

Indexing argument out of bounds already returns jsUndefined().

Remove redundant argument count check
https://bugs.webkit.org/show_bug.cgi?id=163957

Reviewed by Keith Miller.

  • runtime/ErrorConstructor.cpp:

(JSC::Interpreter::constructWithErrorConstructor):
(JSC::Interpreter::callErrorConstructor):

  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::constructJSWebAssemblyRuntimeError):

3:30 PM Changeset in webkit [207851] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Add ThrowScope::release() calls at all call sites of jsMakeNontrivialString().
https://bugs.webkit.org/show_bug.cgi?id=163990

Reviewed by Geoffrey Garen.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncToString):

  • runtime/ErrorPrototype.cpp:

(JSC::errorProtoFuncToString):

  • runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncToString):

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoFuncToString):

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncBig):
(JSC::stringProtoFuncSmall):
(JSC::stringProtoFuncBlink):
(JSC::stringProtoFuncBold):
(JSC::stringProtoFuncFixed):
(JSC::stringProtoFuncItalics):
(JSC::stringProtoFuncStrike):
(JSC::stringProtoFuncSub):
(JSC::stringProtoFuncSup):
(JSC::stringProtoFuncFontcolor):
(JSC::stringProtoFuncFontsize):
(JSC::stringProtoFuncAnchor):

3:27 PM Changeset in webkit [207850] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Cmd-+ doesn't "zoom in" to increase text size in the Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=163961
<rdar://problem/28895308>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-25
Reviewed by Brian Burg.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
Add a duplicate set of keyboard shortcuts for the Shift variants.

3:19 PM Changeset in webkit [207849] by mark.lam@apple.com
  • 6 edits
    1 add in trunk

JSStringJoiner::joinedLength() should limit joined string lengths to INT_MAX.
https://bugs.webkit.org/show_bug.cgi?id=163937
<rdar://problem/28642990>

Reviewed by Geoffrey Garen.

JSTests:

  • stress/joined-strings-should-not-exceed-max-string-length.js: Added.

Source/JavaScriptCore:

JSStringJoiner::joinedLength() was previously limiting it to UINT_MAX. This is
inconsistent with other parts of string code which expects a max length of INT_MAX.
This is now fixed.

Also fixed jsMakeNontrivialString() to ensure that the resultant string length
is valid. It was previously allowing lengths greater than INT_MAX. This was
caught by the new assertion in JSString::setLength().

There are already pre-existing assertions in various JSString::finishCreation()
which do RELEASE_ASSERTs on the string length. To be consistent, I'm making the
assertion in JSString::setLength() a RELEASE_ASSERT. If this proves to be a
performance issue, I'll change this to a debug ASSERT later.

  • runtime/JSString.cpp:

(JSC::JSRopeString::resolveRopeInternal8):
(JSC::JSRopeString::resolveRopeInternal8NoSubstring):
(JSC::JSRopeString::resolveRopeInternal16):
(JSC::JSRopeString::resolveRopeInternal16NoSubstring):
(JSC::JSRopeString::resolveRopeToAtomicString):
(JSC::JSRopeString::resolveRopeToExistingAtomicString):
(JSC::JSRopeString::resolveRope):
(JSC::JSRopeString::resolveRopeSlowCase8):
(JSC::JSRopeString::resolveRopeSlowCase):
(JSC::JSString::getStringPropertyDescriptor):

  • runtime/JSString.h:

(JSC::JSString::finishCreation):
(JSC::JSString::length):
(JSC::JSString::isValidLength):
(JSC::JSString::toBoolean):
(JSC::JSString::canGetIndex):
(JSC::JSString::setLength):
(JSC::JSString::getStringPropertySlot):
(JSC::JSRopeString::unsafeView):
(JSC::JSRopeString::viewWithUnderlyingString):

  • runtime/JSStringBuilder.h:

(JSC::jsMakeNontrivialString):

  • runtime/JSStringJoiner.cpp:

(JSC::JSStringJoiner::joinedLength):

3:11 PM October 2016 Meeting edited by Simon Fraser
Withdrawing my talks. (diff)
3:07 PM Changeset in webkit [207848] by dbates@webkit.org
  • 5 edits
    7 adds in trunk

REGRESSION (r178265): XSS Auditor fails to block document.write() of incomplete tag
https://bugs.webkit.org/show_bug.cgi?id=163978
<rdar://problem/25962131>

Reviewed by Darin Adler.

Source/WebCore:

During the tokenization process of an HTML tag the start and end positions of each of its
attributes is tracked so that the XSS Auditor can request a snippet around a suspected
injected attribute. We need to take care to consider document.write() boundaries when
tracking the start and end positions of each HTML tag and attribute so that the XSS Auditor
receives the correct snippet. Following r178265 we no longer consider document.write()
boundaries when tracking the start and end positions of attributes. So, the substring
represented by the start and end positions of an attribute may correspond to some other
attribute in the tag. Therefore the XSS Auditor may fail to block an injection because the
snippet it requested may not be the snippet that it intended to request.

Tests: http/tests/security/xssAuditor/dom-write-location-dom-write-open-img-onerror.html

http/tests/security/xssAuditor/dom-write-location-open-img-onerror.html
http/tests/security/xssAuditor/nested-dom-write-location-open-img-onerror.html

  • html/parser/HTMLSourceTracker.cpp:

(WebCore::HTMLSourceTracker::startToken): Set the attribute base offset to be the token
start position.
(WebCore::HTMLSourceTracker::source): Use the specified attribute start position as-is. We no
longer adjust it here because it was adjusted with respect to the attribute base offset, which
takes into account document.write() boundaries.

  • html/parser/HTMLToken.h:

(WebCore::HTMLToken::setAttributeBaseOffset): Added.
(WebCore::HTMLToken::beginAttribute): Subtract attribute base offset from the specified offset.
(WebCore::HTMLToken::endAttribute): Ditto.

  • html/parser/HTMLTokenizer.h:

(WebCore::HTMLTokenizer::setTokenAttributeBaseOffset): Added.

LayoutTests:

Add tests to ensure that the XSS Auditor blocks a document.write() of an incomplete HTML image tag.

  • http/tests/security/xssAuditor/dom-write-location-dom-write-open-img-onerror-expected.txt: Added.
  • http/tests/security/xssAuditor/dom-write-location-dom-write-open-img-onerror.html: Added.
  • http/tests/security/xssAuditor/dom-write-location-open-img-onerror-expected.txt: Added.
  • http/tests/security/xssAuditor/dom-write-location-open-img-onerror.html: Added.
  • http/tests/security/xssAuditor/nested-dom-write-location-open-img-onerror-expected.txt: Added.
  • http/tests/security/xssAuditor/nested-dom-write-location-open-img-onerror.html: Added.
  • http/tests/security/xssAuditor/resources/echo-nested-dom-write-location.html: Added.
3:01 PM Changeset in webkit [207847] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

IDBDatabase.transaction() should take a union in parameter
https://bugs.webkit.org/show_bug.cgi?id=163966

Reviewed by Sam Weinig.

IDBDatabase.transaction() should take a union in parameter:

No new tests, no expected Web-exposed behavior change.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::transaction):

  • Modules/indexeddb/IDBDatabase.h:
  • Modules/indexeddb/IDBDatabase.idl:
2:48 PM Changeset in webkit [207846] by jfbastien@apple.com
  • 2 edits
    1 add in trunk/JSTests

WebAssembly JS API: simple Module test
https://bugs.webkit.org/show_bug.cgi?id=163963

Reviewed by Filip Pizlo.

  • wasm/LowLevelBinary.js:

(export.default.LowLevelBinary.prototype.get return): get the ArrayBuffer
(export.default.LowLevelBinary.prototype.hexdump): Deleted.
(export.default.LowLevelBinary.prototype._maybeGrow): Deleted.

  • wasm/js-api/test_Module.js: Added.

(EmptyModule): The most basic module possible

2:42 PM Changeset in webkit [207845] by beidson@apple.com
  • 18 edits in trunk

IndexedDB 2.0: Support IDBObjectStore openKeyCursor.
<rdar://problem/28806930> and https://bugs.webkit.org/show_bug.cgi?id=163954

Reviewed by Andy Estes.

LayoutTests/imported/w3c:

  • web-platform-tests/IndexedDB/idbobjectstore_openKeyCursor-expected.txt:

Source/WebCore:

No new tests (Covered by changes to existing tests)

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::create):

  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::openCursor):
(WebCore::IDBObjectStore::openKeyCursor):

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::requestOpenCursor):

  • Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:

(WebCore::IDBServer::MemoryObjectStoreCursor::currentData): Only grab the current value

if the cursor is KeyAndValue.

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::SQLiteIDBCursor):
(WebCore::IDBServer::SQLiteIDBCursor::internalAdvanceOnce): Only save off the data for an

object store cursor if it's both KeyAndValue.

  • Modules/indexeddb/server/SQLiteIDBCursor.h:
  • Modules/indexeddb/shared/IDBCursorInfo.cpp:

(WebCore::IDBCursorInfo::objectStoreCursor): Allow for a KeyOnly ObjectStoreCursor.

  • Modules/indexeddb/shared/IDBCursorInfo.h:

LayoutTests:

  • storage/indexeddb/modern/cursor-1-expected.txt:
  • storage/indexeddb/modern/cursor-1-private-expected.txt:
  • storage/indexeddb/modern/resources/cursor-1.js:
2:31 PM Changeset in webkit [207844] by Michael Catanzaro
  • 6 edits in trunk/LayoutTests

Unreviewed GTK test gardening

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/attachment/attachment-select-on-click-expected.txt:
  • platform/gtk/fast/css/word-space-extra-expected.txt:
  • platform/gtk/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
  • platform/gtk/fast/dom/Window/window-properties-performance-expected.txt:
2:30 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
2:30 PM October 2016 Meeting edited by Wenson Hsieh
(diff)
2:29 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
2:29 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
2:10 PM Changeset in webkit [207843] by jfbastien@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

WebAssembly: fix unknown section name handling, and check for section size overflow
https://bugs.webkit.org/show_bug.cgi?id=163959

See: https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md#high-level-structure

Name length and name are already included in the payload length.

Reviewed by Filip Pizlo.

  • wasm/WasmModuleParser.cpp:

(JSC::Wasm::ModuleParser::parse):

1:33 PM Changeset in webkit [207842] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

jsc.cpp is leaking memory allocated by readline in runInteractive
https://bugs.webkit.org/show_bug.cgi?id=163958

According to http://web.mit.edu/gnu/doc/html/rlman_2.html,
"The line readline returns is allocated with malloc ();
you should free () the line when you are done with it."
The memory allocated by readline is not being freed when it should.

Patch by Christopher Reid <Christopher.Reid@am.sony.com> on 2016-10-25
Reviewed by Mark Lam.

  • jsc.cpp:
1:23 PM Changeset in webkit [207841] by Wenson Hsieh
  • 30 edits
    1 copy
    5 adds in trunk

Support InputEvent.dataTransfer for the InputEvent spec
https://bugs.webkit.org/show_bug.cgi?id=163213
<rdar://problem/28700407>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Adds support for the dataTransfer attribute of InputEvent, which contains both HTML and plain text
representations of inserted content corresponding to input types "insertFromPaste", "insertFromDrop" and
"insertReplacementText". The specification calls for the data transfer's drag data item list to contain this
information via two entries with type strings "text/html" and "text/plain". However, WebKit does not yet support
the DataTransfer.items -- in lieu of this, we will provide this information for now via getData("text/plain")
and getData("text/html"), respectively.

To support this attribute, we need a special type of DataTransfer which is readonly and returns canned data
given a type string. To implement this, we introduce StaticPasteboard, a type of Pasteboard which is initialized
with a map of type string to data. When asked for its data via getData, the StaticPasteboard searches its map
for the requested type and returns the result, if any.

An editing command may now create a new DataTransfer via DataTransfer::createForInputEvent from HTML and
plaintext strings, and then vend this information to its dispatched input events by overriding
CompositeEditCommand::inputEventDataTransfer.

Some further work will be needed to ensure that all information exposed via this DataTransfer does not contain
hidden content. To do this, we should create a new Document, "paste" the contents of our copied HTML string into
it, then simulate selecting the content and generating markup from the selection to create a sanitized
DocumentFragment corresponding to the original copied HTML. This will be addressed in a future patch.

Tests: fast/events/input-events-paste-rich-datatransfer.html

fast/events/input-events-spell-checking-datatransfer.html

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformWin.cmake:

Add StaticPasteboard.cpp.

  • WebCore.xcodeproj/project.pbxproj:
  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::DataTransfer):
(WebCore::DataTransfer::createForInputEvent):

Initializes a new DataTransfer for the purposes of input events. This takes a HTML and plain text
representations of the data being inserted and creates a new readonly DataTransfer backed by a StaticPasteboard
that only knows how to map the "text/plain" data type to the given plaintext string and "text/html" to the
given HTML text.

  • dom/DataTransfer.h:
  • dom/InputEvent.cpp:

(WebCore::InputEvent::create):
(WebCore::InputEvent::InputEvent):
(WebCore::InputEvent::dataTransfer):

  • dom/InputEvent.h:
  • dom/InputEvent.idl:

Add the InputEvent.dataTransfer attribute.

  • dom/Node.cpp:
  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::inputEventDataTransfer):

Add a new hook for CompositeEditCommands to vend a DataTransfer for the purposes of input events. By default,
this is null.

  • editing/CompositeEditCommand.h:
  • editing/Editor.cpp:

(WebCore::dispatchBeforeInputEvent):
(WebCore::dispatchInputEvent):
(WebCore::dispatchBeforeInputEvents):
(WebCore::dispatchInputEvents):
(WebCore::Editor::willApplyEditing):
(WebCore::Editor::appliedEditing):

  • editing/ReplaceRangeWithTextCommand.cpp:

(WebCore::ReplaceRangeWithTextCommand::willApplyCommand):
(WebCore::ReplaceRangeWithTextCommand::doApply):
(WebCore::ReplaceRangeWithTextCommand::inputEventDataTransfer):

  • editing/ReplaceRangeWithTextCommand.h:
  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::willApplyCommand):

Initialize the ReplacementFragment here before applying the command, adjusting the DocumentFragment to be
inserted in the process.

(WebCore::ReplaceSelectionCommand::doApply):
(WebCore::ReplaceSelectionCommand::inputEventDataTransfer):
(WebCore::ReplaceSelectionCommand::ensureReplacementFragment):

Returns the ReplacementFragment used to apply the command, initializing it if necessary and stripping extraneous
nodes off of the document fragment in the process. Since ReplaceSelectionCommand may be used as a top-level
editing command or a child of another CompositeEditCommand such as the ReplaceRangeWithTextCommand, the
ReplacementFragment may be initialized either in willApplyCommand or in doApply.

  • editing/ReplaceSelectionCommand.h:
  • editing/SpellingCorrectionCommand.cpp:

(WebCore::SpellingCorrectionCommand::willApplyCommand):
(WebCore::SpellingCorrectionCommand::doApply):
(WebCore::SpellingCorrectionCommand::inputEventDataTransfer):

  • editing/SpellingCorrectionCommand.h:

Using the replacement text fragment, create and return a DataTransfer for input events.

  • platform/Pasteboard.h:
  • platform/StaticPasteboard.cpp: Added.

(WebCore::StaticPasteboard::create):
(WebCore::StaticPasteboard::StaticPasteboard):
(WebCore::StaticPasteboard::hasData):
(WebCore::StaticPasteboard::types):
(WebCore::StaticPasteboard::readString):

  • platform/StaticPasteboard.h: Copied from Source/WebCore/dom/InputEvent.cpp.
  • platform/efl/PasteboardEfl.cpp:

(WebCore::Pasteboard::writeMarkup):
(WebCore::Pasteboard::write):
(WebCore::Pasteboard::read):

  • platform/gtk/PasteboardGtk.cpp:

(WebCore::Pasteboard::writeMarkup):

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::writeMarkup):

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::writeMarkup):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::write):
(WebCore::Pasteboard::read):

To account for virtual methods on Pasteboard, add implementations for methods that were previously defined but
unimplemented on these platforms.

LayoutTests:

Adds 2 new layout tests verifying that input events dispatched as a result of pasting or spell checking contain
DataTransfers that have rich and plain text representations of the contents being inserted.

  • fast/events/input-events-fired-when-typing-expected.txt:
  • fast/events/input-events-fired-when-typing.html:
  • fast/events/input-events-paste-rich-datatransfer-expected.txt: Added.
  • fast/events/input-events-paste-rich-datatransfer.html: Added.
  • fast/events/input-events-spell-checking-datatransfer-expected.txt: Added.
  • fast/events/input-events-spell-checking-datatransfer.html: Added.
  • platform/ios-simulator/TestExpectations:
1:17 PM Changeset in webkit [207840] by aestes@apple.com
  • 8 edits
    5 adds in trunk

Implement rel=noopener
https://bugs.webkit.org/show_bug.cgi?id=155166
<rdar://problem/25193787>

Reviewed by Brent Fulgham.

Source/WebCore:

Added support for rel=noopener to a and area elements.

Tests: fast/dom/Window/a-rel-noopener.html

fast/dom/Window/area-rel-noopener.html

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::HTMLAnchorElement): Stopped initializing m_linkRelations to 0.
(WebCore::HTMLAnchorElement::parseAttribute): Declared static AtomicStrings for "noreferrer"
and "noopener", and created a SpaceSplitString from the rel attribute value to test for these
two values.
(WebCore::HTMLAnchorElement::hasRel): Updated to use OptionSet::contains().
(WebCore::HTMLAnchorElement::relList): Added a check for "noopener".
(WebCore::HTMLAnchorElement::handleClick): Passed NewFrameOpenerPolicy::Suppress to
FrameLoader::urlSelected() if rel=noopener was specified.

  • html/HTMLAnchorElement.h: Changed the Relation enum to an enum class, removed unused enum

values, and changed m_linkRelations from a 30-bit unsigned integer to an OptionSet<Relation>
(HTMLAnchorElement is still 128 bytes on 64-bit).

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected): Changed to only compute a NewFrameOpenerPolicy from the
referrer policy if an explicit NewFrameOpenerPolicy isn't specified. Removed the version of
urlSelected() that did not take a downloadAttribute parameter.

  • loader/FrameLoader.h: Added an Optional<NewFrameOpenerPolicy> parameter to urlSelected(),

and set a default argument for downloadAttribute instead of having a second version of
urlSelected().

LayoutTests:

  • fast/dom/DOMTokenList-supports-expected.txt:
  • fast/dom/DOMTokenList-supports.html:
  • fast/dom/Window/a-rel-noopener-expected.txt: Added.
  • fast/dom/Window/a-rel-noopener.html: Added.
  • fast/dom/Window/area-rel-noopener-expected.txt: Added.
  • fast/dom/Window/area-rel-noopener.html: Added.
  • fast/dom/Window/resources/rel-noopener.js: Added.
1:08 PM October 2016 Meeting edited by Jon Davis
(diff)
1:07 PM Changeset in webkit [207839] by eric.carlson@apple.com
  • 16 edits in trunk

[MediaStream] Add "has capture device" bit to media state flags
https://bugs.webkit.org/show_bug.cgi?id=163952

Source/WebCore:

Reviewed by Jer Noble.

No new tests, updated fast/mediastream/MediaStream-page-muted.html, media/muted-video-is-playing-audio.html,
and webaudio/web-audio-is-playing.html.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::mediaState): Set HasMediaCaptureDevice, only set HasActiveMediaCaptureDevice when

actually producing data.

  • page/MediaProducer.h: Add HasMediaCaptureDevice bit.
  • testing/Internals.cpp:

(WebCore::Internals::pageMediaState): Return a string representing MediaStateFlags.
(WebCore::Internals::isPagePlayingAudio): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit2:

Reviewed by Sam Weinig.

  • UIProcess/API/C/WKPage.cpp:

(WKPageGetMediaState): Support MediaProducer::HasMediaCaptureDevice.

  • UIProcess/API/C/WKPagePrivate.h: Define kWKMediaHasCaptureDevice.

LayoutTests:

Reviewed by Jer Noble.

  • fast/mediastream/MediaStream-page-muted-expected.txt:
  • fast/mediastream/MediaStream-page-muted.html:
  • media/muted-video-is-playing-audio-expected.txt:
  • media/muted-video-is-playing-audio.html:
  • webaudio/web-audio-is-playing.html:
  • webaudio/web-audio-is-playing-expected.txt:
1:04 PM Changeset in webkit [207838] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove dead code in FrameTreeElement
https://bugs.webkit.org/show_bug.cgi?id=163914

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-25
Reviewed by Brian Burg.

  • UserInterface/Views/FrameTreeElement.js:
1:00 PM October 2016 Meeting edited by Jon Davis
(diff)
12:37 PM Changeset in webkit [207837] by commit-queue@webkit.org
  • 14 edits in trunk

Unreviewed, rolling out r207827 and r207828.
https://bugs.webkit.org/show_bug.cgi?id=163965

Caused LayoutTest webaudio/web-audio-is-playing.html to time
out on macOS. (Requested by ryanhaddad on #webkit).

Reverted changesets:

"[MediaStream] Add "has capture device" bit to media state
flags"
https://bugs.webkit.org/show_bug.cgi?id=163952
http://trac.webkit.org/changeset/207827

"[MediaStream] Add "has capture device" bit to media state
flags"
https://bugs.webkit.org/show_bug.cgi?id=163952
http://trac.webkit.org/changeset/207828

12:25 PM Changeset in webkit [207836] by Konstantin Tokarev
  • 2 edits in trunk

[cmake] Don't enable ld.gold by default on non-ELF platforms
https://bugs.webkit.org/show_bug.cgi?id=163946

Reviewed by Alex Christensen.

For example, MinGW toolchain may be shipped with gold, but it fails to link
WebKit.

  • Source/cmake/OptionsCommon.cmake:
12:22 PM Changeset in webkit [207835] by commit-queue@webkit.org
  • 19 edits
    1 copy
    4 adds in trunk

[Modern Media Controls] Media Controller: skip back support
https://bugs.webkit.org/show_bug.cgi?id=163725
<rdar://problem/27989480>

Patch by Antoine Quint <Antoine Quint> on 2016-10-25
Reviewed by Dean Jackson.

Source/WebCore:

We introduce the SkipBackSupport class which brings support for skipping back
30 seconds into the media by clicking on the skip back button in the media controls.

Test: http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/media-controller.js:

(MediaController):

  • Modules/modern-media-controls/media/skip-back-support.js: Copied from Source/WebCore/Modules/modern-media-controls/media/media-controller.js.

(SkipBackSupport.prototype.get control):
(SkipBackSupport.prototype.buttonWasClicked):
(SkipBackSupport):

  • WebCore.xcodeproj/project.pbxproj:

Tools:

  • Scripts/webkitpy/layout_tests/servers/aliases.json: Adding a new alias such that we may

access the modern-media-controls source files through the web server.

LayoutTests:

Added a new test for the SkipBackButton class to ensure that we correctly seek back by 30 seconds when pressed.
Updated the other tests to reflect the addition of the SkipBackSupport class.

  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click-expected.txt: Added.
  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html: Added.
  • media/modern-media-controls/media-controller/media-controller-constructor.html:
  • media/modern-media-controls/media-controller/media-controller-resize.html:
  • media/modern-media-controls/mute-support/mute-support-button-click.html:
  • media/modern-media-controls/mute-support/mute-support-media-api.html:
  • media/modern-media-controls/mute-support/mute-support-muted.html:
  • media/modern-media-controls/start-support/start-support-audio.html:
  • media/modern-media-controls/start-support/start-support-autoplay.html:
  • media/modern-media-controls/start-support/start-support-click-to-start.html:
  • media/modern-media-controls/start-support/start-support-error.html:
  • media/modern-media-controls/start-support/start-support-fullscreen.html:
  • media/modern-media-controls/start-support/start-support-manual-play.html:
  • media/modern-media-controls/start-support/start-support-no-source.html:
12:22 PM Changeset in webkit [207834] by commit-queue@webkit.org
  • 19 edits in trunk

Unreviewed, rolling out r207578.
https://bugs.webkit.org/show_bug.cgi?id=163962

Broke quip.com so that user can no longer type a space
(Requested by rniwa on #webkit).

Reverted changeset:

"Add a plain space instead of &nbsp; between text nodes"
https://bugs.webkit.org/show_bug.cgi?id=123163
http://trac.webkit.org/changeset/207578

12:20 PM Changeset in webkit [207833] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

LOG_WITH_STREAM() macro should not have a semi colon at the end
https://bugs.webkit.org/show_bug.cgi?id=163951

Reviewed by Simon Fraser.

  • platform/LogMacros.h:
12:17 PM Changeset in webkit [207832] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

IDBObjectStore.createIndex() should take a union in parameter
https://bugs.webkit.org/show_bug.cgi?id=163935

Reviewed by Darin Adler.

IDBObjectStore.createIndex() should take a union in parameter:

No new tests, no expected Web-exposed behavior change.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::createObjectStore):

  • Modules/indexeddb/IDBKeyPath.cpp:

(WebCore::isIDBKeyPathValid):
(WebCore::IDBKeyPath::isValid): Deleted.

  • Modules/indexeddb/IDBKeyPath.h:

(WebCore::IDBKeyPath::isNull):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::createIndex):

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBObjectStore.idl:
12:14 PM Changeset in webkit [207831] by Konstantin Tokarev
  • 4 edits in trunk/Source

[cmake] Check if jscLib and WebKitGUID targets exist before using them
https://bugs.webkit.org/show_bug.cgi?id=163945

Reviewed by Alex Christensen.

Currently these targets are used under WIN32 condition, however they
are defined in PlatformWin.cmake, causing CMake warnings if port
supports WIN32 but does not use PlatformWin.cmake

Source/JavaScriptCore:

  • shell/CMakeLists.txt:

Source/WebKit:

  • CMakeLists.txt:
11:43 AM Changeset in webkit [207830] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

WebCryptoAPI test gardening after r207809.
https://bugs.webkit.org/show_bug.cgi?id=159638

Unreviewed test gardening.

11:35 AM Changeset in webkit [207829] by weinig@apple.com
  • 15 edits in trunk/Source/WebCore

[WebIDL] Move more types over to the new JSConverter based toJS functions
https://bugs.webkit.org/show_bug.cgi?id=163920

Reviewed by Darin Adler.

  • Adds WebIDL-extension type IDLDate, and use it for Date conversions.
  • Move JSDOMIterator over to using IDLType based conversions. Make them more explicit by adding a traits template argument which describes the iterator.
  • Add correct parsing for WebIDL iterable, parsing the parameter types into domTypes.
  • Support non-Optional nullable types via trait-like functions on IDLTypes.
  • bindings/generic/IDLTypes.h:

(WebCore::IDLType::isNullValue):
(WebCore::IDLType::extractValueFromNullable):
(WebCore::IDLString::isNullValue):
(WebCore::IDLString::extractValueFromNullable):
(WebCore::IDLInterface::isNullValue):
(WebCore::IDLInterface::extractValueFromNullable):
(WebCore::IDLDate::isNullValue):
(WebCore::IDLDate::extractValueFromNullable):
Add isNullValue and extractValueFromNullable functions to allow non-Optional
based nullable types.

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::installReplacement):

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::toJS):

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::stylePropertyGetter):

  • bindings/js/JSCustomElementInterface.cpp:

(WebCore::JSCustomElementInterface::invokeAttributeChangedCallback):
Switch to IDLType based toJS.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::jsStringOrNull): Deleted.
(WebCore::jsDateOrNull): Deleted.

  • bindings/js/JSDOMBinding.h:

(WebCore::jsPair): Deleted.
(WebCore::toJSNullableString): Deleted.
Remove now unusued toJS functions.

  • bindings/js/JSDOMConvert.h:

(WebCore::JSConverter<IDLNullable<T>>::convert):
Use new functions to detect and extract nullable values.

(WebCore::Converter<IDLBufferSource>::convert):
Moved to be with the other converters.

(WebCore::Converter<IDLDate>::convert):
(WebCore::JSConverter<IDLDate>::convert):
Added.

  • bindings/js/JSDOMIterator.h:

(WebCore::jsPair):
(WebCore::iteratorCreate):
(WebCore::IteratorTraits>::asJS):
(WebCore::appendForEachArguments):
(WebCore::iteratorForEach):
(WebCore::IteratorTraits>::destroy):
(WebCore::IteratorTraits>::next):
(WebCore::IteratorTraits>::finishCreation):
(WebCore::IteratorInspector::decltype): Deleted.
(WebCore::IteratorInspector::test): Deleted.
(WebCore::JSDOMIterator<JSWrapper>::asJS): Deleted.
(WebCore::JSDOMIterator<JSWrapper>::destroy): Deleted.
(WebCore::JSDOMIterator<JSWrapper>::next): Deleted.
(WebCore::JSDOMIteratorPrototype<JSWrapper>::next): Deleted.
(WebCore::JSDOMIteratorPrototype<JSWrapper>::finishCreation): Deleted.
Switch to new Traits based model, and have the generated code pass in
the type (map or set) and key/value types. With the explicit types known,
we can use the new toJS functions.

Also, moved the jsPair functions here from JSDOMBinding.h, since this was
the only place it was used.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementationIterableFunctions):
Add iterator trait definition and update for new parameters to JSDOMIterator
and JSDOMIteratorPrototype.

(GetBaseIDLType):
Add IDLDate, and move IDLBufferSource up to the simple path.

(JSValueToNativeIsHandledByDOMConvert):
Allow Date.

(JSValueToNative):
Remove special case for Date.

(NativeToJSValueIsHandledByDOMConvert):
Allow Date and remove restriction of nullable string-like types.

(NativeToJSValueDOMConvertNeedsState):
Add Date to list of types needing state.

(NativeToJSValue):
Remove special cases for Date and nullable-strings.

  • bindings/scripts/IDLParser.pm:

(parseOptionalIterableInterface):
Add correct parsing of iterable.

  • bindings/scripts/test/JS/JSTestIterable.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:

Update test results.

11:00 AM Changeset in webkit [207828] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebKit2

[MediaStream] Add "has capture device" bit to media state flags
https://bugs.webkit.org/show_bug.cgi?id=163952

Reviewed by Sam Weinig.

  • UIProcess/API/C/WKPage.cpp:

(WKPageGetMediaState): Support MediaProducer::HasMediaCaptureDevice.

  • UIProcess/API/C/WKPagePrivate.h: Define kWKMediaHasCaptureDevice.
10:34 AM Changeset in webkit [207827] by eric.carlson@apple.com
  • 11 edits in trunk

[MediaStream] Add "has capture device" bit to media state flags
https://bugs.webkit.org/show_bug.cgi?id=163952

Reviewed by Jer Noble.

Source/WebCore:

No new tests, updated fast/mediastream/MediaStream-page-muted.html and media/muted-video-is-playing-audio.html.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::mediaState): Set HasMediaCaptureDevice, only set HasActiveMediaCaptureDevice when

actually producing data.

  • page/MediaProducer.h: Add HasMediaCaptureDevice bit.
  • testing/Internals.cpp:

(WebCore::Internals::pageMediaState): Return a string representing MediaStateFlags.
(WebCore::Internals::isPagePlayingAudio): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • fast/mediastream/MediaStream-page-muted-expected.txt:
  • fast/mediastream/MediaStream-page-muted.html:
  • media/muted-video-is-playing-audio-expected.txt:
  • media/muted-video-is-playing-audio.html:
10:27 AM Changeset in webkit [207826] by Konstantin Tokarev
  • 2 edits in trunk

[cmake] Don't add -fPIC flag when on Windows (MinGW)
https://bugs.webkit.org/show_bug.cgi?id=163949

Reviewed by Michael Catanzaro.

-fPIC flag does not do anything on Windows and produces warning noise
with MinGW. There is no position independent code in Unix sense on
32-bit Windows, and 64-bit Windows code is always relocatable.

For reference see
https://gcc.gnu.org/ml/gcc-patches/2015-08/msg00836.html

  • Source/cmake/WebKitHelpers.cmake:
10:23 AM Changeset in webkit [207825] by jfbastien@apple.com
  • 30 edits in trunk

WebAssembly JS API: implement Module

This implementation allows us to:

  • Syncrhonously create a WebAssembly.Module with a typed array.
  • Creates a compilation plan.
  • Parse the Module and creates corresponding code.
  • Throw WebAssembly.CompileError with mildly helpful [*] error messages on failure.

Consult the API documentation for expected behavior: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymodule-constructor

For now the implementation discards the generated code.

The next steps will be:

  • Expose a Module's exports.
  • Implement WebAssembly.Instance, which allows instantiating and running a compiled Module.
  • Beef up the testing infrastructure under JSTests/wasm so that more complex modules can be created and tested (instead of writing the bits by hand).

This patch also:

  • Adds assert.instanceof in assert.js.
  • Refactors Wasm::Parser and friends to accept const uint8_t* as well as a Vector, to avoid copying when invoked synchronously.
  • Remove useless Structure from some of the wasm constructors: they're already on the JSGlobalObject, visited properly and all.
  • Fix off-by-one error in parsing: Parser::parseUInt32 failed if the integer was exactly at end of file.

[*] On error messages while parsing: I filed https://bugs.webkit.org/show_bug.cgi?id=163919

WebAssembly JS API: implement Module
https://bugs.webkit.org/show_bug.cgi?id=163903

Reviewed by Keith Miller.

JSTests:

  • wasm/assert.js: use underscore in name, and remove when exporting to avoid clasing with builtin names

(const._notUndef):
(const._isUndef):
(const._eq):
(const._ge):
(const._throws):

  • wasm/js-api/test_basic_api.js: test the WebAssembly.Module API

(const.c.in.constructorProperties.switch):

Source/JavaScriptCore:

  • runtime/ExceptionHelpers.cpp:

(JSC::defaultSourceAppender): make this public so that WebAssembly can use it: it generates those fancy (evaluating '...') messages at the end

  • runtime/ExceptionHelpers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init): remove the useless Structure from the WebAssembly objects (it's already in this file, no need to hold two references and visit them twice)

  • testWasm.cpp:

(runWasmTests): update API

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::parseAndCompile): use updated API

  • wasm/WasmB3IRGenerator.h:
  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::FunctionParser): use updated API
(JSC::Wasm::FunctionParser<Context>::parseExpression): use updated API

  • wasm/WasmModuleParser.cpp:

(JSC::Wasm::ModuleParser::parse): generate error messages

  • wasm/WasmModuleParser.h:

(JSC::Wasm::ModuleParser::ModuleParser):
(JSC::Wasm::ModuleParser::failed):
(JSC::Wasm::ModuleParser::errorMessage):
(JSC::Wasm::ModuleParser::functionInformation):
(JSC::Wasm::ModuleParser::memory):

  • wasm/WasmParser.h: use update non-public API

(JSC::Wasm::Parser::parseVarUInt32):
(JSC::Wasm::Parser::parseVarUInt64):
(JSC::Wasm::Parser::source):
(JSC::Wasm::Parser::length):
(JSC::Wasm::Parser::Parser):
(JSC::Wasm::Parser::consumeCharacter):
(JSC::Wasm::Parser::consumeString):
(JSC::Wasm::Parser::parseUInt32):
(JSC::Wasm::Parser::parseUInt7):

  • wasm/WasmPlan.cpp:

(JSC::Wasm::Plan::Plan):
(JSC::Wasm::Plan::~Plan):

  • wasm/WasmPlan.h:

(JSC::Wasm::Plan::failed):
(JSC::Wasm::Plan::errorMessage):
(JSC::Wasm::Plan::resultSize):
(JSC::Wasm::Plan::result):
(JSC::Wasm::Plan::memory):

  • wasm/js/JSWebAssemblyCompileError.cpp:

(JSC::createWebAssemblyCompileError): makes it easier to throw a WebAssembly.CompileError from Module

  • wasm/js/JSWebAssemblyCompileError.h:
  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::WebAssemblyCompileErrorConstructor::create):
(JSC::WebAssemblyCompileErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyCompileErrorConstructor.h:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::WebAssemblyInstanceConstructor::create):
(JSC::WebAssemblyInstanceConstructor::finishCreation):
(JSC::WebAssemblyInstanceConstructor::visitChildren):

  • wasm/js/WebAssemblyInstanceConstructor.h:
  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::WebAssemblyMemoryConstructor::create):
(JSC::WebAssemblyMemoryConstructor::finishCreation):
(JSC::WebAssemblyMemoryConstructor::visitChildren):

  • wasm/js/WebAssemblyMemoryConstructor.h:
  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::constructJSWebAssemblyModule):
(JSC::WebAssemblyModuleConstructor::create):
(JSC::WebAssemblyModuleConstructor::finishCreation):
(JSC::WebAssemblyModuleConstructor::visitChildren):

  • wasm/js/WebAssemblyModuleConstructor.h:
  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::WebAssemblyRuntimeErrorConstructor::create):
(JSC::WebAssemblyRuntimeErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyRuntimeErrorConstructor.h:
  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::WebAssemblyTableConstructor::create):
(JSC::WebAssemblyTableConstructor::finishCreation):
(JSC::WebAssemblyTableConstructor::visitChildren):

  • wasm/js/WebAssemblyTableConstructor.h:
10:12 AM Changeset in webkit [207824] by keith_miller@apple.com
  • 6 edits in trunk

Add trivial Wasm conversion opcodes
https://bugs.webkit.org/show_bug.cgi?id=163950

Reviewed by Filip Pizlo.

This patch differentiates between Wasm opcodes that are trivially mapped to a B3 opcode and
those that are not. Some of the Wasm opcodes that are currently a non-simple opcode will
become simple as we add B3 opcodes for Wasm operations. The remaining opcodes will need to
be added via patchpoints in a later patch.

JSTests:

  • wasm/generate-wasmops-header.js:

(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.Wasm.inline.bool.isSimple):

  • wasm/wasm.json:

Source/JavaScriptCore:

  • wasm/WasmB3IRGenerator.cpp:
  • wasm/WasmOps.h:

(JSC::Wasm::isSimple):

9:34 AM Changeset in webkit [207823] by Chris Dumez
  • 3 edits in trunk/Source/WebKit2

Unreviewed, rolling out r207494.

iOS SDK has been updated on the bots now so rollout the
rollout

Reverted changeset:

"Unreviewed, rolling out r207413."
https://bugs.webkit.org/show_bug.cgi?id=163547
http://trac.webkit.org/changeset/207494

9:26 AM Changeset in webkit [207822] by Jonathan Bedard
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _fullscreenDelegate]): Removed unneeded parenthesis.

9:25 AM Changeset in webkit [207821] by beidson@apple.com
  • 11 edits
    5 adds in trunk

IndexedDB 2.0: Support new IDBTransaction interfaces.
<rdar://problem/28806928> and https://bugs.webkit.org/show_bug.cgi?id=163927

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/IndexedDB/idbobjectstore-rename-abort-expected.txt:
  • web-platform-tests/IndexedDB/idbobjectstore-rename-store-expected.txt:
  • web-platform-tests/IndexedDB/idbtransaction_objectStoreNames-expected.txt:
  • web-platform-tests/IndexedDB/transaction-abort-multiple-metadata-revert-expected.txt:
  • web-platform-tests/IndexedDB/transaction-abort-object-store-metadata-revert-expected.txt:

Source/WebCore:

Tests: storage/indexeddb/modern/idbtransaction-objectstores-1-private.html

storage/indexeddb/modern/idbtransaction-objectstores-1.html
At least partially passing results on 5 previously failed W3C tests.

The "new IDBTransaction interfaces" really just means adding the property IDBTransaction.objectStoreNames.

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::objectStoreNames):

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/IDBTransaction.idl:

LayoutTests:

  • storage/indexeddb/modern/idbtransaction-objectstores-1-expected.txt: Added.
  • storage/indexeddb/modern/idbtransaction-objectstores-1-private-expected.txt: Added.
  • storage/indexeddb/modern/idbtransaction-objectstores-1-private.html: Added.
  • storage/indexeddb/modern/idbtransaction-objectstores-1.html: Added.
  • storage/indexeddb/modern/resources/idbtransaction-objectstores-1.js: Added.
8:52 AM Changeset in webkit [207820] by jer.noble@apple.com
  • 9 edits
    6 adds in trunk

Add WKWebView fullscreen delegate SPI
https://bugs.webkit.org/show_bug.cgi?id=163674

Reviewed by Anders Carlsson.

Source/WebKit2:

Add a new SPI property to WKWebView allowing clients to be notified when fullscreen mode enters and exits.

  • UIProcess/API/APIFullscreenClient.h: Added.

(API::FullscreenClient::~FullscreenClient):
(API::FullscreenClient::willEnterFullscreen):
(API::FullscreenClient::didEnterFullscreen):
(API::FullscreenClient::willExitFullscreen):
(API::FullscreenClient::didExitFullscreen):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setFullscreenDelegate:]):
(-[WKWebView _fullscreenDelegate]):
(-[WKWebView _isInFullscreen]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/_WKFullscreenDelegate.h: Added.
  • UIProcess/Cocoa/FullscreenClient.h: Added.

(WebKit::FullscreenClient::~FullscreenClient):

  • UIProcess/Cocoa/FullscreenClient.mm: Added.

(WebKit::FullscreenClient::FullscreenClient):
(WebKit::FullscreenClient::delegate):
(WebKit::FullscreenClient::setDelegate):
(WebKit::FullscreenClient::willEnterFullscreen):
(WebKit::FullscreenClient::didEnterFullscreen):
(WebKit::FullscreenClient::willExitFullscreen):
(WebKit::FullscreenClient::didExitFullscreen):

  • UIProcess/WebFullScreenManagerProxy.cpp:

(WebKit::WebFullScreenManagerProxy::willEnterFullScreen):
(WebKit::WebFullScreenManagerProxy::didEnterFullScreen):
(WebKit::WebFullScreenManagerProxy::willExitFullScreen):
(WebKit::WebFullScreenManagerProxy::didExitFullScreen):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setFullscreenClient):
(WebKit::WebPageProxy::fullScreenManager): Deleted.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::fullscreenClient):

  • WebKit2.xcodeproj/project.pbxproj:

Tools:

Add a new API test which verifies that the fullscreen delegate receives notifications.

  • TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenDelegate.mm:

(-[FullscreenDelegateMessageHandler userContentController:didReceiveScriptMessage:]):
(-[FullscreenDelegateMessageHandler _webViewWillEnterFullscreen:]):
(-[FullscreenDelegateMessageHandler _webViewDidEnterFullscreen:]):
(-[FullscreenDelegateMessageHandler _webViewWillExitFullscreen:]):
(-[FullscreenDelegateMessageHandler _webViewDidExitFullscreen:]):
(TestWebKitAPI::TEST):

8:52 AM Changeset in webkit [207819] by Konstantin Tokarev
  • 2 edits in trunk/Source/WTF

Non-specialized version of deleteObject should not have template argument
https://bugs.webkit.org/show_bug.cgi?id=163943

Reviewed by Anders Carlsson.

Fixes compilation of GDIObject.h with MinGW

  • wtf/win/GDIObject.h:

(WTF::deleteObject):

8:02 AM Changeset in webkit [207818] by commit-queue@webkit.org
  • 10 edits in trunk/Source/WebCore

MediaEndpointConfiguration does not need to be refcounted
https://bugs.webkit.org/show_bug.cgi?id=163888

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-25
Reviewed by Eric Carlson.

No change of behavior.

Updating MediaEndpoint to take a MediaEndpointConfiguration&& instead of a RefPtr<MediaEndpointConfiguration>&&.
This allows ensuring that the configuration is not null and removes the need to ref-count it.

Removing ref-counting from MediaEndpointConfiguration and its related IceServer that is now a struct.
Updated MediaEndpointOwr and mock implementations accordingly.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::setConfiguration):

  • platform/mediastream/MediaEndpoint.cpp:
  • platform/mediastream/MediaEndpoint.h:
  • platform/mediastream/MediaEndpointConfiguration.cpp:

(WebCore::MediaEndpointConfiguration::MediaEndpointConfiguration):

  • platform/mediastream/MediaEndpointConfiguration.h:

(WebCore::MediaEndpointConfiguration::iceServers):

  • platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:

(WebCore::MediaEndpointOwr::setConfiguration):
(WebCore::MediaEndpointOwr::ensureTransportAgentAndTransceivers):

  • platform/mediastream/openwebrtc/MediaEndpointOwr.h:
  • platform/mock/MockMediaEndpoint.cpp:
  • platform/mock/MockMediaEndpoint.h:
7:16 AM Changeset in webkit [207817] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

CachedResourceLoader should set headers of the HTTP request prior checking for the cache
https://bugs.webkit.org/show_bug.cgi?id=163103

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-25
Reviewed by Darin Adler.

No expected change of behavior.

Moved referrer, user-agent, and origin headers setting to CachedResourceRequest/CachedResourceLoader before checking the cache.
This allows simplifying vary header checks and is more inline with the fetch specification.

To compute the referrer value, we need to know whether the request is cross-origin.
A helper function isRequestCrossOrigin is added for that purpose and is also used in CachedResource to set its initial response tainting.

We should disable setting user-agent and origin headers by FrameLoader for subresources since this is now done in CachedResourceLoader.
This could be done as a follow-up patch.

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::load):
(WebCore::CachedResource::varyHeaderValuesMatch):
(WebCore::addAdditionalRequestHeadersToRequest): Deleted.
(WebCore::CachedResource::addAdditionalRequestHeaders): Deleted.

  • loader/cache/CachedResource.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::updateHTTPRequestHeaders):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::determineRevalidationPolicy):

  • loader/cache/CachedResourceLoader.h:
  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::updateForAccessControl):
(WebCore::CachedResourceRequest::updateReferrerOriginAndUserAgentHeaders):
(WebCore::isRequestCrossOrigin):

  • loader/cache/CachedResourceRequest.h:

(WebCore::CachedResourceRequest::setOrigin):

5:16 AM Changeset in webkit [207816] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix timeouts in 12 GTK+ unit tests after r207812.

  • NetworkProcess/NetworkProcessCreationParameters.h: Initialize loadThrottleLatency.
3:36 AM Changeset in webkit [207815] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix Soup based ports debug build after r207813.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::authenticateCallback):
(WebKit::NetworkDataTaskSoup::requestStartedCallback):

3:27 AM Changeset in webkit [207814] by akling@apple.com
  • 52 edits in trunk/Source

More PassRefPtr purging in WebCore.
<https://webkit.org/b/163895>

Reviewed by Antti Koivisto.

Source/WebCore:

Remove PassRefPtr usage in RenderStyle, RenderTheme and Scrollbar, then fix up all the fallout.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::contentToCSSValue):
(WebCore::shapePropertyValue):
(WebCore::ComputedStyleExtractor::propertyValue):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertQuotes):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::usesMenuList):
(WebCore::HTMLSelectElement::platformHandleKeydownEvent):
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):

  • html/InputType.cpp:

(WebCore::InputType::themeSupportsDataListUI):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::shouldHaveSpinButton):
(WebCore::TextFieldInputType::shouldHaveCapsLockIndicator):

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::loadPlugin):

  • page/FrameView.cpp:

(WebCore::FrameView::createScrollbar):

  • page/FrameView.h:
  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::RefCountedPropertyWrapper::RefCountedPropertyWrapper):
(WebCore::PropertyWrapperClipPath::PropertyWrapperClipPath):
(WebCore::PropertyWrapperShape::PropertyWrapperShape):
(WebCore::StyleImagePropertyWrapper::StyleImagePropertyWrapper):
(WebCore::FillLayerRefCountedPropertyWrapper::FillLayerRefCountedPropertyWrapper):
(WebCore::FillLayerStyleImagePropertyWrapper::FillLayerStyleImagePropertyWrapper):

  • platform/PopupMenuClient.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::createScrollbar):

  • platform/ScrollView.h:
  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::createNativeScrollbar):

  • platform/Scrollbar.h:
  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::buildReferenceFilter):

  • rendering/FilterEffectRenderer.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::createScrollbar):
(WebCore::RenderLayer::createLocalTransformState):
(WebCore::RenderLayer::hitTestLayerByApplyingTransform):

  • rendering/RenderLayer.h:
  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::createScrollbar):

  • rendering/RenderListBox.h:
  • rendering/RenderMenuList.cpp:

(RenderMenuList::createScrollbar):

  • rendering/RenderMenuList.h:
  • rendering/RenderScrollbar.cpp:

(WebCore::RenderScrollbar::createCustomScrollbar):

  • rendering/RenderScrollbar.h:
  • rendering/RenderSearchField.cpp:

(WebCore::RenderSearchField::createScrollbar):

  • rendering/RenderSearchField.h:
  • rendering/RenderTheme.h:

(WebCore::RenderTheme::defaultTheme):

  • rendering/RenderThemeEfl.cpp:

(WebCore::RenderThemeEfl::create):
(WebCore::RenderTheme::themeForPage):

  • rendering/RenderThemeEfl.h:
  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderTheme::themeForPage):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderTheme::themeForPage):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderTheme::themeForPage):

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderTheme::themeForPage):

  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::setWidget):

  • rendering/RenderWidget.h:
  • rendering/style/CursorData.h:

(WebCore::CursorData::CursorData):
(WebCore::CursorData::setImage):

  • rendering/style/FillLayer.h:

(WebCore::FillLayer::setImage):

  • rendering/style/QuotesData.cpp:

(WebCore::QuotesData::create):

  • rendering/style/QuotesData.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::addCursor):
(WebCore::RenderStyle::setCursorList):
(WebCore::RenderStyle::setQuotes):
(WebCore::RenderStyle::setWillChange):
(WebCore::RenderStyle::setContent):
(WebCore::RenderStyle::setListStyleImage):
(WebCore::RenderStyle::setBorderImageSource):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setMaskImage):
(WebCore::RenderStyle::setMaskBoxImageSource):
(WebCore::RenderStyle::setBoxReflect):
(WebCore::RenderStyle::setShapeOutside):
(WebCore::RenderStyle::setClipPath):

  • rendering/style/StyleCachedImage.cpp:

(WebCore::StyleCachedImage::cssValue):

  • rendering/style/StyleCachedImage.h:
  • rendering/style/StyleGeneratedImage.cpp:

(WebCore::StyleGeneratedImage::cssValue):

  • rendering/style/StyleGeneratedImage.h:
  • rendering/style/StyleImage.h:
  • rendering/style/StyleMultiColData.h:
  • rendering/style/StyleRareInheritedData.h:

Source/WebKit2:

  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.h:
  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:

(WebKit::PDFPlugin::createScrollbar):

3:25 AM Changeset in webkit [207813] by Carlos Garcia Campos
  • 20 edits
    3 copies
    3 adds in trunk/Source/WebKit2

NetworkSession: switch to use subclasses for NetworkSession and NetworkDataTask implementations
https://bugs.webkit.org/show_bug.cgi?id=163777

Reviewed by Alex Christensen.

The subclass model allows us to choose the implementation at run time, so we could add other implementations
like a mock network class to measure performance, and even one for blobs and finally get rid of ResourceHandle
in WebKit2.

  • CMakeLists.txt: Add new files to compilation.
  • NetworkProcess/NetworkDataTask.cpp: Added.

(WebKit::NetworkDataTask::create): Create a NetworkDataTaskCocoa or NetworkDataTaskSoup.
(WebKit::NetworkDataTask::NetworkDataTask): Move common code from NetworkDataTaskCocoa and NetworkDataTaskSoup
here to handle the early failures.
(WebKit::NetworkDataTask::~NetworkDataTask):
(WebKit::NetworkDataTask::scheduleFailure):
(WebKit::NetworkDataTask::failureTimerFired):

  • NetworkProcess/NetworkDataTask.h: Remove platform specific members.

(WebKit::NetworkDataTask::setPendingDownloadLocation): Make it virtual and set the m_pendingDownloadLocation.
(WebKit::NetworkDataTask::suggestedFilename): Make it virtual and const with a default implementation.
(WebKit::NetworkDataTask::setSuggestedFilename): Ditto.
(WebKit::NetworkDataTask::allowsSpecificHTTPSCertificateForHost): Ditto.

  • NetworkProcess/NetworkLoad.cpp: Include NetworkDataTaskCocoa.h.
  • NetworkProcess/NetworkLoad.h: Include NetworkDataTask.h instead of NetworkSession.h.
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::NetworkProcess): Use NetworkSessionCocoa.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::create): Create a NetworkSessionCocoa or NetworkSessionSoup.
(WebKit::NetworkSession::defaultSession): In case of cocoa use NetworkSessionCocoa::defaultSession() because of
the custom protocol manager, otherwise simply create a default session.
(WebKit::NetworkSession::networkStorageSession): Move common code from NetworkSessionCocoa and
NetworkSessionSoup here.
(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::~NetworkSession):

  • NetworkProcess/NetworkSession.h: Remove platform specific members.

(WebKit::NetworkSession::invalidateAndCancel): Make it virtual.
(WebKit::NetworkSession::clearCredentials): Ditto.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: Include NetworkSession.h.
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h: Added.
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::didSendData):
(WebKit::NetworkDataTaskCocoa::didReceiveChallenge):
(WebKit::NetworkDataTaskCocoa::didCompleteWithError):
(WebKit::NetworkDataTaskCocoa::didReceiveResponse):
(WebKit::NetworkDataTaskCocoa::didReceiveData):
(WebKit::NetworkDataTaskCocoa::didBecomeDownload):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCocoa::setPendingDownloadLocation):
(WebKit::NetworkDataTaskCocoa::tryPasswordBasedAuthentication):
(WebKit::NetworkDataTaskCocoa::transferSandboxExtensionToDownload):
(WebKit::NetworkDataTaskCocoa::allowsSpecificHTTPSCertificateForHost):
(WebKit::NetworkDataTaskCocoa::suggestedFilename):
(WebKit::NetworkDataTaskCocoa::cancel):
(WebKit::NetworkDataTaskCocoa::resume):
(WebKit::NetworkDataTaskCocoa::suspend):
(WebKit::NetworkDataTaskCocoa::state):

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • NetworkProcess/cocoa/NetworkSessionCocoa.h: Added.
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate initWithNetworkSession:withCredentials:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):
(WebKit::configurationForSessionID):
(WebKit::NetworkSessionCocoa::setCustomProtocolManager):
(WebKit::NetworkSessionCocoa::setSourceApplicationAuditTokenData):
(WebKit::NetworkSessionCocoa::setSourceApplicationBundleIdentifier):
(WebKit::NetworkSessionCocoa::setSourceApplicationSecondaryIdentifier):
(WebKit::NetworkSessionCocoa::setCTDataConnectionServiceType):
(WebKit::NetworkSessionCocoa::create):
(WebKit::NetworkSessionCocoa::defaultSession):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
(WebKit::NetworkSessionCocoa::~NetworkSessionCocoa):
(WebKit::NetworkSessionCocoa::invalidateAndCancel):
(WebKit::NetworkSessionCocoa::clearCredentials):
(WebKit::NetworkSessionCocoa::dataTaskForIdentifier):
(WebKit::NetworkSessionCocoa::addDownloadID):
(WebKit::NetworkSessionCocoa::downloadID):
(WebKit::NetworkSessionCocoa::takeDownloadID):

  • NetworkProcess/mac/RemoteNetworkingContext.mm:

(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::NetworkDataTaskSoup):
(WebKit::NetworkDataTaskSoup::~NetworkDataTaskSoup):
(WebKit::NetworkDataTaskSoup::suggestedFilename):
(WebKit::NetworkDataTaskSoup::setPendingDownloadLocation):
(WebKit::NetworkDataTaskSoup::createRequest):
(WebKit::NetworkDataTaskSoup::clearRequest):
(WebKit::NetworkDataTaskSoup::resume):
(WebKit::NetworkDataTaskSoup::suspend):
(WebKit::NetworkDataTaskSoup::cancel):
(WebKit::NetworkDataTaskSoup::invalidateAndCancel):
(WebKit::NetworkDataTaskSoup::state):
(WebKit::NetworkDataTaskSoup::timeoutFired):
(WebKit::NetworkDataTaskSoup::startTimeout):
(WebKit::NetworkDataTaskSoup::stopTimeout):
(WebKit::NetworkDataTaskSoup::sendRequestCallback):
(WebKit::NetworkDataTaskSoup::didSendRequest):
(WebKit::NetworkDataTaskSoup::didReceiveResponse):
(WebKit::NetworkDataTaskSoup::tlsErrorsChangedCallback):
(WebKit::NetworkDataTaskSoup::tlsErrorsChanged):
(WebKit::NetworkDataTaskSoup::applyAuthenticationToRequest):
(WebKit::NetworkDataTaskSoup::authenticateCallback):
(WebKit::NetworkDataTaskSoup::authenticate):
(WebKit::NetworkDataTaskSoup::continueAuthenticate):
(WebKit::NetworkDataTaskSoup::skipInputStreamForRedirectionCallback):
(WebKit::NetworkDataTaskSoup::skipInputStreamForRedirection):
(WebKit::NetworkDataTaskSoup::didFinishSkipInputStreamForRedirection):
(WebKit::NetworkDataTaskSoup::shouldStartHTTPRedirection):
(WebKit::NetworkDataTaskSoup::continueHTTPRedirection):
(WebKit::NetworkDataTaskSoup::readCallback):
(WebKit::NetworkDataTaskSoup::read):
(WebKit::NetworkDataTaskSoup::didRead):
(WebKit::NetworkDataTaskSoup::didFinishRead):
(WebKit::NetworkDataTaskSoup::requestNextPartCallback):
(WebKit::NetworkDataTaskSoup::requestNextPart):
(WebKit::NetworkDataTaskSoup::didRequestNextPart):
(WebKit::NetworkDataTaskSoup::didFinishRequestNextPart):
(WebKit::NetworkDataTaskSoup::gotHeadersCallback):
(WebKit::NetworkDataTaskSoup::didGetHeaders):
(WebKit::NetworkDataTaskSoup::wroteBodyDataCallback):
(WebKit::NetworkDataTaskSoup::didWriteBodyData):
(WebKit::NetworkDataTaskSoup::download):
(WebKit::NetworkDataTaskSoup::writeDownloadCallback):
(WebKit::NetworkDataTaskSoup::writeDownload):
(WebKit::NetworkDataTaskSoup::didWriteDownload):
(WebKit::NetworkDataTaskSoup::didFinishDownload):
(WebKit::NetworkDataTaskSoup::didFailDownload):
(WebKit::NetworkDataTaskSoup::cleanDownloadFiles):
(WebKit::NetworkDataTaskSoup::didFail):
(WebKit::NetworkDataTaskSoup::networkEventCallback):
(WebKit::NetworkDataTaskSoup::networkEvent):
(WebKit::NetworkDataTaskSoup::startingCallback):
(WebKit::NetworkDataTaskSoup::requestStartedCallback):
(WebKit::NetworkDataTaskSoup::didStartRequest):
(WebKit::NetworkDataTaskSoup::restartedCallback):
(WebKit::NetworkDataTaskSoup::didRestart):

  • NetworkProcess/soup/NetworkDataTaskSoup.h: Added.
  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::NetworkSessionSoup):
(WebKit::NetworkSessionSoup::~NetworkSessionSoup):
(WebKit::NetworkSessionSoup::soupSession):
(WebKit::NetworkSessionSoup::invalidateAndCancel):

  • NetworkProcess/soup/NetworkSessionSoup.h: Added.
  • NetworkProcess/soup/RemoteNetworkingContextSoup.cpp:

(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession): Update to new NetworkSession::create() API.

  • PlatformEfl.cmake: Add new files to compilation.
  • PlatformGTK.cmake: Ditto.
  • WebKit2.xcodeproj/project.pbxproj: Ditto.
  • WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:

(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession): Update to new NetworkSession::create() API.

  • WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:

(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession): Ditto.

1:22 AM Changeset in webkit [207812] by Antti Koivisto
  • 8 edits in trunk/Source/WebKit2

Add support for introducing simulated latency in network process
https://bugs.webkit.org/show_bug.cgi?id=163902

Reviewed by Alex Christensen.

For testing purposes it is useful to have a mechanism for simulating high latency.
This patch adds a basic mechanism that introduces a delay to each response in network
process. In Safari it can be used with

defaults write com.apple.Safari WebKitNetworkLoadThrottleLatencyMilliseconds 200

Setting the delay to 0 disables the feature.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::Throttle::Throttle):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::notifyDidReceiveResponse):
(WebKit::NetworkLoad::didReceiveData):
(WebKit::NetworkLoad::didCompleteWithError):
(WebKit::NetworkLoad::throttleDelayCompleted):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::loadThrottleLatency):

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

12:01 AM Changeset in webkit [207811] by achristensen@apple.com
  • 2 edits in trunk/LayoutTests

Rebase test after r207805
https://bugs.webkit.org/show_bug.cgi?id=163929

  • fetch/fetch-url-serialization-expected.txt:
Note: See TracTimeline for information about the timeline view.