Timeline
Jun 26, 2016:
- 10:10 PM Changeset in webkit [202479] by
-
- 2 edits in trunk/Source/WebCore
[EFL] Fix build warning when using geoclue2
https://bugs.webkit.org/show_bug.cgi?id=159128
Reviewed by Antonio Gomes.
EFL port has handled build warning as error. So EFL port
hasn't been built when we use geoclue2 library because a generated geoclue2 file
has unused-parameter build warning. To fix it this patch set to ignore the build warning
in the generated geoclue2 file.
- PlatformEfl.cmake:
- 6:29 PM Changeset in webkit [202478] by
-
- 3 edits2 adds in trunk
Regression: HTMLOptionsCollection's named properties have precedence over indexed properties
https://bugs.webkit.org/show_bug.cgi?id=159058
<rdar://problem/26988542>
Reviewed by Ryosuke Niwa.
Source/WebCore:
HTMLOptionsCollection's named properties had precedence over indexed properties,
which is wrong as per:
http://heycam.github.io/webidl/#getownproperty-guts
The reason is that there was a named property getter defined on HTMLOptionsCollection
but no indexed property getter. As a result, HTMLOptionsCollection would fall back to
using HTMLCollection's indexed property getter but HTMLOptionsCollection's named getter
would take precedence. This patch defines an indexed property getter on
HTMLOptionsCollection to fix the problem.
Ideally, HTMLOptionsCollection would have no indexed / named property getters and would
entirely rely on the ones from HTMLCollection. However, our bindings generator currently
has trouble with this and requires HTMLOptionsCollection to have a named getter.
Test: fast/dom/HTMLSelectElement/options-indexed-getter-precedence.html
- html/HTMLOptionsCollection.idl:
LayoutTests:
Add layout test coverage.
- fast/dom/HTMLSelectElement/options-indexed-getter-precedence-expected.txt: Added.
- fast/dom/HTMLSelectElement/options-indexed-getter-precedence.html: Added.
- 3:31 PM Changeset in webkit [202477] by
-
- 5 edits in branches/safari-602.1.38-branch/Source
Versioning.
- 3:25 PM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 3:22 PM Changeset in webkit [202476] by
-
- 1 copy in tags/Safari-602.1.38.2
New tag.
- 2:57 PM Changeset in webkit [202475] by
-
- 2 edits in trunk/LayoutTests
[GTK] Unreviewed test gardening.
Several hidpi tests pass now thanks to r202421.
- 2:34 PM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 11:02 AM Changeset in webkit [202474] by
-
- 9 edits4 adds3 deletes in trunk/LayoutTests
[macOS] Font-related test gardening for macOS Sierra
https://bugs.webkit.org/show_bug.cgi?id=159106
<rdar://problem/25807529>
Unreviewed.
- fast/ruby/bopomofo-letter-spacing.html:
- fast/ruby/bopomofo-rl.html:
- fast/ruby/bopomofo.html:
- svg/W3C-SVG-1.1/text-fonts-01-t.svg:
- svg/text/text-fonts-01-t.svg:
- 10:21 AM Changeset in webkit [202473] by
-
- 2 edits in branches/safari-602.1.38-branch/Source/WebCore
Merged r202472. rdar://problem/27014649
- 9:25 AM Changeset in webkit [202472] by
-
- 2 edits in trunk/Source/WebCore
Regression(r202262): Infinite loop under searchForLinkRemovingExistingDDLinks()
https://bugs.webkit.org/show_bug.cgi?id=159122
<rdar://problem/27014649>
Reviewed by Ryosuke Niwa.
Infinite loop under searchForLinkRemovingExistingDDLinks() because the
value returned by NodeTraversal::next() was ignored and the node iterator
was never updated.
- editing/cocoa/DataDetection.mm:
(WebCore::searchForLinkRemovingExistingDDLinks):
- 3:04 AM Changeset in webkit [202471] by
-
- 157 edits1 copy108 adds in trunk/LayoutTests
Refreshing WPT tests up to 12b7800
https://bugs.webkit.org/show_bug.cgi?id=158872
Patch by Youenn Fablet <youennf@gmail.com> on 2016-06-26
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- resources/ImportExpectations:
- resources/TestRepositories:
- resources/web-platform-tests-modules.json:
- web-platform-tests/XMLHttpRequest/open-url-bogus-expected.txt:
- web-platform-tests/XMLHttpRequest/open-url-bogus.htm:
- web-platform-tests/XMLHttpRequest/open-url-multi-window-4-expected.txt:
- web-platform-tests/XMLHttpRequest/resources/init.htm:
- web-platform-tests/XMLHttpRequest/send-entity-body-document-expected.txt:
- web-platform-tests/XMLHttpRequest/send-usp-expected.txt:
- web-platform-tests/XMLHttpRequest/send-usp.js:
- web-platform-tests/XMLHttpRequest/w3c-import.log:
- web-platform-tests/common/form-submission.py: Added.
- web-platform-tests/common/w3c-import.log:
- web-platform-tests/dom/events/Event-defaultPrevented-expected.txt:
- web-platform-tests/dom/events/Event-defaultPrevented.html:
- web-platform-tests/dom/events/w3c-import.log:
- web-platform-tests/dom/historical-expected.txt:
- web-platform-tests/dom/historical.html:
- web-platform-tests/dom/interfaces-expected.txt:
- web-platform-tests/dom/interfaces.html:
- web-platform-tests/dom/lists/w3c-import.log:
- web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:
- web-platform-tests/dom/nodes/DOMImplementation-createDocument.html:
- web-platform-tests/dom/nodes/Document-characterSet-normalization-expected.txt:
- web-platform-tests/dom/nodes/Document-characterSet-normalization.html:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_bmp-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_bmp.html:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_css-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_css.html:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_01-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_01.html:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_02-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_02.html:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_gif-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_gif.html:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_html-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_html.html:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_javascripturi-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_javascripturi.html:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_jpg-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_jpg.html:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_01-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_01.html:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_02-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_02.html:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_png-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_png.html:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_txt-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_txt.html:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_xml-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_xml.html:
- web-platform-tests/dom/nodes/Document-contentType/contentType/createDocument-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/createDocument.html:
- web-platform-tests/dom/nodes/Document-createElement-namespace-expected.txt:
- web-platform-tests/dom/nodes/Document-createElement-namespace.html:
- web-platform-tests/dom/nodes/Element-classlist-expected.txt:
- web-platform-tests/dom/nodes/Element-classlist.html:
- web-platform-tests/dom/nodes/Node-cloneNode.html:
- web-platform-tests/dom/nodes/remove-unscopable-expected.txt:
- web-platform-tests/dom/nodes/remove-unscopable.html:
- web-platform-tests/dom/nodes/w3c-import.log:
- web-platform-tests/domparsing/DOMParser-parseFromString-html-expected.txt:
- web-platform-tests/domparsing/DOMParser-parseFromString-html.html:
- web-platform-tests/domparsing/OWNERS:
- web-platform-tests/domparsing/w3c-import.log:
- web-platform-tests/fetch/api/redirect/redirect-method.js:
- web-platform-tests/fetch/api/redirect/w3c-import.log:
- web-platform-tests/fetch/api/request/request-cache-expected.txt:
- web-platform-tests/fetch/api/request/request-cache.html:
- web-platform-tests/fetch/api/request/request-error-expected.txt:
- web-platform-tests/fetch/api/request/request-error.html:
- web-platform-tests/fetch/api/request/request-init-001.sub-expected.txt:
- web-platform-tests/fetch/api/request/request-init-001.sub.html:
- web-platform-tests/fetch/api/request/request-init-003.sub-expected.txt:
- web-platform-tests/fetch/api/request/request-init-003.sub.html:
- web-platform-tests/fetch/api/request/resources/cache.py:
- web-platform-tests/fetch/api/request/resources/get-host-info.sub.js: Added.
- web-platform-tests/fetch/api/request/resources/w3c-import.log:
- web-platform-tests/fetch/api/resources/utils.js:
- web-platform-tests/fetch/api/resources/w3c-import.log:
- web-platform-tests/fetch/api/response/response-cancel-stream-expected.txt:
- web-platform-tests/fetch/api/response/response-cancel-stream.html:
- web-platform-tests/fetch/api/response/response-consume-stream.html:
- web-platform-tests/fetch/api/response/response-stream-disturbed-4.html:
- web-platform-tests/fetch/api/response/response-stream-disturbed-5.html:
- web-platform-tests/fetch/api/response/w3c-import.log:
- web-platform-tests/html/dom/documents/dom-tree-accessors/w3c-import.log:
- web-platform-tests/html/dom/elements-embedded.js:
- web-platform-tests/html/dom/elements-metadata.js:
- web-platform-tests/html/dom/elements-tabular.js:
- web-platform-tests/html/dom/interfaces-expected.txt:
- web-platform-tests/html/dom/interfaces.html:
- web-platform-tests/html/dom/reflection-embedded-expected.txt:
- web-platform-tests/html/dom/reflection-embedded.html:
- web-platform-tests/html/dom/reflection-forms-expected.txt:
- web-platform-tests/html/dom/reflection-forms.html:
- web-platform-tests/html/dom/reflection-grouping-expected.txt:
- web-platform-tests/html/dom/reflection-grouping.html:
- web-platform-tests/html/dom/reflection-metadata-expected.txt:
- web-platform-tests/html/dom/reflection-metadata.html:
- web-platform-tests/html/dom/reflection-misc-expected.txt:
- web-platform-tests/html/dom/reflection-misc.html:
- web-platform-tests/html/dom/reflection-obsolete-expected.txt:
- web-platform-tests/html/dom/reflection-obsolete.html:
- web-platform-tests/html/dom/reflection-sections-expected.txt:
- web-platform-tests/html/dom/reflection-sections.html:
- web-platform-tests/html/dom/reflection-tabular-expected.txt:
- web-platform-tests/html/dom/reflection-tabular.html:
- web-platform-tests/html/dom/reflection-text-expected.txt:
- web-platform-tests/html/dom/reflection-text.html:
- web-platform-tests/html/dom/w3c-import.log:
- web-platform-tests/html/resources/common.js:
- web-platform-tests/html/semantics/document-metadata/the-base-element/w3c-import.log:
- web-platform-tests/html/semantics/document-metadata/the-link-element/link-rellist-expected.txt:
- web-platform-tests/html/semantics/document-metadata/the-link-element/link-rellist.html:
- web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/kind-expected.txt:
- web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/kind.html:
- web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/kind-expected.txt:
- web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/kind.html:
- web-platform-tests/html/semantics/embedded-content/the-embed-element/w3c-import.log:
- web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:
- web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change-expected.txt:
- web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
- web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/sizes-iframed.sub.html:
- web-platform-tests/html/semantics/forms/constraints/form-validation-validate.html:
- web-platform-tests/html/semantics/forms/form-control-infrastructure/form-expected.txt:
- web-platform-tests/html/semantics/forms/form-control-infrastructure/form.html:
- web-platform-tests/html/semantics/forms/form-submission-0/w3c-import.log:
- web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange-expected.txt:
- web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html:
- web-platform-tests/html/semantics/forms/the-input-element/checkbox.html:
- web-platform-tests/html/semantics/forms/the-input-element/radio.html:
- web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt:
- web-platform-tests/html/semantics/forms/the-input-element/selection.html:
- web-platform-tests/html/semantics/forms/the-label-element/label-attributes-expected.txt:
- web-platform-tests/html/semantics/forms/the-label-element/label-attributes.html:
- web-platform-tests/html/semantics/interfaces-expected.txt:
- web-platform-tests/html/semantics/interfaces.html:
- web-platform-tests/html/semantics/interfaces.js:
- web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log:
- web-platform-tests/html/semantics/selectors/pseudo-classes/checked.html:
- web-platform-tests/html/semantics/selectors/pseudo-classes/default.html:
- web-platform-tests/html/semantics/selectors/pseudo-classes/dir-expected.txt:
- web-platform-tests/html/semantics/selectors/pseudo-classes/dir.html:
- web-platform-tests/html/semantics/selectors/pseudo-classes/dir01.html:
- web-platform-tests/html/semantics/selectors/pseudo-classes/disabled.html:
- web-platform-tests/html/semantics/selectors/pseudo-classes/enabled.html:
- web-platform-tests/html/semantics/selectors/pseudo-classes/focus.html:
- web-platform-tests/html/semantics/selectors/pseudo-classes/indeterminate.html:
- web-platform-tests/html/semantics/selectors/pseudo-classes/inrange-outofrange.html:
- web-platform-tests/html/semantics/selectors/pseudo-classes/link.html:
- web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly.html:
- web-platform-tests/html/semantics/selectors/pseudo-classes/required-optional.html:
- web-platform-tests/html/semantics/selectors/pseudo-classes/utils.js:
- web-platform-tests/html/semantics/selectors/pseudo-classes/valid-invalid.html:
- web-platform-tests/html/semantics/tabular-data/the-table-element/table-rows.html:
- web-platform-tests/lint.whitelist:
- web-platform-tests/service-workers/cache-storage/script-tests/cache-storage-match.js:
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/close.https.html: Added.
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/registration-attribute.https.html: Added.
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/resources/close-worker.js: Added.
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/resources/registration-attribute-worker.js: Added.
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/resources/unregister-controlling-worker.html: Added.
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/resources/unregister-worker.js: Added.
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/resources/update-worker.js: Added.
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/resources/update-worker.py: Added.
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/resources/w3c-import.log: Added.
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https.html: Added.
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/update.https.html: Added.
- web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/w3c-import.log: Added.
- web-platform-tests/service-workers/service-worker/activate-event-after-install-state-change.https.html: Added.
- web-platform-tests/service-workers/service-worker/activation-after-registration.https.html: Added.
- web-platform-tests/service-workers/service-worker/active.https.html: Added.
- web-platform-tests/service-workers/service-worker/appcache-ordering-main.https.html: Added.
- web-platform-tests/service-workers/service-worker/claim-not-using-registration.https.html: Added.
- web-platform-tests/service-workers/service-worker/claim-using-registration.https.html: Added.
- web-platform-tests/service-workers/service-worker/clients-get-cross-origin.https.html: Added.
- web-platform-tests/service-workers/service-worker/clients-get.https.html: Added.
- web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html: Added.
- web-platform-tests/service-workers/service-worker/clients-matchall-include-uncontrolled.https.html: Added.
- web-platform-tests/service-workers/service-worker/clients-matchall.https.html: Added.
- web-platform-tests/service-workers/service-worker/controller-on-load.https.html: Added.
- web-platform-tests/service-workers/service-worker/controller-on-reload.https.html: Added.
- web-platform-tests/service-workers/service-worker/extendable-event-async-waituntil.https.html: Added.
- web-platform-tests/service-workers/service-worker/extendable-event-waituntil.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-cache.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-canvas-tainting.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-csp.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-event-after-navigation-within-page.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-event-network-error.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-event-redirect.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-event-respond-with-stops-propagation.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-event.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-frame-resource.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-header-visibility.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-outscope.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-request-css-base-url.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-request-css-images.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-request-fallback.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-request-resources.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-request-xhr.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-response-xhr.https.html: Added.
- web-platform-tests/service-workers/service-worker/fetch-waits-for-activate.https.html: Added.
- web-platform-tests/service-workers/service-worker/getregistration.https.html: Added.
- web-platform-tests/service-workers/service-worker/getregistrations.https.html: Added.
- web-platform-tests/service-workers/service-worker/indexeddb.https.html: Added.
- web-platform-tests/service-workers/service-worker/install-event-type.https.html: Added.
- web-platform-tests/service-workers/service-worker/installing.https.html: Added.
- web-platform-tests/service-workers/service-worker/interfaces.https.html: Added.
- web-platform-tests/service-workers/service-worker/invalid-blobtype.https.html: Added.
- web-platform-tests/service-workers/service-worker/invalid-header.https.html: Added.
- web-platform-tests/service-workers/service-worker/multiple-register.https.html: Added.
- web-platform-tests/service-workers/service-worker/multiple-update.https.html: Added.
- web-platform-tests/service-workers/service-worker/navigate-window.https.html: Added.
- web-platform-tests/service-workers/service-worker/navigation-redirect.https.html: Added.
- web-platform-tests/service-workers/service-worker/onactivate-script-error.https.html: Added.
- web-platform-tests/service-workers/service-worker/oninstall-script-error.https.html: Added.
- web-platform-tests/service-workers/service-worker/performance-timeline.https.html: Added.
- web-platform-tests/service-workers/service-worker/postmessage-msgport-to-client.https.html: Added.
- web-platform-tests/service-workers/service-worker/postmessage-to-client.https.html: Added.
- web-platform-tests/service-workers/service-worker/postmessage.https.html: Added.
- web-platform-tests/service-workers/service-worker/ready.https.html: Added.
- web-platform-tests/service-workers/service-worker/referer.https.html: Added.
- web-platform-tests/service-workers/service-worker/register-closed-window.https.html: Added.
- web-platform-tests/service-workers/service-worker/register-default-scope.https.html: Added.
- web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https.html: Added.
- web-platform-tests/service-workers/service-worker/register-wait-forever-in-install-worker.https.html: Added.
- web-platform-tests/service-workers/service-worker/registration-end-to-end.https.html: Added.
- web-platform-tests/service-workers/service-worker/registration-events.https.html: Added.
- web-platform-tests/service-workers/service-worker/registration-iframe.https.html: Added.
- web-platform-tests/service-workers/service-worker/registration-service-worker-attributes.https.html: Added.
- web-platform-tests/service-workers/service-worker/registration.https.html: Added.
- web-platform-tests/service-workers/service-worker/rejections.https.html: Added.
- web-platform-tests/service-workers/service-worker/request-end-to-end.https.html: Added.
- web-platform-tests/service-workers/service-worker/resource-timing.https.html: Added.
- web-platform-tests/service-workers/service-worker/resources/404.py: Added.
- web-platform-tests/service-workers/service-worker/resources/appcache-ordering.install.html: Added.
- web-platform-tests/service-workers/service-worker/resources/appcache-ordering.is-appcached.html: Added.
- web-platform-tests/service-workers/service-worker/resources/appcache-ordering.is-appcached.js: Added.
- web-platform-tests/service-workers/service-worker/resources/appcache-ordering.manifest: Added.
- web-platform-tests/service-workers/service-worker/resources/blank.html: Added.
- web-platform-tests/service-workers/service-worker/resources/claim-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/clients-get-frame.html: Added.
- web-platform-tests/service-workers/service-worker/resources/clients-get-other-origin.html: Added.
- web-platform-tests/service-workers/service-worker/resources/clients-get-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/clients-matchall-client-types-iframe.html: Added.
- web-platform-tests/service-workers/service-worker/resources/clients-matchall-client-types-shared-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/clients-matchall-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/dummy-shared-worker-interceptor.js: Added.
- web-platform-tests/service-workers/service-worker/resources/dummy-worker-interceptor.js: Added.
- web-platform-tests/service-workers/service-worker/resources/dummy-worker-script.py: Added.
- web-platform-tests/service-workers/service-worker/resources/dummy.html: Added.
- web-platform-tests/service-workers/service-worker/resources/dummy.txt: Added.
- web-platform-tests/service-workers/service-worker/resources/empty-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/empty.js: Added.
- web-platform-tests/service-workers/service-worker/resources/end-to-end-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/events-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/extendable-event-async-waituntil.js: Added.
- web-platform-tests/service-workers/service-worker/resources/extendable-event-waituntil.js: Added.
- web-platform-tests/service-workers/service-worker/resources/fail-on-fetch-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-access-control-login.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-access-control.py: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-canvas-tainting-iframe.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-cors-xhr-iframe.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-csp-iframe.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-csp-iframe.html.sub.headers: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-event-after-navigation-within-page-iframe.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-event-async-respond-with-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-event-network-error-controllee-iframe.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-event-network-error-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-event-redirect-iframe.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-event-respond-with-stops-propagation-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-event-test-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-header-visibility-iframe.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-mixed-content-iframe-inscope-to-inscope.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-mixed-content-iframe-inscope-to-outscope.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-mixed-content-iframe.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-request-css-base-url-iframe.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-request-css-base-url-style.css: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-request-css-base-url-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-request-fallback-iframe.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-request-fallback-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-request-no-freshness-headers-iframe.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-request-no-freshness-headers-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-request-redirect-iframe.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-request-resources-iframe.https.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-request-resources-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-request-xhr-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-response-xhr-iframe.https.html: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-response-xhr-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-rewrite-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/fetch-waits-for-activate-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/frame-for-getregistrations.html: Added.
- web-platform-tests/service-workers/service-worker/resources/get-host-info.sub.js: Added.
- web-platform-tests/service-workers/service-worker/resources/indexeddb-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/install-event-type-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/interfaces-worker.sub.js: Added.
- web-platform-tests/service-workers/service-worker/resources/interfaces.js: Added.
- web-platform-tests/service-workers/service-worker/resources/invalid-blobtype-iframe.https.html: Added.
- web-platform-tests/service-workers/service-worker/resources/invalid-blobtype-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/invalid-chunked-encoding-with-flush.py: Added.
- web-platform-tests/service-workers/service-worker/resources/invalid-chunked-encoding.py: Added.
- web-platform-tests/service-workers/service-worker/resources/invalid-header-iframe.https.html: Added.
- web-platform-tests/service-workers/service-worker/resources/invalid-header-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/load_worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/loaded.html: Added.
- web-platform-tests/service-workers/service-worker/resources/malformed-worker.py: Added.
- web-platform-tests/service-workers/service-worker/resources/mime-type-worker.py: Added.
- web-platform-tests/service-workers/service-worker/resources/navigate-window-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/navigation-redirect-other-origin.html: Added.
- web-platform-tests/service-workers/service-worker/resources/navigation-redirect-out-scope.py: Added.
- web-platform-tests/service-workers/service-worker/resources/navigation-redirect-scope1.py: Added.
- web-platform-tests/service-workers/service-worker/resources/navigation-redirect-scope2.py: Added.
- web-platform-tests/service-workers/service-worker/resources/navigation-redirect-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/onactivate-throw-error-from-nested-event-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/onactivate-throw-error-then-cancel-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/onactivate-throw-error-then-prevent-default-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/onactivate-throw-error-with-empty-onerror-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/onactivate-throw-error-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/oninstall-throw-error-from-nested-event-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/oninstall-throw-error-then-cancel-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/oninstall-throw-error-then-prevent-default-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/oninstall-throw-error-with-empty-onerror-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/oninstall-throw-error-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/other.html: Added.
- web-platform-tests/service-workers/service-worker/resources/override_assert_object_equals.js: Added.
- web-platform-tests/service-workers/service-worker/resources/performance-timeline-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/postmessage-msgport-to-client-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/postmessage-to-client-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/postmessage-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/redirect.py: Added.
- web-platform-tests/service-workers/service-worker/resources/referer-iframe.html: Added.
- web-platform-tests/service-workers/service-worker/resources/register-closed-window-iframe.html: Added.
- web-platform-tests/service-workers/service-worker/resources/registration-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/reject-install-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/request-end-to-end-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/request-headers.py: Added.
- web-platform-tests/service-workers/service-worker/resources/resource-timing-iframe.html: Added.
- web-platform-tests/service-workers/service-worker/resources/resource-timing-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/service-worker-csp-worker.py: Added.
- web-platform-tests/service-workers/service-worker/resources/shared-worker-controlled.js: Added.
- web-platform-tests/service-workers/service-worker/resources/shared-worker-import.js: Added.
- web-platform-tests/service-workers/service-worker/resources/silence.oga: Added.
- web-platform-tests/service-workers/service-worker/resources/simple-intercept-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/simple.html: Added.
- web-platform-tests/service-workers/service-worker/resources/simple.txt: Added.
- web-platform-tests/service-workers/service-worker/resources/skip-waiting-installed-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/skip-waiting-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/square.png: Added.
- web-platform-tests/service-workers/service-worker/resources/success.py: Added.
- web-platform-tests/service-workers/service-worker/resources/test-helpers.sub.js: Added.
- web-platform-tests/service-workers/service-worker/resources/testharness-helpers.js: Added.
- web-platform-tests/service-workers/service-worker/resources/unregister-controller-page.html: Added.
- web-platform-tests/service-workers/service-worker/resources/update-nocookie-worker.py: Added.
- web-platform-tests/service-workers/service-worker/resources/update-recovery-worker.py: Added.
- web-platform-tests/service-workers/service-worker/resources/update-worker.py: Added.
- web-platform-tests/service-workers/service-worker/resources/update/update-after-oneday.https.html: Added.
- web-platform-tests/service-workers/service-worker/resources/update/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/resources/w3c-import.log.
- web-platform-tests/service-workers/service-worker/resources/w3c-import.log: Added.
- web-platform-tests/service-workers/service-worker/resources/wait-forever-in-install-worker.js: Added.
- web-platform-tests/service-workers/service-worker/resources/websocket.js: Added.
- web-platform-tests/service-workers/service-worker/resources/worker-interception-iframe.https.html: Added.
- web-platform-tests/service-workers/service-worker/resources/worker-load-interceptor.js: Added.
- web-platform-tests/service-workers/service-worker/resources/worker-testharness.js: Added.
- web-platform-tests/service-workers/service-worker/resources/xhr.js: Added.
- web-platform-tests/service-workers/service-worker/service-worker-csp-connect.https.html: Added.
- web-platform-tests/service-workers/service-worker/service-worker-csp-default.https.html: Added.
- web-platform-tests/service-workers/service-worker/service-worker-csp-script.https.html: Added.
- web-platform-tests/service-workers/service-worker/serviceworkerobject-scripturl.https.html: Added.
- web-platform-tests/service-workers/service-worker/shared-worker-controlled.https.html: Added.
- web-platform-tests/service-workers/service-worker/skip-waiting-installed.https.html: Added.
- web-platform-tests/service-workers/service-worker/skip-waiting-using-registration.https.html: Added.
- web-platform-tests/service-workers/service-worker/skip-waiting-without-client.https.html: Added.
- web-platform-tests/service-workers/service-worker/skip-waiting-without-using-registration.https.html: Added.
- web-platform-tests/service-workers/service-worker/skip-waiting.https.html: Added.
- web-platform-tests/service-workers/service-worker/state.https.html: Added.
- web-platform-tests/service-workers/service-worker/synced-state.https.html: Added.
- web-platform-tests/service-workers/service-worker/uncontrolled-page.https.html: Added.
- web-platform-tests/service-workers/service-worker/unregister-controller.https.html: Added.
- web-platform-tests/service-workers/service-worker/unregister-then-register-new-script.https.html: Added.
- web-platform-tests/service-workers/service-worker/unregister-then-register.https.html: Added.
- web-platform-tests/service-workers/service-worker/unregister.https.html: Added.
- web-platform-tests/service-workers/service-worker/update-after-navigation-fetch-event.https.html: Added.
- web-platform-tests/service-workers/service-worker/update-after-oneday.https.html: Added.
- web-platform-tests/service-workers/service-worker/update-recovery.https.html: Added.
- web-platform-tests/service-workers/service-worker/update.https.html: Added.
- web-platform-tests/service-workers/service-worker/w3c-import.log: Added.
- web-platform-tests/service-workers/service-worker/waiting.https.html: Added.
- web-platform-tests/service-workers/service-worker/websocket.https.html: Added.
- web-platform-tests/service-workers/service-worker/worker-interception.https.html: Added.
- web-platform-tests/service-workers/service-worker/xhr.https.html: Added.
- web-platform-tests/streams/OWNERS: Added.
- web-platform-tests/streams/byte-length-queuing-strategy.https.html:
- web-platform-tests/streams/count-queuing-strategy.https.html:
- web-platform-tests/streams/readable-streams/bad-strategies.https.html:
- web-platform-tests/streams/readable-streams/bad-underlying-sources.https.html:
- web-platform-tests/streams/readable-streams/brand-checks.https.html:
- web-platform-tests/streams/readable-streams/cancel.https.html:
- web-platform-tests/streams/readable-streams/count-queuing-strategy-integration.https.html:
- web-platform-tests/streams/readable-streams/garbage-collection.https.html:
- web-platform-tests/streams/readable-streams/general.https.html:
- web-platform-tests/streams/readable-streams/general.js:
- web-platform-tests/streams/readable-streams/pipe-through.https.html:
- web-platform-tests/streams/readable-streams/readable-stream-reader.https.html:
- web-platform-tests/streams/readable-streams/tee.https.html:
- web-platform-tests/streams/readable-streams/templated.https.html:
- web-platform-tests/streams/w3c-import.log:
LayoutTests:
- platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
- platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
- platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/form-control-infrastructure/form-expected.txt: Added.
- platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:
- platform/wk2/imported/w3c/web-platform-tests/html/semantics/document-metadata/styling/LinkStyle-expected.txt:
Jun 25, 2016:
- 9:34 PM Changeset in webkit [202470] by
-
- 5 edits4 adds in trunk
The active state of elements can break when focus changes
https://bugs.webkit.org/show_bug.cgi?id=159112
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-25
Reviewed by Antti Koivisto.
Source/WebCore:
The pseudo class :active was behaving weirdly when used
with label elements with an associated form element.
The form element would get the :active state on the first click
then no longer get the state until the focus changes.
What was happenning is setFocusedElement() was clearing active
for some unknown reason. When you really do that on an active element,
you end up in an inconsistent state where no invalidation works.
The two tests illustrates 2 ways this breaks.
The test "pseudo-active-on-labeled-element-not-canceled-by-focus" clicks
several time on a lable element. The first time, the input element gets
the focus. The second time, it already has the focus, setFocusedElement()
clears :active before finding the focusable element and end up clearing
the active state on a target in the active chain.
The test "pseudo-active-with-programmatic-focus.html" shows how to invalidate
arbitrary elements using JavaScript. This can cause severely broken active
chains where invalidation never cleans some ancestors.
Tests: fast/css/pseudo-active-on-labeled-element-not-canceled-by-focus.html
fast/css/pseudo-active-with-programmatic-focus.html
- dom/Document.cpp:
(WebCore::Document::setFocusedElement): Deleted.
- page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseDoubleClickEvent):
This is WebKit1 specific. The double click event was dispatching
the mouseUp and Click with after doing an Active hit test.
This causes us to have :active state in and after mouseUp in WebKit1.
LayoutTests:
- fast/css/pseudo-active-on-labeled-element-not-canceled-by-focus-expected.txt: Added.
- fast/css/pseudo-active-on-labeled-element-not-canceled-by-focus.html: Added.
- fast/css/pseudo-active-with-programmatic-focus-expected.txt: Added.
- fast/css/pseudo-active-with-programmatic-focus.html: Added.
- 12:07 PM Changeset in webkit [202469] by
-
- 4 edits in trunk/Tools
REGRESSION: Weak symbol warning when linking TestWebKitAPI
https://bugs.webkit.org/show_bug.cgi?id=159104
Reviewed by Dan Bernstein.
This uses a better approach to turn on -fvisility=hidden. All of the other projects set
this flag in xcconfig, using "GCC_SYMBOLS_PRIVATE_EXTERN = YES;".
- TestWebKitAPI/Configurations/TestWTFLibrary.xcconfig: Use GCC_SYMBOLS_PRIVATE_EXTERN here.
- TestWebKitAPI/Configurations/TestWebKitAPILibrary.xcconfig: Use GCC_SYMBOLS_PRIVATE_EXTERN here.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Revert r202461.
- 2:00 AM Changeset in webkit [202468] by
-
- 2 edits in trunk/Tools
[Win] The test fast/events/wheel-event-destroys-frame.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=159086
Reviewed by Alex Christensen.
Implement required wheel event function in event sender.
- DumpRenderTree/win/EventSender.cpp:
(mouseScrollByWithWheelAndMomentumPhasesCallback):
- 12:07 AM MathML/Early_2016_Refactoring edited by
- (diff)
Jun 24, 2016:
- 7:33 PM Changeset in webkit [202467] by
-
- 3 edits13 adds in trunk/Websites/webkit.org
More examples for the wide-gamut demo.
- blog-files/color-gamut/Iceland-P3.jpg: Added.
- blog-files/color-gamut/Iceland-oog.jpg: Added.
- blog-files/color-gamut/Iceland-sRGB.jpg: Added.
- blog-files/color-gamut/Italy-P3.jpg: Added.
- blog-files/color-gamut/Italy-oog.jpg: Added.
- blog-files/color-gamut/Italy-sRGB.jpg: Added.
- blog-files/color-gamut/Sunset-AdobeRGB.jpg: Added.
- blog-files/color-gamut/Sunset-P3.jpg: Added.
- blog-files/color-gamut/Sunset-oog.jpg: Added.
- blog-files/color-gamut/Sunset-sRGB.jpg: Added.
- blog-files/color-gamut/Webkit-logo-sRGB.png:
- blog-files/color-gamut/YellowFlower-P3.jpg: Added.
- blog-files/color-gamut/YellowFlower-oog.jpg: Added.
- blog-files/color-gamut/YellowFlower-sRGB.jpg: Added.
- blog-files/color-gamut/index.html:
- 5:46 PM Changeset in webkit [202466] by
-
- 4 edits in trunk
Consider exposing or hiding knowledge of a redirect from clients of WebCoreNSURLSession
https://bugs.webkit.org/show_bug.cgi?id=156722
<rdar://problem/25780035>
Reviewed by Alex Christensen.
Source/WebCore:
Fixes tests: http/tests/security/contentSecurityPolicy/audio-redirect-allowed2.html
http/tests/security/contentSecurityPolicy/video-redirect-allowed2.html
When receieving a NSURLResponse containing a redirected URL, AVFoundadtion will use the
URL in the response for subsequent requests. This violates the HTTP specification if the
redirect was temporary, and it also breaks two CSP tests by bypassing the redirect step
for subsequent requests.
Work around this behavior in AVFoundation by recreating the NSURLResponse with the original
request URL in the case of a temporary redirect.
- platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:]):
(-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:]):
LayoutTests:
Un-skip http/tests/security/contentSecurityPolicy/audio-redirect-allowed2.html &
http/tests/security/contentSecurityPolicy/video-redirect-allowed2.html.
- platform/mac/TestExpectations:
- 5:40 PM Changeset in webkit [202465] by
-
- 1 edit in trunk/Websites/webkit.org/ChangeLog
Change something in the webkit.org directory in the hope
it will kick off a website update.
- 5:36 PM Changeset in webkit [202464] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION(r201171): CRASH at WebKit::WebInspectorProxy::open() + 31 when running inspector layout tests
https://bugs.webkit.org/show_bug.cgi?id=159070
<rdar://problem/26768628>
Reviewed by Joseph Pecoraro.
We have been seeing a few crashes underneath WebInspectorProxy::bringToFront() on the bots.
Previously, this code didn't use m_inspectorPage so there was nothing to null-dereference.
However, it doesn't make sense that we would hit the null dereference here:
- The only caller of bringToFront() on the WebProcess side is InspectorController::show(). It only tries to bring to front if there is already a local frontend connection, which shouldn't be the case if m_inspectorPage is null.
- It's guarded by m_underTest, which should have been set to true in createInspectorPage().
These clues lead me to believe that we may be improperly tearing down the inspector between tests.
For example, it seems possible that a local frontend connection is not being torn down, so
InspectorController never asks to create a inspector page when the next test calls showWebInspector.
Since this crash is not easy to reproduce, we don't have much to go on. For now, this patch
adds an early return in the case where m_inspectorPage is null when calling open().
- UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::open):
- 5:03 PM Changeset in webkit [202463] by
-
- 4 edits in trunk/Source/JavaScriptCore
B3 should die sooner if a Value has the wrong number of children
https://bugs.webkit.org/show_bug.cgi?id=159108
Reviewed by Mark Lam.
I've been looking at a bug (rdar://problem/26500743) that's about a Vector OOB crash in
ReduceStrength::rangeFor(). The only Vector accesses are to Value::m_children, and all of
the accesses in rangeFor() are for child(0) or child(1) of binary arithmetic opcodes.
Clearly those should never go out-of-bounds.
Maybe we have horrible memory corruption. Or maybe some path creates a Value with the
wrong number of children, and that path is not tested by any of our tests. This patch adds
release assertions that will catch the latter.
I've tested this a lot. It's not a regression on our benchmarks.
- b3/B3Opcode.h:
- b3/B3Value.cpp:
(JSC::B3::Value::dumpMeta):
(JSC::B3::Value::typeFor):
(JSC::B3::Value::badOpcode):
(JSC::B3::Value::checkOpcode): Deleted.
- b3/B3Value.h:
- 4:54 PM Changeset in webkit [202462] by
-
- 2 edits in trunk/Source/WebCore
MSE gets confused by in-band text tracks
https://bugs.webkit.org/show_bug.cgi?id=159107
<rdar://problem/26871330>
Reviewed by Eric Carlson.
We can't currently handle text track samples in SourceBufferPrivateAVFObjC,
so don't pass them up to SourceBuffer.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset):
(WebCore::SourceBufferPrivateAVFObjC::processCodedFrame):
- 4:49 PM Changeset in webkit [202461] by
-
- 2 edits in trunk/Tools
REGRESSION: Weak symbol warning when linking TestWebKitAPI
https://bugs.webkit.org/show_bug.cgi?id=159104
Reviewed by Mark Lam.
The problem is that the tests were not compiled with -fvisibility=hidden like the rest of
WK.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- 4:34 PM Changeset in webkit [202460] by
-
- 6 edits5 adds in trunk
[JSC] Error prototypes are called on remote scripts.
https://bugs.webkit.org/show_bug.cgi?id=52192
Reviewed by Keith Miller.
Source/JavaScriptCore:
Added a sanitizedToString() to the Error instance object so that it can be used
to get an error string without invoking getters and proxies.
- runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::finishCreation):
(JSC::ErrorInstance::sanitizedToString):
- runtime/ErrorInstance.h:
(JSC::ErrorInstance::createStructure):
(JSC::ErrorInstance::runtimeTypeForCause):
(JSC::ErrorInstance::clearRuntimeTypeForCause):
Source/WebCore:
Test: http/tests/security/regress-52192.html
Parsing errors are reported to the main script's window.onerror function. AFAIK,
both Chrome and Firefox have the error reporting mechanism use an internal
sanitized version of Error.prototype.toString() that will not invoke any getters
or proxies instead.
This patch fixes this issue by matching Chrome and Firefox's behavior.
Note: we did not choose to make error objects and prototypes read-only because
that was observed to have broken the web.
See https://bugs.chromium.org/p/chromium/issues/detail?id=69187#c73
Credit for reporting this issue goes to Daniel Divricean (http://divricean.ro).
- bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
- ForwardingHeaders/runtime/ErrorInstance.h: Added.
LayoutTests:
The added test will test the following combinations of factors:
- Explicitly throwing an error of each of the types of JS errors i.e. Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError.
- Validating that the error received in window.onerror does not leak any info.
- Validating that the 'name' and 'toString' getters set on the error prototype object does not get invoked for creating the error message to be passed to window.error.
- http/tests/security/regress-52192-expected.txt: Added.
- http/tests/security/regress-52192.html: Added.
- http/tests/security/resources/regress-52192-syntax-error.js: Added.
- http/tests/security/resources/regress-52192-throw-error.js: Added.
(catch):
- 4:01 PM Changeset in webkit [202459] by
-
- 2 edits in trunk/Source/WebCore
Media elements should not lose playback controls when muted by a user gesture
https://bugs.webkit.org/show_bug.cgi?id=159078
<rdar://problem/26925904>
Reviewed by Beth Dakin.
Rearrange canControlControlsManager() so that the muted check only occurs if
a user gesture is required.
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::canControlControlsManager):
- 3:52 PM Changeset in webkit [202458] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, rolling out r202443.
https://bugs.webkit.org/show_bug.cgi?id=159105
Introduced memory corruption crashes (Requested by ap on
#webkit).
Reverted changeset:
"Web Inspector: CRASH in backend at
Inspector::HeapFrontendDispatcher::garbageCollected + 552 when
closing frontend/inspected page"
https://bugs.webkit.org/show_bug.cgi?id=159075
http://trac.webkit.org/changeset/202443
- 3:44 PM Changeset in webkit [202457] by
-
- 1 edit6 adds in trunk/Websites/webkit.org/blog-files/color-gamut
More examples for a blog post on color.
- blog-files/color-gamut/Shoes-oog.jpg: Added.
- blog-files/color-gamut/Shoes-sRGB.jpg: Added.
- blog-files/color-gamut/Webkit-logo-P3.png: Added.
- blog-files/color-gamut/Webkit-logo-oog.png: Added.
- blog-files/color-gamut/Webkit-logo-sRGB.png: Added.
- blog-files/color-gamut/index.html:
- blog-files/color-gamut/shoes-AdobeRGB.jpg: Added.
- 3:39 PM Changeset in webkit [202456] by
-
- 2 edits in trunk/LayoutTests
Update to test gardening in r202300
Unreviewed.
- platform/mac/TestExpectations:
- 3:25 PM Changeset in webkit [202455] by
-
- 2 edits in trunk/Source/WebKit2
Vimeo.com videos do not get playback controls
https://bugs.webkit.org/show_bug.cgi?id=159082
<rdar://problem/26586630>
Reviewed by Eric Carlson.
When the HasAudioOrVideo media state changes, let the video controls recalculate
by calling videoControlsManagerDidChange().
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::isPlayingMediaDidChange):
- 3:25 PM Changeset in webkit [202454] by
-
- 7 edits in trunk/Source
Include enclosingListType in EditorState
https://bugs.webkit.org/show_bug.cgi?id=159102
-and corresponding-
rdar://problem/26932490
Reviewed by Enrica Casucci.
Source/WebCore:
Make HTMLOListElement.h and HTMLUListElement.h Private instead of Project.
- WebCore.xcodeproj/project.pbxproj:
Export enclosingList(Node*)
- editing/htmlediting.h:
Source/WebKit2:
- Shared/EditorState.cpp:
(WebKit::EditorState::PostLayoutData::encode):
(WebKit::EditorState::PostLayoutData::decode):
- Shared/EditorState.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState):
- 3:00 PM Changeset in webkit [202453] by
-
- 5 edits in branches/safari-602.1.38-branch/Source
Versioning.
- 2:59 PM Changeset in webkit [202452] by
-
- 1 copy in tags/Safari-602.1.38.1
New tag.
- 2:58 PM Changeset in webkit [202451] by
-
- 2 edits in trunk/Source/WebCore
Another Windows build fix.
- platform/network/BlobRegistry.h:
- 2:54 PM Changeset in webkit [202450] by
-
- 5 edits in branches/safari-602.1.38-branch/Source
Versioning.
- 2:54 PM Changeset in webkit [202449] by
-
- 2 edits in trunk/Websites/webkit.org
Rewrite the WebKit Nightly build download URLs to use the correct secure URL.
https://bugs.webkit.org/show_bug.cgi?id=159100.
Reviewed by Joseph Pecoraro.
- wp-content/plugins/sync-nightly-builds.php:
- 2:33 PM Changeset in webkit [202448] by
-
- 2 edits in trunk/Source/WebCore
Yeat another Windows build fix.
- dom/ActiveDOMCallbackMicrotask.h:
- 2:09 PM Changeset in webkit [202447] by
-
- 6 edits1 delete in trunk/LayoutTests
Removed tests of STYLE_SCOPED which was removed in r156683.
https://bugs.webkit.org/show_bug.cgi?id=159098
Reviewed by Ryosuke Niwa.
- fast/css/style-scoped/basic-attribute-expected.txt: Removed.
- fast/css/style-scoped/basic-attribute.html: Removed.
- fast/css/style-scoped/registering-expected.txt: Removed.
- fast/css/style-scoped/registering-shadowroot-expected.txt: Removed.
- fast/css/style-scoped/registering-shadowroot.html: Removed.
- fast/css/style-scoped/registering.html: Removed.
- fast/css/style-scoped/style-scoped-apply-author-styles-expected.txt: Removed.
- fast/css/style-scoped/style-scoped-apply-author-styles.html: Removed.
- fast/css/style-scoped/style-scoped-attach-expected.txt: Removed.
- fast/css/style-scoped/style-scoped-attach.html: Removed.
- fast/css/style-scoped/style-scoped-basic-expected.txt: Removed.
- fast/css/style-scoped/style-scoped-basic.html: Removed.
- fast/css/style-scoped/style-scoped-change-scoped-in-shadow-expected.txt: Removed.
- fast/css/style-scoped/style-scoped-change-scoped-in-shadow.html: Removed.
- fast/css/style-scoped/style-scoped-detach-expected.txt: Removed.
- fast/css/style-scoped/style-scoped-detach.html: Removed.
- fast/css/style-scoped/style-scoped-in-shadow-expected.txt: Removed.
- fast/css/style-scoped/style-scoped-in-shadow.html: Removed.
- fast/css/style-scoped/style-scoped-nested-expected.txt: Removed.
- fast/css/style-scoped/style-scoped-nested.html: Removed.
- fast/css/style-scoped/style-scoped-remove-scoped-expected.txt: Removed.
- fast/css/style-scoped/style-scoped-remove-scoped.html: Removed.
- fast/css/style-scoped/style-scoped-set-scoped-expected.txt: Removed.
- fast/css/style-scoped/style-scoped-set-scoped.html: Removed.
- fast/css/style-scoped/style-scoped-with-dom-operation-expected.txt: Removed.
- fast/css/style-scoped/style-scoped-with-dom-operation.html: Removed.
- fast/css/style-scoped/style-scoped-with-important-rule-expected.txt: Removed.
- fast/css/style-scoped/style-scoped-with-important-rule.html: Removed.
- platform/efl/TestExpectations: Don't skip fast/css/style-scoped.
- platform/gtk/TestExpectations: Ditto.
- platform/ios-simulator/TestExpectations: Ditto.
- platform/mac/TestExpectations: Ditto.
- platform/win/TestExpectations: Ditto.
- 1:59 PM Changeset in webkit [202446] by
-
- 2 edits13 adds in trunk/PerformanceTests
Add a ES6 generator benchmark
https://bugs.webkit.org/show_bug.cgi?id=159101
Rubber stamped by Keith Miller.
This adds a Basic interpreter loosely based on ECMA-55:
http://www.ecma-international.org/publications/files/ECMA-ST-WITHDRAWN/ECMA-55,%201st%20Edition,%20January%201978.pdf
It includes a lexer that is a generator, a parser that uses regular expressions, and an AST
walk interpreter where the walking functions for statements are generators that call each
other with yield*. This enables the interpreter to look like an AST walk even though it can
yield at INPUT and PRINT statements.
This also uses for-of, classes, Map, and WeakMap. It also uses deprecated-but-awesome RegExp
features like RegExp.lastMatch and RegExp.rightContext. I did it that way because this is
how I've always written lexers in dynamic languages; see offlineasm's lex() method in
parser.rb for example.
The benchmark runs a handful of simple Basic programs. The longest-running one computes
prime numbers.
Includes a command-line and web harness. On my machine it runs in 2-3 seconds.
- Basic: Added.
- Basic/ast.js: Added.
(Basic.NumberApply):
(Basic.Variable):
(Basic.Const):
(Basic.NumberPow):
(Basic.NumberMul):
(Basic.NumberDiv):
(Basic.NumberNeg):
(Basic.NumberAdd):
(Basic.NumberSub):
(Basic.StringVar):
(Basic.Equals):
(Basic.NotEquals):
(Basic.LessThan):
(Basic.GreaterThan):
(Basic.LessEqual):
(Basic.GreaterEqual):
(Basic.GoTo):
(Basic.GoSub):
(Basic.Def):
(Basic.Let):
(Basic.If):
(Basic.Return):
(Basic.Stop):
(Basic.On):
(sideState.shouldStop):
(Basic.For):
(Basic.Next):
(Basic.Print):
(Basic.Input):
(Basic.Read):
(Basic.Restore):
(Basic.Dim):
(Basic.Randomize):
(Basic.End):
(Basic.Program):
- Basic/basic.js: Added.
(prepare):
(simulate):
- Basic/benchmark.js: Added.
(Benchmark):
(Benchmark.prototype.runIteration.expect):
(Benchmark.prototype.runIteration):
(runBenchmark):
- Basic/caseless_map.js: Added.
(CaselessMap):
- Basic/lexer.js: Added.
(lex.consumeWhitespace):
(lex.consume):
(lex):
- Basic/lexer_test.js: Added.
- Basic/number.js: Added.
(NumberValue):
(NumberValue.prototype.get value):
(NumberValue.prototype.apply):
(NumberValue.prototype.leftApply):
(NumberValue.prototype.assign):
(NumberArray.):
(NumberArray):
(NumberArray.prototype.apply):
(NumberArray.prototype.leftApply):
(NumberFunction):
(NumberFunction.prototype.apply):
(NumberFunction.prototype.leftApply):
(NativeFunction):
(NativeFunction.prototype.apply):
(NativeFunction.prototype.leftApply):
- Basic/parser.js: Added.
(parse):
(parse.pushToken):
(parse.peekToken):
(parse.consumeKind):
(parse.consumeToken):
(parse.parseVariable):
(parse.parseNumericExpression.parsePrimary):
(parse.parseNumericExpression.parseFactor):
(parse.parseNumericExpression.parseTerm):
(parse.parseNumericExpression):
(parse.parseConstant):
(parse.parseStringExpression):
(parse.isStringExpression):
(parse.parseRelationalExpression):
(parse.parseNonNegativeInteger):
(parse.parseGoToStatement):
(parse.parseGoSubStatement):
(parse.parseStatement):
(parse.parseStatements):
- Basic/random.js: Added.
(createRNG):
(createRNGWithFixedSeed):
(createRNGWithRandomSeed):
- Basic/state.js: Added.
(State):
(State.prototype.getValue):
(State.prototype.getSideState):
(State.prototype.abort):
(State.prototype.validate):
- Basic/test.html: Added.
- Basic/test.js: Added.
- Basic/util.js: Added.
(this.performance.performance.now.currentTime):
(else.this.preciseTime.currentTime):
(else.currentTime):
- Skipped: Make sure that we don't run Basic yet.
- 1:53 PM Changeset in webkit [202445] by
-
- 2 edits in trunk/Source/WebCore
Another Windows build fix.
- page/FrameView.h:
- 1:49 PM Changeset in webkit [202444] by
-
- 13 edits1 delete in trunk/Source
Inline more of the Apple Pay source code
https://bugs.webkit.org/show_bug.cgi?id=159099
Reviewed by Andreas Kling.
Source/WebCore:
- page/Settings.h:
(WebCore::Settings::applePayEnabled):
(WebCore::Settings::setApplePayEnabled):
(WebCore::Settings::applePayCapabilityDisclosureAllowed):
(WebCore::Settings::setApplePayCapabilityDisclosureAllowed):
Source/WebKit2:
- Shared/Cocoa/WebCoreArgumentCodersCocoa.h: Removed.
- Shared/WebCoreArgumentCoders.h:
- Shared/WebPreferencesDefinitions.h:
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _applePayCapabilityDisclosureAllowed]):
(-[WKPreferences _setApplePayCapabilityDisclosureAllowed:]):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _applePayEnabled]):
(-[WKWebViewConfiguration _setApplePayEnabled:]):
(-[WKWebViewConfiguration _paymentsEnabled]):
(-[WKWebViewConfiguration _setPaymentsEnabled:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::resetState):
- UIProcess/WebPageProxy.h:
- WebKit2.xcodeproj/project.pbxproj:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_userInterfaceLayoutDirection):
(WebKit::WebPage::updatePreferences):
- 1:30 PM Changeset in webkit [202443] by
-
- 3 edits in trunk/Source/JavaScriptCore
Web Inspector: CRASH in backend at Inspector::HeapFrontendDispatcher::garbageCollected + 552 when closing frontend/inspected page
https://bugs.webkit.org/show_bug.cgi?id=159075
<rdar://problem/26094341>
Reviewed by Joseph Pecoraro.
Move the asynchronous work to a task class that can be cancelled when the
heap agent is reset, disabled or destroyed.
- inspector/agents/InspectorHeapAgent.cpp:
(Inspector::SendGarbageCollectionEventsTask::SendGarbageCollectionEventsTask):
(Inspector::SendGarbageCollectionEventsTask::addGarbageCollection):
(Inspector::SendGarbageCollectionEventsTask::reset):
(Inspector::SendGarbageCollectionEventsTask::timerFired):
Added. This holds onto GarbageCollection objects that need to be sent asynchronously.
It uses the RunLoop variant of Timer and can queue multiple pending objects to be sent.
(Inspector::InspectorHeapAgent::InspectorHeapAgent):
(Inspector::InspectorHeapAgent::~InspectorHeapAgent):
(Inspector::InspectorHeapAgent::disable):
Reset the task when disabling or tearing down the agent so the timer doesn't fire after destruction.
(Inspector::InspectorHeapAgent::didGarbageCollect):
Send the object to the task to be dispatched asynchronously.
- inspector/agents/InspectorHeapAgent.h:
- 1:18 PM Changeset in webkit [202442] by
-
- 2 edits in trunk/Source/WebCore
Windows build fix.
- platform/GenericTaskQueue.h:
(WebCore::TaskDispatcher::postTask):
- 1:17 PM Changeset in webkit [202441] by
-
- 9 edits in trunk/Source/WebCore
Use auto* for MathML elements and renderers when possible
https://bugs.webkit.org/show_bug.cgi?id=159090
Patch by Frederic Wang <fwang@igalia.com> on 2016-06-24
Reviewed by Alex Christensen.
No new tests, behavior is unchanged.
- mathml/MathMLElement.cpp:
(WebCore::MathMLElement::attributeChanged):
- mathml/MathMLSelectElement.cpp:
(WebCore::MathMLSelectElement::getSelectedActionChildAndIndex):
(WebCore::MathMLSelectElement::getSelectedActionChild):
(WebCore::MathMLSelectElement::getSelectedSemanticsChild):
(WebCore::MathMLSelectElement::updateSelectedChild):
- rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::isValid):
- rendering/mathml/RenderMathMLMenclose.cpp:
(WebCore::RenderMathMLMenclose::layoutBlock):
- rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::isValid):
- rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::firstLineBaseline):
(WebCore::RenderMathMLRow::computeLineVerticalStretch):
(WebCore::RenderMathMLRow::computePreferredLogicalWidths):
(WebCore::RenderMathMLRow::layoutRowItems):
- rendering/mathml/RenderMathMLScripts.cpp:
(WebCore::RenderMathMLScripts::unembellishedOperator):
(WebCore::RenderMathMLScripts::getBaseAndScripts):
(WebCore::RenderMathMLScripts::computePreferredLogicalWidths):
(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded):
(WebCore::RenderMathMLScripts::layoutBlock):
(WebCore::RenderMathMLScripts::firstLineBaseline):
- rendering/mathml/RenderMathMLUnderOver.cpp:
(WebCore::RenderMathMLUnderOver::firstLineBaseline):
(WebCore::RenderMathMLUnderOver::isValid):
(WebCore::RenderMathMLUnderOver::over):
- 1:14 PM Changeset in webkit [202440] by
-
- 3 edits in trunk/Source/WebCore
Remove unused and static return value from InspectorStyle::populateAllProperties
https://bugs.webkit.org/show_bug.cgi?id=159069
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-24
Reviewed by Andreas Kling.
- inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyle::populateAllProperties):
- inspector/InspectorStyleSheet.h:
- 12:40 PM Changeset in webkit [202439] by
-
- 65 edits1 move in trunk/Source
Rename NoncopyableFunction to Function
https://bugs.webkit.org/show_bug.cgi?id=158354
Reviewed by Chris Dumez.
Source/WebCore:
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::runTask):
- Modules/mediastream/MediaEndpointPeerConnection.h:
- Modules/webaudio/AudioDestinationNode.h:
(WebCore::AudioDestinationNode::resume):
(WebCore::AudioDestinationNode::suspend):
(WebCore::AudioDestinationNode::close):
- Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::resume):
(WebCore::DefaultAudioDestinationNode::suspend):
(WebCore::DefaultAudioDestinationNode::close):
- Modules/webaudio/DefaultAudioDestinationNode.h:
- dom/ActiveDOMCallbackMicrotask.cpp:
(WebCore::ActiveDOMCallbackMicrotask::ActiveDOMCallbackMicrotask):
- dom/ActiveDOMCallbackMicrotask.h:
- dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::Task::Task):
- fileapi/AsyncFileStream.cpp:
(WebCore::callOnFileThread):
(WebCore::AsyncFileStream::perform):
- fileapi/AsyncFileStream.h:
- page/FrameView.cpp:
(WebCore::FrameView::queuePostLayoutCallback):
(WebCore::FrameView::flushPostLayoutTasksQueue):
- page/FrameView.h:
- page/scrolling/ScrollingThread.cpp:
(WebCore::ScrollingThread::dispatch):
(WebCore::ScrollingThread::dispatchBarrier):
(WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread):
- page/scrolling/ScrollingThread.h:
- platform/GenericTaskQueue.cpp:
(WebCore::TaskDispatcher<Timer>::postTask):
- platform/GenericTaskQueue.h:
(WebCore::TaskDispatcher::postTask):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::scheduleDeferredTask):
- platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::scheduleDeferredTask):
- platform/mediastream/MediaStreamPrivate.h:
- platform/mediastream/mac/AVMediaCaptureSource.h:
- platform/mediastream/mac/AVMediaCaptureSource.mm:
(WebCore::AVMediaCaptureSource::scheduleDeferredTask):
- style/StyleTreeResolver.cpp:
(WebCore::Style::postResolutionCallbackQueue):
(WebCore::Style::queuePostResolutionCallback):
- style/StyleTreeResolver.h:
Source/WebKit:
- Storage/StorageSyncManager.cpp:
(WebCore::StorageSyncManager::dispatch):
- Storage/StorageSyncManager.h:
- Storage/StorageThread.cpp:
(WebCore::StorageThread::dispatch):
(WebCore::StorageThread::terminate):
- Storage/StorageThread.h:
Source/WebKit2:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::clearDiskCacheEntries):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::traverse):
- NetworkProcess/cache/NetworkCache.h:
- NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::runTaskInQueue):
- NetworkProcess/cache/NetworkCacheStorage.h:
Source/WTF:
- WTF.xcodeproj/project.pbxproj:
- wtf/CrossThreadTask.h:
(WTF::CrossThreadTask::CrossThreadTask):
- wtf/Function.h: Renamed from Source/WTF/wtf/NoncopyableFunction.h.
- wtf/FunctionDispatcher.h:
- wtf/MainThread.cpp:
(WTF::functionQueue):
(WTF::dispatchFunctionsFromMainThread):
(WTF::callOnMainThread):
- wtf/MainThread.h:
- wtf/RunLoop.cpp:
(WTF::RunLoop::performWork):
(WTF::RunLoop::dispatch):
- wtf/RunLoop.h:
- wtf/WorkQueue.h:
- wtf/cocoa/WorkQueueCocoa.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
- wtf/efl/DispatchQueueWorkItemEfl.h:
(WorkItem::WorkItem):
(TimerWorkItem::create):
(TimerWorkItem::TimerWorkItem):
- wtf/efl/WorkQueueEfl.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
- wtf/generic/RunLoopGeneric.cpp:
(WTF::RunLoop::TimerBase::ScheduledTask::create):
(WTF::RunLoop::TimerBase::ScheduledTask::ScheduledTask):
(WTF::RunLoop::dispatchAfter):
- wtf/generic/WorkQueueGeneric.cpp:
(WorkQueue::dispatch):
(WorkQueue::dispatchAfter):
- wtf/glib/RunLoopGLib.cpp:
(WTF::DispatchAfterContext::DispatchAfterContext):
(WTF::RunLoop::dispatchAfter):
- wtf/win/WorkItemWin.cpp:
(WTF::WorkItemWin::WorkItemWin):
(WTF::WorkItemWin::create):
(WTF::HandleWorkItem::HandleWorkItem):
(WTF::HandleWorkItem::createByAdoptingHandle):
- wtf/win/WorkItemWin.h:
(WTF::WorkItemWin::function):
- wtf/win/WorkQueueWin.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
- 12:26 PM Changeset in webkit [202438] by
-
- 2 edits in trunk/Source/WebCore
Use _CFHTTPCookieStorageGetDefault directly instead of NSHTTPCookieStorage to get default cookie storage
https://bugs.webkit.org/show_bug.cgi?id=159095
rdar://problem/26630073
Patch by Amir Alavi <aalavi@apple.com> on 2016-06-24
Reviewed by Brent Fulgham.
No new tests, it isn't possible to test this in a LayoutTest.
- platform/network/mac/CookieJarMac.mm:
(WebCore::httpCookiesForURL): Get a CFHTTPCookieStorageRef when no cookie storage is provided to match the case when cookie storage is provided.
- 12:15 PM Changeset in webkit [202437] by
-
- 2 edits in trunk/LayoutTests
Update test expectations for rdar://problem/27000853
- platform/mac/TestExpectations:
- 11:52 AM Changeset in webkit [202436] by
-
- 2 edits in trunk/Source/WebCore
Do not use iOS specific telephone detection on macOS.
https://bugs.webkit.org/show_bug.cgi?id=159096
rdar://problem/25870571
Reviewed by Anders Carlsson.
Adding platform guard.
- platform/cocoa/TelephoneNumberDetectorCocoa.cpp:
(WebCore::TelephoneNumberDetector::phoneNumbersScanner):
- 11:51 AM Changeset in webkit [202435] by
-
- 44 edits48 deletes in trunk
Unreviewed, rolling out r202413.
https://bugs.webkit.org/show_bug.cgi?id=159097
Broke many JSC tests (Requested by ap on #webkit).
Reverted changeset:
"[JSC] Implement isFinite / isNaN in JS and make DFG ToNumber
accept non number values"
https://bugs.webkit.org/show_bug.cgi?id=154022
http://trac.webkit.org/changeset/202413
- 11:38 AM Changeset in webkit [202434] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix after r202429; AVStreamDataParser does not exist on iOS.
- platform/spi/mac/AVFoundationSPI.h:
- 11:34 AM Changeset in webkit [202433] by
-
- 2 edits in trunk/Tools
parser_unittests.pl should not hardcode list of tests
<https://webkit.org/b/159074>
Reviewed by Daniel Bates.
- Scripts/webkitperl/prepare-ChangeLog_unittest/parser_unittests.pl:
Update to read the list of tests from the 'resources' directory,
and instead map file extensions to subroutine names. Switch to
use File::Basename::fileparse() to get basename and file
extension for each test.
(readTestFiles): Added. Reads files from the directory passed
in and ignores: hidden files, anything that isn't a plain file,
and expected test results files.
- 11:31 AM Changeset in webkit [202432] by
-
- 6 edits17 adds1 delete in trunk/Source/WebKit2
Move WebKit2 Apple Pay code to the open source repository
https://bugs.webkit.org/show_bug.cgi?id=159041
Reviewed by Sam Weinig.
- DerivedSources.make:
- Shared/Cocoa/WebCoreArgumentCodersCocoa.h: Added.
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: Added.
- UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp: Added.
- UIProcess/ApplePay/WebPaymentCoordinatorProxy.h: Added.
- UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in: Added.
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h: Added.
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: Added.
- UIProcess/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm: Added.
- UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm: Added.
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- WebKit2.xcodeproj/project.pbxproj:
- WebProcess/ApplePay/WebPaymentCoordinator.cpp: Added.
- WebProcess/ApplePay/WebPaymentCoordinator.h: Added.
- WebProcess/ApplePay/WebPaymentCoordinator.messages.in: Added.
- 11:21 AM Changeset in webkit [202431] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed build fix after r202429; Fix the type of the delegate property on AVStreamDataParser.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
- platform/spi/mac/AVFoundationSPI.h:
- 11:19 AM Changeset in webkit [202430] by
-
- 3 edits in branches/safari-602.1.38-branch/Source/WebKit2
Merged r202389. rdar://problem/26975138
- 10:46 AM Changeset in webkit [202429] by
-
- 5 edits in trunk/Source/WebCore
[MSE] Adopt +[AVStreamDataParser outputMIMECodecParameterForInputMIMECodecParameter:]
https://bugs.webkit.org/show_bug.cgi?id=158312
Reviewed by Eric Carlson.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType):
Move the declaration of AVStreamDataParser into AVFoundationSPI.h:
- platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:
(WebCore::CDMSessionAVStreamSession::update):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]):
- platform/spi/mac/AVFoundationSPI.h:
- 10:34 AM Changeset in webkit [202428] by
-
- 6 edits in trunk/LayoutTests
Make window.open layout tests for about: URLs work on iOS
https://bugs.webkit.org/show_bug.cgi?id=159072
Reviewed by Alex Christensen.
Fix two window.open layout tests for iOS. They previously used click events.
Now they instead turn off the popup blocker and just call window.open() on
the load event.
- http/tests/dom/window-open-about-blank-and-access-document-expected.txt:
- http/tests/dom/window-open-about-blank-and-access-document.html:
- http/tests/dom/window-open-about-webkit-org-and-access-document-expected.txt:
- http/tests/dom/window-open-about-webkit-org-and-access-document.html:
- platform/ios-simulator/TestExpectations:
Removed the skipping of these two test cases.
- 10:32 AM Changeset in webkit [202427] by
-
- 2 edits in trunk/Source/WebCore
[iOS, Mac] Assume a media file has audio during AirPlay
https://bugs.webkit.org/show_bug.cgi?id=159088
<rdar://problem/24616592>
Reviewed by Jer Noble.
No new tests, it isn't possible to test this in a LayoutTest.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Call
mediaSession->setCanProduceAudio(true) when AirPlay becomes active.
- 10:13 AM Changeset in webkit [202426] by
-
- 2 edits in trunk/Source/WebKit2
[WK2] PageConfiguration.m_relatedPage keeps WebPageProxy alive after its WebView has been destroyed
https://bugs.webkit.org/show_bug.cgi?id=159080
<rdar://problem/26982642>
Reviewed by Anders Carlsson.
PageConfiguration.m_relatedPage keeps WebPageProxy alive after its WebView has been destroyed.
This leads to WebPageProxy object leaks when the client keeps chaining related views.
In this patch, we null our the PageConfiguration's relatedPage in WebPageProxy::close()
to break the chain and make sure we only keep alive 1 relatedPage rather than a chain of
them.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::close):
- 10:12 AM Changeset in webkit [202425] by
-
- 18 edits in trunk/Source
Playback controls refer to wrong element when playing multiple items in a page.
https://bugs.webkit.org/show_bug.cgi?id=159076
<rdar://problem/26953532>
Reviewed by Beth Dakin.
Source/WebCore:
Use a new method PlatformMediaSessionManager::currentSessionMatching() to get
the most recently active media element which qualifies for playback controls.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updatePlaybackControlsManager): Get the most recently active session.
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::canControlControlsManager): Make virtual; no longer takes an element.
- html/MediaElementSession.h:
(isType): Allow downcasting from PlatformMediaSession -> MediaElementSession.
- page/ChromeClient.h:
- platform/audio/PlatformMediaSession.h:
(WebCore::PlatformMediaSession::canControlControlsManager): Defaults to false;
- platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::currentSessionMatching): Added.
- platform/audio/PlatformMediaSessionManager.h:
Source/WebKit/mac:
clearPlaybackControlsManager() no longer takes a parameter.
- WebCoreSupport/WebChromeClient.h:
- WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::clearPlaybackControlsManager):
- WebView/WebView.mm:
(-[WebView _clearPlaybackControlsManager]): Renamed from _clearPlaybackControlsManagerForMediaElement:.
- WebView/WebViewInternal.h:
Source/WebKit2:
clearPlaybackControlsManager() no longer takes a parameter.
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::clearPlaybackControlsManager):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/cocoa/WebPlaybackSessionManager.h:
- WebProcess/cocoa/WebPlaybackSessionManager.mm:
(WebKit::WebPlaybackSessionManager::setUpPlaybackControlsManager): Make sure to removeClientForContext()
if the old context refers to a live media element.
(WebKit::WebPlaybackSessionManager::clearPlaybackControlsManager):
- 10:05 AM Changeset in webkit [202424] by
-
- 2 edits in trunk/Source/WebKit2
IDB tests crashing attempting to register sandbox extensions for blob files.
https://bugs.webkit.org/show_bug.cgi?id=159094.
Reviewed by Sam Weinig.
Already tested by storage/indexeddb/modern/handle-user-delete.html
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::preregisterSandboxExtensionsIfNecessary): Check whether the IDBResultData actually contains
a getResult before trying to access it.
- 9:57 AM Changeset in webkit [202423] by
-
- 2 edits in trunk/Source/WebCore
Fixed the macOS build.
- platform/spi/cocoa/DataDetectorsCoreSPI.h:
- 9:24 AM Changeset in webkit [202422] by
-
- 5 edits in trunk/Source/WebCore
[iOS] Inline DataDetectorsAdditions.h
https://bugs.webkit.org/show_bug.cgi?id=159093
Reviewed by Anders Carlsson.
- editing/cocoa/DataDetection.mm:
(WebCore::constructURLStringForResult): Use soft-linked constant directly.
- platform/cocoa/DataDetectorsCoreSoftLink.h: Declare soft-linked constant.
- platform/cocoa/DataDetectorsCoreSoftLink.mm: Define soft-linked constant.
- platform/spi/cocoa/DataDetectorsCoreSPI.h: Declare constant.
- 9:05 AM Changeset in webkit [202421] by
-
- 4 edits2 adds in trunk
[GTK][EFL] ImageBufferCairo should accept resolution factor
https://bugs.webkit.org/show_bug.cgi?id=157848
Reviewed by Martin Robinson.
Source/WebCore:
ImageBufferCairo ignored the resolution factor passed in its constructor.
This resolution factor is originally introduced for HiDPI Canvas,
and since HiDPI canvas is not enabled in the ports using Cairo,
the lack of this implementation does not cause any problems.
And now, HiDPI Canvas is removed from the tree.
However, WebKit CSS filter uses this path.
The missing implementation is required under the HiDPI environment.
Since Cairo surface can have the device scale factor transparently,
the operations onto the surface is correctly done in the logical coordinate system.
So all we need to handle carefully is the direct surface modification done
in filter effects.
In this patch, we extend the image buffer size according to the resolution factor,
as the same to the CoreGraphics' implementation (ImageBufferCG). And by setting the
device scale factor of the surface correctly, we ensure that the rest of the Cairo
painting stack works with the existing logical coordinate system. And in ImageBufferCairo,
we carefully handle the logical and backing store coordinate system.
The attached test applies the CSS filter onto the svg image. And we resize the image size,
and perform scrolling. It incurs the paint, and filter effect recalcuation.
In that path, the filter effect side assumes that the image buffer size is scaled with the
resolution factor. So without this patch, it incurs buffer overflow and leads WebProcess crash.
- platform/graphics/IntPoint.h:
(WebCore::IntPoint::scale):
- platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBufferData::createCompositorBuffer):
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::copyImage):
(WebCore::ImageBuffer::platformTransformColorSpace):
(WebCore::getImageData):
(WebCore::logicalUnit):
(WebCore::backingStoreUnit):
(WebCore::ImageBuffer::getUnmultipliedImageData):
(WebCore::ImageBuffer::getPremultipliedImageData):
(WebCore::ImageBuffer::putByteArray):
(WebCore::ImageBuffer::copyToPlatformTexture):
LayoutTests:
- fast/hidpi/filters-and-image-buffer-resolution-expected.html: Added.
- fast/hidpi/filters-and-image-buffer-resolution.html: Added.
- 7:39 AM Changeset in webkit [202420] by
-
- 55 edits in trunk
Refactor RenderMathMLOperator and RenderMathMLToken to avoid using anonymous renderers.
https://bugs.webkit.org/show_bug.cgi?id=155018
Patch by Frederic Wang <fwang@igalia.com> on 2016-06-24
Reviewed by Martin Robinson.
Source/WebCore:
No new tests, already covered by existing tests.
We use MathOperator for RenderMathMLOperator to avoid creating anonymous text nodes again
and again. We reimplement implicit mathvariant="italic" on single-char mi in a way that does
not rely on creating anonymous text nodes. Finally, we improve the determination/update of
when mathvariant is italic to avoid breaking foreign-mi-dynamic test.
The change in the render tree structure breaks mfenced accessibility support but that will
be fixed in follow-up patches. The simplifications made here will also allow to simplify the
accessibility code.
- css/mathml.css:
(mo): Deleted. This flexbox rule is no longer needed.
- rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::createAnonymousMathMLBlock): Deleted. We no longer need to
create anonymous renderer with this function.
- rendering/mathml/RenderMathMLBlock.h: Delete createAnonymousMathMLBlock.
- rendering/mathml/RenderMathMLOperator.cpp: Implement layout functions without relying on
flexbox or anonymous.
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Handle the case of !useMathOperator()
for which we need to add extra operator spacing after the RenderMathMLToken layout.
(WebCore::RenderMathMLOperator::layoutBlock): Ditto.
(WebCore::RenderMathMLOperator::isChildAllowed): Deleted. We allow the non-anonymous text.
(WebCore::RenderMathMLOperator::rebuildTokenContent): No longer destroy and rebuild
anonymous wrapper. Remove updateStyle call.
(WebCore::RenderMathMLOperator::updateStyle): Deleted. We no longer need anonymous style for the spacing.
- rendering/mathml/RenderMathMLOperator.h: Remove updateStyle() and isChildAllowed().
Make textContent() public so that it can be accessed from the accessibility code.
- rendering/mathml/RenderMathMLToken.cpp: Reimplement implicit mathvariant="italic" by
painting MATHEMATICAL ITALIC characters instead of styling an anonymous wrapper.
(WebCore::RenderMathMLToken::RenderMathMLToken): Init m_mathVariantGlyph and m_mathVariantGlyphDirty
(WebCore::RenderMathMLToken::updateTokenContent): Set mathvariant glyph dirty when the content changes.
(WebCore::transformToItalic): Helper function to map latin and greek alphabets to their
MATHEMATICAL ITALIC counterpart.
(WebCore::RenderMathMLToken::computePreferredLogicalWidths): Implement this function to
handle the case where the mathvariant glyph is used.
(WebCore::RenderMathMLToken::updateMathVariantGlyph): Helper function to update the mathvariant glyph.
For now, we try and keep with the old (and limited) implementation: a mathvariant glyph may
only used for single-char <mi> without mathvariant attribute attached to it.
(WebCore::RenderMathMLToken::styleDidChange): Set the mathvariant glyph dirty when the style
changes.
(WebCore::RenderMathMLToken::updateFromElement): Remove updateStyle call and set mathvariant
glyph dirty.
(WebCore::RenderMathMLToken::firstLineBaseline): Implement this function to handle the case
where the mathvariant glyph is used.
(WebCore::RenderMathMLToken::layoutBlock): Ditto.
(WebCore::RenderMathMLToken::paint): Ditto.
(WebCore::RenderMathMLToken::paintChildren): Ditto.
(WebCore::RenderMathMLToken::addChild): Deleted. No need to bother with anonymous renderer
or style.
(WebCore::RenderMathMLToken::createWrapperIfNeeded): Deleted. Ditto.
(WebCore::RenderMathMLToken::updateStyle): Deleted. Ditto.
- rendering/mathml/RenderMathMLToken.h: Update declarations of functions.
(WebCore::RenderMathMLToken::setMathVariantGlyphDirty): Helper function to indicate that the
mathvariant glyph will need to be updated.
LayoutTests:
We update the test expectations. Most of the adjustments are irrelevant visual
modifications (small shift and size differences) or due to changes in the renderer tree
structure (removal of anonymous, operator text appearing in the dumped text).
We disable the accessibility for mfenced for now, but this will be enabled again and improved
in follow-up accessibility patches.
- platform/ios-simulator/TestExpectations: We disable two reftests that use a character from
the Mathematical Alphanumeric Symbols block as a reference, since iOS does not have
appropriate fonts pre-installed.
- accessibility/mac/mathml-elements.html: Disable the mfenced test for now.
- accessibility/mac/mathml-elements-expected.txt: Ditto.
- accessibility/ios-simulator/math-expected.txt: Update the reference now that the text of
the operator appears in the render tree.
- accessibility/mac/math-alttext-expected.txt: Ditto.
- mathml/opentype/large-operators-italic-correction-expected.txt: Ditto.
- mathml/opentype/large-operators-munderover-expected.txt: Ditto.
- mathml/presentation/inferred-mrow-stretchy-expected.txt: Ditto.
- mathml/presentation/mfrac-nested-expected.txt: Ditto.
- mathml/presentation/stretchy-depth-height-expected.txt: Ditto.
- mathml/presentation/stretchy-depth-height-symmetric-expected.txt: Ditto.
- mathml/presentation/sup-nested-expected.txt: Ditto.
- mathml/very-large-stretchy-operators-expected.txt: Ditto.
- platform/mac/accessibility/math-text-expected.txt: Ditto.
- platform/gtk/accessibility/math-text-expected.txt: Ditto.
- fast/css/readonly-pseudoclass-common-element-expected.txt: Ditto.
- fast/css/readwrite-pseudoclass-editable-expected.txt: Ditto.
- imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-namespace-expected.txt: Ditto.
- imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-namespace-xhtml-expected.txt: Ditto.
- mathml/presentation/attributes-background-color.html: Add some padding to workaround some
small rendering failures.
- mathml/presentation/attributes-background-color-expected.html: Ditto.
- mathml/presentation/attributes-display.html: Ditto.
- mathml/presentation/attributes-display-expected.html: Ditto.
- mathml/presentation/bug97990-expected.html: Ditto.
- mathml/presentation/bug97990.html: Ditto.
- mathml/presentation/attributes-mathvariant-expected.html: Update the reftest to use italic
characters from the Mathematical Alphanumeric Symbols.
- mathml/presentation/tokenElements-mathvariant-expected.html: Ditto.
- mathml/presentation/mo-whitespaces-expected.html: Adjust one edge case since we now only
collapse whitespace for operators that use MathOperator.
- accessibility/math-multiscript-attributes-expected.txt: Small size/coordinate adjustment.
- platform/gtk/accessibility/math-multiscript-attributes-expected.txt: Dottp.
- platform/gtk/mathml/presentation/roots-expected.txt: Size/coordinate adjustment, removal
of anonymous renderers and use italic characters from the Mathematical Alphanumeric Symbols.
- platform/gtk/mathml/presentation/roots-expected.png: Ditto.
- platform/ios-simulator/mathml/presentation/roots-expected.txt: Ditto.
- platform/gtk/mathml/opentype/horizontal-expected.txt: Size/coordinate adjustment and
removal of anonymous renderers.
- platform/gtk/mathml/opentype/horizontal-munderover-expected.txt: Ditto.
- platform/gtk/mathml/opentype/large-operators-expected.txt: Ditto.
- platform/gtk/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
- platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt: Ditto.
- platform/gtk/mathml/opentype/vertical-expected.txt: Ditto.
- platform/gtk/mathml/presentation/mo-stretch-expected.txt: Ditto.
- platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt: Ditto.
- platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
- platform/mac/mathml/opentype/large-operators-expected.txt: Ditto.
- platform/mac/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
- platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt: Ditto.
- platform/mac/mathml/opentype/vertical-expected.txt: Ditto.
- 12:39 AM Changeset in webkit [202419] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed EFL build fix.
There is forward declaration build error on EFL port.
- platform/graphics/texmap/coordinated/CompositingCoordinator.cpp: Include DOMWindow.h and Document.h.
Jun 23, 2016:
- 11:07 PM Changeset in webkit [202418] by
-
- 3 edits in trunk/Tools
Fix Windows build.
- DumpRenderTree/cg/PixelDumpSupportCG.cpp:
- DumpRenderTree/cg/PixelDumpSupportCG.h:
- 10:20 PM Changeset in webkit [202417] by
-
- 2 edits in trunk/Source/WebKit/win
[Win] The test accessibility/aria-labelledby-overrides-label.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=159057
Reviewed by Brent Fulgham.
The test expects the label to have a static text role, but currently it has a
group role.
- AccessibleBase.cpp:
(MSAARole): Change the role of labels to static text.
- 9:51 PM Changeset in webkit [202416] by
-
- 2 edits in trunk/Tools
[EFL] Change download path of libxslt
Unreviewed EFL build fix.
In Korea current download path can't be accessed. Change it.
- efl/jhbuild.modules:
- 9:39 PM Changeset in webkit [202415] by
-
- 3 edits9 adds in trunk
OOM Assertion failure in Array.prototype.toString
https://bugs.webkit.org/show_bug.cgi?id=158793
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-23
Reviewed by Saam Barati.
Source/JavaScriptCore:
JSString::create() taking a StringImpl was using a signed integer
for the length of the string.
The problem is StringImpl uses an unsigned integer. When a large string
was passed to JSString, the signed integer would be negative and crash
JSString.
- runtime/JSString.h:
(JSC::JSString::create):
LayoutTests:
- js/script-tests/stringimpl-to-jsstring-on-large-strings-1.js: Added.
(string_appeared_here.createStrings):
- js/script-tests/stringimpl-to-jsstring-on-large-strings-2.js: Added.
(string_appeared_here.createRegexp):
(catch):
- js/script-tests/stringimpl-to-jsstring-on-large-strings-3.js: Added.
(string_appeared_here.createStrings):
(catch):
- js/stringimpl-to-jsstring-on-large-strings-1-expected.txt: Added.
- js/stringimpl-to-jsstring-on-large-strings-1.html: Added.
- js/stringimpl-to-jsstring-on-large-strings-2-expected.txt: Added.
- js/stringimpl-to-jsstring-on-large-strings-2.html: Added.
- js/stringimpl-to-jsstring-on-large-strings-3-expected.txt: Added.
- js/stringimpl-to-jsstring-on-large-strings-3.html: Added.
- 9:08 PM Changeset in webkit [202414] by
-
- 14 edits7 adds in trunk
Retrieving Blobs from IndexedDB using cursors fails in WK2 (Sandboxing)
https://bugs.webkit.org/show_bug.cgi?id=158991
Reviewed by Alex Christensen.
Source/WebCore:
Test: storage/indexeddb/modern/blob-cursor.html
- platform/network/BlobDataFileReference.cpp:
(WebCore::BlobDataFileReference::startTrackingModifications): Deleted.
Source/WebKit2:
- CMakeLists.txt:
- WebKit2.xcodeproj/project.pbxproj:
- DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::getSandboxExtensionsForBlobFiles):
(WebKit::DatabaseProcess::didGetSandboxExtensionsForBlobFiles):
- DatabaseProcess/DatabaseProcess.h:
- DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::handleGetResult): Handle creation of sandbox extensions
for any result that might contain blob values.
(WebKit::WebIDBConnectionToClient::didGetRecord):
(WebKit::WebIDBConnectionToClient::didOpenCursor):
(WebKit::WebIDBConnectionToClient::didIterateCursor):
- DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
- Shared/Databases/IndexedDB/WebIDBResult.cpp: Added.
(WebKit::WebIDBResult::encode):
(WebKit::WebIDBResult::decode):
- Shared/Databases/IndexedDB/WebIDBResult.h: Added.
(WebKit::WebIDBResult::WebIDBResult):
(WebKit::WebIDBResult::resultData):
(WebKit::WebIDBResult::handles):
- Shared/SandboxExtension.h: Make SandboxExtension handles moveable.
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
(WebKit::preregisterSandboxExtensionsIfNecessary): Register sandbox extensions with the
Networking process for any result that might contain blob values.
(WebKit::WebIDBConnectionToServer::didGetRecord):
(WebKit::WebIDBConnectionToServer::didOpenCursor):
(WebKit::WebIDBConnectionToServer::didIterateCursor):
(WebKit::WebIDBConnectionToServer::didGetRecordWithSandboxExtensions): Deleted.
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
- WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:
LayoutTests:
- storage/indexeddb/modern/blob-cursor-expected.txt: Added.
- storage/indexeddb/modern/blob-cursor.html: Added.
- storage/indexeddb/modern/resources/blob-cursor.js: Added.
- storage/indexeddb/modern/resources/blob-cursor1.html: Added.
- storage/indexeddb/modern/resources/blob-cursor2.html: Added.
- 8:41 PM Changeset in webkit [202413] by
-
- 44 edits1 copy47 adds in trunk
[JSC] Implement isFinite / isNaN in JS and make DFG ToNumber accept non number values
https://bugs.webkit.org/show_bug.cgi?id=154022
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
We aim at optimizing @toInteger operation.
While it still has an unoptimized part[1], this patch should be a first step.
We introduce the @toNumber builtin intrinsic operation.
This converts the given value to the JS number by emitting op_to_number bytecode.
Previously @toInteger called C++ @Number constructor for that purpose.
And in DFG, op_to_number is converted to DFG ToNumber node.
During DFG, we attempt to convert this to edge filtering and Identity, but if we fail,
we just fall back to calling the C++ function.
To utilize ToNumber in user-land side, we add a path attempting to convert Number constructor calls
to ToNumber DFG nodes. This conversion is useful becauseNumber(value)is used to convert a value to a number in JS.
Before this patch, we emit simple edge filtering (NumberUse) instead of emitting DFG node like ToNumber for op_to_number.
But emitting ToNumber is useful, because in the case ofNumber(value), consideringvaluemay not be a number is reasonable.
By leveraging @toNumber operation, we rewrite Number.{isFinite, isNaN}, global.{isFinite, isNaN} and @toInteger.
ToNumber DFG node has a value profiling. This profiling is leveraged to determine the result number type of the ToNumber operation.
This value profiling is provided from either NumberConstructor's call operation or op_to_number.
The results (with the added performance tests) show that, while existing cases are performance neutral, the newly added cases gain the performance benefit.
And ASMBench/n-body.c also shows stable ~2% progression.
[1]: https://bugs.webkit.org/show_bug.cgi?id=153738
- CMakeLists.txt:
- DerivedSources.make:
- JavaScriptCore.xcodeproj/project.pbxproj:
- builtins/BuiltinNames.h:
- builtins/GlobalObject.js:
(globalPrivate.isFinite):
(globalPrivate.isNaN):
(globalPrivate.toInteger): Deleted.
(globalPrivate.toLength): Deleted.
(globalPrivate.isDictionary): Deleted.
(globalPrivate.speciesGetter): Deleted.
(globalPrivate.speciesConstructor): Deleted.
- builtins/GlobalOperations.js: Copied from Source/JavaScriptCore/builtins/GlobalObject.js.
(globalPrivate.toInteger):
(globalPrivate.toLength):
(globalPrivate.isDictionary):
(globalPrivate.speciesGetter):
(globalPrivate.speciesConstructor):
- builtins/NumberConstructor.js: Added.
(isFinite):
(isNaN):
- bytecode/BytecodeIntrinsicRegistry.cpp:
(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
- bytecode/BytecodeIntrinsicRegistry.h:
- bytecode/BytecodeList.json:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::finishCreation):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitUnaryOp):
(JSC::BytecodeGenerator::emitUnaryOpProfiled):
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::emitToNumber):
- bytecompiler/NodesCodegen.cpp:
(JSC::BytecodeIntrinsicNode::emit_intrinsic_toNumber):
(JSC::UnaryPlusNode::emitBytecode):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::attemptToInlineCall):
(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):
(JSC::DFG::ByteCodeParser::parseBlock):
We usegetPrediction()to retrieve the heap prediction from the to_number bytecode.
According to the benchmark results, choosinggetPredictionWithoutOSRExit()causes performance regression (1.5%) in kraken stanford-crypto-aes.
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupToNumber):
- dfg/DFGNode.h:
(JSC::DFG::Node::hasHeapPrediction):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
Alway rely on the heap prediction.
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
As of 64bit version, we carefully manage the register reuse. The largest difference between 32bit and 64bit is
branchIfNotNumber()requires the temporary register. We should not use the result registers for that since
it may be reuse the argument registers and it can break the argument registers before using them to call the operation.
Currently, we allocate the additional temporary register for that scratch register.
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
Reuse the argument register for the result if possible. And manually decrement the use count in the middle of the node.
This is similar technique used in ToPrimitive. Typically, the child of ToNumber is only used by this ToNumber node since
we would like to perform the type conversion onto this child node here. So this careful register reuse effectively removes
the spills to call the operation. The example of the actually emitted code is the following.
76:<!2:loc11> ToNumber(Untyped:@68, JS|MustGen|UseAsOther, DoubleimpurenanTopEmpty, R:World, W:Heap, Exits, ClobbersExit, bc#48) predicting DoubleimpurenanTopEmpty
0x7f986d5fe693: test %rax, %r14
0x7f986d5fe696: jz 0x7f986d5fe6a1
0x7f986d5fe69c: jmp 0x7f986d5fe6d1
0x7f986d5fe6a1: mov %rax, %rsi
0x7f986d5fe6a4: mov %rbp, %rdi
0x7f986d5fe6a7: mov $0x2, 0x24(%rbp)
0x7f986d5fe6ae: mov $0x7f98711ea5f0, %r11
0x7f986d5fe6b8: call *%r11
0x7f986d5fe6bb: mov $0x7f982d3f72d0, %r11
0x7f986d5fe6c5: mov (%r11), %r11
0x7f986d5fe6c8: test %r11, %r11
0x7f986d5fe6cb: jnz 0x7f986d5fe88c
It effectively removes the unnecessary spill to call the operation!
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileToNumber):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::branchIfNumber):
(JSC::AssemblyHelpers::branchIfNotNumber):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_to_number):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_to_number):
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- parser/Nodes.h:
(JSC::UnaryOpNode::opcodeID):
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncIsNaN): Deleted.
(JSC::globalFuncIsFinite): Deleted.
- runtime/JSGlobalObjectFunctions.h:
- runtime/MathCommon.h:
(JSC::maxSafeInteger):
(JSC::minSafeInteger):
- runtime/NumberConstructor.cpp:
(JSC::NumberConstructor::finishCreation):
(JSC::numberConstructorFuncIsFinite): Deleted.
(JSC::numberConstructorFuncIsNaN): Deleted.
- runtime/NumberConstructor.h:
- tests/stress/Number-isNaN-basics.js: Added.
(numberIsNaNOnInteger):
(testNumberIsNaNOnIntegers):
(verifyNumberIsNaNOnIntegerWithOtherTypes):
(numberIsNaNOnDouble):
(testNumberIsNaNOnDoubles):
(verifyNumberIsNaNOnDoublesWithOtherTypes):
(numberIsNaNNoArguments):
(numberIsNaNTooManyArguments):
(testNumberIsNaNOnConstants):
(numberIsNaNStructTransition):
(Number.isNaN):
- tests/stress/global-is-finite.js: Added.
(shouldBe):
- tests/stress/global-is-nan.js: Added.
(shouldBe):
- tests/stress/global-isNaN-basics.js: Added.
(isNaNOnInteger):
(testIsNaNOnIntegers):
(verifyIsNaNOnIntegerWithOtherTypes):
(isNaNOnDouble):
(testIsNaNOnDoubles):
(verifyIsNaNOnDoublesWithOtherTypes):
(verifyIsNaNOnCoercedTypes):
(isNaNNoArguments):
(isNaNTooManyArguments):
(testIsNaNOnConstants):
(isNaNTypeCoercionSideEffects):
(i.value.isNaNTypeCoercionSideEffects.valueOf):
(isNaNStructTransition):
(isNaN):
- tests/stress/number-is-finite.js: Added.
(shouldBe):
(test2):
(test3):
- tests/stress/number-is-nan.js: Added.
(shouldBe):
(test2):
(test3):
- tests/stress/to-number-basics.js: Added.
(shouldBe):
- tests/stress/to-number-convert-identity-without-execution.js: Added.
(shouldBe):
(object.valueOf):
(valueOf):
- tests/stress/to-number-int52.js: Added.
(shouldBe):
(object.valueOf):
- tests/stress/to-number-intrinsic-convert-to-identity-without-execution.js: Added.
(shouldBe):
(object.valueOf):
(valueOf):
- tests/stress/to-number-intrinsic-int52.js: Added.
(shouldBe):
(object.valueOf):
- tests/stress/to-number-intrinsic-object-without-execution.js: Added.
(shouldBe):
(object.valueOf):
- tests/stress/to-number-intrinsic-value-profiling.js: Added.
(shouldBe):
(object.valueOf):
- tests/stress/to-number-object-without-execution.js: Added.
(shouldBe):
(object.valueOf):
- tests/stress/to-number-object.js: Added.
(shouldBe):
(test12):
(object1.valueOf):
(test2):
(test22):
(object2.valueOf):
(test3):
(test32):
(object3.valueOf):
- tests/stress/to-number-value-profiling.js: Added.
(shouldBe):
(object.valueOf):
LayoutTests:
- js/regress/Number-isNaN-expected.txt: Added.
- js/regress/Number-isNaN.html: Added.
- js/regress/global-isNaN-expected.txt: Added.
- js/regress/global-isNaN.html: Added.
- js/regress/script-tests/Number-isNaN.js: Added.
- js/regress/script-tests/global-isNaN.js: Added.
- js/regress/script-tests/many-foreach-calls.js:
(i.4.forEach):
(i.array.forEach): Deleted.
- js/regress/script-tests/to-number-constructor-number-string-number-string.js: Added.
(test):
- js/regress/script-tests/to-number-constructor-only-number.js: Added.
(test):
- js/regress/script-tests/to-number-constructor-only-string.js: Added.
(test):
- js/regress/script-tests/to-number-constructor-string-number-string-number.js: Added.
(test):
- js/regress/script-tests/to-number-number-string-number-string.js: Added.
(test):
- js/regress/script-tests/to-number-only-number.js: Added.
(test):
- js/regress/script-tests/to-number-only-string.js: Added.
(test):
- js/regress/script-tests/to-number-string-number-string-number.js: Added.
(test):
- js/regress/to-number-constructor-number-string-number-string-expected.txt: Added.
- js/regress/to-number-constructor-number-string-number-string.html: Added.
- js/regress/to-number-constructor-only-number-expected.txt: Added.
- js/regress/to-number-constructor-only-number.html: Added.
- js/regress/to-number-constructor-only-string-expected.txt: Added.
- js/regress/to-number-constructor-only-string.html: Added.
- js/regress/to-number-constructor-string-number-string-number-expected.txt: Added.
- js/regress/to-number-constructor-string-number-string-number.html: Added.
- js/regress/to-number-number-string-number-string-expected.txt: Added.
- js/regress/to-number-number-string-number-string.html: Added.
- js/regress/to-number-only-number-expected.txt: Added.
- js/regress/to-number-only-number.html: Added.
- js/regress/to-number-only-string-expected.txt: Added.
- js/regress/to-number-only-string.html: Added.
- js/regress/to-number-string-number-string-number-expected.txt: Added.
- js/regress/to-number-string-number-string-number.html: Added.
- 8:34 PM Changeset in webkit [202412] by
-
- 4 edits in trunk
https://bugs.webkit.org/show_bug.cgi?id=159077
Tools:
Turn off CARenderServer snapshotting in WTR for now, because it doesn't reliably
snapshot the final state of the test in release builds.
- WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::dump):
LayoutTests:
Mark fast/harness/snapshot-captures-compositing.html as an image failure.
- platform/ios-simulator-wk2/TestExpectations:
- 7:50 PM Changeset in webkit [202411] by
-
- 3 edits in trunk/Tools
Fix hardware builds, where USE(IOSURFACE) is true by #ifdeffing.
- DumpRenderTree/ios/PixelDumpSupportIOS.mm:
(createBitmapContextFromWebView):
- WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::PlatformWebView::windowSnapshotImage):
- 7:47 PM Changeset in webkit [202410] by
-
- 30 edits in trunk/Source
Remove unused didCancelAuthenticationChallenge
https://bugs.webkit.org/show_bug.cgi?id=158819
Reviewed by David Kilzer.
Source/WebCore:
No change in behavior. This callback was deprecated in Yosemite. It is never called.
- loader/EmptyClients.h:
- loader/FrameLoaderClient.h:
- loader/ResourceLoadNotifier.cpp:
(WebCore::ResourceLoadNotifier::didCancelAuthenticationChallenge): Deleted.
- loader/ResourceLoadNotifier.h:
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::didCancelAuthenticationChallenge): Deleted.
- loader/ResourceLoader.h:
- platform/network/ResourceHandle.h:
- platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::didCancelAuthenticationChallenge): Deleted.
- platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::didCancelAuthenticationChallenge): Deleted.
- platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
(-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]): Deleted.
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didCancelAuthenticationChallenge:]): Deleted.
- platform/spi/cocoa/NSURLDownloadSPI.h:
Source/WebKit/ios:
- DefaultDelegates/WebDefaultResourceLoadDelegate.m:
(-[WebDefaultResourceLoadDelegate webView:resource:didReceiveAuthenticationChallenge:fromDataSource:]):
(-[WebDefaultResourceLoadDelegate webView:resource:canAuthenticateAgainstProtectionSpace:forDataSource:]):
(-[WebDefaultResourceLoadDelegate webView:resource:didCancelAuthenticationChallenge:fromDataSource:]): Deleted.
Source/WebKit/mac:
- Misc/WebDownload.mm:
(-[WebDownloadInternal download:didCancelAuthenticationChallenge:]): Deleted.
- WebCoreSupport/WebFrameLoaderClient.h:
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::dispatchDidCancelAuthenticationChallenge): Deleted.
- WebView/WebDelegateImplementationCaching.h:
- WebView/WebView.mm:
(-[WebView _cacheResourceLoadDelegateImplementations]):
Source/WebKit/win:
- WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::dispatchDidCancelAuthenticationChallenge): Deleted.
- WebCoreSupport/WebFrameLoaderClient.h:
Source/WebKit2:
- NetworkProcess/Downloads/mac/DownloadMac.mm:
(-[WKDownloadAsDelegate download:didCancelAuthenticationChallenge:]): Deleted.
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::didCancelAuthenticationChallenge): Deleted.
- NetworkProcess/NetworkLoad.h:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidCancelAuthenticationChallenge): Deleted.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- 7:44 PM Changeset in webkit [202409] by
-
- 2 edits in trunk/Source/WebCore
Add "shippingType" to the list of valid payment request properties
https://bugs.webkit.org/show_bug.cgi?id=159079
<rdar://problem/26988429>
Reviewed by Dean Jackson.
- Modules/applepay/ApplePaySession.cpp:
(WebCore::isValidPaymentRequestPropertyName):
- 7:38 PM Changeset in webkit [202408] by
-
- 29 edits14 adds in trunk
Specialize synchronous event tracking per event type
https://bugs.webkit.org/show_bug.cgi?id=158826
Reviewed by Simon Fraser.
Source/WebCore:
First, kudos to Rick Byers for all his helps on passive event dispatch.
The specs are pretty damn good and his help reviewing patches is very useful.
This patch change synchronous event dispatch to happen per event
instead of per sequence touchstart->touchend.
The big advantage of this is we can dispatch more events asynchronously.
For example, to handle a tap programmatically, you can limit the active listener
to the touchend event. The touchstart and touchmove are now dispatched asynchronously.
The implementation is a simple extension to EventTrackingRegions.
Instead of a single synchronous region, we have one region per event type.
When processing the events, we only need to send the events synchronously
if that particular event type has a synchronous region.
Note that EventDispatcher's touch event support already supports
mixing synchronous and asynchronous events. The events are always processed
in order even if asynchronous events are pending when a synchronous dispatch
happens.
Tests: fast/events/touch/ios/tap-with-active-listener-inside-document-with-passive-listener.html
fast/events/touch/ios/tap-with-active-listener-inside-window-with-passive-listener.html
fast/events/touch/ios/tap-with-active-touch-end-listener.html
fast/events/touch/ios/tap-with-passive-listener-inside-active-listener.html
fast/events/touch/ios/tap-with-passive-touch-end-listener.html
fast/events/touch/ios/tap-with-passive-touch-start-active-touch-end-listeners-on-elements.html
fast/events/touch/ios/tap-with-passive-touch-start-active-touch-move-listeners-on-elements.html
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/EventTarget.cpp:
(WebCore::EventTarget::hasActiveTouchEventListeners): Deleted.
- dom/EventTarget.h:
- page/DebugPageOverlays.cpp:
(WebCore::NonFastScrollableRegionOverlay::updateRegion):
- page/Page.cpp:
(WebCore::Page::nonFastScrollableRects):
- page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::absoluteEventTrackingRegionsForFrame):
- page/scrolling/ScrollingStateFrameScrollingNode.cpp:
(WebCore::ScrollingStateFrameScrollingNode::dumpProperties):
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously):
(WebCore::ScrollingTree::eventTrackingTypeForPoint):
- page/scrolling/ScrollingTree.h:
- platform/EventTrackingRegions.cpp: Added.
(WebCore::EventTrackingRegions::trackingTypeForPoint):
(WebCore::EventTrackingRegions::isEmpty):
(WebCore::EventTrackingRegions::translate):
(WebCore::EventTrackingRegions::uniteSynchronousRegion):
(WebCore::EventTrackingRegions::unite):
(WebCore::operator==):
- platform/EventTrackingRegions.h:
(WebCore::EventTrackingRegions::isEmpty): Deleted.
(WebCore::EventTrackingRegions::trackingTypeForPoint): Deleted.
(WebCore::operator==): Deleted.
Source/WebKit2:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<EventTrackingRegions>::encode):
(IPC::ArgumentCoder<EventTrackingRegions>::decode):
- UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::eventTrackingTypeForPoint):
- UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::mergeTrackingTypes):
(WebKit::WebPageProxy::updateTouchEventTracking):
(WebKit::WebPageProxy::touchEventTrackingType):
(WebKit::WebPageProxy::handleTouchEventSynchronously):
(WebKit::WebPageProxy::handleTouchEventAsynchronously):
(WebKit::WebPageProxy::handleTouchEvent):
(WebKit::WebPageProxy::resetState):
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::TouchEventTracking::isTrackingAnything):
(WebKit::WebPageProxy::TouchEventTracking::reset):
LayoutTests:
- fast/events/touch/ios/tap-with-active-listener-inside-document-with-passive-listener-expected.txt: Added.
- fast/events/touch/ios/tap-with-active-listener-inside-document-with-passive-listener.html: Added.
- fast/events/touch/ios/tap-with-active-listener-inside-window-with-passive-listener-expected.txt: Added.
- fast/events/touch/ios/tap-with-active-listener-inside-window-with-passive-listener.html: Added.
- fast/events/touch/ios/tap-with-active-touch-end-listener-expected.txt: Added.
- fast/events/touch/ios/tap-with-active-touch-end-listener.html: Added.
- fast/events/touch/ios/tap-with-passive-listener-inside-active-listener.html: Added.
- fast/events/touch/ios/tap-with-passive-touch-end-listener-expected.txt: Added.
- fast/events/touch/ios/tap-with-passive-touch-end-listener.html: Added.
- fast/events/touch/ios/tap-with-passive-touch-start-active-touch-end-listeners-on-elements-expected.txt: Added.
- fast/events/touch/ios/tap-with-passive-touch-start-active-touch-end-listeners-on-elements.html: Added.
- fast/events/touch/ios/tap-with-passive-touch-start-active-touch-move-listeners-on-elements-expected.txt: Added.
- fast/events/touch/ios/tap-with-passive-touch-start-active-touch-move-listeners-on-elements.html: Added.
- 5:59 PM Changeset in webkit [202407] by
-
- 2 edits in trunk/Source/WebCore
More attempting to fix external iOS builds.
- platform/spi/cocoa/QuartzCoreSPI.h:
- 5:25 PM Changeset in webkit [202406] by
-
- 2 edits in trunk/LayoutTests
Update TestExpectations for a couple video track tests.
- platform/mac/TestExpectations:
- 5:12 PM Changeset in webkit [202405] by
-
- 2 edits in trunk/Source/WebCore
Try to fix the non-internal builds by defining CARenderServerBufferRef.
- platform/spi/cocoa/QuartzCoreSPI.h:
- 5:08 PM Changeset in webkit [202404] by
-
- 12 edits2 adds in trunk
[iOS] Make DumpRenderTree and WebKitTestRunner in the simulator use render server snapshotting
https://bugs.webkit.org/show_bug.cgi?id=159077
Reviewed by Tim Horton.
Source/WebCore:
Add CARenderServer SPIs.
Test: fast/harness/snapshot-captures-compositing.html
- platform/spi/cocoa/QuartzCoreSPI.h:
Tools:
Fix both DRT and WTR for iOS to use CARenderServerRenderLayerWithTransform() on the view's layer.
This allows them to capture compositing layers in snapshots, rather than doing a software paint,
thus enabling testing of more things.
- DumpRenderTree/cg/PixelDumpSupportCG.cpp:
(createBitmapContext): Moved to this file to share it.
- DumpRenderTree/cg/PixelDumpSupportCG.h:
- DumpRenderTree/ios/PixelDumpSupportIOS.mm:
(createBitmapContextFromWebView):
(BitmapContext::createFromUIImage): Deleted.
(BitmapContext::pixelData): Deleted.
(BitmapContext::BitmapContext): Deleted.
(computeMD5HashStringForBitmapContext): Deleted.
(dumpBitmap): Deleted.
- DumpRenderTree/mac/Configurations/DumpRenderTreeLibrary.xcconfig: Don't exclude PixelDumpSupportCG.cpp.
- DumpRenderTree/mac/PixelDumpSupportMac.mm:
(createPagedBitmapContext):
(createBitmapContext): Deleted.
- WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig: link with QuartzCore.
- WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::dump): Deleted.
- WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::PlatformWebView::windowSnapshotImage):
LayoutTests:
Test that fails if snapshotting doesn't correctly snapshot 3D transforms.
- fast/harness/snapshot-captures-compositing-expected.html: Added.
- fast/harness/snapshot-captures-compositing.html: Added.
- 5:00 PM Changeset in webkit [202403] by
-
- 5 edits in trunk/Source
Versioning.
- 4:28 PM Changeset in webkit [202402] by
-
- 8 edits1 add in trunk/Source/JavaScriptCore
DFGSpeculativeJIT's m_slowPathLambdas should restore the current node field and DFG OSR entry functions should use DeferGCForAWhile instead of DeferGC
https://bugs.webkit.org/show_bug.cgi?id=159064
<rdar://problem/26599119>
Reviewed by Filip Pizlo.
The DFG has a list of m_slowPathLambdas that are code generators it emits
amongst its slow paths. These lambdas, however, did not update the m_currentNode field.
This caused us to use whatever Node happened to be used as the currentNode at the time
we call the slowPathLambda. This means the wrong CallSiteIndex was stored into the call
frame when we made a call. This may lead to a crash if the CallSiteIndex corresponds to
the wrong CodeOrigin. For example, the wrong CodeOrigin could have an InlineCallFrame with
a calleeRecovery that will not be in sync with the current stack state. Trying
to recover that callee will often lead to a crash. The solution is to update
m_currentNode to the DFG::Node* it corresponds to when emitting these slowPathLambdas.
I found this bug because we were inside this bad state when calling an operation
that happened to have a DeferGC. When this DeferGC actually GCed, it would
take a StackTrace, which would lead to a crash because we were updating
ShadowChicken with vm.topCallFrame. It just so happened that the CallSiteIndex
in the call frame in this program corresponded to an InlineCallFrame with a calleeRecover.
However, this CallSiteIndex didn't correspond to the actual state of execution
of the program. I'm adding new options to make reproducing DeferGC related
bugs easier by making DeferGC force a GC according to some probability. To
always have DeferGC force a GC, you can set that probability to 1.
There is a second bug that I discovered after solving the above bug. We were
using DeferGC instead of DeferGCForAWhile in the OSR entry related functions
in the DFG. This would cause us to take a stack trace when the call frame was
in an inconsistent state. For example, the operation would call FTL::prepareOSREntry,
which would replace the DFG CodeBlock in the call frame with the FTL CodeBlock.
However, we wouldn't update the CallSiteIndex to correspond to an FTL CallSiteIndex.
This would lead to a crash when taking a stack trace. The solution is to prevent
stack traces from being taken when the program is in this state by using
DeferGCForAWhie instead of DeferGC.
- dfg/DFGOperations.cpp:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::addSlowPathGenerator):
(JSC::DFG::SpeculativeJIT::runSlowPathGenerators):
- dfg/DFGSpeculativeJIT.h:
- heap/Heap.h:
- heap/HeapInlines.h:
(JSC::Heap::collectIfNecessaryOrDefer):
(JSC::Heap::collectAccordingToDeferGCProbability):
(JSC::Heap::decrementDeferralDepthAndGCIfNeeded):
(JSC::Heap::markListSet):
- runtime/Options.cpp:
(JSC::recomputeDependentOptions):
(JSC::Options::initialize):
- runtime/Options.h:
- tests/stress/slow-path-generator-updating-current-node-dfg.js: Added.
(foo):
(bar):
- 4:22 PM Changeset in webkit [202401] by
-
- 3 edits in trunk/Source/WebCore
Web Inspector: add assertions to catch dangling frontends that persist between tests
https://bugs.webkit.org/show_bug.cgi?id=159073
Reviewed by Joseph Pecoraro.
Based on the analysis in https://webkit.org/b/159070, we suspect that some test
flakiness might be caused by dangling frontends from previous test cases. Add an
assertion that should catch any frontends that are attached to the inspected page's
backend. There should never be any frontends connected when a test first starts.
- inspector/InspectorController.cpp:
(WebCore::InspectorController::setIsUnderTest):
- inspector/InspectorController.h:
- 3:52 PM Changeset in webkit [202400] by
-
- 2 edits in trunk/Source/WTF
REGRESSION (r202380): iOS 9.x internal builds are broken
Follow-up fix for: Enable window.open() for existing versions of Secret Society
<https://webkit.org/b/159049>
<rdar://problem/26528349>
- wtf/spi/darwin/dyldSPI.h: Define DYLD_IOS_VERSION_10_0 when
building on internal SDKs older than iOS 10.
- 3:46 PM Changeset in webkit [202399] by
-
- 26 edits4 adds in trunk
requestFrameAnimation() callback timestamp should be very close to Performance.now()
https://bugs.webkit.org/show_bug.cgi?id=159038
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-06-23
Reviewed by Simon Fraser.
Source/WebCore:
Pass the Performance.now() to requestFrameAnimation() callback. Do not add
the timeUntilOutput which is the difference between outputTime and now since
this addition makes us report a timestamp ahead in the future by almost 33ms.
A new function named "nowTimestamp()" is added to the DOMWindow class. It
calls Performance.now() if WEB_TIMING is enabled, otherwise it calls
monotonicallyIncreasingTime(). The returned timestamp is seconds and it is
relative to the document loading time.
The timestamp passing will be removed all the down till the callers of
ScriptedAnimationController::serviceScriptedAnimations(). The callers will
getting the now timestamp by calling DOMWindow::nowTimestamp().
Tests: animations/animation-callback-timestamp.html
animations/animation-multiple-callbacks-timestamp.html
- dom/Document.cpp:
(WebCore::Document::monotonicTimestamp):
(WebCore::Document::serviceScriptedAnimations):
- dom/Document.h:
- dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::serviceScriptedAnimations):
(WebCore::ScriptedAnimationController::animationTimerFired):
(WebCore::ScriptedAnimationController::displayRefreshFired):
- dom/ScriptedAnimationController.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::getVideoPlaybackQuality):
- loader/DocumentLoadTiming.h:
(WebCore::DocumentLoadTiming::referenceWallTime):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::nowTimestamp):
- page/DOMWindow.h:
- page/FrameView.cpp:
(WebCore::FrameView::serviceScriptedAnimations):
- page/FrameView.h:
- platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
(WebCore::DisplayRefreshMonitor::displayDidRefresh):
- platform/graphics/DisplayRefreshMonitor.h:
(WebCore::DisplayRefreshMonitor::setMonotonicAnimationStartTime): Deleted.
- platform/graphics/DisplayRefreshMonitorClient.cpp:
(WebCore::DisplayRefreshMonitorClient::fireDisplayRefreshIfNeeded):
- platform/graphics/DisplayRefreshMonitorClient.h:
- platform/graphics/GraphicsLayerUpdater.cpp:
(WebCore::GraphicsLayerUpdater::displayRefreshFired):
- platform/graphics/GraphicsLayerUpdater.h:
- platform/graphics/ios/DisplayRefreshMonitorIOS.h:
- platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
(-[WebDisplayLinkHandler handleDisplayLink:]):
(WebCore::DisplayRefreshMonitorIOS::displayLinkFired):
(WebCore::mediaTimeToCurrentTime): Deleted.
- platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
(WebCore::displayLinkCallback):
(WebCore::DisplayRefreshMonitorMac::displayLinkFired):
- platform/graphics/mac/DisplayRefreshMonitorMac.h:
- platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
(WebCore::CompositingCoordinator::syncDisplayState):
(WebCore::CompositingCoordinator::nextAnimationServiceTime):
Source/WebKit2:
- WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.mm:
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::didUpdateLayers):
LayoutTests:
- animations/animation-callback-timestamp-expected.txt: Added.
- animations/animation-callback-timestamp.html: Added.
- animations/animation-multiple-callbacks-timestamp-expected.txt: Added.
- animations/animation-multiple-callbacks-timestamp.html: Added.
- 2:28 PM Changeset in webkit [202398] by
-
- 1 edit1 delete in trunk/Source/WebCore
Remove unused HarfBuzzFaceCoreText.cpp
<https://webkit.org/b/159065>
Reviewed by Myles C. Maxfield.
- platform/graphics/harfbuzz/HarfBuzzFaceCoreText.cpp: Removed.
- 1:55 PM Changeset in webkit [202397] by
-
- 7 edits in trunk/Source/JavaScriptCore
Failing baseline JIT compilation of a code block and then trying to compile it from OSR from DFG/FTL will corrupt the CodeBlock
https://bugs.webkit.org/show_bug.cgi?id=158806
Reviewed by Saam Barati.
If we try to compile a CodeBlock that we already tried compiling in the past then we need
to clean up the data structures that were partly filled in by the failed compile. That
causes some races, since the DFG may be trying to parse those data structures while we are
clearing them. This patch introduces such a clean-up (CodeBlock::resetJITData()) and fixes
the races.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::getStubInfoMap):
(JSC::CodeBlock::getCallLinkInfoMap):
(JSC::CodeBlock::getByValInfoMap):
(JSC::CodeBlock::getCallLinkInfoForBytecodeIndex):
(JSC::CodeBlock::resetJITData):
(JSC::CodeBlock::visitOSRExitTargets):
(JSC::CodeBlock::setSteppingMode):
(JSC::CodeBlock::addRareCaseProfile):
(JSC::CodeBlock::rareCaseProfileForBytecodeOffset):
(JSC::CodeBlock::rareCaseProfileCountForBytecodeOffset):
(JSC::CodeBlock::resultProfileForBytecodeOffset):
(JSC::CodeBlock::specialFastCaseProfileCountForBytecodeOffset):
(JSC::CodeBlock::couldTakeSpecialFastCase):
(JSC::CodeBlock::ensureResultProfile):
- bytecode/CodeBlock.h:
(JSC::CodeBlock::getFromAllValueProfiles):
(JSC::CodeBlock::numberOfRareCaseProfiles):
(JSC::CodeBlock::numberOfResultProfiles):
(JSC::CodeBlock::numberOfArrayProfiles):
(JSC::CodeBlock::arrayProfiles):
(JSC::CodeBlock::addRareCaseProfile): Deleted.
(JSC::CodeBlock::specialFastCaseProfileCountForBytecodeOffset): Deleted.
(JSC::CodeBlock::couldTakeSpecialFastCase): Deleted.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::makeSafe):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::methodOfGettingAValueProfileFor):
- jit/JIT.cpp:
(JSC::JIT::link):
- jit/JITWorklist.cpp:
(JSC::JITWorklist::compileNow):
- 1:21 PM Changeset in webkit [202396] by
-
- 2 edits in branches/safari-602.1.38-branch/Source/WebKit2
Merged r202393. rdar://problem/17665473
- 1:16 PM Changeset in webkit [202395] by
-
- 2 edits in trunk/LayoutTests
Land test expectations for rdar://problem/26952627.
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 1:05 PM Changeset in webkit [202394] by
-
- 21 edits in trunk/Source
Web Inspector: Memory Timeline sometimes shows impossible value for bmalloc size (underflowed)
https://bugs.webkit.org/show_bug.cgi?id=158110
<rdar://problem/26498584>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-23
Reviewed by Andreas Kling.
Source/JavaScriptCore:
- heap/Heap.cpp:
(JSC::Heap::willStartCollection):
(JSC::Heap::didFinishCollection):
- heap/Heap.h:
(JSC::Heap::externalMemorySize):
- heap/HeapInlines.h:
(JSC::Heap::reportExternalMemoryVisited):
Keep count of external memory we visit.
- heap/SlotVisitor.h:
- heap/SlotVisitorInlines.h:
(JSC::SlotVisitor::reportExternalMemoryVisited):
Report external memory visited like we do extra memory, since
it will be some subset of extra memory that is external.
Source/WebCore:
IOSurface memory backing Canvas element buffers should be classified as "GC Owned",
but should not be considered a part of bmalloc. In fact, the actual memory cost is
external to the Web Content Process. The majority of extra memory reporters tend
to report extra memory that is also allocated in bmalloc. However, some report
non-bmalloc memory, such as the IOSurfaces here.
Continue to report the memory cost without changes to inform the Heap for garbage
collection. However, also keep better accounting of GCOwned memory that is external
to the process for better accounting for the Resource Usage overlay and Web Inspector
Memory timeline.
This is a bit of a game where we want to display the best possible number for
"GCOwned memory" in the tools, but some of that memory shows up in the other
regions (bmalloc, system malloc, etc). Already many sizes are estimates
(ReportExtraMemory, reportExtraMemory ignores small allocations), so we just focus
on getting the largest sources of allocations, such as Canvas IOSurfaces here,
into the right bucket. ResourceUsageThreadCocoa continues to subtract the "extra"
memory from bmalloc. So, we should address other large sources of "extra memory"
not in bmalloc. A likely candidate is HTMLMediaElement which uses the deprecated
reporting right now.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- bindings/scripts/IDLAttributes.txt:
Add a way to report External memory, dependent on reporting Extra memory.
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::externalMemoryCost):
- html/HTMLCanvasElement.h:
- html/HTMLCanvasElement.idl:
Report external memory cost just like extra memory.
- page/ResourceUsageData.cpp:
(WebCore::ResourceUsageData::ResourceUsageData):
- page/ResourceUsageData.h:
(WebCore::MemoryCategoryInfo::totalSize):
- page/cocoa/ResourceUsageOverlayCocoa.mm:
(WebCore::RingBuffer::at):
(WebCore::appendDataToHistory):
(WebCore::ResourceUsageOverlay::platformDraw):
- page/cocoa/ResourceUsageThreadCocoa.mm:
(WebCore::categoryForVMTag):
(WebCore::ResourceUsageThread::platformThreadBody):
Do not count the GCOwned External memory as dirty memory.
Include External memory output in the overlay.
- inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::collectSample):
When sizing the JavaScript portion, include both the GC Owned
category's dirty and external memory. Ultimately we will
want this everywhere in case things change.
- platform/graphics/ImageBuffer.cpp:
(WebCore::memoryCost):
(WebCore::externalMemoryCost):
- platform/graphics/ImageBuffer.h:
- platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::memoryCost):
(WebCore::ImageBuffer::externalMemoryCost):
Report IOSurface total bytes as extra memory and external memory
so that it can be tracked as GC Owned memory that is separate from
regular (bmalloc/other) in process memory.
- 12:58 PM Changeset in webkit [202393] by
-
- 2 edits in trunk/Source/WebKit2
[iOS] A WebPageProxy in closed state should not be allowed to hold a process assertion
https://bugs.webkit.org/show_bug.cgi?id=159068
<rdar://problem/17665473>
Reviewed by Tim Horton.
A WebPageProxy in closed state should not be allowed to hold a process assertion. It
currently happens that WebPageProxy::close() gets called but that the WebPageProxy is
kept alive by Safari (e.g. In case of top-hit preloading). In such cases, we fail to
release the foreground process assertion that the WebPageProxy holds.
We should clear the foreground process assertion that the WebPageProxy holds as soon
as WebPageProxy::close() is called.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::close):
- 12:24 PM Changeset in webkit [202392] by
-
- 3 edits in trunk/Tools
[jhbuild] Added libxslt module.
https://bugs.webkit.org/show_bug.cgi?id=159034
Unreviewed, followup for r202373.
- efl/install-dependencies: Removed libxslt
- gtk/install-dependencies: Ditto.
- 12:20 PM Changeset in webkit [202391] by
-
- 12 edits in branches/safari-602.1.38-branch/Source
Merge patch for rdar://problem/26831566.
- 12:17 PM Changeset in webkit [202390] by
-
- 4 edits in trunk
Handle (0, 0) ranges from Lookup
https://bugs.webkit.org/show_bug.cgi?id=159062
rdar://problem/26960385
Reviewed by Tim Horton.
Source/WebCore:
- editing/mac/DictionaryLookup.mm: (WebCore::DictionaryLookup::rangeAtHitTestResult):
Paper over <https://bugs.webkit.org/show_bug.cgi?id=159063>, which seems too involved
to fix now.
LayoutTests:
- platform/mac/TestExpectations: Unmark the test that was broken due to this.
- 12:16 PM Changeset in webkit [202389] by
-
- 3 edits in trunk/Source/WebKit2
[OS X][WK2] Expand sandbox for new mach endpoints
https://bugs.webkit.org/show_bug.cgi?id=159040
<rdar://problem/25238336>
Reviewed by Alexey Proskuryakov.
Grant the WebContent and Networking processes the mach lookup capability for
various Security-related mach endpoints..
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 12:12 PM Changeset in webkit [202388] by
-
- 5 edits in branches/safari-602.1.38-branch/Source
Versioning.
- 12:11 PM Changeset in webkit [202387] by
-
- 5 edits in branches/safari-602.1.38-branch/Source
Versioning.
- 12:07 PM Changeset in webkit [202386] by
-
- 1 copy in branches/safari-602.1.38-branch
New Branch.
- 12:07 PM Changeset in webkit [202385] by
-
- 1 copy in tags/Safari-602.1.38
New tag.
- 11:52 AM Changeset in webkit [202384] by
-
- 12 edits in trunk/Source
Web Inspector: first heap snapshot taken when a page is reloaded happens before the reload navigation
https://bugs.webkit.org/show_bug.cgi?id=158995
<rdar://problem/26923778>
Reviewed by Brian Burg.
Source/WebCore:
When the "Heap" instrument is included in the Timeline list
of instruments, defer starting it in an auto-capture scenario
until after the page does its first navigation.
AutoCapture on the backend happens when it is enabled at
the main resource starts loading. In that case it proceeds
through the following phases:
No Auto Capture:
None
Auto Capture:
BeforeLoad -> FirstNavigation -> AfterFirstNavigation
When toggling instruments for backend initiated capture
most instruments do not care and will just start/stop.
- inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
Inform the TimelineAgent that the main frame navigated.
Do this after informing the HeapAgent (so any potential
snapshot does not get cleared) and PageAgent (so the
frontend knows the page navigated before the agent starts).
- inspector/InspectorTimelineAgent.h:
- inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::internalStop):
(WebCore::InspectorTimelineAgent::mainFrameStartedLoading):
(WebCore::InspectorTimelineAgent::mainFrameNavigated):
Update the auto capture phase transitions.
(WebCore::InspectorTimelineAgent::toggleHeapInstrument):
Only start the heap agent during the None phase (console.profile)
or with the first navigation (auto capture page navigation).
Source/WebInspectorUI:
Let instruments decide to do work or not based on programmatic
(backend initiated) starts and stop.
Programmatic start can happen due to Auto Capture or console.profile.
Programmatic stop can happen due to console.profileEnd.
For example, this allows the frontend to avoid sending agents start/stop
messages when the backend would have already started/stopped the agents.
- UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.startCapturing):
(WebInspector.TimelineManager.prototype.capturingStopped):
(WebInspector.TimelineManager.prototype.autoCaptureStarted):
(WebInspector.TimelineManager.prototype.programmaticCaptureStarted):
Call Recording.start/stop with a programmatic flag so the frontend
instruments can perform a more informed start/stop.
- UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.start):
(WebInspector.TimelineRecording.prototype.stop):
Let the instruments decide to do work based on the start/stop
being initiated by the backend or not.
- UserInterface/Models/HeapAllocationsInstrument.js:
(WebInspector.HeapAllocationsInstrument.prototype.startInstrumentation):
(WebInspector.HeapAllocationsInstrument.prototype.stopInstrumentation):
- UserInterface/Models/Instrument.js:
(WebInspector.Instrument.startLegacyTimelineAgent):
(WebInspector.Instrument.prototype.startInstrumentation):
(WebInspector.Instrument.prototype.stopInstrumentation):
(WebInspector.Instrument):
- UserInterface/Models/MemoryInstrument.js:
(WebInspector.MemoryInstrument.prototype.startInstrumentation):
(WebInspector.MemoryInstrument.prototype.stopInstrumentation):
(WebInspector.MemoryInstrument):
- UserInterface/Models/NetworkInstrument.js:
- UserInterface/Models/ScriptInstrument.js:
(WebInspector.ScriptInstrument.prototype.startInstrumentation):
(WebInspector.ScriptInstrument.prototype.stopInstrumentation):
(WebInspector.ScriptInstrument):
Avoid sending start/stop tracking messages when programmatic.
This still allows the instruments to do their own frontend tracking,
such as the Heap agent triggering periodic snapshots.
- 11:52 AM Changeset in webkit [202383] by
-
- 24 edits3 copies in trunk/Source
Web Inspector: Snapshots should be cleared at some point
https://bugs.webkit.org/show_bug.cgi?id=157907
<rdar://problem/26373610>
Reviewed by Timothy Hatcher.
Source/JavaScriptCore:
- heap/HeapSnapshotBuilder.h:
- heap/HeapSnapshotBuilder.cpp:
(JSC::HeapSnapshotBuilder::resetNextAvailableObjectIdentifier):
Provide a way to reset the object identifier counter.
- inspector/agents/InspectorHeapAgent.h:
- inspector/agents/InspectorHeapAgent.cpp:
(Inspector::InspectorHeapAgent::clearHeapSnapshots):
Make clearHeapSnapshots protected, so it can be called from a
a PageHeapAgent on page navigations.
Source/WebCore:
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- inspector/InspectorAllInOne.cpp:
New specialized agent.
- inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
Construct a specialized HeapAgent.
- inspector/PageHeapAgent.h:
- inspector/PageHeapAgent.cpp:
(WebCore::PageHeapAgent::PageHeapAgent):
(WebCore::PageHeapAgent::enable):
(WebCore::PageHeapAgent::disable):
(WebCore::PageHeapAgent::mainFrameNavigated):
Clear backend snapshots on page navigations.
Set the PageHeapAgent instrumenting agent on enable/disable.
- inspector/InstrumentingAgents.cpp:
(WebCore::InstrumentingAgents::reset):
- inspector/InstrumentingAgents.h:
(WebCore::InstrumentingAgents::pageHeapAgent):
(WebCore::InstrumentingAgents::setPageHeapAgent):
Active PageHeapAgent.
- inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
Inform the PageHeapAgent when the mainframe navigates.
Source/WebInspectorUI:
Invalidate HeapSnapshotProxy objects when the page navigates.
This allows us to clear our frontend data for the snapshots.
When a snapshot is invalidated, it is disabled in the UI.
This means you cannot select the snapshot or see content
views for the snapshot. If you are in a snapshot when it is
invalidated, you are taken out to the snapshot list.
- UserInterface/Main.html:
New files.
- UserInterface/Proxies/HeapSnapshotProxy.js:
(WebInspector.HeapSnapshotProxy):
(WebInspector.HeapSnapshotProxy.invalidateSnapshotProxies):
(WebInspector.HeapSnapshotProxy.prototype.get invalid):
(WebInspector.HeapSnapshotProxy.prototype._invalidate):
Keep track of valid snapshots, and provide a static method to invalidate them.
(WebInspector.HeapSnapshotProxy.prototype.updateForCollectionEvent):
(WebInspector.HeapSnapshotProxy.prototype.allocationBucketCounts):
(WebInspector.HeapSnapshotProxy.prototype.instancesWithClassName):
(WebInspector.HeapSnapshotProxy.prototype.update):
(WebInspector.HeapSnapshotProxy.prototype.nodeWithIdentifier):
UI should only act on valid snapshots.
- UserInterface/Proxies/HeapSnapshotDiffProxy.js:
(WebInspector.HeapSnapshotDiffProxy.prototype.get invalid):
(WebInspector.HeapSnapshotDiffProxy.prototype.updateForCollectionEvent):
(WebInspector.HeapSnapshotDiffProxy.prototype.allocationBucketCounts):
(WebInspector.HeapSnapshotDiffProxy.prototype.instancesWithClassName):
(WebInspector.HeapSnapshotDiffProxy.prototype.update):
(WebInspector.HeapSnapshotDiffProxy.prototype.nodeWithIdentifier):
UI should only act on valid snapshots.
- UserInterface/Proxies/HeapSnapshotWorkerProxy.js:
(WebInspector.HeapSnapshotWorkerProxy.prototype._mainResourceDidChange):
Invalidate and discard snapshots when the main frame navigates.
(WebInspector.HeapSnapshotWorkerProxy.prototype._handleMessage):
(WebInspector.HeapSnapshotWorkerProxy):
- UserInterface/Workers/HeapSnapshot/HeapSnapshotWorker.js:
(HeapSnapshotWorker.prototype.clearSnapshots):
(HeapSnapshotWorker.prototype._handleMessage):
(HeapSnapshotWorker):
A message may come in for a snapshot before it has been cleared.
If that is the case, the object may not exist. Return an error so
that the callback can be deleted on the calling side.
- UserInterface/Views/HeapAllocationsTimelineDataGridNodePathComponent.js:
(WebInspector.HeapAllocationsTimelineDataGridNodePathComponent.prototype.get previousSibling):
(WebInspector.HeapAllocationsTimelineDataGridNodePathComponent.prototype.get nextSibling):
(WebInspector.HeapAllocationsTimelineDataGridNodePathComponent):
Don't show invalid snapshots in page component picker.
- UserInterface/Views/HeapAllocationsTimelineOverviewGraph.css:
(.timeline-overview-graph.heap-allocations > img.snapshot.invalid):
- UserInterface/Views/HeapAllocationsTimelineDataGridNode.js:
(WebInspector.HeapAllocationsTimelineDataGridNode):
(WebInspector.HeapAllocationsTimelineDataGridNode.prototype.createCellContent):
(WebInspector.HeapAllocationsTimelineDataGridNode.prototype.createCells):
(WebInspector.HeapAllocationsTimelineDataGridNode.prototype._heapSnapshotInvalidated):
Give invalid snapshots an invalidated appearance in the snapshot list.
- UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js:
(WebInspector.HeapAllocationsTimelineOverviewGraph.prototype.layout):
- UserInterface/Views/HeapAllocationsTimelineView.css:
(.timeline-view.heap-allocations > .data-grid tr.invalid):
(.timeline-view.heap-allocations > .data-grid:not(:focus, .force-focus) tr.selected.invalid):
Give invalid snapshots an invalidated appearance in the overview graph.
- UserInterface/Views/HeapAllocationsTimelineView.js:
(WebInspector.HeapAllocationsTimelineView):
(WebInspector.HeapAllocationsTimelineView.prototype.get selectionPathComponents):
(WebInspector.HeapAllocationsTimelineView.prototype.closed):
(WebInspector.HeapAllocationsTimelineView.prototype._heapSnapshotCollectionEvent.updateHeapSnapshotForEvent):
(WebInspector.HeapAllocationsTimelineView.prototype._heapSnapshotCollectionEvent):
(WebInspector.HeapAllocationsTimelineView.prototype._heapSnapshotInvalidated):
(WebInspector.HeapAllocationsTimelineView.prototype._updateCompareHeapSnapshotButton):
(WebInspector.HeapAllocationsTimelineView.prototype._dataGridNodeSelected):
Handle interactions when snapshots in the list are invalidated.
- 11:43 AM Changeset in webkit [202382] by
-
- 3 edits2 adds in trunk
CSSComputedStyleDeclaration::length should recalculate styles if needed to provide the correct value
https://bugs.webkit.org/show_bug.cgi?id=159053
<rdar://problem/26638119>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-23
Reviewed by Simon Fraser.
Source/WebCore:
Test: fast/css/variables/custom-property-computed-style-length-update.html
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::length):
LayoutTests:
- fast/css/variables/custom-property-computed-style-length-update-expected.txt: Added.
- fast/css/variables/custom-property-computed-style-length-update.html: Added.
- 9:56 AM Changeset in webkit [202381] by
-
- 3 edits in trunk/Source/WebKit2
Unreviewed, rolling out r201194.
https://bugs.webkit.org/show_bug.cgi?id=159059
Not needed for iOS (Requested by bfulgham on #webkit).
Reverted changeset:
"[OS X][WK2] Expand sandbox for new mach endpoints"
https://bugs.webkit.org/show_bug.cgi?id=157919
http://trac.webkit.org/changeset/201194
- 9:35 AM Changeset in webkit [202380] by
-
- 9 edits in trunk/Source
Source/WebCore:
Enable window.open() for existing versions of Secret Society
https://bugs.webkit.org/show_bug.cgi?id=159049
<rdar://problem/26528349>
Reviewed by Andy Estes.
The Secret Society Hidden Mystery app has a broken version check treating iOS 10
as iOS 1 on iPads. Therefore it believes it can use window.open() in a tap
handler. We should allow the existing versions of the app to do this to not break
them.
No new tests. Tested manually in the app.
- page/DOMWindow.cpp:
(WebCore::DOMWindow::allowPopUp):
Now checks with Settings whether it should allow a popup even though it is
not processing a user gesture.
- page/Settings.in:
Added setting allowWindowOpenWithoutUserGesture.
- platform/RuntimeApplicationChecks.h:
- platform/RuntimeApplicationChecks.mm:
(WebCore::IOSApplication::isTheSecretSocietyHiddenMystery):
Added.
Source/WebKit/mac:
Enable window.open() for existing versions of Secret Society app
https://bugs.webkit.org/show_bug.cgi?id=159049
<rdar://problem/26528349>
Reviewed by Andy Estes.
The Secret Society Hidden Mystery app has a broken version check treating iOS 10
as iOS 1 on iPads. Therefore it believes it can use window.open() in a tap
handler. We should allow the existing versions of the app to do this to not break
them.
- WebView/WebView.mm:
(shouldAllowWindowOpenWithoutUserGesture):
Added.
(shouldConvertInvalidURLsToBlank):
Changed hex number to constant DYLD_IOS_VERSION_10_0.
Source/WTF:
Enable window.open() for existing versions of Secret Society
https://bugs.webkit.org/show_bug.cgi?id=159049
<rdar://problem/26528349>
Reviewed by Andy Estes.
The Secret Society Hidden Mystery app has a broken version check treating iOS 10
as iOS 1 on iPads. Therefore it believes it can use window.open() in a tap
handler. We should allow the existing versions of the app to do this to not break
them.
- wtf/spi/darwin/dyldSPI.h:
Added DYLD_IOS_VERSION_10_0.
- 9:03 AM Changeset in webkit [202379] by
-
- 3 edits in trunk/Source/WebCore
Only call sqlite3_initialize() when a SQLite database is actually being opened
https://bugs.webkit.org/show_bug.cgi?id=159033
Reviewed by Brady Eidson.
Only call sqlite3_initialize() when a SQLite database is actually being opened
instead of doing it unconditionally. sqlite3_initialize() was previously called
in the SQLiteDatabase constructor which gets called on WebContent process
initialization because a DatabaseTracker is constructed on initialization and
DatabaseTracker has a SQLiteDatabase data member.
- platform/sql/SQLiteDatabase.cpp:
(WebCore::initializeSQLiteIfNecessary):
(WebCore::SQLiteDatabase::open):
(WebCore::SQLiteDatabase::SQLiteDatabase): Deleted.
- platform/sql/SQLiteDatabase.h:
- 8:10 AM Changeset in webkit [202378] by
-
- 2 edits in trunk/Source/WebCore
WebRTC: Align 'update ICE connection/gathering state' steps with the WebRTC 1.0 specification
https://bugs.webkit.org/show_bug.cgi?id=159054
Reviewed by Eric Carlson.
Add checks for same state and closed RTCPeerConnection in the 'update ICE connection state'
and 'update ICE gathering state' routines as described in [1].
[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#update-ice-gathering-state
No change in current behavior.
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::updateIceGatheringState):
(WebCore::RTCPeerConnection::updateIceConnectionState):
- 8:05 AM Changeset in webkit [202377] by
-
- 2 edits2 adds in trunk/Tools
[EFL] Bump gstreamer version from 1.6.3 to 1.8.0
https://bugs.webkit.org/show_bug.cgi?id=159050
Patch by Gyuyoung Kim <gyuyoung.kim@samsung.com> on 2016-06-23
Reviewed by Antonio Gomes.
To be sync with GTK port, this patch bumps gstreamer version for EFL port.
- efl/jhbuild.modules:
- efl/patches/gst-plugins-good-Revert-qtdemux-expose-streams-with-first-moof-for-fr.patch: Added.
- efl/patches/gst-plugins-good-use-the-tfdt-decode-time.patch: Added.
- 6:52 AM Changeset in webkit [202376] by
-
- 12 edits2 adds in trunk
WebRTC: Add support for RTCPeerConnection legacy MediaStream-based API
https://bugs.webkit.org/show_bug.cgi?id=158940
Reviewed by Eric Carlson.
Source/WebCore:
Implement the legacy MediaStream-based RTCPeerConnection API as JS built-ins. The
getRemoteStreams() function and the 'addstream' event are partly implemented with native
code.
Test: fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::setRemoteDescriptionTask):
(WebCore::MediaEndpointPeerConnection::getRemoteStreams):
The getRemoteStreams() function and the 'addstream' event is backed up by native code.
- Modules/mediastream/MediaEndpointPeerConnection.h:
- Modules/mediastream/MediaStream.idl:
- Modules/mediastream/PeerConnectionBackend.h:
- Modules/mediastream/RTCPeerConnection.h:
- Modules/mediastream/RTCPeerConnection.idl:
- Modules/mediastream/RTCPeerConnection.js:
(initializeRTCPeerConnection):
(getLocalStreams):
(getRemoteStreams):
(getStreamById):
(addStream):
(removeStream):
Legacy API implemented as JS built-ins.
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
- bindings/js/WebCoreBuiltinNames.h:
LayoutTests:
Add test for RTCPeerConnection legacy MediaStream-based API.
- fast/mediastream/RTCPeerConnection-legacy-stream-based-api-expected.txt: Added.
- fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html: Added.
- platform/mac/TestExpectations:
Skip test for mac port (not building with WEB_RTC yet)
- 3:08 AM Changeset in webkit [202375] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening.
Update test expectations for passing accessibility tests after r202149,
and fix style issues in test expectations file.
- platform/win/TestExpectations:
- 3:08 AM Changeset in webkit [202374] by
-
- 1 copy in releases/WebKitGTK/webkit-2.13.2
WebKitGTK+ 2.13.2
- 2:51 AM Changeset in webkit [202373] by
-
- 3 edits in trunk/Tools
[jhbuild] Added libxslt module.
https://bugs.webkit.org/show_bug.cgi?id=159034
Reviewed by Michael Catanzaro.
- efl/jhbuild.modules:
- gtk/jhbuild.modules:
- 2:16 AM Changeset in webkit [202372] by
-
- 4 edits in trunk
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.13.2 release.
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit2:
- gtk/NEWS: Add release notes for 2.13.2.
- 1:50 AM Changeset in webkit [202371] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Fix the build with CSS Shapes disabled.
- css/StyleBuilderConverter.h:
- 12:23 AM Changeset in webkit [202370] by
-
- 3 edits in trunk/Source/WebCore
[Soup] Clean up SocketStreamHandle soup implementation
https://bugs.webkit.org/show_bug.cgi?id=159024
Reviewed by Žan Doberšek.
Stop using a global HashMap to "acivate"/"deactivate" handles, and just take a reference of the handle and
pass the ownership to the callbacks, using a GCancellable to cancel all async operations.
- platform/network/soup/SocketStreamHandle.h:
(WebCore::SocketStreamHandle::create):
(WebCore::SocketStreamHandle::id): Deleted.
- platform/network/soup/SocketStreamHandleSoup.cpp:
(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore::SocketStreamHandle::connected):
(WebCore::SocketStreamHandle::connectedCallback):
(WebCore::SocketStreamHandle::readBytes):
(WebCore::SocketStreamHandle::readReadyCallback):
(WebCore::SocketStreamHandle::didFail):
(WebCore::SocketStreamHandle::platformSend):
(WebCore::SocketStreamHandle::platformClose):
(WebCore::SocketStreamHandle::beginWaitingForSocketWritability):
(WebCore::SocketStreamHandle::writeReadyCallback):
(WebCore::getHandleFromId): Deleted.
(WebCore::deactivateHandle): Deleted.
(WebCore::activateHandle): Deleted.
(WebCore::SocketStreamHandle::~SocketStreamHandle): Deleted.
(WebCore::connectedCallback): Deleted.
(WebCore::readReadyCallback): Deleted.
(WebCore::writeReadyCallback): Deleted.
Jun 22, 2016:
- 11:44 PM Changeset in webkit [202369] by
-
- 3 edits in trunk/Tools
[Win] Use Windows api function to find top level parent.
https://bugs.webkit.org/show_bug.cgi?id=159021
Reviewed by Brent Fulgham.
Delete findTopLevelParent function, and use Win32 function GetAncestor instead.
- DumpRenderTree/win/UIDelegate.cpp:
(UIDelegate::runModal):
(findTopLevelParent): Deleted.
- MiniBrowser/win/PrintWebUIDelegate.cpp:
(PrintWebUIDelegate::runModal):
(findTopLevelParent): Deleted.
- 11:33 PM Changeset in webkit [202368] by
-
- 6 edits in trunk
[Win] The test storage/indexeddb/modern/handle-user-delete.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=158934
Reviewed by Brent Fulgham.
Source/WebKit/win:
Add a method to delete all indexed databases.
- Interfaces/IWebDatabaseManager.idl:
- WebDatabaseManager.cpp:
(WebDatabaseManager::QueryInterface):
(WebDatabaseManager::deleteAllIndexedDatabases):
- WebDatabaseManager.h:
Tools:
DumpRenderTree should also delete indexed databases when clearAllDatabases() is called.
- DumpRenderTree/win/TestRunnerWin.cpp:
(TestRunner::clearAllDatabases):
- 11:10 PM Changeset in webkit [202367] by
-
- 3 edits in trunk/Source/WebKit2
REGRESSION(r201880): WebSockets based remote inspector is broken since r201880
https://bugs.webkit.org/show_bug.cgi?id=158613
Reviewed by Michael Catanzaro.
In r201880 SocketStreamHandleClient was modified to receive references instead of
pointers. WebSocketServerConnection also implements SocketStreamHandleClient but since it's doesn't use
override, it was unnoticed and not updated, so we ended up using the default empty implementation instead of
the WebSocketServerConnection one.
- UIProcess/InspectorServer/WebSocketServerConnection.cpp:
(WebKit::WebSocketServerConnection::WebSocketServerConnection):
(WebKit::WebSocketServerConnection::setSocketHandle):
(WebKit::WebSocketServerConnection::shutdownNow):
(WebKit::WebSocketServerConnection::didCloseSocketStream):
(WebKit::WebSocketServerConnection::didReceiveSocketStreamData):
(WebKit::WebSocketServerConnection::didUpdateBufferedAmount):
(WebKit::WebSocketServerConnection::didFailSocketStream): Deleted.
- UIProcess/InspectorServer/WebSocketServerConnection.h:
- 10:46 PM Changeset in webkit [202366] by
-
- 2 edits in trunk/Tools
run-javascriptcore-tests should have some environment variables for commonly used settings
https://bugs.webkit.org/show_bug.cgi?id=159047
Reviewed by Keith Miller.
This patch adds three environment variables that run-javascriptcore-tests
consults:
- RUN_JAVASCRIPTCORE_TESTS_TESTAPI can be set to 'true' or 'false'. It determines if we should run the api tests or not.
- RUN_JAVASCRIPTCORE_TESTS_BUILD can be set to 'true' or 'false'. It determines if we will perform a build or not before running the tests. to set the default should-build setting.
- RUN_JAVASCRIPTCORE_TESTS_EXTRA_TESTS can be set to a directory or to a yaml file. If set, we will run the extra tests it refers to.
All the values in these environment variables will be overridden if an
option is explicitly passed in. For example, the following will run
the api tests:
RUN_JAVASCRIPTCORE_TESTS_TESTAPI=false run-javascriptcore-tests --testapi
- Scripts/run-javascriptcore-tests:
- 9:01 PM Changeset in webkit [202365] by
-
- 2 edits in trunk/Source/WebKit2
[iOS][WK2] Expand sandbox to read voice services preferences
https://bugs.webkit.org/show_bug.cgi?id=159046
<rdar://problem/26926722>
Reviewed by Alexey Proskuryakov.
Expand the sandbox to permit read-only access to voice services preferences.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 8:24 PM Changeset in webkit [202364] by
-
- 9 edits2 adds in trunk
TypeProfiler and TypeProfilerLog don't play nicely with the concurrent JIT
https://bugs.webkit.org/show_bug.cgi?id=159037
<rdar://problem/26935349>
Reviewed by Benjamin Poulain.
Source/JavaScriptCore:
The primary focus of this patch is to make the concurrent
baseline JIT work with the type profiler. We were clearing
the type profiler log on the background baseline compiler
thread which lead to bad things happening. This patch fixes
this by processing the log before we launch the compile on
a background thread.
Secondly, I audited the type profiler code inside the DFG,
and found that we were doing some racy things. I haven't
seen any crashes because of these things, but it is possible
that they exist. We were grabbing a RefPtr to a TypeSet,
even though TypeSet was RefCounted and not ThreadSafeRefCounted.
This patch makes TypeSet ThreadSafeRefCounted. We were
also copying a StructureSet while the execution thread could
be augmenting the StructureSet. This patch puts changes to
TypeSet's StructureSet behind a ConcurrentJITLock.
I've also added two more large running tests that run with the
type profiler enabled. These are here just to catch any major bugs
in the type profiler implementation.
- jit/JIT.cpp:
(JSC::JIT::compileWithoutLinking):
(JSC::JIT::privateCompile):
(JSC::JIT::privateCompileExceptionHandlers):
(JSC::JIT::doMainThreadPreparationBeforeCompile):
(JSC::JIT::frameRegisterCountFor):
- jit/JIT.h:
(JSC::JIT::compile):
- jit/JITWorklist.cpp:
(JSC::JITWorklist::Plan::Plan):
(JSC::JITWorklist::Plan::compileInThread):
- runtime/TypeSet.cpp:
(JSC::TypeSet::addTypeInformation):
(JSC::TypeSet::invalidateCache):
- runtime/TypeSet.h:
(JSC::TypeSet::create):
(JSC::TypeSet::isEmpty):
(JSC::TypeSet::seenTypes):
(JSC::TypeSet::structureSet):
- tests/typeProfiler/deltablue-for-of.js: Added.
- tests/typeProfiler/getter-richards.js: Added.
Tools:
Run typeProfiler.yaml tests under an additional CJIT enabled mode.
- Scripts/run-jsc-stress-tests:
- 6:39 PM Changeset in webkit [202363] by
-
- 20 edits1 add in trunk/Source/JavaScriptCore
We should have a DFG intrinsic that checks if a value is a TypedArrayView
https://bugs.webkit.org/show_bug.cgi?id=159048
Reviewed by Saam Barati.
This patch adds a new DFG Intrinsic that checks if a value is a TypedArrayView.
The intrinsic, IsTypedArrayView, works in the same way that the other Is<insert-type>
DFG nodes work. Additionally, a new builtin function isTypedArrayView has been added.
These changes are needed to fix regressions in %TypedArray%.prototype.subarray.
- builtins/BuiltinNames.h:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNodeType.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileIsTypedArrayView):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileIsTypedArrayView):
(JSC::FTL::DFG::LowerDFGToB3::isTypedArrayView):
- runtime/Intrinsic.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- runtime/JSTypedArrayViewPrototype.cpp:
(JSC::typedArrayViewPrivateFuncIsTypedArrayView):
- runtime/JSTypedArrayViewPrototype.h:
- tests/stress/istypedarrayview-intrinsic.js: Added.
(makeFn):
(typedArrays.forEach):
(let.test):
(test):
- 6:13 PM Changeset in webkit [202362] by
-
- 88 edits in trunk/Tools
Fix style issues in webkitpy
https://bugs.webkit.org/show_bug.cgi?id=159019
Reviewed by Daniel Bates.
Fixed the formatting issues as reported by check-webkit-style in webkitpy.
There is no functionality change.
Only affected file names retained below for brevity.
- Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:
- Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver_factory.py:
- Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:
- Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:
- Scripts/webkitpy/benchmark_runner/utils.py:
- Scripts/webkitpy/common/checkout/changelog.py:
- Scripts/webkitpy/common/checkout/changelog_unittest.py:
- Scripts/webkitpy/common/checkout/checkout.py:
- Scripts/webkitpy/common/checkout/checkout_mock.py:
- Scripts/webkitpy/common/checkout/checkout_unittest.py:
- Scripts/webkitpy/common/checkout/commitinfo.py:
- Scripts/webkitpy/common/checkout/commitinfo_unittest.py:
- Scripts/webkitpy/common/checkout/diff_parser_unittest.py:
- Scripts/webkitpy/common/checkout/scm/scm.py:
- Scripts/webkitpy/common/checkout/scm/scm_unittest.py:
- Scripts/webkitpy/common/config/committers_unittest.py:
- Scripts/webkitpy/common/config/irc.py:
- Scripts/webkitpy/common/config/ports.py:
- Scripts/webkitpy/common/config/ports_unittest.py:
- Scripts/webkitpy/common/config/urls.py:
- Scripts/webkitpy/common/host_mock.py:
- Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
- Scripts/webkitpy/common/net/bugzilla/bugzilla_unittest.py:
- Scripts/webkitpy/common/net/buildbot/buildbot.py:
- Scripts/webkitpy/common/net/buildbot/buildbot_mock.py:
- Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py:
- Scripts/webkitpy/common/net/credentials_unittest.py:
- Scripts/webkitpy/common/net/irc/ircproxy_unittest.py:
- Scripts/webkitpy/common/net/networktransaction_unittest.py:
- Scripts/webkitpy/common/net/statusserver.py:
- Scripts/webkitpy/common/system/autoinstall.py:
- Scripts/webkitpy/common/system/crashlogs_unittest.py:
- Scripts/webkitpy/common/system/executive.py:
- Scripts/webkitpy/common/system/executive_mock.py:
- Scripts/webkitpy/common/system/executive_unittest.py:
- Scripts/webkitpy/common/system/filesystem_mock.py:
- Scripts/webkitpy/common/system/filesystem_unittest.py:
- Scripts/webkitpy/common/system/logutils_unittest.py:
- Scripts/webkitpy/common/system/path.py:
- Scripts/webkitpy/common/system/path_unittest.py:
- Scripts/webkitpy/common/system/platforminfo.py:
- Scripts/webkitpy/common/system/user.py:
- Scripts/webkitpy/common/system/user_unittest.py:
- Scripts/webkitpy/common/system/workspace_unittest.py:
- Scripts/webkitpy/common/thread/threadedmessagequeue.py:
- Scripts/webkitpy/common/thread/threadedmessagequeue_unittest.py:
- Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py:
- Scripts/webkitpy/layout_tests/controllers/manager.py:
- Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:
- Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:
- Scripts/webkitpy/layout_tests/lint_test_expectations_unittest.py:
- Scripts/webkitpy/layout_tests/models/test_configuration.py:
- Scripts/webkitpy/layout_tests/models/test_expectations.py:
- Scripts/webkitpy/layout_tests/models/test_failures.py:
- Scripts/webkitpy/layout_tests/models/test_run_results.py:
- Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
- Scripts/webkitpy/layout_tests/views/metered_stream_unittest.py:
- Scripts/webkitpy/layout_tests/views/printing.py:
- Scripts/webkitpy/performance_tests/perftestsrunner.py:
- Scripts/webkitpy/performance_tests/perftestsrunner_integrationtest.py:
- Scripts/webkitpy/port/base_unittest.py:
- Scripts/webkitpy/port/driver.py:
- Scripts/webkitpy/port/driver_unittest.py:
- Scripts/webkitpy/port/factory.py:
- Scripts/webkitpy/port/gtk.py:
- Scripts/webkitpy/port/server_process_unittest.py:
- Scripts/webkitpy/port/test.py:
- Scripts/webkitpy/port/win.py:
- Scripts/webkitpy/style/checker.py:
- Scripts/webkitpy/style/checkers/common_unittest.py:
- Scripts/webkitpy/style/checkers/cpp.py:
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
- Scripts/webkitpy/style/checkers/js.py:
- Scripts/webkitpy/style/checkers/jsonchecker.py:
- Scripts/webkitpy/style/checkers/png.py:
- Scripts/webkitpy/style/checkers/text.py:
- Scripts/webkitpy/style/checkers/text_unittest.py:
- Scripts/webkitpy/style/error_handlers.py:
- Scripts/webkitpy/style/filter.py:
- Scripts/webkitpy/style/filter_unittest.py:
- Scripts/webkitpy/style/optparser.py:
- Scripts/webkitpy/style/optparser_unittest.py:
- Scripts/webkitpy/test/main.py:
- Scripts/webkitpy/w3c/test_converter.py:
- Scripts/webkitpy/w3c/test_converter_unittest.py:
- Scripts/webkitpy/w3c/test_importer_unittest.py:
- Scripts/webkitpy/xcode/simulator.py:
- 5:19 PM Changeset in webkit [202361] by
-
- 3 edits in trunk/Source/WebKit2
Add SPI to allow creating a WKCertificateInfoRef from a SecTrustRef
https://bugs.webkit.org/show_bug.cgi?id=159025
Patch by Sam Weinig <sam@webkit.org> on 2016-06-22
Reviewed by Tim Horton.
- Shared/API/c/mac/WKCertificateInfoMac.h:
- Shared/API/c/mac/WKCertificateInfoMac.mm:
(WKCertificateInfoCreateWithServerTrust):
- 5:14 PM Changeset in webkit [202360] by
-
- 2 edits in trunk/LayoutTests
Test expectations gardening for rdar://problem/26960385
- platform/mac/TestExpectations:
- 4:46 PM Changeset in webkit [202359] by
-
- 12 edits1 add in trunk
DatabaseProcess doesn't handle WebProcesses going away uncleanly.
https://bugs.webkit.org/show_bug.cgi?id=158894
Reviewed by Alex Christensen.
Source/WebCore:
No new tests (Covered by additions to existing API test).
- Modules/indexeddb/server/IDBConnectionToClient.cpp:
(WebCore::IDBServer::IDBConnectionToClient::registerDatabaseConnection):
(WebCore::IDBServer::IDBConnectionToClient::unregisterDatabaseConnection):
(WebCore::IDBServer::IDBConnectionToClient::connectionToClientClosed):
- Modules/indexeddb/server/IDBConnectionToClient.h:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::unregisterConnection): Call connectionToClientClosed() on
the connection, which cleans up after it in the server.
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection):
Source/WebKit2:
- DatabaseProcess/DatabaseToWebProcessConnection.cpp:
(WebKit::DatabaseToWebProcessConnection::didClose):
- DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:
(WebKit::WebIDBConnectionToClient::disconnectedFromWebProcess): Actually unregister this connection
from the IDBServer so it can clean up.
(WebKit::WebIDBConnectionToClient::~WebIDBConnectionToClient):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess-2.html:
- TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess-3.html: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess.mm:
- 4:35 PM Changeset in webkit [202358] by
-
- 21 edits12 adds in trunk
AX: Add support for CSS4 :focus-within pseudo
https://bugs.webkit.org/show_bug.cgi?id=140144
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-22
Reviewed by Antti Koivisto.
Source/WebCore:
Tests: fast/css/pseudo-focus-within-basics.html
fast/css/pseudo-focus-within-inside-shadow-dom.html
fast/css/pseudo-focus-within-style-sharing-1.html
fast/css/pseudo-focus-within-style-sharing-2.html
fast/selectors/focus-within-style-update.html
- css/CSSSelector.cpp:
(WebCore::CSSSelector::selectorText):
- css/CSSSelector.h:
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
- css/SelectorPseudoClassAndCompatibilityElementMap.in:
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasFocusWithin):
- dom/ContainerNode.cpp:
(WebCore::destroyRenderTreeIfNeeded):
- dom/Element.cpp:
(WebCore::Element::~Element):
(WebCore::Element::setFocus):
(WebCore::Element::unregisterNamedFlowContentElement):
(WebCore::Element::setIsNamedFlowContentElement):
(WebCore::Element::clearIsNamedFlowContentElement):
(WebCore::Element::setStyleAffectedByFocusWithin):
(WebCore::Element::rareDataStyleAffectedByFocusWithin):
(WebCore::Element::rareDataIsNamedFlowContentElement):
- dom/Element.h:
(WebCore::Element::hasFocusWithin):
(WebCore::Element::styleAffectedByFocusWithin):
(WebCore::Element::isNamedFlowContentElement):
(WebCore::Element::setHasFocusWithin):
- dom/ElementRareData.h:
(WebCore::ElementRareData::styleAffectedByFocusWithin):
(WebCore::ElementRareData::setStyleAffectedByFocusWithin):
(WebCore::ElementRareData::isNamedFlowContentElement):
(WebCore::ElementRareData::setIsNamedFlowContentElement):
(WebCore::ElementRareData::ElementRareData):
(WebCore::ElementRareData::resetComputedStyle):
- dom/Node.h:
(WebCore::Node::flagHasFocusWithin):
(WebCore::Node::isNamedFlowContentNode): Deleted.
(WebCore::Node::setIsNamedFlowContentNode): Deleted.
(WebCore::Node::clearIsNamedFlowContentNode): Deleted.
- rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::clearContentElements):
(WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):
(WebCore::RenderNamedFlowThread::unregisterNamedFlowContentElement):
(WebCore::nextNodeInsideContentElement):
- style/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateElementRenderer):
- style/StyleRelations.cpp:
(WebCore::Style::commitRelationsToRenderStyle):
(WebCore::Style::commitRelations):
- style/StyleRelations.h:
- style/StyleSharingResolver.cpp:
(WebCore::Style::SharingResolver::canShareStyleWithElement):
LayoutTests:
- fast/css/css-selector-text-expected.txt:
- fast/css/css-selector-text.html:
- fast/css/css-set-selector-text-expected.txt:
- fast/css/css-set-selector-text.html:
- fast/css/pseudo-focus-within-basics-expected.html: Added.
- fast/css/pseudo-focus-within-basics.html: Added.
- fast/css/pseudo-focus-within-inside-shadow-dom-expected.html: Added.
- fast/css/pseudo-focus-within-inside-shadow-dom.html: Added.
- fast/css/pseudo-focus-within-style-sharing-1-expected.html: Added.
- fast/css/pseudo-focus-within-style-sharing-1.html: Added.
- fast/css/pseudo-focus-within-style-sharing-2-expected.html: Added.
- fast/css/pseudo-focus-within-style-sharing-2.html: Added.
- fast/selectors/focus-within-style-update-expected.txt: Added.
- fast/selectors/focus-within-style-update.html: Added.
- 4:31 PM Changeset in webkit [202357] by
-
- 5 edits in trunk/Source/WebKit2
Stop using PassRefPtr in ShareableResource
https://bugs.webkit.org/show_bug.cgi?id=159043
Reviewed by Alex Christensen.
Stop using PassRefPtr in ShareableResource.
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::store):
- NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord):
- Shared/ShareableResource.cpp:
(WebKit::shareableResourceDeallocate):
(WebKit::ShareableResource::wrapInSharedBuffer):
(WebKit::ShareableResource::Handle::tryWrapInSharedBuffer):
(WebKit::ShareableResource::create):
(WebKit::ShareableResource::map):
(WebKit::ShareableResource::ShareableResource):
- Shared/ShareableResource.h:
- 4:23 PM Changeset in webkit [202356] by
-
- 3 edits in trunk/Source/WebCore
Integrate WebKit's CFURLConnection with App Transport Security
https://bugs.webkit.org/show_bug.cgi?id=159039
<rdar://problem/26953685>
Reviewed by Alex Christensen.
Pass additional options to NSURLConnect initialiser to identify that
this connection is for WebKit content loading.
- platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::createNSURLConnection):
- 3:56 PM Changeset in webkit [202355] by
-
- 2 edits in trunk/Tools
Update animometer.plan
https://bugs.webkit.org/show_bug.cgi?id=159012
Reviewed by Ryosuke Niwa.
- Scripts/webkitpy/benchmark_runner/data/plans/animometer.plan: Update to r202318.
- 3:52 PM Changeset in webkit [202354] by
-
- 3 edits2 adds in trunk
REGRESSION: Double tap to zoom does not work on yahoo finance
https://bugs.webkit.org/show_bug.cgi?id=158886
<rdar://problem/24917760>
Reviewed by Simon Fraser.
Source/WebKit2:
We shouldn't enable fast click on pages that have
had to shrink to fit. In other words, we should enable
double-tap-to-zoom if the page has already zoomed.
Test: fast/events/ios/viewport-shrink-to-fit-allows-double-tap.html
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _allowsDoubleTapGestures]):
LayoutTests:
- fast/events/ios/viewport-shrink-to-fit-allows-double-tap-expected.txt: Added.
- fast/events/ios/viewport-shrink-to-fit-allows-double-tap.html: Added.
- 3:19 PM Changeset in webkit [202353] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: don't start auto capturing if the Inspector window is not visible
https://bugs.webkit.org/show_bug.cgi?id=159014
Reviewed by Joseph Pecoraro.
<rdar://problem/26931269>
Followup, add a missing super.closed() call mentioned in review comments.
- UserInterface/Views/TimelineTabContentView.js:
(WebInspector.TimelineTabContentView.prototype.closed):
- 3:05 PM Changeset in webkit [202352] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: don't start auto capturing if the Inspector window is not visible
https://bugs.webkit.org/show_bug.cgi?id=159014
<rdar://problem/26931269>
Reviewed by Joseph Pecoraro.
TimelineTabContentView should not tell the timeline manager to enable
auto-capturing unless the Web Inspector UI is visible. If it is preloaded
but not shown to the user, then auto-capturing may inadvertently disable
the debugger, causing it to missdebuggerstatements and not bring the
inspector to front.
- UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.set autoCaptureOnPageLoad):
Bail out if nothing changed. Coerce to a boolean since the backend requires a boolean.
- UserInterface/Views/TimelineTabContentView.js:
(WebInspector.TimelineTabContentView): Listen for UI visibility changes.
(WebInspector.TimelineTabContentView.prototype.shown):
Enable auto-capturing if the UI is visible.
(WebInspector.TimelineTabContentView.prototype.closed): Added.
Remove listeners on global objects so this tab doesn't leak.
(WebInspector.TimelineTabContentView.prototype._inspectorVisibilityChanged):
Update the auto-capturing setting if the UI became visible or not visible.
- 2:41 PM Changeset in webkit [202351] by
-
- 4 edits in trunk/Source/WebKit2
Web Automation: Automation.inspectBrowsingContext should have an option to enable timeline auto-capturing
https://bugs.webkit.org/show_bug.cgi?id=159004
<rdar://problem/26931269>
Reviewed by Joseph Pecoraro.
Automation.inspectBrowsingContext was added to make it easier to hit breakpoints inside of
code evaluated using Automation.evaluateJavaScriptFunction. I recently changed the behavior
of this command to automatically start profiling the page as soon as the inspector attached
so that a full timeline recording could be obtained. However, starting a timeline recording
turns off the debugger, so this command is not so useful for debugging right now.
Add a new option, enableAutoCapturing, to the inspectBrowsingContext command. Don't toggle
profiling automatically unless this optional flag is present and set to true.
- UIProcess/Automation/Automation.json:
- UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::inspectBrowsingContext):
(WebKit::WebAutomationSession::inspectorFrontendLoaded): Deleted.
- UIProcess/Automation/WebAutomationSession.h:
- 2:17 PM Changeset in webkit [202350] by
-
- 8 edits in trunk/Source/WebCore
Adopt commitPriority to get rid of the 2 AVPL solution for PiP
https://bugs.webkit.org/show_bug.cgi?id=158949
rdar://problem/26867866
Reviewed by Simon Fraser.
No new tests because there is no behavior change. This reverts changes from
https://bugs.webkit.org/show_bug.cgi?id=158148 and instead uses -[CAContext commitPriority:]
to prevent flicker when moving a layer between contexts.
commitPriority allows the layer to be added to the destination context before it is
removed from the source context.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: remove m_secondaryVideoLayer.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: ditto
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenGravity): ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::syncTextTrackBounds): ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity): ditto.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: ditto
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer): ditto
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: ditto
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createPreviewLayers):ditto
- platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.h: ditto
- platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.mm: ditto
(WebCore::VideoFullscreenLayerManager::setVideoLayer): ditto
(WebCore::VideoFullscreenLayerManager::setVideoFullscreenLayer): ditto and adopt commitPriority.
(WebCore::VideoFullscreenLayerManager::setVideoFullscreenFrame): ditto
(WebCore::VideoFullscreenLayerManager::setVideoLayers): Deleted.
(WebCore::VideoFullscreenLayerManager::didDestroyVideoLayer): remove m_secondaryVideoLayer.
- platform/spi/cocoa/QuartzCoreSPI.h: Add commitPriority.
- 2:06 PM Changeset in webkit [202349] by
-
- 68 edits20 copies22 adds1 delete in trunk/LayoutTests
Test gardening for css3/line-break-language-sensitive
https://bugs.webkit.org/show_bug.cgi?id=159017
Unreviewed.
Some reftests had content which ended up outside of the viewport. This patch
splits that extra content out into separate tests.
In addition, this test migrates these tests to using a web font, so the results
of this test are not sensitive to platform-specific font fallback.
Because of the migration to the web font, css3/line-break-language-sensitive is
no longer needed.
- TestExpectations:
- css3/line-break-language-sensitive/line-break-auto-centered-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-auto-centered.html: Removed.
- css3/line-break-language-sensitive/line-break-auto-half-kana-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-auto-half-kana.html: Removed.
- css3/line-break-language-sensitive/line-break-auto-hyphens.html: Removed.
- css3/line-break-language-sensitive/line-break-auto-inseparables-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-auto-inseparables.html: Removed.
- css3/line-break-language-sensitive/line-break-auto-iteration-marks-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-auto-iteration-marks.html: Removed.
- css3/line-break-language-sensitive/line-break-auto-postfixes.html: Removed.
- css3/line-break-language-sensitive/line-break-auto-prefixes-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-auto-prefixes.html: Removed.
- css3/line-break-language-sensitive/line-break-auto-sound-marks-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-auto-sound-marks.html: Removed.
- css3/line-break-language-sensitive/line-break-loose-centered.html: Removed.
- css3/line-break-language-sensitive/line-break-loose-half-kana-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-loose-half-kana.html: Removed.
- css3/line-break-language-sensitive/line-break-loose-hyphens.html: Removed.
- css3/line-break-language-sensitive/line-break-loose-inseparables-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-loose-inseparables.html: Removed.
- css3/line-break-language-sensitive/line-break-loose-iteration-marks.html: Removed.
- css3/line-break-language-sensitive/line-break-loose-postfixes.html: Removed.
- css3/line-break-language-sensitive/line-break-loose-prefixes-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-loose-prefixes.html: Removed.
- css3/line-break-language-sensitive/line-break-loose-sound-marks-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-loose-sound-marks.html: Removed.
- css3/line-break-language-sensitive/line-break-normal-centered-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-normal-centered.html: Removed.
- css3/line-break-language-sensitive/line-break-normal-half-kana-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-normal-half-kana.html: Removed.
- css3/line-break-language-sensitive/line-break-normal-hyphens-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-normal-hyphens.html: Removed.
- css3/line-break-language-sensitive/line-break-normal-inseparables-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-normal-inseparables.html: Removed.
- css3/line-break-language-sensitive/line-break-normal-iteration-marks.html: Removed.
- css3/line-break-language-sensitive/line-break-normal-postfixes.html: Removed.
- css3/line-break-language-sensitive/line-break-normal-prefixes-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-normal-prefixes.html: Removed.
- css3/line-break-language-sensitive/line-break-normal-sound-marks-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-normal-sound-marks.html: Removed.
- css3/line-break-language-sensitive/line-break-strict-centered-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-strict-centered.html: Removed.
- css3/line-break-language-sensitive/line-break-strict-half-kana-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-strict-half-kana.html: Removed.
- css3/line-break-language-sensitive/line-break-strict-hyphens.html: Removed.
- css3/line-break-language-sensitive/line-break-strict-inseparables-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-strict-inseparables.html: Removed.
- css3/line-break-language-sensitive/line-break-strict-iteration-marks-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-strict-iteration-marks.html: Removed.
- css3/line-break-language-sensitive/line-break-strict-postfixes.html: Removed.
- css3/line-break-language-sensitive/line-break-strict-prefixes-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-strict-prefixes.html: Removed.
- css3/line-break-language-sensitive/line-break-strict-sound-marks-expected.html: Removed.
- css3/line-break-language-sensitive/line-break-strict-sound-marks.html: Removed.
- css3/line-break/line-break-auto-centered-2-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-strict-hyphens-expected.html.
- css3/line-break/line-break-auto-centered-2.html: Added.
- css3/line-break/line-break-auto-centered-expected.html:
- css3/line-break/line-break-auto-centered.html:
- css3/line-break/line-break-auto-half-kana-2-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-loose-postfixes-expected.html.
- css3/line-break/line-break-auto-half-kana-2.html: Added.
- css3/line-break/line-break-auto-half-kana-3-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-loose-postfixes-expected.html.
- css3/line-break/line-break-auto-half-kana-3.html: Added.
- css3/line-break/line-break-auto-half-kana-4-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-strict-postfixes-expected.html.
- css3/line-break/line-break-auto-half-kana-4.html: Added.
- css3/line-break/line-break-auto-half-kana-5-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-auto-postfixes-expected.html.
- css3/line-break/line-break-auto-half-kana-5.html: Added.
- css3/line-break/line-break-auto-half-kana-expected.html:
- css3/line-break/line-break-auto-half-kana.html:
- css3/line-break/line-break-auto-hyphens-expected.html:
- css3/line-break/line-break-auto-hyphens.html:
- css3/line-break/line-break-auto-inseparables-expected.html:
- css3/line-break/line-break-auto-inseparables.html:
- css3/line-break/line-break-auto-iteration-marks-expected.html:
- css3/line-break/line-break-auto-iteration-marks.html:
- css3/line-break/line-break-auto-postfixes-expected.html:
- css3/line-break/line-break-auto-postfixes.html:
- css3/line-break/line-break-auto-prefixes-expected.html:
- css3/line-break/line-break-auto-prefixes.html:
- css3/line-break/line-break-auto-sound-marks-expected.html:
- css3/line-break/line-break-auto-sound-marks.html:
- css3/line-break/line-break-loose-centered-2-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-loose-hyphens-expected.html.
- css3/line-break/line-break-loose-centered-2.html: Added.
- css3/line-break/line-break-loose-centered-expected.html:
- css3/line-break/line-break-loose-centered.html:
- css3/line-break/line-break-loose-half-kana-2-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-loose-postfixes-expected.html.
- css3/line-break/line-break-loose-half-kana-2.html: Added.
- css3/line-break/line-break-loose-half-kana-3-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-loose-postfixes-expected.html.
- css3/line-break/line-break-loose-half-kana-3.html: Added.
- css3/line-break/line-break-loose-half-kana-4-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-loose-centered-expected.html.
- css3/line-break/line-break-loose-half-kana-4.html: Added.
- css3/line-break/line-break-loose-half-kana-5-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-loose-iteration-marks-expected.html.
- css3/line-break/line-break-loose-half-kana-5.html: Added.
- css3/line-break/line-break-loose-half-kana-expected.html:
- css3/line-break/line-break-loose-half-kana.html:
- css3/line-break/line-break-loose-hyphens-expected.html:
- css3/line-break/line-break-loose-hyphens.html:
- css3/line-break/line-break-loose-inseparables-expected.html:
- css3/line-break/line-break-loose-inseparables.html:
- css3/line-break/line-break-loose-iteration-marks-expected.html:
- css3/line-break/line-break-loose-iteration-marks.html:
- css3/line-break/line-break-loose-postfixes-expected.html:
- css3/line-break/line-break-loose-postfixes.html:
- css3/line-break/line-break-loose-prefixes-expected.html:
- css3/line-break/line-break-loose-prefixes.html:
- css3/line-break/line-break-loose-sound-marks-expected.html:
- css3/line-break/line-break-loose-sound-marks.html:
- css3/line-break/line-break-normal-centered-2-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-normal-iteration-marks-expected.html.
- css3/line-break/line-break-normal-centered-2.html: Added.
- css3/line-break/line-break-normal-centered-expected.html:
- css3/line-break/line-break-normal-centered.html:
- css3/line-break/line-break-normal-half-kana-2-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-loose-postfixes-expected.html.
- css3/line-break/line-break-normal-half-kana-2.html: Added.
- css3/line-break/line-break-normal-half-kana-3-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-loose-postfixes-expected.html.
- css3/line-break/line-break-normal-half-kana-3.html: Added.
- css3/line-break/line-break-normal-half-kana-4-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-loose-postfixes-expected.html.
- css3/line-break/line-break-normal-half-kana-4.html: Added.
- css3/line-break/line-break-normal-half-kana-5-expected.html: Copied from LayoutTests/css3/line-break/line-break-loose-postfixes-expected.html.
- css3/line-break/line-break-normal-half-kana-5.html: Added.
- css3/line-break/line-break-normal-half-kana-expected.html:
- css3/line-break/line-break-normal-half-kana.html:
- css3/line-break/line-break-normal-hyphens-expected.html:
- css3/line-break/line-break-normal-hyphens.html:
- css3/line-break/line-break-normal-inseparables-expected.html:
- css3/line-break/line-break-normal-inseparables.html:
- css3/line-break/line-break-normal-iteration-marks-expected.html:
- css3/line-break/line-break-normal-iteration-marks.html:
- css3/line-break/line-break-normal-postfixes-expected.html:
- css3/line-break/line-break-normal-postfixes.html:
- css3/line-break/line-break-normal-prefixes-expected.html:
- css3/line-break/line-break-normal-prefixes.html:
- css3/line-break/line-break-normal-sound-marks-expected.html:
- css3/line-break/line-break-normal-sound-marks.html:
- css3/line-break/line-break-strict-centered-2-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-auto-hyphens-expected.html.
- css3/line-break/line-break-strict-centered-2.html: Added.
- css3/line-break/line-break-strict-centered-expected.html:
- css3/line-break/line-break-strict-centered.html:
- css3/line-break/line-break-strict-half-kana-2-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-normal-postfixes-expected.html.
- css3/line-break/line-break-strict-half-kana-2.html: Added.
- css3/line-break/line-break-strict-half-kana-3-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-strict-postfixes-expected.html.
- css3/line-break/line-break-strict-half-kana-3.html: Added.
- css3/line-break/line-break-strict-half-kana-4-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-normal-postfixes-expected.html.
- css3/line-break/line-break-strict-half-kana-4.html: Added.
- css3/line-break/line-break-strict-half-kana-5-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-normal-postfixes-expected.html.
- css3/line-break/line-break-strict-half-kana-5.html: Added.
- css3/line-break/line-break-strict-half-kana-expected.html:
- css3/line-break/line-break-strict-half-kana.html:
- css3/line-break/line-break-strict-hyphens-expected.html:
- css3/line-break/line-break-strict-hyphens.html:
- css3/line-break/line-break-strict-inseparables-expected.html:
- css3/line-break/line-break-strict-inseparables.html:
- css3/line-break/line-break-strict-iteration-marks-expected.html:
- css3/line-break/line-break-strict-iteration-marks.html:
- css3/line-break/line-break-strict-postfixes-expected.html:
- css3/line-break/line-break-strict-postfixes.html:
- css3/line-break/line-break-strict-prefixes-expected.html:
- css3/line-break/line-break-strict-prefixes.html:
- css3/line-break/line-break-strict-sound-marks-expected.html:
- css3/line-break/line-break-strict-sound-marks.html:
- css3/line-break/resources/AllAhem.svg: Added.
- platform/ios-simulator/TestExpectations:
- platform/mac/TestExpectations:
- 1:44 PM Changeset in webkit [202348] by
-
- 6 edits2 adds in trunk
REGRESSION (r201629): Weird button glitching on github.com
https://bugs.webkit.org/show_bug.cgi?id=159031
rdar://problem/26880332
Reviewed by Tim Horton.
Source/WebCore:
r201629 changed the logic slightly when creating an image buffer for a scaled context;
it set the buffer context's scale to the scale in the source context, but this failed
to take into account the rounding up of the buffer size, which the old code did.
Fix by reverting to the old behavior.
Since buffer sizes can only be integral, changed compatibleBufferSize() to return
an IntSize.
Test: fast/backgrounds/scaled-gradient-background.html
- platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::createCompatibleBuffer):
(WebCore::ImageBuffer::compatibleBufferSize):
- platform/graphics/ImageBuffer.h:
- platform/graphics/IntRect.h:
(WebCore::IntRect::area):
- platform/graphics/IntSize.h:
(WebCore::IntSize::area): Make this return an unsigned.
LayoutTests:
- fast/backgrounds/scaled-gradient-background-expected.html: Added.
- fast/backgrounds/scaled-gradient-background.html: Added.
- 1:39 PM Changeset in webkit [202347] by
-
- 10 edits in trunk/Source/WebKit2
Mail snapshot has black webview in multitasking switcher
https://bugs.webkit.org/show_bug.cgi?id=159036
<rdar://problem/25972938>
Reviewed by Simon Fraser.
There is a window of time between an application going into the background
and SpringBoard's snapshotting mechanism completing where it is possible
(though difficult, timing-wise) for RemoteLayerBackingStoreCollection to
make still-needed surfaces volatile (and, even worse, for them to get emptied).
UIKit suggested instead waiting for the window context teardown notification,
which does indeed seem to fire after the snapshotting is complete.
This may have the convenient side effect of making the volatility timer
repeat fewer times in general, because it is now started closer to the
last time that the surfaces will be in-use.
- UIProcess/ApplicationStateTracker.h:
- UIProcess/ApplicationStateTracker.mm:
(WebKit::ApplicationStateTracker::ApplicationStateTracker):
(WebKit::ApplicationStateTracker::~ApplicationStateTracker):
(WebKit::ApplicationStateTracker::applicationDidFinishSnapshottingAfterEnteringBackground):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentView.mm:
(-[WKContentView didMoveToWindow]):
(-[WKContentView _applicationDidFinishSnapshottingAfterEnteringBackground]):
- UIProcess/ios/WKPDFView.mm:
(-[WKPDFView didMoveToWindow]):
(-[WKPDFView _applicationDidFinishSnapshottingAfterEnteringBackground]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::applicationDidEnterBackground):
(WebKit::WebPage::applicationDidFinishSnapshottingAfterEnteringBackground):
- 1:38 PM Changeset in webkit [202346] by
-
- 4 edits2 adds1 delete in trunk/Source/WebKit
Move the WebKitLegacy Apple Pay code to the open source repository
https://bugs.webkit.org/show_bug.cgi?id=159035
Reviewed by Tim Horton.
Source/WebKit:
- WebKit.xcodeproj/project.pbxproj:
Source/WebKit/mac:
- WebCoreSupport/WebPaymentCoordinatorClient.h: Added.
- WebCoreSupport/WebPaymentCoordinatorClient.mm: Added.
(WebPaymentCoordinatorClient::WebPaymentCoordinatorClient):
(WebPaymentCoordinatorClient::~WebPaymentCoordinatorClient):
(WebPaymentCoordinatorClient::supportsVersion):
(WebPaymentCoordinatorClient::canMakePayments):
(WebPaymentCoordinatorClient::canMakePaymentsWithActiveCard):
(WebPaymentCoordinatorClient::showPaymentUI):
(WebPaymentCoordinatorClient::completeMerchantValidation):
(WebPaymentCoordinatorClient::completeShippingMethodSelection):
(WebPaymentCoordinatorClient::completeShippingContactSelection):
(WebPaymentCoordinatorClient::completePaymentMethodSelection):
(WebPaymentCoordinatorClient::completePaymentSession):
(WebPaymentCoordinatorClient::abortPaymentSession):
(WebPaymentCoordinatorClient::mainFrameDestroyed):
- WebKitAdditions.mm: Removed.
- WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
- 1:00 PM Changeset in webkit [202345] by
-
- 7 edits in trunk/Source/WebCore
Inline the last of the Apple Pay WebCore code
https://bugs.webkit.org/show_bug.cgi?id=159032
Reviewed by Tim Horton.
- loader/EmptyClients.cpp:
(WebCore::fillWithEmptyClients):
- page/MainFrame.cpp:
(WebCore::MainFrame::MainFrame):
- page/MainFrame.h:
- page/PageConfiguration.h:
- platform/cocoa/ThemeCocoa.mm:
(WebCore::passKitBundle):
(WebCore::loadPassKitPDFPage):
(WebCore::applePayButtonLogoBlack):
(WebCore::applePayButtonLogoWhite):
(WebCore::drawApplePayButton):
(WebCore::ThemeCocoa::drawNamedImage):
- 12:36 PM Changeset in webkit [202344] by
-
- 2 edits in trunk/LayoutTests
Test expectation gardening for rdar://problem/26950065
- platform/mac/TestExpectations:
- 12:25 PM Changeset in webkit [202343] by
-
- 2 edits in trunk/LayoutTests
Test expectation gardening.
- platform/mac/TestExpectations:
- 12:10 PM Changeset in webkit [202342] by
-
- 2 edits in trunk/Source/WebCore
Exception is not thrown when shipping method is an invalid amount
https://bugs.webkit.org/show_bug.cgi?id=159030
rdar://problem/26700413
Reviewed by Tim Horton.
- Modules/applepay/ApplePaySession.cpp:
(WebCore::createShippingMethods):
Bail if createShippingMethod returns Nullopt.
(WebCore::createPaymentRequest):
Bail if createShippingMethods returns Nullopt.
- 11:43 AM Changeset in webkit [202341] by
-
- 4 edits in trunk/Source/WebCore
Exception is not thrown when shipping method is an invalid amount
https://bugs.webkit.org/show_bug.cgi?id=159029
rdar://problem/26700413
Reviewed by Tim Horton.
- Modules/applepay/PaymentRequest.h:
Change ShippingMethod::amount to be a signed 64-bit integer.
- Modules/applepay/PaymentRequestValidator.cpp:
(WebCore::PaymentRequestValidator::validate):
Call validateShippingMethods.
(WebCore::PaymentRequestValidator::validateShippingMethods):
Validate all the shipping methods.
(WebCore::PaymentRequestValidator::validateShippingMethod):
Check that the amount is >= 0.
- Modules/applepay/PaymentRequestValidator.h:
Add new members.
- 11:20 AM Changeset in webkit [202340] by
-
- 7 edits1 add in trunk
W3C test importer should generate files to ignore by WebKit SCM
https://bugs.webkit.org/show_bug.cgi?id=142743
Patch by Youenn Fablet <youenn.fablet@crf.canon.fr> on 2016-06-22
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- resources/TestRepositories: Added the option to generate .gitignore and init.py for wpt repo.
- web-platform-tests/.gitignore: Regeneration changes the order of the ignored files and removes the init.py which is now committed to WebKit trunk.
- web-platform-tests/init.py: Added.
Tools:
TestDownloader generates the .gitignore file according submodules git repository information.
TestImporter requests the generation of .gitignore and the main init.py according LayoutTests/imported/w3c/resources/TestRepositories options.
- Scripts/webkitpy/w3c/test_downloader.py:
(TestDownloader.generate_gitignore): Generating .gitignore according submodules description.
- Scripts/webkitpy/w3c/test_importer.py:
(TestImporter.process_test_repositories_import_options): Added the generation of .gitignore/init.py if the repo has the right option.
(TestImporter):
(TestImporter.write_init_py): Writing not empty init.py files.
(TestImporter.import_tests): Using of write_init_py.
- Scripts/webkitpy/w3c/test_importer_unittest.py:
(TestImporterTest.test_git_ignore_generation): Added .gitignore test.
(TestImporterTest):
(TestImporterTest.test_initpy_generation): Added init.py test.
- 11:15 AM Changeset in webkit [202339] by
-
- 9 edits2 adds in trunk
WebRTC: Add support for the negotiationneeded event in MediaEndpointPeerConnection
https://bugs.webkit.org/show_bug.cgi?id=158985
Source/WebCore:
Reviewed by Eric Carlson.
Implement MediaEndpointPeerConnection's isNegotiationNeeded, markAsNeedingNegotiation and
clearNegotiationNeededState functions. The calls to these functions are already up-to-date.
Test: fast/mediastream/RTCPeerConnection-more-media-to-negotiate.html
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::markAsNeedingNegotiation):
- Modules/mediastream/MediaEndpointPeerConnection.h:
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::scheduleNegotiationNeededEvent):
LayoutTests:
Add tests for the RTCPeerConnection negotiationneeded event.
Reviewed by Eric Carlson.
- fast/mediastream/RTCPeerConnection-more-media-to-negotiate-expected.txt: Added.
- fast/mediastream/RTCPeerConnection-more-media-to-negotiate.html: Added.
Verify that a negotiationneeded event is fired when not all local media can be included in
an answer. (The answerer cannot reply with more m-lines than the offer had to begin with.)
- fast/mediastream/RTCPeerConnection-onnegotiationneeded-expected.txt:
- fast/mediastream/RTCPeerConnection-onnegotiationneeded.html:
Verify that a negotiationneeded event is fired when tracks are added and removed from an
RTCPeerConnection.
- platform/gtk/TestExpectations:
Unskip fast/mediastream/RTCPeerConnection-onnegotiationneeded.html.
- platform/mac/TestExpectations:
The mac port does not build with WEB_RTC enabled yet.
- 11:14 AM Changeset in webkit [202338] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
imported/w3c/web-platform-tests/streams/readable-streams/general.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=155760
Patch by Youenn Fablet <youennf@gmail.com> on 2016-06-22
Reviewed by Alexey Proskuryakov.
Making test more predictable.
Upstreamed to w3c repository as https://github.com/w3c/web-platform-tests/pull/3203.
- web-platform-tests/streams/readable-streams/general.js:
(promise_test):
- 11:12 AM Changeset in webkit [202337] by
-
- 7 edits1 delete in trunk/Source/WebCore
WebRTC: Replace RTCPeerConnection custom constructor with a JS built-in constructor
https://bugs.webkit.org/show_bug.cgi?id=158832
Reviewed by Eric Carlson and Youenn Fablet.
Use a JS built-in constructor instead of a custom constructor. This makes it easier to
initialize private fields for functions implemented as JS built-ins. The constructor
behavior is in need of updating, but that is left to a follow-up change [1].
[1] http://webkit.org/b/158936
No change in behavior.
- CMakeLists.txt:
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::create):
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::~RTCPeerConnection):
(WebCore::RTCPeerConnection::initializeWith):
- Modules/mediastream/RTCPeerConnection.h:
- Modules/mediastream/RTCPeerConnection.idl:
- Modules/mediastream/RTCPeerConnection.js:
(initializeRTCPeerConnection):
Add JS built-in constructor function.
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSRTCPeerConnectionCustom.cpp: Removed.
(WebCore::constructJSRTCPeerConnection): Deleted.
- 11:11 AM Changeset in webkit [202336] by
-
- 3 edits in trunk/Source/WebCore
CrossOriginPreflightChecker should call DocumentThreadableLoader preflightFailure instead of didFailLoading
https://bugs.webkit.org/show_bug.cgi?id=158984
Patch by Youenn Fablet <youenn@apple.com> on 2016-06-22
Reviewed by Darin Adler.
No change of behavior.
Calling DocumentThreadableLoader preflightFailure instead of didFailLoading for any preflight error case.
- loader/CrossOriginPreflightChecker.cpp:
(WebCore::CrossOriginPreflightChecker::notifyFinished): Directly calling preflightFailure callback.
(WebCore::CrossOriginPreflightChecker::doPreflight): Ditto.
(WebCore::CrossOriginPreflightChecker::handleLoadingFailure): Deleted.
(WebCore::CrossOriginPreflightChecker::redirectReceived): Deleted (should have been removed as part of
https://bugs.webkit.org/show_bug.cgi?id=111008).
- loader/CrossOriginPreflightChecker.h:
- 11:10 AM Changeset in webkit [202335] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Simplify CSS rule for ContentBrowser navigation bar items
https://bugs.webkit.org/show_bug.cgi?id=159000
Reviewed by Timothy Hatcher.
- UserInterface/Views/ContentBrowser.css:
(.content-browser > .navigation-bar > .item):
Both these values result in 28px, but100%is simplier.
- 10:50 AM Changeset in webkit [202334] by
-
- 5 edits in trunk
JSDOMIterator forEach should support second optional parameter
https://bugs.webkit.org/show_bug.cgi?id=159020
Patch by Youenn Fablet <youennf@gmail.com> on 2016-06-22
Reviewed by Chris Dumez.
Source/WebCore:
Covered by beefed up test.
- bindings/js/JSDOMIterator.h:
(WebCore::iteratorForEach): Setting callback thisValue to the second argument passed to forEach.
LayoutTests:
- fast/dom/nodeListIterator-expected.txt:
- fast/dom/nodeListIterator.html: Adding 'thisValue' various checks.
- 10:16 AM Changeset in webkit [202333] by
-
- 3 edits in trunk/Source/WebCore
Media controls stop working after exiting PiP
https://bugs.webkit.org/show_bug.cgi?id=159026
<rdar://problem/26753579>
Reviewed by Eric Carlson.
Do not slave setting WebVideoFullscreenModelVideoElement::setVideoElement() to
WebPlaybackSessionModelVideoElement::setMediaElement(). After all, someone else
(i.e., the media controls) may still be using it.
- platform/cocoa/WebVideoFullscreenModelVideoElement.mm:
(WebVideoFullscreenModelVideoElement::setVideoElement): Deleted.
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
(WebVideoFullscreenControllerContext::didCleanupFullscreen):
(WebVideoFullscreenControllerContext::setUpFullscreen):
- 10:14 AM Changeset in webkit [202332] by
-
- 2 edits in trunk/Source/WebCore
Update document's isPlayingMedia() state whenever media element's media state changes
https://bugs.webkit.org/show_bug.cgi?id=159018
<rdar://problem/26586630>
Reviewed by Beth Dakin.
The Document can end up with a stale m_mediaState if its own value isn't updated when
its constituent HTMLMediaElement's m_mediaStates change.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateMediaState):
- 10:00 AM Changeset in webkit [202331] by
-
- 6 edits in trunk/Source/WebKit2
Add logging related to process assertions to help debug process suspension issues
https://bugs.webkit.org/show_bug.cgi?id=159001
Reviewed by Antti Koivisto.
Add logging related to process assertions to help debug process suspension issues.
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::didChangeIsLoading):
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcessProxy::setIsHoldingLockedFiles):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateActivityToken):
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::setIsHoldingLockedFiles):
- 9:58 AM Changeset in webkit [202330] by
-
- 2 edits in trunk/Source/WebCore
Crash under GraphicsLayerCA::recursiveCommitChanges() with deep layer trees
https://bugs.webkit.org/show_bug.cgi?id=159023
rdar://problem/25377842
Reviewed by Tim Horton.
Having an on-stack DisplayList::Recorder increased the stack frame size significantly,
causing stack exhaustion with deep layer trees, despite the existing depth check.
Make the Recorder heap-allocated to fix this.
Tested by LayoutTests/compositinglayer-creation/deep-tree.html.
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
- 9:55 AM Changeset in webkit [202329] by
-
- 4 edits1 add in trunk
WKWebView with no WKNavigationDelegate does not follow universal links
<rdar://problem/24374110>
https://bugs.webkit.org/show_bug.cgi?id=158997
Reviewed by Dan Bernstein.
Source/WebKit2:
API Test:
WKWebView.DefaultNavigationDelegate
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
When initializing the WKWebView, set a default navigation client.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewDefaultNavigationDelegate.mm: Added.
Add a new test that shows that we have a default navigation delegate by swizzling
-[NSWorkspace openURL:]. This will only be called if there is a default client.
- 1:59 AM Changeset in webkit [202328] by
-
- 4 edits in trunk/Source/WebCore
[GTK] Add support for variadic parameters to GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=158942
Reviewed by Michael Catanzaro.
Generate code for functions having variadic parameters.
- bindings/scripts/CodeGeneratorGObject.pm:
(GenerateFunction):
(SkipFunction):
- bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_variadic_string_method):
- bindings/scripts/test/GObject/WebKitDOMTestObj.h:
- 1:47 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 1:35 AM Changeset in webkit [202327] by
-
- 3 edits in trunk/Tools
[Win] Implement modal dialog support in MiniBrowser.
https://bugs.webkit.org/show_bug.cgi?id=158976
Reviewed by Brent Fulgham.
- MiniBrowser/win/PrintWebUIDelegate.cpp:
(PrintWebUIDelegate::createWebViewWithRequest):
(getHandleFromWebView):
(PrintWebUIDelegate::webViewClose):
(PrintWebUIDelegate::setFrame):
(PrintWebUIDelegate::webViewFrame):
(PrintWebUIDelegate::canRunModal):
(findTopLevelParent):
(PrintWebUIDelegate::runModal):
(PrintWebUIDelegate::createModalDialog):
- MiniBrowser/win/PrintWebUIDelegate.h:
(PrintWebUIDelegate::webViewClose):
(PrintWebUIDelegate::setFrame):
(PrintWebUIDelegate::webViewFrame):
(PrintWebUIDelegate::canRunModal):
(PrintWebUIDelegate::runModal):
- 12:48 AM Changeset in webkit [202326] by
-
- 5 edits in trunk
window.showModalDialog doesn't work in DumpRenderTree on Windows
https://bugs.webkit.org/show_bug.cgi?id=53675
Reviewed by Brent Fulgham.
Tools:
Implement modal dialog support in DumpRenderTree.
- DumpRenderTree/win/UIDelegate.cpp:
(UIDelegate::canRunModal):
(getHandleFromWebView):
(UIDelegate::createModalDialog):
(findTopLevelParent):
(UIDelegate::runModal):
(UIDelegate::webViewClose):
- DumpRenderTree/win/UIDelegate.h:
LayoutTests:
Update test expectations for modal dialog tests.
- platform/win/TestExpectations:
Jun 21, 2016:
- 10:52 PM Changeset in webkit [202325] by
-
- 2 edits in trunk/LayoutTests
Land test expectations for rdar://problem/26422051.
- platform/mac-wk1/TestExpectations:
- 10:52 PM Changeset in webkit [202324] by
-
- 4 edits4 adds in trunk
:hover CSS pseudo-class sometimes keeps matching ever after mouse has left the element
https://bugs.webkit.org/show_bug.cgi?id=158340
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-21
Reviewed by Simon Fraser.
Source/WebCore:
When removing a hovered subtree from the document, we were getting
into an inconsistent state where m_hoveredElement is in the detached
subtree and we have no way of clearing the existing IsHovered flags.
What happens is:
-The root "a" has an child "b" that is hovered.
-"a" starts being removed from the tree, its renderer is destroyed.
-RenderTreeUpdater::tearDownRenderers() pushes "a" on the teardownStack
and calls hoveredElementDidDetach().
-hoveredElementDidDetach() is called with "a". "a" is not the hovered
element, the function does nothing.
-RenderTreeUpdater::tearDownRenderers() pushes "b" on the teardownStack
and calls hoveredElementDidDetach().
-hoveredElementDidDetach() is called with "b". The next parent with a renderer
is "a", m_hoveredElement is set to "a".
-"a"'s parent is set to nullptr.
-> We have a m_hoveredElement on the root of a detached tree, making
it impossible to clear the real dirty tree.
This patch changes the order in which we clear the flags.
It is done in the order in which we clear the renderers to ensure
the last element with a dead renderer is the last to update m_hoveredElement.
Tests: fast/css/ancestor-of-hovered-element-detached.html
fast/css/ancestor-of-hovered-element-removed.html
- Source/WebCore/style/RenderTreeUpdater.cpp:
LayoutTests:
- fast/css/ancestor-of-hovered-element-detached-expected.txt: Added.
- fast/css/ancestor-of-hovered-element-detached.html: Added.
- fast/css/ancestor-of-hovered-element-removed-expected.txt: Added.
- fast/css/ancestor-of-hovered-element-removed.html: Added.
- 10:47 PM Changeset in webkit [202323] by
-
- 13 edits in trunk
[Fetch API] Rename 'origin-only' referrer policy to 'origin'
https://bugs.webkit.org/show_bug.cgi?id=158982
Patch by Youenn Fablet <youennf@gmail.com> on 2016-06-21
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Renaming origin-only to origin.
- web-platform-tests/fetch/api/cors/cors-preflight-referrer-expected.txt:
- web-platform-tests/fetch/api/cors/cors-preflight-referrer-worker-expected.txt:
- web-platform-tests/fetch/api/cors/cors-preflight-referrer.js:
- web-platform-tests/fetch/api/request/request-clone.sub.html:
- web-platform-tests/fetch/api/request/request-idl.html:
- web-platform-tests/fetch/api/request/request-init-001.sub-expected.txt:
- web-platform-tests/fetch/api/request/request-init-001.sub.html:
- web-platform-tests/fetch/api/request/request-init-003.sub.html:
Source/WebCore:
Covered by updated tests.
- Modules/fetch/FetchRequest.cpp:
(WebCore::setReferrerPolicy): Renaming origin-only to origin.
- Modules/fetch/FetchRequest.idl: Ditto.
- loader/FetchOptions.h: Ditto.
- 10:42 PM Changeset in webkit [202322] by
-
- 3 edits in trunk/LayoutTests
Test expectations gardening.
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 10:00 PM Changeset in webkit [202321] by
-
- 2 edits in trunk/Source/WebCore
Let the compiler generate the move constructor and assignment operator for ScriptExecutionContext::Task
https://bugs.webkit.org/show_bug.cgi?id=159013
Reviewed by Brady Eidson.
Let the compiler generate the move constructor and assignment operator for
ScriptExecutionContext::Task. We previously manually defined the move
constructor but there is no need as it doesn't do anything special.
- dom/ScriptExecutionContext.h:
- 8:53 PM Changeset in webkit [202320] by
-
- 2 edits in trunk/Source/WebCore
DumpRenderTree crashed in com.apple.WebCore: WebCore::HTMLSelectElement::updateSelectedState
https://bugs.webkit.org/show_bug.cgi?id=159009
<rdar://problem/23454623>
Reviewed by Jon Lee.
It seems we can get bogus indices from UIKit's implementation
of UIWebSelectMultiplePicker. Guard against this situation.
Covered by running the existing tests in WebKit1 with Guard Malloc,
such as fast/spatial-navigation/snav-multiple-select-optgroup.html
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::updateSelectedState): Early return
if we get an index out of range.
- 8:34 PM Changeset in webkit [202319] by
-
- 57 edits in trunk/Tools
Fix formatting issues reported by check-webkit-style
https://bugs.webkit.org/show_bug.cgi?id=159008
Reviewed by Alexey Proskuryakov.
Fixed the formatting issues as reported by check-webkit-style in webkitpy/tool folder.
There is no functionality change.
- Scripts/webkitpy/tool/bot/irc_command.py:
(Restart.execute):
(Rollout):
- Scripts/webkitpy/tool/bot/ircbot_unittest.py:
(IRCBotTest.test_exception_during_command):
(IRCBotTest.test_exception_during_command.CommandWithException):
(IRCBotTest.test_exception_during_command.CommandWithException.execute):
- Scripts/webkitpy/tool/bot/layouttestresultsreader_unittest.py:
(test_missing_unit_test_results_path):
(test_layout_test_results):
- Scripts/webkitpy/tool/bot/queueengine.py:
- Scripts/webkitpy/tool/bot/queueengine_unittest.py:
- Scripts/webkitpy/tool/commands/abstractsequencedcommand.py:
(AbstractSequencedCommand):
(AbstractSequencedCommand.init):
- Scripts/webkitpy/tool/commands/download.py:
(Land):
- Scripts/webkitpy/tool/commands/openbugs.py:
- Scripts/webkitpy/tool/commands/openbugs_unittest.py:
(OpenBugsTest):
- Scripts/webkitpy/tool/commands/queries.py:
(PatchesToCommitQueue):
(PatchesToCommitQueue.init):
(PatchesToCommitQueue._needs_commit_queue):
- Scripts/webkitpy/tool/commands/queries_unittest.py:
(PrintExpectationsTest.test_platform):
(PrintBaselinesTest):
(PrintBaselinesTest.setUp):
- Scripts/webkitpy/tool/commands/queues.py:
(AbstractQueue):
(AbstractQueue.init):
(AbstractQueue.execute):
- Scripts/webkitpy/tool/commands/queues_unittest.py:
(test_auto_retry):
- Scripts/webkitpy/tool/commands/rebaseline.py:
(AbstractParallelRebaselineCommand._files_to_add):
(AbstractParallelRebaselineCommand):
(AbstractParallelRebaselineCommand._rebaseline):
- Scripts/webkitpy/tool/commands/setupgitclone.py:
(SetupGitClone):
- Scripts/webkitpy/tool/commands/sheriffbot.py:
- Scripts/webkitpy/tool/commands/stepsequence.py:
- Scripts/webkitpy/tool/commands/upload.py:
(PostCommits._comment_text_for_commit):
(PostCommits):
(PostCommits.execute):
(MarkBugFixed):
(MarkBugFixed.init):
- Scripts/webkitpy/tool/commands/upload_unittest.py:
(UploadCommandsTest):
(UploadCommandsTest.test_commit_message_for_current_diff):
- Scripts/webkitpy/tool/grammar_unittest.py:
(GrammarTest):
(GrammarTest.test_join_with_separators):
- Scripts/webkitpy/tool/multicommandtool.py:
(HelpCommand.init):
(HelpCommand):
(HelpCommand._help_epilog):
(HelpCommand._remove_help_options):
(MultiCommandTool):
(MultiCommandTool.init):
(MultiCommandTool.main):
- Scripts/webkitpy/tool/multicommandtool_unittest.py:
(TrivialCommand):
(TrivialCommand.init):
(MultiCommandToolTest):
(MultiCommandToolTest._assert_tool_main_outputs):
(MultiCommandToolTest.test_retry):
(test_command_help):
- Scripts/webkitpy/tool/steps/init.py:
- Scripts/webkitpy/tool/steps/abstractstep.py:
- Scripts/webkitpy/tool/steps/applypatch.py:
- Scripts/webkitpy/tool/steps/applypatchwithlocalcommit.py:
(ApplyPatchWithLocalCommit):
(ApplyPatchWithLocalCommit.options):
- Scripts/webkitpy/tool/steps/build.py:
- Scripts/webkitpy/tool/steps/checkstyle.py:
(CheckStyle):
(CheckStyle.options):
- Scripts/webkitpy/tool/steps/cleanworkingdirectory.py:
- Scripts/webkitpy/tool/steps/closebug.py:
- Scripts/webkitpy/tool/steps/closebugforlanddiff.py:
- Scripts/webkitpy/tool/steps/closebugforlanddiff_unittest.py:
(CloseBugForLandDiffTest):
(CloseBugForLandDiffTest.test_empty_state):
- Scripts/webkitpy/tool/steps/closepatch.py:
- Scripts/webkitpy/tool/steps/commit.py:
(Commit.run):
- Scripts/webkitpy/tool/steps/confirmdiff.py:
- Scripts/webkitpy/tool/steps/editchangelog.py:
- Scripts/webkitpy/tool/steps/ensurelocalcommitifneeded.py:
- Scripts/webkitpy/tool/steps/metastep.py:
(MetaStep):
(MetaStep.init):
(MetaStep.run):
- Scripts/webkitpy/tool/steps/obsoletepatches.py:
- Scripts/webkitpy/tool/steps/options.py:
(Options):
- Scripts/webkitpy/tool/steps/postdiff.py:
- Scripts/webkitpy/tool/steps/postdiffforcommit.py:
- Scripts/webkitpy/tool/steps/postdiffforrevert.py:
- Scripts/webkitpy/tool/steps/preparechangelog.py:
- Scripts/webkitpy/tool/steps/preparechangelog_unittest.py:
(PrepareChangeLogTest):
(PrepareChangeLogTest.test_resolve_existing_entry):
- Scripts/webkitpy/tool/steps/preparechangelogforrevert.py:
- Scripts/webkitpy/tool/steps/promptforbugortitle.py:
- Scripts/webkitpy/tool/steps/reopenbugafterrollout.py:
- Scripts/webkitpy/tool/steps/revertrevision.py:
- Scripts/webkitpy/tool/steps/runtests.py:
- Scripts/webkitpy/tool/steps/runtests_unittest.py:
- Scripts/webkitpy/tool/steps/steps_unittest.py:
(StepsTest):
(StepsTest._step_options):
- Scripts/webkitpy/tool/steps/update.py:
- Scripts/webkitpy/tool/steps/updatechangelogswithreview_unittest.py:
(UpdateChangeLogsWithReviewerTest):
(UpdateChangeLogsWithReviewerTest.test_guess_reviewer_from_bug):
- Scripts/webkitpy/tool/steps/updatechangelogswithreviewer.py:
- Scripts/webkitpy/tool/steps/validatereviewer.py:
- 8:26 PM Changeset in webkit [202318] by
-
- 3 edits in trunk/PerformanceTests
Update canvas size when benchmark begins
https://bugs.webkit.org/show_bug.cgi?id=159010
Reviewed by Dean Jackson.
Previously we would evaluate the media queries and assign the canvas size to the test
on body.onload. Instead, do it once the user starts the benchmark.
- Animometer/resources/debug-runner/animometer.js: Move benchmarkController.determineCanvasSize()
to benchmarkController._startBenchmark.
- Animometer/resources/runner/animometer.js: Ditto.
- 8:26 PM Changeset in webkit [202317] by
-
- 3 edits in trunk/PerformanceTests
Add new timestamp option
https://bugs.webkit.org/show_bug.cgi?id=159006
Reviewed by Dean Jackson.
Add a new option to take timestamps from the rAF callback.
- Animometer/developer.html: Added option.
- Animometer/tests/resources/main.js:
(Benchmark): Fall back to using the rAF timestamp if performance.now()
is not available.
(Benchmark._animateLoop): Update how timestamp is set. Prefer to use
local var instead of accessing private var.
- 8:16 PM Changeset in webkit [202316] by
-
- 5 edits1 delete in trunk
Unreviewed, rolling out r202296.
Broke basic browsing in Safari
Reverted changeset:
"WKWebView with no WKNavigationDelegate does not follow
universal links"
https://bugs.webkit.org/show_bug.cgi?id=158997
http://trac.webkit.org/changeset/202296
- 8:12 PM Changeset in webkit [202315] by
-
- 5 edits in trunk/PerformanceTests
Improvements to Animometer benchmark
https://bugs.webkit.org/show_bug.cgi?id=157738
Reviewed by Dean Jackson.
Provisionally reviewed by Said Abou-Hallawa.
Update tests.
- Animometer/tests/master/text.html: Ensure only three text sizes for
the three canvases.
- Animometer/tests/master/focus.html: Reduce the text size to fit with smaller
particle sizes.
- Animometer/tests/master/resources/focus.js: Remove the quadratic distribution for
particle sizes, and make it linear. Reduce the size variance. Shuffle the math to
reduce some calculations per frame. Fix the placement of the particles which might
otherwise be culled.
- Animometer/tests/master/resources/image-data.js: Reduce the particle size
to encourage larger scores.
- 8:11 PM Changeset in webkit [202314] by
-
- 16 edits in trunk/PerformanceTests
Improvements to Animometer benchmark
https://bugs.webkit.org/show_bug.cgi?id=157738
Reviewed by Dean Jackson.
Provisionally reviewed by Said Abou-Hallawa.
Include confidence interval for the final score, and store the canvas
size in the serialization so that it is accurately shown in results.
- Animometer/developer.html: Add a "confidence" div.
- Animometer/index.html: Ditto. Convert "mean" to "confidence".
- Animometer/resources/debug-runner/animometer.js: Look at options, and
if the configuration is included, update the body class based on it
(similar to what we do when we first load the page). That way, if you
drag-and-drop previous results in, that configuration is reflected in
the dashboard. Show the full confidence interval.
- Animometer/resources/debug-runner/animometer.css:
- Animometer/resources/debug-runner/animometer.js: Style update.
- Animometer/resources/runner/animometer.css:
- Animometer/resources/runner/animometer.js:
(_processData): Propagate the confidence interval values out and calculate
the lower and upper bounds. For now, shortcut the aggregate calculation,
since we only go through one iteration.
(this._processData.calculateScore): Propagate the confidence interval out
to be next to the score. Depending on the controller these values are
calculated differently.
(this._processData._getResultsProperty): Convenience function.
(this._processData.get score): Refactor.
(this._processData.get scoreLowerBound): Get the aggregate lower bound.
(this._processData.get scoreUpperBound): Get the aggregate upper bound.
(window.sectionsManager.setSectionScore):
(window.benchmarkController._startBenchmark): When the benchmark starts, note
the canvas size and add it to options. That way it will be automatically be
serialized.
(window.benchmarkController.showResults): Include the maximum deviation
percentage.
- Animometer/resources/runner/lines.svg: Make the background line up with the
skew.
- Animometer/resources/runner/tests.js:
(Headers.details.text): Refactor.
- Animometer/resources/statistics.js:
(Statistics.largestDeviationPercentage): Convenience function to calculate
the deviation percentage on either end and return the largest deviation.
- Animometer/resources/strings.js:
Allow specifying a regression profile to use instead of taking the one
with the lowest error.
Address an issue in the focus test when the regression calculated ends
up overestimating the change point, causing a cascade of tougher
ramps. The reason behind this is that at max complexity of an initial
ramp, the frame length is very high, and it influences the second
segment of the piecewise regression strongly, causing it to be very
steep. As a result, the first segment, expected to be flat, ends up
covering a higher range of complexity. That makes the change point
much higher than it should be. To avoid this, we will add a sanity
check on the maximum value of the ramp. If the regression's projected
value at the maximum complexity of the current ramp is very slow (less
than 20 fps), 1) reduce the maximum complexity by 20%, and 2) do not
include the regression's change point in the change point estimator.
That estimator is used as the midpoint of the next ramp, and including
the change point from a poor regression can bake in the error. The
controller already knows how to adjust for ramps that are too easy for
the system.
- Animometer/resources/runner/animometer.js:
(this._processData.findRegression): Takes a preferred profile and gives that to
Regression.
(this._processData.calculateScore): With the ramp controller, take the profile
of the ramp that was used the most when calculating the ramp's regression. That
profile is what is used for the test's score.
- Animometer/resources/statistics.js:
(Regression.Utilities.createClass): Update to take an options object which can
specify a profile to calculate with. Otherwise it will continue to use both and
select the one with the lower error.
(_calculateRegression): Fix an issue where we claim 0 error if the regression
calculation fails due to divide-by-zero. Instead reject that regression calculation
by giving it Number.MAX_VALUE.
- Animometer/resources/strings.js: New strings for marking a regression as flat
or slope.
- Animometer/tests/resources/main.js:
(RampController): Rename the thresholds for clarity. Add a threshold that, if
exceeded, will lower the maximum complexity of the next ramp.
(tune): Relax the cdf check to consider whether the interval definitely falls in
the desired frame length threshold.
(processSamples): Include the profile in the ramp.
Update ramp controller test. Increase the length of the test to 30 seconds, and extend
the interval to 120 ms during sampling. Improve the estimation of the ramp parameters.
- Animometer/developer.html: Change default to 30 seconds, and don't show the progress bar
by default.
- Animometer/resources/runner/animometer.js: Change default to 30 seconds.
- Animometer/tests/resources/main.js: A number of improvements to the ramp controller, in
the order in which they appear in the patch:
- With a longer test length use longer ramps with longer intervals to get more data at each
complexity. Keep the 100 ms interval length during the ramp up phase since we don't need to
spend more time there to find the right order of magnitude, but increase it during the
ramps to 120 ms.
- The ramp linearly interpolates the complexity to render based on its timestamp, but it would
never sample the minimum complexity. Instead of lerping max to min complexity from time
0 to t where t is the ramp length, instead lerp from 0 to (t - intervalSampleLength) so that
we can have at least one interval sample at the min complexity for that ramp.
- Some regression calculations only come out with one line segment rather than the two
we expect. This could be due to a noisy ramp or the ramp's range is too narrow. If that's the
case, influence the minimum complexity of the next ramp towards the lowest bound of 1, so that
we ensure that at least part of the ramp is covering a complexity range that the system can
handle at full 60.
- Remove an assignment to interpolatedFrameLength since that is never subsequently used.
Update the format used to serialize the results for analysis.
Each data point used to have named properties for fields like complexity and frame rate.
In addition the serialized numbers had rounding errors that took up many characters.
Update the format by introducing a new data container called SampleData, which contains a
field map. The map maps a string to an array index. Each data point is an array, so, to
get a stat, use the field map to get the array index into the data point. This allows future
versions to track other data, and reduces the size of the output string by two-thirds.
- Animometer/resources/extensions.js:
(Utilities.toFixedNumber): Add convenience function that truncates the number to a fixed
precision, and converts it back to a number.
(SampleData): New class that contains sample data and a field map that maps properties to
an array index.
(get length): Number of data points.
(addField): Add a field to the field map.
(push): Add a data point.
(sort): Sort the data.
(slice): Return new SampleData object with sliced data.
(forEach): Iterate over the data with provided function.
(createDatum):
(getFieldInDatum): Returns the data point associated with the field name by looking it up
in the field map in the datum provided, which can be the datum object itself (an array) or
an index into the data member variable.
(setFieldInDatum): Sets the data point associated with the field name.
(at): Returns the data point at the provided index.
(toArray): Serializes the data where the field map serves as property names for each point.
- Animometer/resources/debug-runner/graph.js:
(updateGraphData): Remove unused _testData. Convert the data to the old array format for the
graph to use, since the old format was much easier to work with when displaying the graphs.
(onGraphTypeChanged): For some controllers, no alternative score or mean is provided.
- Animometer/resources/runner/animometer.css:
- Animometer/resources/runner/animometer.js: Refactor to use SampleData. Update JSON output
to only go to 3 digits of precision for purposes of reducing the data size.
- Animometer/resources/strings.js: Add new strings to put into the field maps.
- Animometer/tests/resources/main.js: Refactor to use SampleData.
- Animometer/developer.html:
- Animometer/index.html: Restructure results table for both pages. Add charset attribute to
tests.js include.
- Animometer/resources/debug-runner/animometer.css: Clear out styles from release runner.
- Animometer/resources/debug-runner/graph.js:
(onGraphTypeChanged): Update score and mean if bootstrap results are available from the
controller, since not all controllers do bootstrapping.
- Animometer/resources/debug-runner/tests.js: Update header text.
- Animometer/resources/runner/animometer.css: Include confidence interval in results.
- Animometer/resources/runner/animometer.js:
(ResultsTable._addHeader): Header contents can be HTML, so use innerHTML instead.
(ResultsTable._addBody): Add tbody element.
(ResultsTable._addTest): Allow a data cell to invoke a JS function to get its contents.
(window.benchmarkController.showResults): Add table that includes tests' confidence intervals.
- Animometer/resources/runner/tests.js:
(Headers.details.text): Add new details table that includes bootstrap confidence interval.
The interval can be asymmetric, but for simplicity, report the maximum deviation percentage
on either side of the bootstrap median.
- Animometer/resources/statistics.js:
(bootstrap): Include the confidence percentage in the return object.
Report canvas size in results.
- Animometer/developer.html: Add markup to indicate whether a small, medium, or large
canvas was used.
- Animometer/index.html: Ditto.
- Animometer/resources/debug-runner/animometer.js: Call determineCanvasSize().
- Animometer/resources/runner/animometer.css: Update styles to set the canvas based on the
body class size.
- Animometer/resources/runner/animometer.js:
(window.benchmarkController.initialize): Update styles to set the canvas based on the
body class size.
(window.benchmarkController.determineCanvasSize): Run various media queries and set the body
class based on the size of the device.
- Animometer/developer.html: Refactor to include the main CSS file, and redo
the layout so that it doesn't rely on flexbox.
- Animometer/resources/debug-runner/animometer.css:
- Animometer/resources/debug-runner/animometer.js:
(updateDisplay): Since various parts of the script alter the body class, we can't
replace the className directly. Instead, remove all display-based values and then add
the one that was selected.
- Animometer/resources/debug-runner/graph.js:
(updateGraphData): To set the size of the graph, use window.innerHeight.
- Animometer/resources/runner/animometer.js:
(window.sectionsManager.showSection): Since various parts of the script alter the body
class, we can't replace the className directly. Remove all of the section classes
individually and then add the one desired.
- Animometer/tests/resources/stage.css: Remove -apple-system as a font to use in the
stage.
- 8:06 PM Changeset in webkit [202313] by
-
- 6 edits in trunk/Source/WebCore
Pass ScriptExecutionContext::Task as rvalue reference
https://bugs.webkit.org/show_bug.cgi?id=159007
Reviewed by Anders Carlsson.
Pass ScriptExecutionContext::Task as rvalue reference since its non-copyable
and has to be moved in.
- workers/WorkerLoaderProxy.h:
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::postTaskToLoader):
(WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope):
- workers/WorkerMessagingProxy.h:
- workers/WorkerRunLoop.cpp:
(WebCore::WorkerRunLoop::postTask):
(WebCore::WorkerRunLoop::postTaskAndTerminate):
(WebCore::WorkerRunLoop::postTaskForMode):
(WebCore::WorkerRunLoop::Task::Task):
- workers/WorkerRunLoop.h:
- 7:52 PM Changeset in webkit [202312] by
-
- 2 edits in trunk/Source/WebCore
Include IdentifierInlines.h.
- bindings/js/JSApplePayShippingMethodSelectedEventCustom.cpp:
- 7:02 PM Changeset in webkit [202311] by
-
- 2 edits1 add in trunk/Source/WebCore
Add PaymentHeaders.h file.
- Modules/applepay/PaymentHeaders.h: Added.
- WebCore.xcodeproj/project.pbxproj:
- 6:36 PM Changeset in webkit [202310] by
-
- 2 edits in trunk/Source/WebCore
Make a bunch of Apple Pay headers private instead of project.
- WebCore.xcodeproj/project.pbxproj:
- 6:05 PM Changeset in webkit [202309] by
-
- 6 edits1 copy31 adds in trunk/Source/WebCore
Move the last Apple Pay WebCore files to the open source repository
https://bugs.webkit.org/show_bug.cgi?id=159005
Reviewed by Tim Horton.
- DerivedSources.make:
- Modules/applepay/ApplePayPaymentAuthorizedEvent.cpp: Added.
- Modules/applepay/ApplePayPaymentAuthorizedEvent.h: Added.
- Modules/applepay/ApplePayPaymentAuthorizedEvent.idl: Added.
- Modules/applepay/ApplePayPaymentMethodSelectedEvent.cpp: Added.
- Modules/applepay/ApplePayPaymentMethodSelectedEvent.h: Added.
- Modules/applepay/ApplePayPaymentMethodSelectedEvent.idl: Added.
- Modules/applepay/ApplePaySession.cpp: Added.
- Modules/applepay/ApplePaySession.h: Added.
- Modules/applepay/ApplePaySession.idl: Added.
- Modules/applepay/ApplePayShippingContactSelectedEvent.cpp: Added.
- Modules/applepay/ApplePayShippingContactSelectedEvent.h: Added.
- Modules/applepay/ApplePayShippingContactSelectedEvent.idl: Added.
- Modules/applepay/ApplePayShippingMethodSelectedEvent.cpp: Added.
- Modules/applepay/ApplePayShippingMethodSelectedEvent.h: Added.
- Modules/applepay/ApplePayShippingMethodSelectedEvent.idl: Added.
- Modules/applepay/ApplePayValidateMerchantEvent.cpp: Added.
- Modules/applepay/ApplePayValidateMerchantEvent.h: Added.
- Modules/applepay/ApplePayValidateMerchantEvent.idl: Added.
- Modules/applepay/Payment.h: Added.
- Modules/applepay/PaymentAuthorizationStatus.h: Added.
- Modules/applepay/PaymentContact.h: Added.
- Modules/applepay/PaymentMerchantSession.h: Added.
- Modules/applepay/PaymentMethod.h: Added.
- Modules/applepay/PaymentRequestValidator.cpp: Added.
- Modules/applepay/PaymentRequestValidator.h: Added.
- Modules/applepay/cocoa/PaymentContactCocoa.mm: Added.
- Modules/applepay/cocoa/PaymentMethodCocoa.mm: Added.
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSApplePayPaymentAuthorizedEventCustom.cpp: Added.
- bindings/js/JSApplePayPaymentMethodSelectedEventCustom.cpp: Added.
- bindings/js/JSApplePaySessionCustom.cpp: Added.
- bindings/js/JSApplePayShippingContactSelectedEventCustom.cpp: Added.
- bindings/js/JSApplePayShippingMethodSelectedEventCustom.cpp: Added.
- dom/EventNames.in:
- dom/EventTargetFactory.in:
- 5:08 PM Changeset in webkit [202308] by
-
- 10 edits in trunk
Fix build.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
Tools:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
- 5:04 PM Changeset in webkit [202307] by
-
- 17 edits2 adds in trunk
Unreviewed, rolling out r202302, r202303, r202305, and
r202306.
Roll out the rollouts because of breaking the build.
Reverted changesets:
"Unreviewed, rolling out r200678."
https://bugs.webkit.org/show_bug.cgi?id=157453
http://trac.webkit.org/changeset/202302
"Unreviewed, rolling out r200619."
https://bugs.webkit.org/show_bug.cgi?id=131443
http://trac.webkit.org/changeset/202303
"Unreviewed, attempt to fix the build after r202303."
http://trac.webkit.org/changeset/202305
"Unreviewed, attempt to fix the build after r202303."
http://trac.webkit.org/changeset/202306
- 4:52 PM Changeset in webkit [202306] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, attempt to fix the build after r202303.
- bindings/js/JSDOMIterator.h:
(WebCore::IteratorInspector::decltype):
(WebCore::IteratorInspector::test):
- 4:47 PM Changeset in webkit [202305] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, attempt to fix the build after r202303.
- bindings/js/JSDOMIterator.h:
(WebCore::toJS):
- 4:32 PM Changeset in webkit [202304] by
-
- 3 edits in trunk/LayoutTests
LayoutTest tiled-drawing/scrolling/latched-div-with-scroll-snap.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=158320
Reviewed by Simon Fraser.
This test case is flaky because:
- There are multiple mouseScrollByWithWheelAndMomentumPhases() event bundles and they all need their own
callbacks. (see additional eventSender.callAfterScrollingCompletes()) -> fail
- When the test fails, the testFailed() function is called with undefined variables. -> timeout
- platform/mac-wk2/TestExpectations:
- tiled-drawing/scrolling/latched-div-with-scroll-snap.html:
- 4:24 PM Changeset in webkit [202303] by
-
- 17 edits2 deletes in trunk
Unreviewed, rolling out r200619.
This incompleted feature broke http://m.yahoo.co.jp. Roll it
out together with r200678.
Reverted changeset:
"NodeList should be iterable"
https://bugs.webkit.org/show_bug.cgi?id=131443
http://trac.webkit.org/changeset/200619
- 4:21 PM Changeset in webkit [202302] by
-
- 5 edits in trunk
Unreviewed, rolling out r200678.
This incompleted feature broke http://m.yahoo.co.jp. Roll it
out together with r200619.
Reverted changeset:
"Ensure DOM iterators remain done"
https://bugs.webkit.org/show_bug.cgi?id=157453
http://trac.webkit.org/changeset/200678
- 4:09 PM Changeset in webkit [202301] by
-
- 2 edits in trunk/LayoutTests
Skip HeapSnapshot test on WebKit1. Shared VM skews the data.
Unreviewed gardening.
In this case, snapshots with snapshots with snapshots in the same VM
causes the test to run out of memory. This does not happen in WebKit2.
- platform/mac-wk1/TestExpectations:
- 4:07 PM Changeset in webkit [202300] by
-
- 2 edits2 adds in trunk/LayoutTests
Test gardening for platform-specific font-fallback on macOS Sierra
https://bugs.webkit.org/show_bug.cgi?id=159003
<rdar://problem/25807529>
Unreviewed.
- fast/text/font-cursive-italic-cjk-2-expected.html: Added.
- fast/text/font-cursive-italic-cjk-2.html: Added.
- platform/mac/TestExpectations:
- 4:06 PM Changeset in webkit [202299] by
-
- 5 edits in trunk/Source/JavaScriptCore
Options::useImmortalObjects is not safe for conservative GC
https://bugs.webkit.org/show_bug.cgi?id=158999
Reviewed by Geoffrey Garen.
useImmortalObjects set the mark bit to keep an object from being
reallocated. This had the negative side-effect of convincing the
conservative marker that the object was a valid and live cell, which
would cause us to visit garbage.
- heap/Heap.cpp:
(JSC::Heap::didFinishCollection):
(JSC::Heap::resumeCompilerThreads):
(JSC::Heap::setFullActivityCallback):
(JSC::Heap::markDeadObjects): Deleted.
- heap/Heap.h: Don't set the mark bit on a dead object. That's a bug in
a conservative GC.
- heap/MarkedAllocator.cpp:
(JSC::MarkedAllocator::retire): New helper.
(JSC::MarkedAllocator::reset): Automatically retire old blocks when
we're doing the immortal objects thing. This has the effect of
preserving memory for debugging because we never recycle a previously
allocated block.
- 3:46 PM Changeset in webkit [202298] by
-
- 13 edits8 adds in trunk
Begin moving the Apple Pay code to the open source repository
https://bugs.webkit.org/show_bug.cgi?id=158998
Reviewed by Tim Horton.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Add ENABLE_APPLE_PAY.
Source/WebCore:
- Configurations/FeatureDefines.xcconfig:
Add ENABLE_APPLE_PAY.
- Modules/applepay/PaymentCoordinator.cpp: Added.
- Modules/applepay/PaymentCoordinator.h: Added.
- Modules/applepay/PaymentCoordinatorClient.h: Added.
- Modules/applepay/PaymentRequest.cpp: Added.
- Modules/applepay/PaymentRequest.h: Added.
- Modules/applepay/cocoa/PaymentCocoa.mm: Added.
- WebCore.xcodeproj/project.pbxproj:
Add new files.
- dom/EventNames.h:
Add new event names.
- page/MainFrame.h:
Use a forward declaration.
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Add ENABLE_APPLE_PAY.
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
Add ENABLE_APPLE_PAY.
Tools:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
Add ENABLE_APPLE_PAY.
- 3:29 PM Changeset in webkit [202297] by
-
- 12 edits in trunk
Add system tracing points for requestAnimationFrame() workflow
https://bugs.webkit.org/show_bug.cgi?id=158723
Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2016-06-21
Reviewed by Simon Fraser.
Source/WebCore:
Add trace points for requestAnimationFrame().
- dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::requestAnimationFrameEnabled):
(WebCore::ScriptedAnimationController::serviceScriptedAnimations):
(WebCore::ScriptedAnimationController::windowScreenDidChange):
(WebCore::ScriptedAnimationController::scheduleAnimation):
- dom/ScriptedAnimationController.h:
- platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
(WebCore::DisplayRefreshMonitorIOS::requestRefreshCallback):
(WebCore::DisplayRefreshMonitorIOS::displayLinkFired):
Source/WebKit2:
Add trace points for requestAnimationFrame().
- UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
- WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:
(WebKit::RemoteLayerTreeContext::buildTransaction):
- WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::didUpdate):
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush):
Source/WTF:
Define new trace score codes for requestAnimationFrame().
- wtf/SystemTracing.h:
(WTF::TracePoint):
(WTF::TraceScope::TraceScope):
(WTF::TraceScope::~TraceScope):
Tools:
Add new plist entries to be used by kdebug_trace() viewing tools.
- Tracing/SystemTracePoints.plist:
- 3:26 PM Changeset in webkit [202296] by
-
- 5 edits1 add in trunk
WKWebView with no WKNavigationDelegate does not follow universal links
<rdar://problem/24374110>
https://bugs.webkit.org/show_bug.cgi?id=158997
Patch by Sam Weinig <sam@webkit.org> on 2016-06-21
Reviewed by Dan Bernstein.
Source/WebKit2:
API Test:
WKWebView.DefaultNavigationDelegate
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
When initializing the WKWebView, set a default navigation client.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setLoaderClient):
Be sure to clear out a navigation client, if present, when setting a loader client,
as they are mutually exclusive.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewDefaultNavigationDelegate.mm: Added.
Add a new test that shows that we have a default navigation delegate by swizzling
-[NSWorkspace openURL:]. This will only be called if there is a default client.
- 3:19 PM Changeset in webkit [202295] by
-
- 3 edits2 adds in trunk
[iOS] Typing text into a text field or text area causes screen to scroll down (hiding text entry)
https://bugs.webkit.org/show_bug.cgi?id=158970
Reviewed by Ryosuke Niwa.
Source/WebCore:
insertTextWithoutSendingTextEvent() should only reveal the selection up to the main frame on iOS,
since the UI process can zoom and scroll the view to the text input.
Test: fast/forms/ios/typing-in-input-in-iframe.html
- editing/Editor.cpp:
(WebCore::Editor::insertTextWithoutSendingTextEvent):
LayoutTests:
Test that focuses an input in a frame and then types a character, then checks for scrolling.
- fast/forms/ios/typing-in-input-in-iframe-expected.txt: Added.
- fast/forms/ios/typing-in-input-in-iframe.html: Added.
- 2:11 PM Changeset in webkit [202294] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION(r201177): Web Inspector: ContentBrowser navigation bar should fit on a single line
https://bugs.webkit.org/show_bug.cgi?id=158700
<rdar://problem/26772058>
Reviewed by Joseph Pecoraro.
- UserInterface/Views/ContentBrowser.css:
(.content-browser > .navigation-bar > .item):
Set the height to 28px, as it was before r201177.
Make it one pixel shorter than the navigation bar for better vertical alignment.
- 1:58 PM Changeset in webkit [202293] by
-
- 4 edits in trunk/Source/WebCore
WebRTC: Remove unused MediaEndpointClient::gotRemoteSource function
https://bugs.webkit.org/show_bug.cgi?id=158986
Reviewed by Eric Carlson.
Remote sources are explicitly created with MediaEndpoint::createMutedRemoteSource so the
MediaEndpointClient::gotRemoteSource can be removed.
No change in behavior.
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::gotRemoteSource): Deleted.
- Modules/mediastream/MediaEndpointPeerConnection.h:
- platform/mediastream/MediaEndpoint.h:
- 1:57 PM Changeset in webkit [202292] by
-
- 25 edits1 copy15 adds in trunk
Focus event dispatched in iframe causes parent document to scroll incorrectly
https://bugs.webkit.org/show_bug.cgi?id=158629
rdar://problem/26521616
Reviewed by Tim Horton.
Source/WebCore:
When focussing elements in iframes, the page could scroll to an incorrect location.
This happened because code in Element::focus() tried to disable scrolling on focus,
but did so only for the current frame, so ancestor frames got programmatically scrolled.
On iOS we handle the scrolling in the UI process, so never want the web process to
do programmatic scrolling.
Fix by changing the focus and cache restore code to use SelectionRevealMode::DoNotReveal,
rather than manually prohibiting frame scrolling. Pass SelectionRevealMode through various callers,
and use RevealUpToMainFrame for iOS, allowing the UI process to do the zoomToRect: for the main frame.
Tests: fast/forms/ios/focus-input-in-iframe.html
fast/forms/ios/programmatic-focus-input-in-iframe.html
- dom/Document.h:
- dom/Element.cpp:
(WebCore::Element::scrollIntoView):
(WebCore::Element::scrollIntoViewIfNeeded):
(WebCore::Element::scrollIntoViewIfNotVisible):
(WebCore::Element::focus):
(WebCore::Element::updateFocusAppearance):
- dom/Element.h:
- editing/Editor.cpp:
(WebCore::Editor::insertTextWithoutSendingTextEvent):
(WebCore::Editor::revealSelectionAfterEditingOperation):
(WebCore::Editor::findStringAndScrollToVisible):
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::updateAndRevealSelection):
(WebCore::FrameSelection::revealSelection):
(WebCore::FrameSelection::FrameSelection): Deleted.
- editing/FrameSelection.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateFocusAppearance):
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::updateFocusAppearance):
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
- page/FrameView.cpp:
(WebCore::FrameView::scrollToAnchor):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::autoscroll):
- rendering/RenderLayer.h:
- rendering/RenderObject.cpp:
(WebCore::RenderObject::scrollRectToVisible):
- rendering/RenderObject.h:
Source/WebKit/mac:
Pass SelectionRevealMode::Reveal in existing code.
- WebView/WebFrame.mm:
(-[WebFrame _scrollDOMRangeToVisible:]):
(-[WebFrame _scrollDOMRangeToVisible:withInset:]):
(-[WebFrame revealSelectionAtExtent:]):
- WebView/WebHTMLView.mm:
(-[WebHTMLView jumpToSelection:]):
(-[WebHTMLView centerSelectionInVisibleArea:]):
Source/WebKit2:
Pass SelectionRevealMode::Reveal in existing code.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::centerSelectionInVisibleArea):
LayoutTests:
- fast/forms/ios/focus-input-in-iframe-expected.txt: Added.
- fast/forms/ios/focus-input-in-iframe.html: Added.
- fast/forms/ios/programmatic-focus-input-in-iframe-expected.txt: Added.
- fast/forms/ios/programmatic-focus-input-in-iframe.html: Added.
- 1:53 PM Changeset in webkit [202291] by
-
- 3 edits in trunk/Source/WebKit2
[iOS][WK2] When an animation frame is missed, the UI process should immediately notify the Web process once a frame is committed
https://bugs.webkit.org/show_bug.cgi?id=158933
Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2016-06-21
Reviewed by Simon Fraser.
When a frame is committed, the UI process schedules a CADisplayLink and waits until
the next didRefreshDisplay event is fired. This causes more delay in the scenario
where there are frames are dropped. didRefreshDisplay() should be called immediately
when commitLayerTree message is received and the last frame was dropped.
The fix is to have the CADisplayLink active all the times. It should be paused
only when we detect at least one frame is dropped. In this case we should not
send a message to the UI process since it has not sent the last requested LayerTree.
Also we should not waste the CPU time by scheduling a new CADisplayLink since we
have not processed the last event. We should resume CADisplayLink timer once a
commitLayerTree message is received.
- UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
- UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(-[WKOneShotDisplayLinkHandler pause]):
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
(-[WKOneShotDisplayLinkHandler displayLinkFired:]):
- 1:47 PM Changeset in webkit [202290] by
-
- 2 edits in trunk/LayoutTests
Add an expectation for another copy of fast/canvas/webgl/premultiplyalpha-test.html
- platform/mac/TestExpectations:
- 1:18 PM Changeset in webkit [202289] by
-
- 2 edits in trunk/LayoutTests
Update Sierra test expectations for fast/canvas/webgl/premultiplyalpha-test.html
- platform/mac/TestExpectations:
- 1:14 PM Changeset in webkit [202288] by
-
- 2 edits in trunk/Source/JavaScriptCore
CodeBlock::shrinkToFit is racy
https://bugs.webkit.org/show_bug.cgi?id=158994
<rdar://problem/26920212>
Reviewed by Filip Pizlo.
To see why this is racy, consider the following scenario:
- CodeBlock A is link()ing its baseline compile.
- CodeBlock B is inlining A, and asks A for a result profile in DFGBytecodeParser.
- The race occurs when the link() step of the baseline compile calls shrinkToFit on its m_resultProfiles field without grabbing a lock. This leads to a bad time because the DFG compile will be reading from that vector as it's getting changed by the baseline link() method.
This race has always existed, though the move to a concurrent baseline
JIT has made it more likely to occur. The solution is to have CodeBlock::shrinkToFit
grab its lock before shrinking the vector.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::shrinkToFit):
- 12:06 PM Changeset in webkit [202287] by
-
- 3 edits in trunk/Source/JavaScriptCore
Migrate testair & testb3 settings from Xcode project to ToolExecutable.xcconfig
<https://webkit.org/b/158989>
Reviewed by Andy Estes.
- Configurations/ToolExecutable.xcconfig:
(CODE_SIGN_ENTITLEMENTS_ios_testair): Add from Xcode project.
- JavaScriptCore.xcodeproj/project.pbxproj:
(CODE_SIGN_ENTITLEMENTS_ios_testair): Move to
ToolExecutable.xcconfig.
(PRODUCT_NAME): Remove. This variable is already set for both
testair and testb3 since those build configurations use
ToolExecutable.xcconfig as a base.
- 12:03 PM Changeset in webkit [202286] by
-
- 3 edits1 add in trunk/Source/JavaScriptCore
LLInt doesn't throw stack exception overflow from parent frame
https://bugs.webkit.org/show_bug.cgi?id=158962
<rdar://problem/26902188>
Reviewed by Filip Pizlo.
All JIT tiers will throw stack overflow exceptions from the parent frame.
The LLInt, on the other hand, did not use to. I've changed the LLInt to be
consistent with the JITs. The reason I found this bug is because we had a
test that would give different results depending on if the function was compiled
in the baseline or the LLInt. Since Filip recently landed the concurrent baseline
JIT patch, this otherwise deterministic test became dependent on it being compiled
in the LLInt or one of the JIT tiers. I've added a new test that is deterministic
because it runs the test with --useJIT=false.
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- tests/stress/llint-stack-overflow-location.js: Added.
(stackTraceDescription):
(foo):
(catch):
- 11:54 AM Changeset in webkit [202285] by
-
- 3 edits in trunk/Source/JavaScriptCore
CODE_SIGN_ENTITLEMENTS should be applied to iOS Simulator builds
<https://webkit.org/b/158990>
<rdar://problem/26906273>
Reviewed by Dan Bernstein.
- Configurations/JSC.xcconfig:
(CODE_SIGN_ENTITLEMENTS): Change [sdk=iphoneos*] to
[sdk=iphone*] to apply setting to iOS Simulator as well.
- Configurations/ToolExecutable.xcconfig:
(CODE_SIGN_ENTITLEMENTS): Ditto.
- 11:36 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 11:34 AM Changeset in webkit [202284] by
-
- 19 edits in trunk
Implement RenderMathMLOperator::layoutBlock
https://bugs.webkit.org/show_bug.cgi?id=157521
Patch by Frederic Wang <fwang@igalia.com> on 2016-06-21
Reviewed by Brent Fulgham.
Source/WebCore:
No new tests, already covered by existing tests.
Add an initial implementation of RenderMathMLOperator::layoutBlock, which will perform
special layout when the MathOperator is used. We also improved how the logical height is
calculated and avoid updating the style when stretchTo is called.
- rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::stretchTo):
(WebCore::RenderMathMLOperator::layoutBlock):
(WebCore::RenderMathMLOperator::computeLogicalHeight): Deleted.
- rendering/mathml/RenderMathMLOperator.h:
LayoutTests:
Update some tests to take into account improved width computation and how the anonymous text
node of operators using MathOperator is layout.
- platform/gtk/mathml/opentype/horizontal-expected.txt:
- platform/gtk/mathml/opentype/horizontal-munderover-expected.txt:
- platform/gtk/mathml/opentype/large-operators-expected.txt:
- platform/gtk/mathml/opentype/opentype-stretchy-expected.txt:
- platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
- platform/gtk/mathml/opentype/vertical-expected.png:
- platform/gtk/mathml/opentype/vertical-expected.txt:
- platform/gtk/mathml/presentation/mo-stretch-expected.png:
- platform/gtk/mathml/presentation/mo-stretch-expected.txt:
- platform/mac/mathml/opentype/large-operators-expected.txt:
- platform/mac/mathml/opentype/opentype-stretchy-expected.txt:
- platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
- platform/mac/mathml/opentype/vertical-expected.txt:
- platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt:
- platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.txt:
- 11:26 AM Changeset in webkit [202283] by
-
- 2 edits in trunk/Tools
run-javascriptcore-tests should have flag to skip mozilla tests
https://bugs.webkit.org/show_bug.cgi?id=158963
rdar://problem/25838924
Reviewed by Alexey Proskuryakov.
- Scripts/run-javascriptcore-tests:
(runJSCStressTests): Added flag to skip mozilla tests.
- 11:15 AM Changeset in webkit [202282] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, rolling out r202277.
https://bugs.webkit.org/show_bug.cgi?id=158992
imported/w3c/web-platform-tests/tools actually does exist, so
documentation files got executed as tests (Requested by ap on
#webkit).
Reverted changeset:
"Unskip non-existing imported/w3c/web-platform-tests/tools."
http://trac.webkit.org/changeset/202277
- 10:57 AM Changeset in webkit [202281] by
-
- 24 edits in trunk/Source/WebCore
Unreviewed, roll out r202268 as it looks like it was a ~50% regression on Dromaeo DOM Core
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GeneratePrototypeDeclaration):
- bindings/scripts/test/JS/JSInterfaceName.cpp:
(WebCore::JSInterfaceNamePrototype::finishCreation):
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::JSTestActiveDOMObjectPrototype::finishCreation):
(WebCore::JSTestActiveDOMObject::createPrototype): Deleted.
(WebCore::JSTestActiveDOMObject::prototype): Deleted.
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::JSTestClassWithJSBuiltinConstructorPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::JSTestCustomNamedGetterPrototype::finishCreation):
(WebCore::JSTestCustomNamedGetter::JSTestCustomNamedGetter): Deleted.
(WebCore::JSTestCustomNamedGetter::createPrototype): Deleted.
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructorPrototype::finishCreation):
(WebCore::JSTestEventConstructor::createPrototype): Deleted.
(WebCore::JSTestEventConstructor::prototype): Deleted.
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTargetPrototype::finishCreation):
(WebCore::JSTestEventTarget::JSTestEventTarget): Deleted.
(WebCore::JSTestEventTarget::createPrototype): Deleted.
- bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::JSTestExceptionPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::JSTestGenerateIsReachablePrototype::finishCreation):
- bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfacePrototype::finishCreation):
(WebCore::jsTestInterfaceImplementsStr2): Deleted.
- bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
(WebCore::JSTestJSBuiltinConstructorPrototype::finishCreation):
(WebCore::JSTestJSBuiltinConstructor::JSTestJSBuiltinConstructor): Deleted.
(WebCore::JSTestJSBuiltinConstructor::createPrototype): Deleted.
(WebCore::JSTestJSBuiltinConstructor::destroy): Deleted.
(WebCore::jsTestJSBuiltinConstructorTestAttributeCustom): Deleted.
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListenerPrototype::finishCreation):
(WebCore::JSTestMediaQueryListListener::JSTestMediaQueryListListener): Deleted.
(WebCore::JSTestMediaQueryListListener::createPrototype): Deleted.
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNodePrototype::finishCreation):
(WebCore::JSTestNode::JSTestNode): Deleted.
(WebCore::JSTestNode::prototype): Deleted.
(WebCore::jsTestNodeName): Deleted.
- bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::JSTestNondeterministicPrototype::finishCreation):
(WebCore::JSTestNondeterministic::JSTestNondeterministic): Deleted.
(WebCore::JSTestNondeterministic::prototype): Deleted.
(WebCore::JSTestNondeterministic::destroy): Deleted.
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjPrototype::finishCreation):
(WebCore::JSTestObj::JSTestObj): Deleted.
(WebCore::JSTestObj::createPrototype): Deleted.
(WebCore::JSTestObj::prototype): Deleted.
(WebCore::JSTestObj::destroy): Deleted.
(WebCore::JSTestObj::getOwnPropertySlot): Deleted.
(WebCore::JSTestObj::getOwnPropertySlotByIndex): Deleted.
(WebCore::jsTestObjReadOnlyLongAttr): Deleted.
(WebCore::jsTestObjReadOnlyStringAttr): Deleted.
(WebCore::jsTestObjReadOnlyTestObjAttr): Deleted.
(WebCore::jsTestObjConstructorStaticReadOnlyLongAttr): Deleted.
(WebCore::jsTestObjConstructorStaticStringAttr): Deleted.
(WebCore::jsTestObjConstructorTestSubObj): Deleted.
(WebCore::jsTestObjTestSubObjEnabledBySettingConstructor): Deleted.
(WebCore::jsTestObjEnumAttr): Deleted.
(WebCore::jsTestObjByteAttr): Deleted.
(WebCore::jsTestObjOctetAttr): Deleted.
(WebCore::jsTestObjShortAttr): Deleted.
(WebCore::jsTestObjClampedShortAttr): Deleted.
(WebCore::jsTestObjEnforceRangeShortAttr): Deleted.
(WebCore::jsTestObjUnsignedShortAttr): Deleted.
(WebCore::jsTestObjLongAttr): Deleted.
(WebCore::jsTestObjLongLongAttr): Deleted.
(WebCore::jsTestObjReflectedCustomBooleanAttr): Deleted.
(WebCore::jsTestObjReflectedCustomURLAttr): Deleted.
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructorsPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::JSTestOverrideBuiltinsPrototype::finishCreation):
(WebCore::JSTestOverrideBuiltins::JSTestOverrideBuiltins): Deleted.
(WebCore::JSTestOverrideBuiltins::createPrototype): Deleted.
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterfacePrototype::finishCreation):
(WebCore::JSTestSerializedScriptValueInterface::JSTestSerializedScriptValueInterface): Deleted.
(WebCore::JSTestSerializedScriptValueInterface::prototype): Deleted.
(WebCore::JSTestSerializedScriptValueInterface::destroy): Deleted.
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsPrototype::finishCreation):
(WebCore::JSTestTypedefs::JSTestTypedefs): Deleted.
(WebCore::JSTestTypedefs::createPrototype): Deleted.
(WebCore::JSTestTypedefs::prototype): Deleted.
(WebCore::JSTestTypedefs::destroy): Deleted.
(WebCore::jsTestTypedefsUnsignedLongLongAttr): Deleted.
(WebCore::jsTestTypedefsImmutableSerializedScriptValue): Deleted.
(WebCore::jsTestTypedefsAttrWithGetterException): Deleted.
- bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::JSattributePrototype::finishCreation):
- bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::JSreadonlyPrototype::finishCreation):
- 10:54 AM Changeset in webkit [202280] by
-
- 59 edits2 deletes in trunk/Source
It should be easy to add a private global helper function for builtins
https://bugs.webkit.org/show_bug.cgi?id=158893
Reviewed by Mark Lam.
Source/JavaScriptCore:
This patch does two things. First it moves all the builtin names
out of CommonIdentifiers and into BuiltinNames. This means that
adding a new function to the Builtins does not require rebuilding
all of JavaScriptCore. This patch also adds a new decorator to our
builtins @privateGlobal that will automatically put the function
on the global object. The name of the property will be the same as
the private name of the function.
This patch, also, removes the JSArrayIterator.h/.cpp files
as they no longer appear to be used in any real way. Finally,
the builtins tests have been rebaselined. It appears this has
not been done for a while so the expected files contain other
changes.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Scripts/builtins/builtins_generate_combined_header.py:
(BuiltinsCombinedHeaderGenerator.generate_output):
(generate_section_for_code_name_macro):
(generate_section_for_global_private_code_name_macro):
- Scripts/builtins/builtins_model.py:
(BuiltinFunction.init):
(BuiltinFunction.fromString):
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
- Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
- builtins/ArrayIteratorPrototype.js:
- builtins/ArrayPrototype.js:
- builtins/BuiltinNames.h:
- builtins/GeneratorPrototype.js:
- builtins/GlobalObject.js:
- builtins/PromiseOperations.js:
- builtins/RegExpPrototype.js:
- builtins/StringPrototype.js:
- bytecode/BytecodeIntrinsicRegistry.cpp:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::expectedFunctionForIdentifier):
(JSC::BytecodeGenerator::emitGetTemplateObject):
(JSC::BytecodeGenerator::emitLoadNewTargetFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitLoadDerivedConstructorFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitPutNewTargetToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitPutDerivedConstructorToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitGeneratorStateChange):
- bytecompiler/NodesCodegen.cpp:
(JSC::emitHomeObjectForCallee):
(JSC::emitPutHomeObject):
(JSC::FunctionNode::emitBytecode):
- dfg/DFGOperations.cpp:
- inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::subtype):
(Inspector::JSInjectedScriptHost::getInternalProperties): Deleted.
- parser/Lexer.cpp:
(JSC::Lexer<LChar>::parseIdentifier):
(JSC::Lexer<UChar>::parseIdentifier):
- parser/Nodes.h:
- parser/Parser.cpp:
(JSC::Parser<LexerType>::createGeneratorParameters):
(JSC::Parser<LexerType>::parseExportDeclaration):
- runtime/ArrayIteratorPrototype.cpp:
- runtime/ArrayIteratorPrototype.h:
- runtime/ArrayPrototype.cpp:
- runtime/CommonIdentifiers.cpp:
(JSC::CommonIdentifiers::CommonIdentifiers): Deleted.
- runtime/CommonIdentifiers.h:
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/IntlDateTimeFormat.cpp:
- runtime/IntlDateTimeFormatPrototype.cpp:
(JSC::IntlDateTimeFormatPrototypeGetterFormat):
(JSC::IntlDateTimeFormatPrototypeFuncResolvedOptions):
- runtime/IntlNumberFormatPrototype.cpp:
(JSC::IntlNumberFormatPrototypeGetterFormat):
(JSC::IntlNumberFormatPrototypeFuncResolvedOptions):
- runtime/IntlObjectInlines.h:
(JSC::constructIntlInstanceWithWorkaroundForLegacyIntlConstructor):
- runtime/JSArrayIterator.cpp: Removed.
(JSC::JSArrayIterator::finishCreation): Deleted.
(JSC::JSArrayIterator::kind): Deleted.
(JSC::JSArrayIterator::iteratedValue): Deleted.
- runtime/JSArrayIterator.h: Removed.
(JSC::JSArrayIterator::createStructure): Deleted.
(JSC::JSArrayIterator::create): Deleted.
(JSC::JSArrayIterator::JSArrayIterator): Deleted.
- runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::finishCreation):
- runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- runtime/JSInternalPromise.cpp:
- runtime/JSInternalPromiseDeferred.cpp:
(JSC::JSInternalPromiseDeferred::create):
- runtime/JSPromise.cpp:
(JSC::JSPromise::finishCreation):
(JSC::JSPromise::result):
- runtime/JSPromiseDeferred.cpp:
(JSC::JSPromiseDeferred::create):
- runtime/JSStringIterator.cpp:
(JSC::JSStringIterator::finishCreation):
(JSC::JSStringIterator::iteratedValue):
(JSC::JSStringIterator::clone):
- runtime/MapPrototype.cpp:
(JSC::MapPrototype::finishCreation):
- runtime/ObjectConstructor.cpp:
(JSC::ObjectConstructor::finishCreation):
- runtime/ReflectObject.cpp:
(JSC::ReflectObject::finishCreation):
- runtime/StringPrototype.cpp:
(JSC::StringPrototype::finishCreation):
- runtime/TypedArrayInlines.h:
Source/WebCore:
Add JSCJSValueInlines.h to fix build issues.
- platform/mock/mediasource/MockBox.cpp:
- 10:20 AM Changeset in webkit [202279] by
-
- 10 edits in trunk/Source
Upstream WKHTTPCookiesForURL from WebKitSystemInterface to OpenSource
https://bugs.webkit.org/show_bug.cgi?id=158967
Patch by Amir Alavi <aalavi@apple.com> on 2016-06-21
Reviewed by Brent Fulgham.
Source/WebCore:
- platform/ios/WebCoreSystemInterfaceIOS.mm:
- platform/mac/WebCoreSystemInterface.h:
- platform/mac/WebCoreSystemInterface.mm:
- platform/network/mac/CookieJarMac.mm:
(WebCore::httpCookiesForURL): Upstreamed from WebKitSystemInterface.
(WebCore::cookiesForURL): Changed to call httpCookiesForURL.
(WebCore::deleteCookie): Ditto.
- platform/spi/cf/CFNetworkSPI.h:
Source/WebKit/mac:
- WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Deleted.
Source/WebKit2:
- WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface): Deleted.
- 10:05 AM Changeset in webkit [202278] by
-
- 9 edits in trunk/Source/WebCore
Unreviewed, rolling out r202231.
Seems to have regressed PLT on both iOS and Mac (very obvious
on iOS Warm PLT)
Reverted changeset:
"When navigating, discard decoded image data that is only live
due to page cache."
https://bugs.webkit.org/show_bug.cgi?id=158941
http://trac.webkit.org/changeset/202231
- 9:43 AM Changeset in webkit [202277] by
-
- 2 edits in trunk/LayoutTests
Unskip non-existing imported/w3c/web-platform-tests/tools.
Unreviewed fix after r191043.
- 9:21 AM Changeset in webkit [202276] by
-
- 2 edits in trunk/LayoutTests
Correct which test is marked as flaky, copy/paste mistake.
- platform/mac-wk2/TestExpectations:
- 8:44 AM Changeset in webkit [202275] by
-
- 15 edits in trunk/Source/WebCore
Add bindings generator support to add a native JS function to both a 'name' and a private '@name' slot
https://bugs.webkit.org/show_bug.cgi?id=158777
Patch by Youenn Fablet <youennf@gmail.com> on 2016-06-21
Reviewed by Eric Carlson.
Adding a new PublicIdentifier keyword to cover the case of the same function exposed publicly and privately.
Renaming Private keyword to PrivateIdentifier.
Functions exposed both publicly and privately should set both keywords.
By default, functions are publically exposed.
Updated binding generator to generate public exposure except if PrivateIdentifer is set and PublicIdentifier is
not set.
Keeping skipping of ObjC/GObject binding for PrivateIdentifier-only functions.
Covered by rebased binding tests.
- Modules/fetch/FetchHeaders.idl:
- Modules/fetch/FetchResponse.idl:
- Modules/mediastream/MediaDevices.idl:
- Modules/mediastream/RTCPeerConnection.idl:
- bindings/scripts/CodeGeneratorGObject.pm:
(SkipFunction):
- bindings/scripts/CodeGeneratorJS.pm:
(GeneratePropertiesHashTable):
(GenerateImplementation):
- bindings/scripts/CodeGeneratorObjC.pm:
(SkipFunction):
- bindings/scripts/IDLAttributes.txt:
- bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_private_also_method):
- bindings/scripts/test/GObject/WebKitDOMTestObj.h:
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjPrototype::finishCreation):
(WebCore::jsTestObjPrototypeFunctionPrivateMethod):
(WebCore::jsTestObjPrototypeFunctionPrivateAlsoMethod):
- bindings/scripts/test/ObjC/DOMTestObj.h:
- bindings/scripts/test/ObjC/DOMTestObj.mm:
(-[DOMTestObj privateAlsoMethod:]):
- bindings/scripts/test/TestObj.idl:
- 8:44 AM WebKitGTK/2.12.x edited by
- Propose change requested by Konstantin (diff)
- 6:15 AM Changeset in webkit [202274] by
-
- 18 edits1 add in trunk/Source
Inlined some picture-in-picture code.
https://bugs.webkit.org/show_bug.cgi?id=158977
Reviewed by Eric Carlsson.
This code was written primarily by Ada Chan, and originally reviewed by Alex Christensen,
Anders Carlsson, Conrad Shultz, Dan Bernstein, Eric Carlson, Jer Noble, Jeremy Jones,
Jon Lee, Remy Demarest, and Zach Li.
Source/WebCore:
- English.lproj/Localizable.strings: Updated using update-webkit-localizable-strings.
- Modules/mediacontrols/mediaControlsApple.css:
(video:-webkit-full-screen::-webkit-media-controls-panel .picture-in-picture-button):
- Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.configureFullScreenControls):
- WebCore.xcodeproj/project.pbxproj: Added PIPSPI.h.
- html/HTMLMediaElement.cpp: Inlined code from HTMLMediaElementAdditions.cpp.
- html/HTMLVideoElement.cpp: Inlined code from HTMLVideoElementSupportsFullscreenAdditions.cpp.
- platform/LocalizedStrings.cpp:
(WebCore::contextMenuItemTagEnterVideoEnhancedFullscreen): Brought in from ContextMenuLocalizedStringsAdditions.cpp.
(WebCore::contextMenuItemTagExitVideoEnhancedFullscreen): Ditto.
(WebCore::AXARIAContentGroupText): Made updates that should have been part of r198543.
- platform/mac/WebVideoFullscreenInterfaceMac.h: Removed USE(APPLE_INTERNAL_SDK) guards.
- platform/mac/WebVideoFullscreenInterfaceMac.mm: Inlined WebVideoFullscreenInterfaceMacAdditions.mm.
- platform/spi/mac/PIPSPI.h: Added.
- rendering/HitTestResult.cpp: Inlined HitTestResultAdditions.cpp.
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::mediaControlsStyleSheet): Removed include of
RenderThemeMacMediaControlsStyleSheetAdditions.mm now that the content is in
mediaControlsApple.css.
(WebCore::RenderThemeMac::mediaControlsScript): Removed include of
RenderThemeMacMediaControlsScriptAdditions.mm now that the content is in mediaControlsApple.js.
Source/WebKit2:
- Shared/WebPreferencesStoreDefaultsAdditions.cpp: Define and use DEFAULT_ALLOWS_PICTURE_IN_PICTURE_MEDIA_PLAYBACK.
- Shared/WebPreferencesStore.cpp:
(WebKit::defaults): Removed include of WebPreferencesStoreDefaultsAdditions.cpp now that the
default is defined correctly in WebPreferencesStoreDefaultsAdditions.cpp.
- UIProcess/API/C/WKPreferences.cpp: Inlined WKPreferencesAdditions.cpp.
- UIProcess/API/C/WKPreferencesRefPrivate.h: Ditto.
- WebProcess/cocoa/WebVideoFullscreenManager.mm: Inlined WebVideoFullscreenManagerSupportsVideoFullscreenMac.mm.
- 4:04 AM Changeset in webkit [202273] by
-
- 5 edits in trunk/Source/WebKit2
[GTK] Web view is not redrawn when reparented in force compositing mode
https://bugs.webkit.org/show_bug.cgi?id=158689
Reviewed by Žan Doberšek.
When the web view is reparented in accelerated compositing mode, the UI process always exits the accelerated
mode when the view is unrealized, because the native surface handle for compositing is destroyed, but it doesn't
enter again when the view is realized and a new native surface handle for compositing is used. This happens
because the UI and Web processes are not in sync regarding whether the page is in accelerated compositing or
not. The Web process never exits accelerated mode when compositing mode is forced, but the UI process doesn't
check that setting at all.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseResizeRedirectedWindow): Helper function to ensure the redirected window size is properly updated.
(webkitWebViewBaseRealize): Resize the redirected window if the view is already in AC mode when realized.
(webkitWebViewRenderAcceleratedCompositingResults): Use webkitWebViewBaseResizeRedirectedWindow().
(webkitWebViewBaseSizeAllocate): Ditto.
(webkitWebViewBaseWillEnterAcceleratedCompositingMode): Ditto.
- UIProcess/DrawingAreaProxyImpl.cpp:
(WebKit::DrawingAreaProxyImpl::alwaysUseCompositing): Return true in force compositing mode.
(WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode): Update assert.
(WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode): Do not exit AC mode compositing mode is always enabled.
- UIProcess/DrawingAreaProxyImpl.h:
(WebKit::DrawingAreaProxyImpl::isInAcceleratedCompositingMode): Return true also in force compositing mode.
- UIProcess/gtk/RedirectedXCompositeWindow.cpp:
(WebKit::RedirectedXCompositeWindow::surface): Ensure we never return an uninitialized surface to prevent
rendering artifacts in in force compositing mode when waiting for the first update on the redirected window.
- 2:56 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 1:54 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 1:32 AM Changeset in webkit [202272] by
-
- 9 edits6 adds in trunk
[GStreamer] video orientation support
https://bugs.webkit.org/show_bug.cgi?id=148524
Patch by Miguel Gomez <magomez@igalia.com> on 2016-06-21
Reviewed by Philippe Normand.
Source/WebCore:
Rotate video frames to follow the orientation metadata in the video file.
When accelerated compositing is disabled, the rotation is performed by a videoflip element added
to the playbin.
When accelerated compositing is enabled, the rotation is peformed by the TextureMapper in response
to a rotation flag set on the frame buffers.
Test: media/video-orientation.html
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
Handle the GST_MESSAGE_TAG message from the bin.
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
Add the videflip element to the bin when accelerated compositing is disabled.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::GstVideoFrameHolder::GstVideoFrameHolder):
Receive and use extra flags for the TextureMapper.
(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize):
When using accelerated compositing, transpose the video size if the rotation is 90 or 270 degrees.
(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):
Add rotation flag to frame holder and layer buffer.
(WebCore::MediaPlayerPrivateGStreamerBase::paintToTextureMapper):
Use rotation flag when requesting the TextureMapper to draw.
(WebCore::MediaPlayerPrivateGStreamerBase::setVideoSourceRotation):
Function to store the video rotation.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
Add bits to store the video rotation.
- platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
Modify the patternTransform according to the rotation flag passed.
- platform/graphics/texmap/TextureMapperGL.h:
Add new flags to handle the video souce rotation.
- platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:
(WebCore::TextureMapperPlatformLayerBuffer::paintToTextureMapper):
Change the drawTexture method used so custom flags can be passed.
- platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h:
(WebCore::TextureMapperPlatformLayerBuffer::setExtraFlags):
New method to set TextureMapper flags.
LayoutTests:
Test whether the video is properly being displayed by checking the video
element size.
- media/content/no-rotation.mp4: Added.
- media/content/rotation-180.mp4: Added.
- media/content/rotation-270.mp4: Added.
- media/content/rotation-90.mp4: Added.
- media/video-orientation-expected.txt: Added.
- media/video-orientation.html: Added.
- 12:11 AM MathML/Early_2016_Refactoring edited by
- (diff)
Jun 20, 2016:
- 11:28 PM Changeset in webkit [202271] by
-
- 12 edits in trunk
Use the MathOperator to handle some non-stretchy operators
https://bugs.webkit.org/show_bug.cgi?id=157519
Patch by Frederic Wang <fwang@igalia.com> on 2016-06-20
Reviewed by Brent Fulgham.
Source/WebCore:
To prepare for the removal of anonymous text node from the render classes of token elements
we use MathOperator to handle two cases where the actual text to display may not be
available in the DOM: mfenced and minus operators. This change removes support for the
case of mfenced operators with multiple characters since that it is not supported by
MathOperator. It is a edge case that is not used in practice since fences and separators are
only made of a single character. However, it would still be possible to duplicate some
code/logic to add it back if that turns out to be necessary.
No new tests, already covered by existing tests.
- rendering/mathml/MathOperator.cpp:
(WebCore::MathOperator::MathOperator): Rename UndefinedOperator.
(WebCore::RenderMathMLOperator::firstLineBaseline): Improve rounding of ascent so that mfenced operators are correctly aligned.
- rendering/mathml/MathOperator.h: Rename UndefinedOperator, since it can now be used to draw non-stretchy operators.
(WebCore::MathOperator::isStretched): Deleted. This function is no longer used by RenderMathMLOperator.
(WebCore::MathOperator::unstretch): Deleted. This function is no longer used by RenderMathMLOperator.
- rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Use useMathOperator.
(WebCore::RenderMathMLOperator::rebuildTokenContent): Set the MathOperator when useMathOperator() is true.
When the operator is not likely to stretch we just leave its type as NormalOperator.
(WebCore::RenderMathMLOperator::useMathOperator): Helper function to determine when MathOperator should be used.
(WebCore::RenderMathMLOperator::firstLineBaseline): Use useMathOperator.
(WebCore::RenderMathMLOperator::computeLogicalHeight): Ditto.
(WebCore::RenderMathMLOperator::paint): Ditto.
(WebCore::RenderMathMLOperator::paintChildren): Ditto.
- rendering/mathml/RenderMathMLOperator.h: Declare useMathOperator.
LayoutTests:
We adjust fenced-mi.html to handle one edge case that we no longer support.
We also update some test references on Mac and iOS.
- mathml/presentation/fenced-mi-expected.html: Indicate that this is no longer supported.
- mathml/presentation/fenced-mi.html: Adjust the reference since no text is shown.
- platform/mac/mathml/opentype/large-operators-expected.txt: Update reference.
- platform/mac/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
- platform/mac/mathml/opentype/vertical-expected.txt: Ditto.
- platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt: Ditto.
- platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
- 11:16 PM Changeset in webkit [202270] by
-
- 2 edits in trunk/LayoutTests
Test expectation update for media/click-placeholder-not-pausing.html
- platform/mac-wk2/TestExpectations:
- 11:08 PM Changeset in webkit [202269] by
-
- 2 edits in trunk/LayoutTests
Test expectation update for
https://bugs.webkit.org/show_bug.cgi?id=158320
REGRESSION (r201476?): LayoutTest tiled-drawing/scrolling/latched-div-with-scroll-snap.html is flaky
- platform/mac-wk2/TestExpectations:
- 9:56 PM Changeset in webkit [202268] by
-
- 24 edits in trunk/Source/WebCore
Don't eagerly reify DOM Prototype properties
https://bugs.webkit.org/show_bug.cgi?id=158557
Reviewed by Andreas Kling.
We were eagerly reifying these properties to avoid virtualizing getOwnPropertySlot,
but since bug #158059 this does not require a method table call in any case.
Eagerly reifying these values likely has some CPU and memory cost on page load.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- should generate compressed index for hashtable, prototype object ClassInfo should contain static table, don't reifyStaticProperties for prototype objects.
(GeneratePrototypeDeclaration):
- Set HasStaticPropertyTable for DOM prototype objects.
- bindings/scripts/test/JS/JSInterfaceName.cpp:
(WebCore::JSInterfaceNamePrototype::JSInterfaceNamePrototype):
(WebCore::JSInterfaceNamePrototype::finishCreation):
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::JSTestActiveDOMObjectPrototype::JSTestActiveDOMObjectPrototype):
(WebCore::JSTestActiveDOMObjectPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::JSTestClassWithJSBuiltinConstructorPrototype::JSTestClassWithJSBuiltinConstructorPrototype):
(WebCore::JSTestClassWithJSBuiltinConstructorPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::JSTestCustomConstructorWithNoInterfaceObjectPrototype):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::JSTestCustomNamedGetterPrototype::JSTestCustomNamedGetterPrototype):
(WebCore::JSTestCustomNamedGetterPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::JSTestEventConstructorPrototype::JSTestEventConstructorPrototype):
(WebCore::JSTestEventConstructorPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::JSTestEventTargetPrototype::JSTestEventTargetPrototype):
(WebCore::JSTestEventTargetPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::JSTestExceptionPrototype::JSTestExceptionPrototype):
(WebCore::JSTestExceptionPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::JSTestGenerateIsReachablePrototype::JSTestGenerateIsReachablePrototype):
(WebCore::JSTestGenerateIsReachablePrototype::finishCreation):
- bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfacePrototype::JSTestInterfacePrototype):
(WebCore::JSTestInterfacePrototype::finishCreation):
- bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
(WebCore::JSTestJSBuiltinConstructorPrototype::JSTestJSBuiltinConstructorPrototype):
(WebCore::JSTestJSBuiltinConstructorPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::JSTestMediaQueryListListenerPrototype::JSTestMediaQueryListListenerPrototype):
(WebCore::JSTestMediaQueryListListenerPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::JSTestNamedConstructorPrototype::JSTestNamedConstructorPrototype):
(WebCore::JSTestNamedConstructorPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::JSTestNodePrototype::JSTestNodePrototype):
(WebCore::JSTestNodePrototype::finishCreation):
- bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::JSTestNondeterministicPrototype::JSTestNondeterministicPrototype):
(WebCore::JSTestNondeterministicPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjPrototype::JSTestObjPrototype):
(WebCore::JSTestObjPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::JSTestOverloadedConstructorsPrototype::JSTestOverloadedConstructorsPrototype):
(WebCore::JSTestOverloadedConstructorsPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::JSTestOverrideBuiltinsPrototype::JSTestOverrideBuiltinsPrototype):
(WebCore::JSTestOverrideBuiltinsPrototype::finishCreation):
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::JSTestSerializedScriptValueInterfacePrototype::JSTestSerializedScriptValueInterfacePrototype):
(WebCore::JSTestSerializedScriptValueInterfacePrototype::finishCreation):
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsPrototype::JSTestTypedefsPrototype):
(WebCore::JSTestTypedefsPrototype::finishCreation):
- bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::JSattributePrototype::JSattributePrototype):
(WebCore::JSattributePrototype::finishCreation):
- bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::JSreadonlyPrototype::JSreadonlyPrototype):
(WebCore::JSreadonlyPrototype::finishCreation):
- 9:51 PM Changeset in webkit [202267] by
-
- 5 edits in trunk
WebRTC: RTCIceCandidate init dictionary don't handle explicit null or undefined values correctly
https://bugs.webkit.org/show_bug.cgi?id=158873
Reviewed by Alejandro G. Castro.
Source/WebCore:
Prevent explicit null and undefined values from being converted to "null" and "undefined"
strings.
Test: Extended fast/mediastream/RTCIceCandidate.html
- Modules/mediastream/RTCIceCandidate.cpp:
(WebCore::RTCIceCandidate::create):
LayoutTests:
Updated test to verify that explicit null and undefined values, passed to the
RTCIceCandidate init dictionary, are handled correctly.
- fast/mediastream/RTCIceCandidate-expected.txt:
- fast/mediastream/RTCIceCandidate.html:
- 8:48 PM Changeset in webkit [202266] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: UncaughtExceptionReporter should handle null event.error
https://bugs.webkit.org/show_bug.cgi?id=158971
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-20
Reviewed by Brian Burg.
- UserInterface/Debug/UncaughtExceptionReporter.js:
Since
typeof null === "object"handle uncaught exceptions where the
Error object itself is null.
- 8:26 PM Changeset in webkit [202265] by
-
- 8 edits in trunk/Source/WebCore
Unreviewed, rolling out r202252.
https://bugs.webkit.org/show_bug.cgi?id=158974
See rdar://problem/26867866 for details (Requested by ap on
#webkit).
Reverted changeset:
"Adopt commitPriority to get rid of the 2 AVPL solution for
PiP"
https://bugs.webkit.org/show_bug.cgi?id=158949
http://trac.webkit.org/changeset/202252
- 8:22 PM Changeset in webkit [202264] by
-
- 3 edits in trunk/LayoutTests
REGRESSION(r202253): Broke inspector/unit-tests/heap-snapshot-collection-event.html
https://bugs.webkit.org/show_bug.cgi?id=158973
Unreviewed fix after r202253.
- inspector/unit-tests/heap-snapshot-collection-event-expected.txt:
- inspector/unit-tests/heap-snapshot-collection-event.html:
Update the method name.
- 8:07 PM Changeset in webkit [202263] by
-
- 21 edits4 deletes in trunk
Unreviewed, rolling out r202243.
https://bugs.webkit.org/show_bug.cgi?id=158972
Broke Windows build and iOS tests (Requested by ap on
#webkit).
Reverted changeset:
"Focus event dispatched in iframe causes parent document to
scroll incorrectly"
https://bugs.webkit.org/show_bug.cgi?id=158629
http://trac.webkit.org/changeset/202243
- 8:01 PM Changeset in webkit [202262] by
-
- 4 edits in trunk/Source/WebCore
Simplify / Optimize DataDetector's searchForLinkRemovingExistingDDLinks()
https://bugs.webkit.org/show_bug.cgi?id=158968
Reviewed by Ryosuke Niwa.
Simplify / Optimize DataDetector's searchForLinkRemovingExistingDDLinks():
- Use modern ancestorsOfType<HTMLAnchorElement>() to traverse anchor ancestors instead of traversing by hand.
- Use NodeTraversal::next() to traverse the tree until we find endNode and use a for loop instead of a while loop. Previously, the logic the determine the next node was at the end of the loop and was identical behavior-wise to NodeTraversal::next(). However, the previous code for a lot less efficient because it was calling Node::childNodes() to get a NodeList of the children, then calling length() on it to check if we had children and finally use the first item in the list as next node. This was very inefficient because NodeList::length() would need to traverse all children to figure out the length and would cache all the children in a Vector in CollectionIndexCache.
- dom/ElementAncestorIterator.h:
(WebCore::ancestorsOfType):
- dom/ElementIterator.h:
(WebCore::findElementAncestorOfType):
(WebCore::findElementAncestorOfType<Element>):
Update ancestorsOfType() to take a Node instead of an Element. There are no
performance benefits to taking an Element here and it is a valid use case to
want an Element ancestor of a non-Element node.
- editing/cocoa/DataDetection.mm:
(WebCore::searchForLinkRemovingExistingDDLinks):
(WebCore::dataDetectorTypeForCategory): Deleted.
- 6:48 PM Changeset in webkit [202261] by
-
- 5 edits in trunk/Source/JavaScriptCore
[JSC] Use bytecode intrinsic to expose Module's loading status to builtin JS
https://bugs.webkit.org/show_bug.cgi?id=158871
Reviewed by Sam Weinig.
Now JSC has bytecode intrinsic system. Use it instead of exposing status values through the loader's properties.
- builtins/ModuleLoaderObject.js:
(newRegistryEntry):
(fulfillFetch):
(fulfillTranslate):
(commitInstantiated):
(requestFetch):
(requestTranslate):
(requestInstantiate):
(requestResolveDependencies.):
(requestResolveDependencies):
(requestLink):
(link):
(provide):
- bytecode/BytecodeIntrinsicRegistry.cpp:
(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
- bytecode/BytecodeIntrinsicRegistry.h:
- runtime/ModuleLoaderObject.cpp:
(JSC::ModuleLoaderObject::finishCreation): Deleted.
- 5:49 PM Changeset in webkit [202260] by
-
- 2 edits in tags/Safari-602.1.37.0.1/Source/WebKit2
Merged r202229. rdar://problem/26903312
- 5:48 PM Changeset in webkit [202259] by
-
- 2 edits in tags/Safari-602.1.37.0.1/Source/WebKit2
Merged r202224. rdar://problem/26903312
- 5:47 PM Changeset in webkit [202258] by
-
- 6 edits in tags/Safari-602.1.37.0.1/Source
Merged r202142. rdar://problem/26903312
- 5:45 PM Changeset in webkit [202257] by
-
- 5 edits in tags/Safari-602.1.37.0.1/Source
Versioning.
- 5:32 PM Changeset in webkit [202256] by
-
- 1 copy in tags/Safari-602.1.37.0.1
New tag.
- 5:26 PM Changeset in webkit [202255] by
-
- 58 edits2 copies in trunk/Source
Unreviewed, rolling out r202248.
https://bugs.webkit.org/show_bug.cgi?id=158960
breaks builds on the simulator (Requested by keith_mi_ on
#webkit).
Reverted changeset:
"It should be easy to add a private global helper function for
builtins"
https://bugs.webkit.org/show_bug.cgi?id=158893
http://trac.webkit.org/changeset/202248
- 5:24 PM Changeset in webkit [202254] by
-
- 12 edits in trunk
Unreviewed, rolling out r202136.
https://bugs.webkit.org/show_bug.cgi?id=158932
JSBench wasn't regressed by r202002 and r202111 on iOS after
all (Requested by rniwa_ on #webkit).
Reverted changeset:
"Unreviewed, rolling out r202002 and r202111."
https://bugs.webkit.org/show_bug.cgi?id=158638
http://trac.webkit.org/changeset/202136
Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-20
- 5:01 PM Changeset in webkit [202253] by
-
- 7 edits in trunk/Source/WebInspectorUI
Web Inspector: Snapshot List should show the total size and the total live size
https://bugs.webkit.org/show_bug.cgi?id=157904
<rdar://problem/26372833>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-20
Reviewed by Brian Burg.
Include the live size of a snapshot in the snapshot list.
- Localizations/en.lproj/localizedStrings.js:
New "Live Size" string.
- UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:
(HeapSnapshot):
(HeapSnapshot.updateCategoriesAndMetadata):
(HeapSnapshot.prototype.update):
(HeapSnapshot.prototype.serialize):
(HeapSnapshotDiff):
(HeapSnapshotDiff.prototype.update):
(HeapSnapshot.buildCategories): Deleted.
(HeapSnapshot.prototype.updateCategories): Deleted.
(HeapSnapshotDiff.prototype.updateCategories): Deleted.
- UserInterface/Proxies/HeapSnapshotDiffProxy.js:
(WebInspector.HeapSnapshotDiffProxy.prototype.updateForCollectionEvent):
(WebInspector.HeapSnapshotDiffProxy.prototype.update):
(WebInspector.HeapSnapshotDiffProxy.prototype.updateCategories): Deleted.
- UserInterface/Proxies/HeapSnapshotProxy.js:
(WebInspector.HeapSnapshotProxy):
(WebInspector.HeapSnapshotProxy.deserialize):
(WebInspector.HeapSnapshotProxy.prototype.get liveSize):
(WebInspector.HeapSnapshotProxy.prototype.updateForCollectionEvent):
(WebInspector.HeapSnapshotProxy.prototype.update):
(WebInspector.HeapSnapshotProxy.prototype.updateCategories): Deleted.
Rename "updateCategories" to "update" and update both categories
and metadata, like the liveSize.
- UserInterface/Views/HeapAllocationsTimelineDataGridNode.js:
(WebInspector.HeapAllocationsTimelineDataGridNode):
(WebInspector.HeapAllocationsTimelineDataGridNode.prototype.createCellContent):
(WebInspector.HeapAllocationsTimelineDataGridNode.prototype._heapSnapshotCollectedNodes):
Update live size after collection.
- UserInterface/Views/HeapAllocationsTimelineView.js:
(WebInspector.HeapAllocationsTimelineView):
Include a live size column in the DataGrid.
(WebInspector.HeapAllocationsTimelineView.prototype.closed):
Cleanup listeners appropriately.
- 4:26 PM Changeset in webkit [202252] by
-
- 8 edits in trunk/Source/WebCore
Adopt commitPriority to get rid of the 2 AVPL solution for PiP
https://bugs.webkit.org/show_bug.cgi?id=158949
rdar://problem/26867866
Reviewed by Simon Fraser.
No new tests because there is no behavior change. This reverts changes from
https://bugs.webkit.org/show_bug.cgi?id=158148 and instead uses -[CAContext commitPriority:]
to prevent flicker when moving a layer between contexts.
commitPriority allows the layer to be added to the destination context before it is
removed from the source context.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: remove m_secondaryVideoLayer.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: ditto
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenGravity): ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::syncTextTrackBounds): ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity): ditto.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: ditto
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer): ditto
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: ditto
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createPreviewLayers):ditto
- platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.h: ditto
- platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.mm: ditto
(WebCore::VideoFullscreenLayerManager::setVideoLayer): ditto
(WebCore::VideoFullscreenLayerManager::setVideoFullscreenLayer): ditto and adopt commitPriority.
(WebCore::VideoFullscreenLayerManager::setVideoFullscreenFrame): ditto
(WebCore::VideoFullscreenLayerManager::setVideoLayers): Deleted.
(WebCore::VideoFullscreenLayerManager::didDestroyVideoLayer): remove m_secondaryVideoLayer.
- platform/spi/cocoa/QuartzCoreSPI.h: Add commitPriority.
- 4:24 PM Changeset in webkit [202251] by
-
- 3 edits2 adds in trunk
Set the end position on the placeholder BidiRun properly.
https://bugs.webkit.org/show_bug.cgi?id=158958
Reviewed by Myles C. Maxfield.
rdar://problem/26609266
The second paramenter for BidiRun indicates the end position and not the length of the run.
This was regressed at r102875 where only the start position was changed from 0 to pos.
Source/WebCore:
Test: fast/text/international/bidi-style-in-isolate-crash.html
- rendering/InlineIterator.h:
(WebCore::addPlaceholderRunForIsolatedInline):
LayoutTests:
- fast/text/international/bidi-style-in-isolate-crash-expected.txt: Added.
- fast/text/international/bidi-style-in-isolate-crash.html: Added.
- 4:23 PM Changeset in webkit [202250] by
-
- 3 edits2 adds in trunk
A composition underline is placed to wrong position in RTL
https://bugs.webkit.org/show_bug.cgi?id=158602
Patch by Fujii Hironori <Fujii Hironori> on 2016-06-20
Reviewed by Myles C. Maxfield.
Source/WebCore:
InlineTextBox::paintCompositionUnderline does not take RTL into
account. The position of composition underline should be
mirrored in RTL.
Test: editing/input/composition-underline-rtl.html
- rendering/InlineTextBox.cpp:
(WebCore::mirrorRTLSegment): New helper function to convert RTL start position to LTR.
(WebCore::InlineTextBox::paintDecoration): Use mirrorRTLSegment.
(WebCore::InlineTextBox::paintCompositionUnderline): Ditto.
LayoutTests:
- editing/input/composition-underline-rtl-expected.html: Added.
- editing/input/composition-underline-rtl.html: Added.
- 3:41 PM Changeset in webkit [202249] by
-
- 3 edits in trunk/Source/WebKit2
Allow Spotlight suggestions to be read by any process
https://bugs.webkit.org/show_bug.cgi?id=158950
<rdar://problem/26865374>
Reviewed by Alexey Proskuryakov.
Extend sandbox to allow all web processes to read Spotlight results.
- Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb:
- WebProcess/com.apple.WebProcess.sb.in:
- 3:38 PM Changeset in webkit [202248] by
-
- 58 edits2 deletes in trunk/Source
It should be easy to add a private global helper function for builtins
https://bugs.webkit.org/show_bug.cgi?id=158893
Reviewed by Mark Lam.
Source/JavaScriptCore:
This patch does two things. First it moves all the builtin names
out of CommonIdentifiers and into BuiltinNames. This means that
adding a new function to the Builtins does not require rebuilding
all of JavaScriptCore. This patch also adds a new decorator to our
builtins @privateGlobal that will automatically put the function
on the global object. The name of the property will be the same as
the private name of the function.
This patch, also, removes the JSArrayIterator.h/.cpp files
as they no longer appear to be used in any real way. Finally,
the builtins tests have been rebaselined. It appears this has
not been done for a while so the expected files contain other
changes.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Scripts/builtins/builtins_generate_combined_header.py:
(BuiltinsCombinedHeaderGenerator.generate_output):
(generate_section_for_code_name_macro):
(generate_section_for_global_private_code_name_macro):
- Scripts/builtins/builtins_model.py:
(BuiltinFunction.init):
(BuiltinFunction.fromString):
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
- Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
- Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
- Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
- builtins/ArrayIteratorPrototype.js:
- builtins/ArrayPrototype.js:
- builtins/BuiltinNames.h:
- builtins/GeneratorPrototype.js:
- builtins/GlobalObject.js:
- builtins/PromiseOperations.js:
- builtins/RegExpPrototype.js:
- builtins/StringPrototype.js:
- bytecode/BytecodeIntrinsicRegistry.cpp:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::expectedFunctionForIdentifier):
(JSC::BytecodeGenerator::emitGetTemplateObject):
(JSC::BytecodeGenerator::emitLoadNewTargetFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitLoadDerivedConstructorFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitPutNewTargetToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitPutDerivedConstructorToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitGeneratorStateChange):
- bytecompiler/NodesCodegen.cpp:
(JSC::emitHomeObjectForCallee):
(JSC::emitPutHomeObject):
(JSC::FunctionNode::emitBytecode):
- dfg/DFGOperations.cpp:
- inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::subtype):
(Inspector::JSInjectedScriptHost::getInternalProperties): Deleted.
- parser/Lexer.cpp:
(JSC::Lexer<LChar>::parseIdentifier):
(JSC::Lexer<UChar>::parseIdentifier):
- parser/Nodes.h:
- parser/Parser.cpp:
(JSC::Parser<LexerType>::createGeneratorParameters):
(JSC::Parser<LexerType>::parseExportDeclaration):
- runtime/ArrayIteratorPrototype.cpp:
- runtime/ArrayIteratorPrototype.h:
- runtime/ArrayPrototype.cpp:
- runtime/CommonIdentifiers.cpp:
(JSC::CommonIdentifiers::CommonIdentifiers): Deleted.
- runtime/CommonIdentifiers.h:
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/IntlDateTimeFormat.cpp:
- runtime/IntlDateTimeFormatPrototype.cpp:
(JSC::IntlDateTimeFormatPrototypeGetterFormat):
(JSC::IntlDateTimeFormatPrototypeFuncResolvedOptions):
- runtime/IntlNumberFormatPrototype.cpp:
(JSC::IntlNumberFormatPrototypeGetterFormat):
(JSC::IntlNumberFormatPrototypeFuncResolvedOptions):
- runtime/IntlObjectInlines.h:
(JSC::constructIntlInstanceWithWorkaroundForLegacyIntlConstructor):
- runtime/JSArrayIterator.cpp: Removed.
(JSC::JSArrayIterator::finishCreation): Deleted.
(JSC::JSArrayIterator::kind): Deleted.
(JSC::JSArrayIterator::iteratedValue): Deleted.
- runtime/JSArrayIterator.h: Removed.
(JSC::JSArrayIterator::createStructure): Deleted.
(JSC::JSArrayIterator::create): Deleted.
(JSC::JSArrayIterator::JSArrayIterator): Deleted.
- runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::finishCreation):
- runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- runtime/JSInternalPromise.cpp:
- runtime/JSInternalPromiseDeferred.cpp:
(JSC::JSInternalPromiseDeferred::create):
- runtime/JSPromise.cpp:
(JSC::JSPromise::finishCreation):
(JSC::JSPromise::result):
- runtime/JSPromiseDeferred.cpp:
(JSC::JSPromiseDeferred::create):
- runtime/JSStringIterator.cpp:
(JSC::JSStringIterator::finishCreation):
(JSC::JSStringIterator::iteratedValue):
(JSC::JSStringIterator::clone):
- runtime/MapPrototype.cpp:
(JSC::MapPrototype::finishCreation):
- runtime/ObjectConstructor.cpp:
(JSC::ObjectConstructor::finishCreation):
- runtime/ReflectObject.cpp:
(JSC::ReflectObject::finishCreation):
- runtime/StringPrototype.cpp:
(JSC::StringPrototype::finishCreation):
- runtime/TypedArrayInlines.h:
Source/WebCore:
Add JSCJSValueInlines.h to fix build issues.
- platform/mock/mediasource/MockBox.cpp:
- 3:30 PM Changeset in webkit [202247] by
-
- 2 edits in trunk/LayoutTests
Test expectations gardening for
https://bugs.webkit.org/show_bug.cgi?id=155196
- platform/mac-wk1/TestExpectations:
- 2:37 PM Changeset in webkit [202246] by
-
- 2 edits in trunk/LayoutTests
Test result gardening.
- platform/mac-wk2/TestExpectations:
- 2:30 PM Changeset in webkit [202245] by
-
- 20 edits4 adds in trunk
:default CSS pseudo-class should match checkboxes+radios with a
checkedattribute
https://bugs.webkit.org/show_bug.cgi?id=156230
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/selectors/pseudo-classes/default-expected.txt:
Source/WebCore:
This patch update the :default pseudo class matching to be closer to the spec:
https://html.spec.whatwg.org/multipage/scripting.html#selector-default
The main remaining difference with the spec is the definition of "default button".
This is an unrelated problem that should be addressed separately.
The implementation was missing support for:
-input elements of type "checkbox" or "radio" with the "checked" attribute defined.
-option elements with the "selected" attribute defined.
The existing support for default button was pretty bad, I fixed that too.
The owner form now has a resetDefaultButton() API. When a Form Associated Element
becomes a submit button or loses that property, the element calls its form
to update the style as needed.
Whenever the submit button changes, 2 elements needs to have their style invalidated:
-The former default button.
-The new default button.
To invalidate the former button, FormElement now caches the computed
default button. When the default button changes, the cached value is invalidated
in addition to the new value.
Computing the new default button takes linear time in the number of form associated element.
To mitigate that, resetDefaultButton() is only called when changes are related
to submit buttons. Since those changes are rare, I don't expect the invalidation
to be a problem.
Tests: fast/css/pseudo-default-basics.html
fast/selectors/default-style-update.html
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
- css/SelectorCheckerTestFunctions.h:
(WebCore::matchesDefaultPseudoClass):
(WebCore::isDefaultButtonForForm): Deleted.
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoClassType):
- dom/Element.cpp:
(WebCore::Element::matchesValidPseudoClass):
(WebCore::Element::matchesInvalidPseudoClass):
(WebCore::Element::matchesDefaultPseudoClass):
- dom/Element.h:
(WebCore::Element::matchesValidPseudoClass): Deleted.
(WebCore::Element::matchesInvalidPseudoClass): Deleted.
(WebCore::Element::isDefaultButtonForForm): Deleted.
- html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::parseAttribute):
(WebCore::HTMLButtonElement::matchesDefaultPseudoClass):
- html/HTMLButtonElement.h:
- html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::isDefaultButtonForForm): Deleted.
- html/HTMLFormControlElement.h:
- html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::~HTMLFormElement):
(WebCore::HTMLFormElement::registerFormElement):
(WebCore::HTMLFormElement::removeFormElement):
(WebCore::HTMLFormElement::defaultButton):
(WebCore::HTMLFormElement::resetDefaultButton):
- html/HTMLFormElement.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::matchesDefaultPseudoClass):
- html/HTMLInputElement.h:
- html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::matchesDefaultPseudoClass):
(WebCore::HTMLOptionElement::parseAttribute):
- html/HTMLOptionElement.h:
- style/StyleSharingResolver.cpp:
(WebCore::Style::SharingResolver::canShareStyleWithElement):
(WebCore::Style::canShareStyleWithControl): Deleted.
LayoutTests:
- fast/css/pseudo-default-basics-expected.html: Added.
- fast/css/pseudo-default-basics.html: Added.
- fast/selectors/default-style-update-expected.txt: Added.
- fast/selectors/default-style-update.html: Added.
- 2:25 PM Changeset in webkit [202244] by
-
- 3 edits in trunk/Source/JavaScriptCore
LLInt64 Float64 get_by_val doesn't purify NaN
https://bugs.webkit.org/show_bug.cgi?id=158956
Reviewed by Michael Saboff.
- llint/LowLevelInterpreter64.asm: Fix the bug.
- tests/stress/float64-array-nan-inlined.js: Make this test also run in LLInt-only mode to catch this bug.
- 2:22 PM Changeset in webkit [202243] by
-
- 21 edits4 adds in trunk
Focus event dispatched in iframe causes parent document to scroll incorrectly
https://bugs.webkit.org/show_bug.cgi?id=158629
rdar://problem/26521616
Reviewed by Tim Horton.
Source/WebCore:
When focussing elements in iframes, the page could scroll to an incorrect location.
This happened because code in Element::focus() tried to disable scrolling on focus,
but did so only for the current frame, so ancestor frames got programmatically scrolled.
On iOS we handle the scrolling in the UI process, so never want the web process to
do programmatic scrolling.
Fix by changing the focus and cache restore code to use SelectionRevealMode::DoNotReveal,
rather than manually prohibiting frame scrolling. Pass SelectionRevealMode through various callers,
and use RevealUpToMainFrame for iOS, allowing the UI process to do the zoomToRect: for the main frame.
Tests: fast/forms/ios/focus-input-in-iframe.html
fast/forms/ios/programmatic-focus-input-in-iframe.html
- dom/Document.h:
- dom/Element.cpp:
(WebCore::Element::scrollIntoView):
(WebCore::Element::scrollIntoViewIfNeeded):
(WebCore::Element::scrollIntoViewIfNotVisible):
(WebCore::Element::focus):
(WebCore::Element::updateFocusAppearance):
- dom/Element.h:
- editing/Editor.cpp:
(WebCore::Editor::insertTextWithoutSendingTextEvent):
(WebCore::Editor::revealSelectionAfterEditingOperation):
(WebCore::Editor::findStringAndScrollToVisible):
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::updateAndRevealSelection):
(WebCore::FrameSelection::revealSelection):
(WebCore::FrameSelection::FrameSelection): Deleted.
- editing/FrameSelection.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateFocusAppearance):
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::updateFocusAppearance):
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
- page/FrameView.cpp:
(WebCore::FrameView::scrollToAnchor):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::autoscroll):
- rendering/RenderLayer.h:
- rendering/RenderObject.cpp:
(WebCore::RenderObject::scrollRectToVisible):
- rendering/RenderObject.h:
Source/WebKit/mac:
Pass SelectionRevealMode::Reveal in existing code.
- WebView/WebFrame.mm:
(-[WebFrame _scrollDOMRangeToVisible:]):
(-[WebFrame _scrollDOMRangeToVisible:withInset:]):
(-[WebFrame revealSelectionAtExtent:]):
- WebView/WebHTMLView.mm:
(-[WebHTMLView jumpToSelection:]):
(-[WebHTMLView centerSelectionInVisibleArea:]):
Source/WebKit2:
Pass SelectionRevealMode::Reveal in existing code.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::centerSelectionInVisibleArea):
LayoutTests:
- fast/forms/ios/focus-input-in-iframe-expected.txt: Added.
- fast/forms/ios/focus-input-in-iframe.html: Added.
- fast/forms/ios/programmatic-focus-input-in-iframe-expected.txt: Added.
- fast/forms/ios/programmatic-focus-input-in-iframe.html: Added.
- 1:52 PM Changeset in webkit [202242] by
-
- 205 edits in trunk
Remove RefPtr::release() and change calls sites to use WTFMove()
https://bugs.webkit.org/show_bug.cgi?id=158369
Reviewed by Chris Dumez.
RefPtr::release() releases its managed pointer awkwardly. It's more
direct and clearer to use WTFMove to transfer ownership of the managed
pointer.
As part of this cleanup, also change a lot of explicit data types to
'auto'.
Source/JavaScriptCore:
- API/JSObjectRef.cpp:
(JSClassCreate):
- API/JSScriptRef.cpp:
- API/JSValueRef.cpp:
(JSValueToStringCopy):
- bytecompiler/StaticPropertyAnalyzer.h:
(JSC::StaticPropertyAnalyzer::newObject):
(JSC::StaticPropertyAnalyzer::mov):
- debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::invalidate):
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):
- inspector/InspectorValues.cpp:
(Inspector::InspectorValue::parseJSON):
- inspector/agents/InspectorAgent.cpp:
(Inspector::InspectorAgent::activateExtraDomain):
(Inspector::InspectorAgent::activateExtraDomains):
- inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::breakpointActionProbe):
- inspector/remote/RemoteInspector.mm:
(Inspector::RemoteInspector::receivedSetupMessage):
- jit/Repatch.cpp:
(JSC::linkPolymorphicCall):
- runtime/GenericTypedArrayViewInlines.h:
(JSC::GenericTypedArrayView<Adaptor>::create):
(JSC::GenericTypedArrayView<Adaptor>::createUninitialized):
- runtime/JSArrayBufferConstructor.cpp:
(JSC::constructArrayBuffer):
- runtime/PropertyNameArray.h:
(JSC::PropertyNameArray::releaseData):
- runtime/Structure.cpp:
(JSC::Structure::toStructureShape):
- runtime/TypeSet.cpp:
(JSC::StructureShape::merge):
- tools/FunctionOverrides.cpp:
(JSC::initializeOverrideInfo):
Source/WebCore:
No new tests: there's no new functionality, just a refactoring of
existing code.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::removeSamplesFromTrackBuffer):
(WebCore::SourceBuffer::provideMediaData):
- Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::start):
- Modules/webdatabase/SQLCallbackWrapper.h:
(WebCore::SQLCallbackWrapper::clear):
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::handlePostMessage):
- bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):
- bindings/js/JSMessagePortCustom.h:
(WebCore::handlePostMessage):
- bindings/js/ScriptControllerMac.mm:
(WebCore::ScriptController::createScriptInstanceForWidget):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::readTerminal):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::copyPropertiesInSet):
- css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
- css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertShapeValue):
- css/StyleProperties.cpp:
(WebCore::StyleProperties::copyPropertiesInSet):
- css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingImages):
- dom/InlineStyleSheetOwner.cpp:
(WebCore::InlineStyleSheetOwner::clearSheet):
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::removeChildrenInRange):
(WebCore::CompositeEditCommand::removeNodeAndPruneAncestors):
(WebCore::CompositeEditCommand::prune):
(WebCore::CompositeEditCommand::replaceSelectedTextInNode):
(WebCore::CompositeEditCommand::rebalanceWhitespaceOnTextSubstring):
- editing/CreateLinkCommand.cpp:
(WebCore::CreateLinkCommand::doApply):
- editing/EditingStyle.cpp:
(WebCore::EditingStyle::mergeStyle):
(WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
- editing/Editor.cpp:
(WebCore::ClearTextCommand::CreateAndApply):
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
- editing/EditorCommand.cpp:
(WebCore::executeInsertNode):
- editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::performOverwrite):
(WebCore::InsertTextCommand::insertTab):
- editing/RemoveNodePreservingChildrenCommand.cpp:
(WebCore::RemoveNodePreservingChildrenCommand::doApply):
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::removeNodePreservingChildren):
(WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor):
- html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
- html/HTMLFontElement.cpp:
(WebCore::HTMLFontElement::collectStyleForPresentationAttribute):
- html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::prepareForSubmission):
- html/HTMLTableElement.cpp:
(WebCore::leakBorderStyle):
(WebCore::leakGroupBorderStyle):
- html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder):
- html/track/InbandDataTextTrack.cpp:
(WebCore::InbandDataTextTrack::addDataCue):
- html/track/InbandGenericTextTrack.cpp:
(WebCore::InbandGenericTextTrack::newCuesParsed):
- html/track/InbandWebVTTTextTrack.cpp:
(WebCore::InbandWebVTTTextTrack::newCuesParsed):
- html/track/TextTrackCueList.cpp:
(WebCore::TextTrackCueList::add):
- inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::getInlineStylesForNode):
- inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
- inspector/InspectorIndexedDBAgent.cpp:
- inspector/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::loadResource):
- inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyleSheet::buildObjectForSelectorList):
- loader/FormSubmission.cpp:
(WebCore::FormSubmission::create):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadPostRequest):
- loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::finalProgressComplete):
- loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::disassociateDocumentLoader):
(WebCore::ApplicationCacheGroup::didFinishLoading):
(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
- loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::loadCacheGroup):
(WebCore::ApplicationCacheStorage::cacheGroupForURL):
(WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
(WebCore::ApplicationCacheStorage::loadCache):
- loader/archive/ArchiveResourceCollection.cpp:
(WebCore::ArchiveResourceCollection::popSubframeArchive):
- loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::extract):
(WebCore::LegacyWebArchive::create):
(WebCore::LegacyWebArchive::createFromSelection):
- loader/cache/CachedImage.cpp:
(WebCore::CachedImage::createImage):
- loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::setIconDataForIconURL):
(WebCore::IconDatabase::getOrCreateIconRecord):
(WebCore::IconDatabase::readFromDatabase):
(WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::sessionStorage):
(WebCore::DOMWindow::localStorage):
- page/EventHandler.cpp:
(WebCore::EventHandler::updateDragAndDrop):
- page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::updateTransitions):
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::reportViolation):
- page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::createOverlayIfNeeded):
(WebCore::ServicesOverlayController::determineActiveHighlight):
- page/scrolling/AsyncScrollingCoordinator.h:
(WebCore::AsyncScrollingCoordinator::releaseScrollingTree):
- page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::cloneAndReset):
- page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::attachNode):
- platform/audio/HRTFElevation.cpp:
(WebCore::getConcatenatedImpulseResponsesForSubject):
- platform/graphics/DisplayRefreshMonitorManager.cpp:
(WebCore::DisplayRefreshMonitorManager::createMonitorForClient):
- platform/graphics/FontCascadeFonts.cpp:
(WebCore::FontCascadeFonts::glyphDataForSystemFallback):
- platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processAttributedStrings):
- platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:
(WebCore::MediaSelectionGroupAVFObjC::updateOptions):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::processCodedFrame):
- platform/graphics/ca/GraphicsLayerCA.cpp:
- platform/graphics/ca/PlatformCALayer.cpp:
(WebCore::PlatformCALayer::createCompatibleLayerOrTakeFromPool):
- platform/graphics/cg/ImageBufferDataCG.cpp:
(WebCore::ImageBufferData::getData):
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::asUnmultipliedImage):
(WebCore::FilterEffect::asPremultipliedImage):
- platform/graphics/mac/ImageMac.mm:
(WebCore::Image::loadPlatformResource):
- platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::createForCurrentGLContext):
(WebCore::GraphicsContext3D::paintRenderingResultsToImageData):
- platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::RealtimeMediaSourceCenterMac::createMediaStream):
- platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::MockRealtimeMediaSourceCenter::validateRequestConstraints):
(WebCore::MockRealtimeMediaSourceCenter::createMediaStream):
- platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::registerBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURLForSlice):
- platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::create):
- platform/network/cf/FormDataStreamCFNet.cpp:
(WebCore::formCreate):
- platform/text/BidiContext.cpp:
(WebCore::BidiContext::copyStackRemovingUnicodeEmbeddingContexts):
- rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::build):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::createScrollbar):
- rendering/RenderListBox.cpp:
(WebCore::RenderListBox::createScrollbar):
- rendering/RenderMenuList.cpp:
(RenderMenuList::createScrollbar):
- rendering/RenderSearchField.cpp:
(WebCore::RenderSearchField::createScrollbar):
- replay/ReplayController.cpp:
(WebCore::ReplayController::unloadSegment):
- svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::build):
- svg/SVGFESpecularLightingElement.cpp:
(WebCore::SVGFESpecularLightingElement::build):
- svg/properties/SVGListProperty.h:
(WebCore::SVGListProperty::getItemValuesAndWrappers):
(WebCore::SVGListProperty::insertItemBeforeValuesAndWrappers):
(WebCore::SVGListProperty::removeItemValuesAndWrappers):
- workers/WorkerThread.cpp:
(WebCore::WorkerThread::workerThread):
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::internalAbort):
- xml/XPathStep.cpp:
(WebCore::XPath::Step::nodesInAxis):
Source/WebKit:
- Storage/StorageAreaImpl.cpp:
(WebCore::StorageAreaImpl::setItem):
(WebCore::StorageAreaImpl::removeItem):
Source/WebKit/mac:
- Plugins/Hosted/NetscapePluginHostManager.mm:
(WebKit::NetscapePluginHostManager::instantiatePlugin):
- Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::create):
(WebKit::NetscapePluginInstanceProxy::loadRequest):
(WebKit::NetscapePluginInstanceProxy::demarshalValueFromArray):
- WebCoreSupport/WebFrameLoaderClient.mm:
(-[WebFramePolicyListener receivedPolicyDecision:]):
- WebCoreSupport/WebSecurityOrigin.mm:
(-[WebSecurityOrigin initWithURL:]):
- WebView/WebArchive.mm:
(-[WebArchive initWithMainResource:subresources:subframeArchives:]):
(-[WebArchive initWithData:]):
- WebView/WebDataSource.mm:
(-[WebDataSource mainResource]):
- WebView/WebFrame.mm:
(-[WebFrame _documentFragmentWithNodesAsParagraphs:]):
Source/WebKit2:
- DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::createDatabaseToWebProcessConnection):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
- NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::decode):
- NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord):
- Platform/mac/SharedMemoryMac.cpp:
(WebKit::SharedMemory::allocate):
(WebKit::SharedMemory::create):
(WebKit::SharedMemory::map):
- PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::createWebProcessConnection):
- Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(encodeToObjectStream):
- Shared/API/c/WKImage.cpp:
(WKImageCreate):
- Shared/API/c/WKNumber.cpp:
(WKBooleanCreate):
(WKDoubleCreate):
(WKUInt64Create):
- Shared/API/c/WKSecurityOriginRef.cpp:
(WKSecurityOriginCreate):
- Shared/API/c/WKSerializedScriptValue.cpp:
(WKSerializedScriptValueCreate):
(WKSerializedScriptValueCreateWithInternalRepresentation):
- Shared/API/c/cairo/WKImageCairo.cpp:
(WKImageCreateFromCairoSurface):
- Shared/API/c/cg/WKImageCG.cpp:
(WKImageCreateFromCGImage):
- Shared/API/c/mac/WKCertificateInfoMac.mm:
(WKCertificateInfoCreateWithCertficateChain):
- Shared/API/c/mac/WKObjCTypeWrapperRef.mm:
(WKObjCTypeWrapperCreate):
- Shared/API/c/mac/WKWebArchive.cpp:
(WKWebArchiveCreate):
(WKWebArchiveCreateWithData):
(WKWebArchiveCreateFromRange):
(WKWebArchiveCopyMainResource):
(WKWebArchiveCopySubresources):
(WKWebArchiveCopySubframeArchives):
- Shared/API/c/mac/WKWebArchiveResource.cpp:
(WKWebArchiveResourceCreate):
- Shared/APIWebArchive.mm:
(API::WebArchive::WebArchive):
- Shared/Plugins/Netscape/NetscapePluginModule.cpp:
(WebKit::NetscapePluginModule::getOrCreate):
- Shared/ShareableBitmap.cpp:
(WebKit::ShareableBitmap::create):
- Shared/ShareableResource.cpp:
(WebKit::ShareableResource::map):
- Shared/gtk/ArgumentCodersGtk.cpp:
(IPC::ArgumentCoder<DragData>::decode):
- UIProcess/API/C/CoordinatedGraphics/WKView.cpp:
(WKViewCreate):
- UIProcess/API/C/WKBatteryStatus.cpp:
(WKBatteryStatusCreate):
- UIProcess/API/C/WKGeolocationPosition.cpp:
(WKGeolocationPositionCreate_b):
- UIProcess/API/C/WKGrammarDetail.cpp:
(WKGrammarDetailCreate):
- UIProcess/API/C/WKPage.cpp:
(WKPageCopySessionState):
- UIProcess/API/C/WKPageGroup.cpp:
(WKPageGroupCreateWithIdentifier):
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesCreate):
(WKPreferencesCreateWithIdentifier):
(WKPreferencesCreateCopy):
- UIProcess/API/C/WKSessionRef.cpp:
(WKSessionCreate):
- UIProcess/API/C/WKSessionStateRef.cpp:
(WKSessionStateCopyData):
- UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextCopyPlugInInfoForBundleIdentifier):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView loadRequest:]):
(-[WKWebView loadFileURL:allowingReadAccessToURL:]):
(-[WKWebView loadData:MIMEType:characterEncodingName:baseURL:]):
(-[WKWebView goToBackForwardListItem:]):
(-[WKWebView goBack]):
(-[WKWebView goForward]):
(-[WKWebView reload]):
(-[WKWebView reloadFromOrigin]):
(-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]):
(-[WKWebView _reloadWithoutContentBlockers]):
(-[WKWebView _sessionStateData]):
(-[WKWebView _restoreSessionState:andNavigate:]):
- UIProcess/API/efl/ewk_database_manager.cpp:
(EwkDatabaseManager::createOriginList):
- UIProcess/API/efl/ewk_storage_manager.cpp:
(EwkStorageManager::createOriginList):
- UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewCreateNewPage):
(webkitWebViewPrintFrame):
(getContentsAsMHTMLDataCallback):
- UIProcess/Cocoa/SessionStateCoding.mm:
(WebKit::encodeSessionState):
- UIProcess/GenericCallback.h:
(WebKit::CallbackMap::take):
- UIProcess/GeolocationPermissionRequestManagerProxy.cpp:
(WebKit::GeolocationPermissionRequestManagerProxy::createRequest):
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):
- UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp:
(WebKit::NotificationPermissionRequestManagerProxy::createRequest):
- UIProcess/Plugins/PluginProcessManager.cpp:
(WebKit::PluginProcessManager::getOrCreatePluginProcess):
- UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::StorageArea::setItem):
(WebKit::StorageManager::StorageArea::removeItem):
(WebKit::StorageManager::createLocalStorageMap):
- UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::addItem):
(WebKit::WebBackForwardList::clear):
- UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::getHostnamesWithCookies):
(WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::installViewStateChangeCompletionHandler):
- UIProcess/WebPreferences.cpp:
(WebKit::WebPreferences::createWithLegacyDefaults):
(WebKit::WebPreferences::copy):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::~WebProcessPool):
- UIProcess/mac/ViewSnapshotStore.mm:
(WebKit::ViewSnapshotStore::recordSnapshot):
- UIProcess/mac/WKImmediateActionController.mm:
(-[WKImmediateActionController _webHitTestResult]):
- UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _askPageToComputePageRects]):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::setDragImage):
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(-[WKWebProcessPlugInFrame hitTest:]):
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.mm:
(-[WKWebProcessPlugInHitTestResult nodeHandle]):
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
(+[WKWebProcessPlugInNodeHandle nodeHandleWithJSValue:inContext:]):
(-[WKWebProcessPlugInNodeHandle htmlIFrameElementContentFrame]):
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm:
(+[WKWebProcessPlugInScriptWorld world]):
- WebProcess/InjectedBundle/API/c/WKBundle.cpp:
(WKBundlePostSynchronousMessage):
- WebProcess/InjectedBundle/API/c/WKBundleDOMWindowExtension.cpp:
(WKBundleDOMWindowExtensionCreate):
- WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:
(WKBundleHitTestResultCopyNodeHandle):
(WKBundleHitTestResultCopyURLElementHandle):
- WebProcess/InjectedBundle/API/c/WKBundleNavigationAction.cpp:
(WKBundleNavigationActionCopyHitTestResult):
(WKBundleNavigationActionCopyFormElement):
- WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
(WKBundleNodeHandleCreate):
(WKBundleNodeHandleCopyDocument):
(WKBundleNodeHandleCopySnapshotWithOptions):
(WKBundleNodeHandleCopyVisibleRange):
(WKBundleNodeHandleCopyHTMLTableCellElementCellAbove):
(WKBundleNodeHandleCopyDocumentFrame):
(WKBundleNodeHandleCopyHTMLFrameElementContentFrame):
(WKBundleNodeHandleCopyHTMLIFrameElementContentFrame):
- WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageCreateSnapshotWithOptions):
(WKBundlePageCreateSnapshotInViewCoordinates):
(WKBundlePageCreateSnapshotInDocumentCoordinates):
(WKBundlePageCreateScaledSnapshotInDocumentCoordinates):
(WKBundlePagePostSynchronousMessageForTesting):
- WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.cpp:
(WKBundleRangeHandleCreate):
(WKBundleRangeHandleCopySnapshotWithOptions):
- WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.cpp:
(WKBundleScriptWorldCreateWorld):
- WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:
(-[WKDOMNode _copyBundleNodeHandleRef]):
- WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:
(-[WKDOMRange _copyBundleRangeHandleRef]):
- WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.cpp:
(WebKit::InjectedBundleCSSStyleDeclarationHandle::getOrCreate):
- WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::imageForRect):
(WebKit::InjectedBundleNodeHandle::renderedImage):
- WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
(WebKit::InjectedBundleRangeHandle::getOrCreate):
- WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::create):
- WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::loadURL):
- WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
(WebKit::PDFPlugin::createScrollbar):
- WebProcess/Storage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::applyChange):
- WebProcess/WebCoreSupport/SessionStateConversion.cpp:
(WebKit::toFormData):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::createPlugin):
(WebKit::WebFrameLoaderClient::recreatePlugin):
(WebKit::WebFrameLoaderClient::createJavaAppletWidget):
(WebKit::WebFrameLoaderClient::createNetworkingContext):
- WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::highlight):
- WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::convertImageToBitmap):
- WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindUIAfterPageScroll):
- WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::VisitedLinkTableController::getOrCreate):
(WebKit::VisitedLinkTableController::setVisitedLinkTable):
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::createWithCoreMainFrame):
(WebKit::WebFrame::createSubframe):
(WebKit::WebFrame::create):
(WebKit::WebFrame::createSelectionSnapshot):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin):
(WebKit::WebPage::snapshotAtSize):
(WebKit::WebPage::snapshotNode):
(WebKit::WebPage::willPerformLoadDragDestinationAction):
(WebKit::WebPage::SandboxExtensionTracker::didStartProvisionalLoad):
(WebKit::WebPage::SandboxExtensionTracker::didCommitProvisionalLoad):
(WebKit::WebPage::drawRectToImage):
- WebProcess/WebPage/WebPageGroupProxy.cpp:
(WebKit::WebPageGroupProxy::create):
- WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
(WebKit::PlatformCAAnimationRemote::Properties::decode):
- WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::create):
(WebKit::PlatformCALayerRemote::clone):
- WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
(WebKit::PlatformCALayerRemoteCustom::create):
(WebKit::PlatformCALayerRemoteCustom::clone):
- WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::createDisplayRefreshMonitor):
Tools:
- DumpRenderTree/mac/PixelDumpSupportMac.mm:
(createBitmapContextFromWebView):
(createPagedBitmapContext):
- DumpRenderTree/mac/TestRunnerMac.mm:
(TestRunner::setMockGeolocationPosition):
- TestWebKitAPI/Tests/WTF/HashCountedSet.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WTF/HashMap.cpp:
(TestWebKitAPI::TEST):
- 1:48 PM Changeset in webkit [202241] by
-
- 1 copy in tags/Safari-601.1.46.145
New tag.
- 1:47 PM Changeset in webkit [202240] by
-
- 1 copy in tags/Safari-601.7.5
New tag.
- 1:40 PM Changeset in webkit [202239] by
-
- 3 edits2 deletes in trunk
Unreviewed, rolling out r202179.
https://bugs.webkit.org/show_bug.cgi?id=158946
The test either fails or times out 100% of the time (Requested
by ap on #webkit).
Reverted changeset:
"REGRESSION: Double tap to zoom does not work on yahoo
finance"
https://bugs.webkit.org/show_bug.cgi?id=158886
http://trac.webkit.org/changeset/202179
Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-20
- 1:38 PM Changeset in webkit [202238] by
-
- 2 edits in trunk/Source/WebCore
Crash in PlatformMediaSession::clientWillPausePlayback
https://bugs.webkit.org/show_bug.cgi?id=158953
<rdar://problem/26121125>
Reviewed by Jer Noble.
No new tests, I have not been able to reproduce this in a test.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::stop): Ref the element before calling stopWithoutDestroyingMediaPlayer
because updatePlaybackControlsManager can release the last reference and cause the
destructor to be called.
(WebCore::HTMLMediaElement::suspend): Ditto.
- 1:35 PM Changeset in webkit [202237] by
-
- 2 edits in trunk/LayoutTests
Fix a run-webkit-tests --lint warning.
- platform/mac/TestExpectations:
- 1:34 PM Changeset in webkit [202236] by
-
- 3 edits in trunk/Source/WebCore
Clean up ResourceResponseBase after r201943
https://bugs.webkit.org/show_bug.cgi?id=158706
Patch by Alex Christensen <achristensen@webkit.org> on 2016-06-20
Reviewed by Michael Catanzaro.
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::ResourceResponseBase):
(WebCore::ResourceResponseBase::asResourceResponse): Deleted.
- platform/network/ResourceResponseBase.h:
(WebCore::ResourceResponseBase::platformCompare):
- 1:30 PM Changeset in webkit [202235] by
-
- 3 edits in trunk/LayoutTests
Test expectations gardening for
https://bugs.webkit.org/show_bug.cgi?id=155196
Marked the tests as flaky instead of skipping, to make the results visible on the
flakiness dashboard. Also added video-with-data-url-allowed-by-media-src-star.html,
which is very flaky too.
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- 12:12 PM Changeset in webkit [202234] by
-
- 22 edits2 adds in trunk
Web Inspector: console.profile should use the new Sampling Profiler
https://bugs.webkit.org/show_bug.cgi?id=153499
<rdar://problem/24352431>
Reviewed by Timothy Hatcher.
Source/JavaScriptCore:
Currently console.profile/profileEnd behave slightly differently
between JSContext and Web inspection. Unifying will be part of:
<https://webkit.org/b/158753> Generalize the concept of Instruments on the backend
Both JSContext and Web inspection keep track of active
profiles started and stopped via console.profile/profileEnd.
JSContext inspection sends its programmatic start/stop
via the ScriptProfiler domain.
Web inspection sends its programmatic start/stop
via the Timeline domain, and also will start/stop backend
list of Instruments.
The functional differences between these is that for JSContext
inspection, console.profile only starts/stops the ScriptProfiler
domain, and does not auto-start other instruments. This isn't really
a problem right now given the instruments available for JSContext
inspection; but it will be nice to unify as we add more instruments.
Also, JSContext inspection won't have "Profile (name)" records in
its Events view, since those are currently generated only by the
Web's Timeline domain.
- inspector/protocol/ScriptProfiler.json:
- inspector/protocol/Timeline.json:
Events to inform the frontend of programmatic start/stop.
- debugger/Debugger.h:
- inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::breakpointsActive):
(Inspector::InspectorDebuggerAgent::isPaused):
- inspector/agents/InspectorDebuggerAgent.h:
Expose breakpoints active state, since programmatic recording
will temporarily disabled breakpoints if needed.
- inspector/JSGlobalObjectConsoleClient.cpp:
(Inspector::JSGlobalObjectConsoleClient::JSGlobalObjectConsoleClient):
(Inspector::JSGlobalObjectConsoleClient::profile):
(Inspector::JSGlobalObjectConsoleClient::profileEnd):
(Inspector::JSGlobalObjectConsoleClient::startConsoleProfile):
(Inspector::JSGlobalObjectConsoleClient::stopConsoleProfile):
- inspector/JSGlobalObjectConsoleClient.h:
- inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
- inspector/agents/InspectorScriptProfilerAgent.cpp:
(Inspector::InspectorScriptProfilerAgent::programmaticCaptureStarted):
(Inspector::InspectorScriptProfilerAgent::programmaticCaptureStopped):
- inspector/agents/InspectorScriptProfilerAgent.h:
JSContext implementation of console.profile/profileEnd.
Source/WebCore:
Test: inspector/timeline/setInstruments-programmatic-capture.html
- inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::startFromConsole):
(WebCore::InspectorTimelineAgent::stopFromConsole):
(WebCore::InspectorTimelineAgent::mainFrameStartedLoading):
(WebCore::InspectorTimelineAgent::startProgrammaticCapture):
(WebCore::InspectorTimelineAgent::stopProgrammaticCapture):
(WebCore::InspectorTimelineAgent::toggleInstruments):
(WebCore::InspectorTimelineAgent::toggleScriptProfilerInstrument):
(WebCore::InspectorTimelineAgent::toggleHeapInstrument):
(WebCore::InspectorTimelineAgent::toggleMemoryInstrument):
(WebCore::InspectorTimelineAgent::toggleTimelineInstrument):
- inspector/InspectorTimelineAgent.h:
Web implementation of console.profile/profileEnd.
Make helpers for startings / stopping instruments.
Source/WebInspectorUI:
- UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.programmaticCaptureStarted):
(WebInspector.TimelineManager.prototype.programmaticCaptureStopped):
(WebInspector.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStarted):
(WebInspector.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStopped):
For programmatic captures, automatically show the Script Timeline, since
that is guarenteed to have been started by the backend. Start capturing
without creating a new recording.
- UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.stop):
(WebInspector.TimelineRecording.prototype.addScriptInstrumentForProgrammaticCapture):
When stopping for programmatic capture we don't need to disable
instruments, the backend would have already done this.
- UserInterface/Protocol/ScriptProfilerObserver.js:
(WebInspector.ScriptProfilerObserver.prototype.programmaticCaptureStarted):
(WebInspector.ScriptProfilerObserver.prototype.programmaticCaptureStopped):
(WebInspector.ScriptProfilerObserver):
- UserInterface/Protocol/TimelineObserver.js:
(WebInspector.TimelineObserver.prototype.programmaticCaptureStarted):
(WebInspector.TimelineObserver.prototype.programmaticCaptureStopped):
(WebInspector.TimelineObserver):
Pass through Web and JSContext programmatic capture events.
LayoutTests:
- inspector/timeline/setInstruments-programmatic-capture-expected.txt: Added.
- inspector/timeline/setInstruments-programmatic-capture.html: Added.
New test that the backend auto-starts instruments during programmatic capture.
- 12:10 PM Changeset in webkit [202233] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, rebaseline test now that TouchEvent has a constructor.
- fast/events/touch/document-create-touch-list-ios-expected.txt:
- 11:52 AM Changeset in webkit [202232] by
-
- 2 edits1 add in trunk/Tools
Add a API test for *DeferringViewInWindowChanges as fixed in r202230
https://bugs.webkit.org/show_bug.cgi?id=158947
Reviewed by Simon Fraser.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2/DeferredViewInWindowStateChange.mm: Added.
(TestWebKitAPI::didFinishLoadForFrame):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::TEST):
Add a test ensuring that in-window state changes are deferred when using
the SPI for deferring them, as fixed in r202230.
- 10:23 AM Changeset in webkit [202231] by
-
- 9 edits in trunk/Source/WebCore
When navigating, discard decoded image data that is only live due to page cache.
<https://webkit.org/b/158941>
Reviewed by Antti Koivisto.
A resource is "live" if it's currently in use by a web page, and "dead" if it's
only kept alive by the memory cache.
This patch adds a mechanism that looks at CachedImage resources to see if all the
clients that make them appear "live" are actually pages in the page cache.
If so, we let the "jettison expensive objects on top-level navigation" mechanism
discard the decoded data for such half-live images. This can reduce the peak
memory usage during navigations quite a bit.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad): Move the call to MemoryPressureHandler
before we add the outgoing page to the page cache. This allows the jettisoning code
to make decisions based on which pages were cached *before* the navigation.
- loader/cache/CachedImageClient.h:
(WebCore::CachedImageClient::inPageCache):
- loader/ImageLoader.h:
- loader/ImageLoader.cpp:
(WebCore::ImageLoader::inPageCache):
- rendering/RenderObject.h:
(WebCore::RenderObject::inPageCache): Added a CachedImageClient::inPageCache() virtual
to determine which clients are currently in page cache (answered by their Document.)
- loader/cache/CachedImage.h:
- loader/cache/CachedImage.cpp:
(WebCore::CachedImage::areAllClientsInPageCache): Walks all CachedImageClient clients
and returns true if all of them are inPageCache().
- platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::jettisonExpensiveObjectsOnTopLevelNavigation):
Walk all the known CachedImages and nuke decoded data for those that have some but
are only considered live due to clients in the page cache.
- 10:13 AM Changeset in webkit [202230] by
-
- 3 edits in trunk/Source/WebKit2
REGRESSION (r191499): Tab content "jumps" down when focusing tabs that load in the background
https://bugs.webkit.org/show_bug.cgi?id=158904
<rdar://problem/26025831>
Reviewed by Sam Weinig.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::viewDidMoveToWindow):
During the large refactor that was r191499, we somehow ended up with two
different members for the same thing - one that got written, and one that
got read. We should only have one.
- 10:10 AM Changeset in webkit [202229] by
-
- 2 edits in trunk/Source/WebKit2
Try to fix the iOS build after r202142 and r202224.
- Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
- 10:02 AM Nightly Builds edited by
- Add the link to El Capitan workarounds (diff)
- 9:10 AM Changeset in webkit [202228] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix post-landing review comment from Darin on r202188.
- platform/network/CacheValidation.cpp:
(WebCore::parseCacheHeader):
- 1:52 AM Changeset in webkit [202227] by
-
- 5 edits2 adds in trunk
Updating class name of a shadow host does not update the style applied by :host()
https://bugs.webkit.org/show_bug.cgi?id=158900
<rdar://problem/26883707>
Reviewed by Simon Fraser.
Source/WebCore:
Test: fast/shadow-dom/shadow-host-style-update.html
Teach style invalidation optimization code about :host.
- style/AttributeChangeInvalidation.cpp:
(WebCore::Style::mayBeAffectedByHostStyle):
(WebCore::Style::AttributeChangeInvalidation::invalidateStyle):
- style/ClassChangeInvalidation.cpp:
(WebCore::Style::computeClassChange):
(WebCore::Style::mayBeAffectedByHostStyle):
(WebCore::Style::ClassChangeInvalidation::invalidateStyle):
- style/IdChangeInvalidation.cpp:
(WebCore::Style::mayBeAffectedByHostStyle):
(WebCore::Style::IdChangeInvalidation::invalidateStyle):
LayoutTests:
- fast/shadow-dom/shadow-host-style-update-expected.html: Added.
- fast/shadow-dom/shadow-host-style-update.html: Added.
- 12:07 AM Changeset in webkit [202226] by
-
- 2 edits in trunk/Tools
WebKitTestRunner: Missing \n at the line of "#PROCESS UNRESPONSIVE"
https://bugs.webkit.org/show_bug.cgi?id=158931
Patch by Fujii Hironori <Fujii Hironori> on 2016-06-20
Reviewed by Alexey Proskuryakov.
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::dumpWebProcessUnresponsiveness): Appended missing \n at the end of line.
Jun 19, 2016:
- 11:56 PM Changeset in webkit [202225] by
-
- 10 edits in trunk/Source/ThirdParty
Update Brotli to version 0.4.0
https://bugs.webkit.org/show_bug.cgi?id=158907
Reviewed by Michael Catanzaro.
- brotli/README.webkit:
- brotli/dec/bit_reader.h:
- brotli/dec/decode.c:
- brotli/dec/decode.h:
- brotli/dec/huffman.c:
- brotli/dec/huffman.h:
- brotli/dec/port.h:
(BrotliDump):
- brotli/dec/state.c:
- brotli/dec/state.h:
- 10:53 PM Changeset in webkit [202224] by
-
- 2 edits in trunk/Source/WebKit2
Fix erroneously commented line added in r202142.
- Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
- 8:57 PM Changeset in webkit [202223] by
-
- 3 edits in trunk/LayoutTests
Test expectation gardening.
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 7:35 PM Changeset in webkit [202222] by
-
- 3 edits in trunk/LayoutTests
Test expectation gardening.
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 6:59 PM Changeset in webkit [202221] by
-
- 2 edits in trunk/LayoutTests
[EFL] Mark shadow-dom tests to pass because it was enabled by r202091
https://bugs.webkit.org/show_bug.cgi?id=158930
Unreviewed EFL gardening.
- platform/efl/TestExpectations:
- 6:22 PM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 6:19 PM Changeset in webkit [202220] by
-
- 2 edits2 adds in trunk/LayoutTests
[GTK] Unreviewed test gardening
- fast/forms/select-non-native-rendering-direction-expected.txt: Added.
- fast/text/hyphenate-avoid-orphaned-word-expected.txt: Added.
- platform/gtk/TestExpectations:
- 5:17 PM Changeset in webkit [202219] by
-
- 36 edits27 copies3 moves38 adds3 deletes in trunk
Add test expectations for macOS Sierra
https://bugs.webkit.org/show_bug.cgi?id=158903
Reviewed by Alex Christensen.
Tools:
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Sierra.png: Added.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Sierra@2x.png: Added.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
Added dashboard support.
- BuildSlaveSupport/build.webkit.org-config/wkbuild.py:
- BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:
Trigger the right build queues on check-in.
- Scripts/webkitpy/common/system/platforminfo.py:
- Scripts/webkitpy/common/system/platforminfo_unittest.py:
- Scripts/webkitpy/layout_tests/models/test_expectations.py:
- Scripts/webkitpy/port/mac.py:
- Scripts/webkitpy/port/mac_unittest.py:
- TestResultServer/static-dashboards/flakiness_dashboard.js:
Added cases for Sierra, and updated tests for new baseline search paths.
LayoutTests:
- TestExpectations:
- media/click-placeholder-not-pausing-expected.txt: Added.
- media/click-placeholder-not-pausing.html: Added.
- media/controls/picture-in-picture-expected.txt: Added.
- media/controls/picture-in-picture.html: Added.
- media/element-containing-pip-video-going-into-fullscreen-expected.txt: Added.
- media/element-containing-pip-video-going-into-fullscreen.html: Added.
- media/fullscreen-api-enabled-media-with-presentation-mode-expected.txt: Added.
- media/fullscreen-api-enabled-media-with-presentation-mode.html: Added.
- media/fullscreen-video-going-into-pip-expected.txt: Added.
- media/fullscreen-video-going-into-pip.html: Added.
- media/navigate-with-pip-should-not-crash-expected.txt: Added.
- media/navigate-with-pip-should-not-crash.html: Added.
- media/pip-video-going-into-fullscreen-expected.txt: Added.
- media/pip-video-going-into-fullscreen.html: Added.
- media/video-contained-in-fullscreen-element-going-into-pip-expected.txt: Added.
- media/video-contained-in-fullscreen-element-going-into-pip.html: Added.
- platform/mac-elcapitan: Added.
- platform/mac-elcapitan/compositing: Added.
- platform/mac-elcapitan/compositing/rtl: Added.
- platform/mac-elcapitan/compositing/rtl/rtl-overflow-scrolling-expected.txt: Copied from LayoutTests/platform/mac/compositing/rtl/rtl-overflow-scrolling-expected.txt.
- platform/mac-elcapitan/fast: Added.
- platform/mac-elcapitan/fast/block: Added.
- platform/mac-elcapitan/fast/block/float: Added.
- platform/mac-elcapitan/fast/block/float/026-expected.png: Copied from LayoutTests/platform/mac/fast/block/float/026-expected.png.
- platform/mac-elcapitan/fast/block/float/026-expected.txt: Copied from LayoutTests/platform/mac/fast/block/float/026-expected.txt.
- platform/mac-elcapitan/fast/block/float/028-expected.png: Copied from LayoutTests/platform/mac/fast/block/float/028-expected.png.
- platform/mac-elcapitan/fast/block/float/028-expected.txt: Copied from LayoutTests/platform/mac/fast/block/float/028-expected.txt.
- platform/mac-elcapitan/fast/overflow: Added.
- platform/mac-elcapitan/fast/overflow/unreachable-overflow-rtl-bug-expected.png: Copied from LayoutTests/platform/mac/fast/overflow/unreachable-overflow-rtl-bug-expected.png.
- platform/mac-elcapitan/fast/overflow/unreachable-overflow-rtl-bug-expected.txt: Copied from LayoutTests/platform/mac/fast/overflow/unreachable-overflow-rtl-bug-expected.txt.
- platform/mac-elcapitan/fast/ruby: Added.
- platform/mac-elcapitan/fast/ruby/bopomofo-expected.png: Copied from LayoutTests/platform/mac/fast/ruby/bopomofo-expected.png.
- platform/mac-elcapitan/fast/ruby/bopomofo-expected.txt: Copied from LayoutTests/platform/mac/fast/ruby/bopomofo-expected.txt.
- platform/mac-elcapitan/fast/ruby/bopomofo-letter-spacing-expected.png: Copied from LayoutTests/platform/mac/fast/ruby/bopomofo-letter-spacing-expected.png.
- platform/mac-elcapitan/fast/ruby/bopomofo-letter-spacing-expected.txt: Copied from LayoutTests/platform/mac/fast/ruby/bopomofo-letter-spacing-expected.txt.
- platform/mac-elcapitan/fast/ruby/bopomofo-rl-expected.png: Copied from LayoutTests/platform/mac/fast/ruby/bopomofo-rl-expected.png.
- platform/mac-elcapitan/fast/ruby/bopomofo-rl-expected.txt: Copied from LayoutTests/platform/mac/fast/ruby/bopomofo-rl-expected.txt.
- platform/mac-elcapitan/fast/text: Added.
- platform/mac-elcapitan/fast/text/crash-complex-text-surrogate-expected.txt: Copied from LayoutTests/platform/mac/fast/text/crash-complex-text-surrogate-expected.txt.
- platform/mac-elcapitan/fast/text/justify-ideograph-complex-expected.png: Copied from LayoutTests/platform/mac/fast/text/justify-ideograph-complex-expected.png.
- platform/mac-elcapitan/fast/text/justify-ideograph-complex-expected.txt: Copied from LayoutTests/platform/mac/fast/text/justify-ideograph-complex-expected.txt.
- platform/mac-elcapitan/fast/text/line-initial-and-final-swashes-expected.png: Copied from LayoutTests/platform/mac/fast/text/line-initial-and-final-swashes-expected.png.
- platform/mac-elcapitan/fast/text/line-initial-and-final-swashes-expected.txt: Copied from LayoutTests/platform/mac/fast/text/line-initial-and-final-swashes-expected.txt.
- platform/mac-elcapitan/http: Added.
- platform/mac-elcapitan/http/tests: Added.
- platform/mac-elcapitan/http/tests/cookies: Added.
- platform/mac-elcapitan/http/tests/cookies/third-party-cookie-relaxing-expected.txt: Copied from LayoutTests/http/tests/cookies/third-party-cookie-relaxing-expected.txt.
- platform/mac-elcapitan/http/tests/security: Added.
- platform/mac-elcapitan/http/tests/security/mixedContent: Added.
- platform/mac-elcapitan/http/tests/security/mixedContent/insecure-audio-video-in-main-frame-expected.txt: Copied from LayoutTests/platform/mac/http/tests/security/mixedContent/insecure-audio-video-in-main-frame-expected.txt.
- platform/mac-elcapitan/media: Added.
- platform/mac-elcapitan/media/controls-strict-expected.png: Copied from LayoutTests/platform/mac/media/controls-strict-expected.png.
- platform/mac-elcapitan/media/controls-strict-expected.txt: Copied from LayoutTests/platform/mac/media/controls-strict-expected.txt.
- platform/mac-elcapitan/media/controls-without-preload-expected.png: Copied from LayoutTests/platform/mac/media/controls-without-preload-expected.png.
- platform/mac-elcapitan/media/controls-without-preload-expected.txt: Copied from LayoutTests/platform/mac/media/controls-without-preload-expected.txt.
- platform/mac-elcapitan/media/track: Added.
- platform/mac-elcapitan/media/track/video-track-alternate-groups-expected.txt: Copied from LayoutTests/platform/mac/media/track/video-track-alternate-groups-expected.txt.
- platform/mac-elcapitan/media/video-controls-rendering-expected.txt: Copied from LayoutTests/platform/mac/media/video-controls-rendering-expected.txt.
- platform/mac-elcapitan/media/video-display-toggle-expected.png: Copied from LayoutTests/platform/mac/media/video-display-toggle-expected.png.
- platform/mac-elcapitan/media/video-display-toggle-expected.txt: Copied from LayoutTests/platform/mac/media/video-display-toggle-expected.txt.
- platform/mac-elcapitan/media/video-no-audio-expected.txt: Copied from LayoutTests/platform/mac/media/video-no-audio-expected.txt.
- platform/mac-elcapitan/media/video-volume-slider-expected.txt: Copied from LayoutTests/platform/mac/media/video-volume-slider-expected.txt.
- platform/mac-wk1/TestExpectations:
- platform/mac-wk2/TestExpectations:
- platform/mac-wk2/fast/scrolling: Added.
- platform/mac-wk2/fast/scrolling/rtl-scrollbars-animation-property-expected.txt: Added.
- platform/mac/TestExpectations:
- platform/mac/compositing/rtl/rtl-overflow-scrolling-expected.png: Added.
- platform/mac/compositing/rtl/rtl-overflow-scrolling-expected.txt:
- platform/mac/fast/block/float/026-expected.png:
- platform/mac/fast/block/float/026-expected.txt:
- platform/mac/fast/block/float/028-expected.png:
- platform/mac/fast/block/float/028-expected.txt:
- platform/mac/fast/overflow/unreachable-overflow-rtl-bug-expected.png:
- platform/mac/fast/overflow/unreachable-overflow-rtl-bug-expected.txt:
- platform/mac/fast/ruby/bopomofo-expected.png:
- platform/mac/fast/ruby/bopomofo-expected.txt:
- platform/mac/fast/ruby/bopomofo-letter-spacing-expected.png:
- platform/mac/fast/ruby/bopomofo-letter-spacing-expected.txt:
- platform/mac/fast/ruby/bopomofo-rl-expected.png:
- platform/mac/fast/ruby/bopomofo-rl-expected.txt:
- platform/mac/fast/text/crash-complex-text-surrogate-expected.txt:
- platform/mac/fast/text/justify-ideograph-complex-expected.png:
- platform/mac/fast/text/justify-ideograph-complex-expected.txt:
- platform/mac/fast/text/line-initial-and-final-swashes-expected.png:
- platform/mac/fast/text/line-initial-and-final-swashes-expected.txt:
- platform/mac/http/tests/cookies/third-party-cookie-relaxing-expected.txt: Added.
- platform/mac/http/tests/security/mixedContent/insecure-audio-video-in-main-frame-expected.txt:
- platform/mac/media/controls-strict-expected.png: Removed.
- platform/mac/media/controls-without-preload-expected.png: Removed.
- platform/mac/media/track/video-track-alternate-groups-expected.txt:
- platform/mac/media/video-controls-rendering-expected.png: Removed.
- platform/mac/media/video-display-toggle-expected.png: Removed.
- platform/mac/media/video-no-audio-expected.png: Removed.
- platform/mac/media/video-volume-slider-expected.png: Removed.
- 5:03 PM Changeset in webkit [202218] by
-
- 25 edits in trunk/Source/WebCore
Remove hasStaticPropertyTable (part 5: done!)
https://bugs.webkit.org/show_bug.cgi?id=158431
Reviewed by Chris Dumez.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
- remove hasStaticPropertyTable.
- bindings/scripts/test/JS/JSInterfaceName.h:
(WebCore::JSInterfaceName::create):
- bindings/scripts/test/JS/JSTestActiveDOMObject.h:
(WebCore::JSTestActiveDOMObject::create):
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:
(WebCore::JSTestClassWithJSBuiltinConstructor::create):
- bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::create):
- bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
(WebCore::JSTestCustomNamedGetter::create):
- bindings/scripts/test/JS/JSTestEventConstructor.h:
(WebCore::JSTestEventConstructor::create):
- bindings/scripts/test/JS/JSTestEventTarget.h:
(WebCore::JSTestEventTarget::create):
- bindings/scripts/test/JS/JSTestException.h:
(WebCore::JSTestException::create):
- bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
(WebCore::JSTestGenerateIsReachable::create):
- bindings/scripts/test/JS/JSTestGlobalObject.h:
- bindings/scripts/test/JS/JSTestInterface.h:
- bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:
(WebCore::JSTestJSBuiltinConstructor::create):
- bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
(WebCore::JSTestMediaQueryListListener::create):
- bindings/scripts/test/JS/JSTestNamedConstructor.h:
(WebCore::JSTestNamedConstructor::create):
- bindings/scripts/test/JS/JSTestNode.h:
- bindings/scripts/test/JS/JSTestNondeterministic.h:
(WebCore::JSTestNondeterministic::create):
- bindings/scripts/test/JS/JSTestObj.h:
(WebCore::JSTestObj::create):
- bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
(WebCore::JSTestOverloadedConstructors::create):
- bindings/scripts/test/JS/JSTestOverrideBuiltins.h:
(WebCore::JSTestOverrideBuiltins::create):
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
(WebCore::JSTestSerializedScriptValueInterface::create):
- bindings/scripts/test/JS/JSTestTypedefs.h:
(WebCore::JSTestTypedefs::create):
- bindings/scripts/test/JS/JSattribute.h:
(WebCore::JSattribute::create):
- bindings/scripts/test/JS/JSreadonly.h:
(WebCore::JSreadonly::create):
- 3:19 PM Changeset in webkit [202217] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Remove Sidebar z-index:0 workaround for scrollbars and position:sticky section headers
https://bugs.webkit.org/show_bug.cgi?id=158882
Reviewed by Darin Adler.
The z-index:0 workaround is no longer needed as it doesn't change anything.
- UserInterface/Views/Sidebar.css:
(.sidebar > .panel): Deleted.
- 1:49 PM Changeset in webkit [202216] by
-
- 2 edits in trunk/Tools
Another buid fix for master.cfg.
- BuildSlaveSupport/build.webkit.org-config/master.cfg:
(CompileWebKit.start):
- 1:35 PM Changeset in webkit [202215] by
-
- 2 edits in trunk/Tools
Another buid fix for master.cfg.
- BuildSlaveSupport/build.webkit.org-config/master.cfg:
(CompileWebKit.start):
- 12:42 PM Changeset in webkit [202214] by
-
- 26 edits2 adds in trunk/Source/JavaScriptCore
We should be able to generate more types of ICs inline
https://bugs.webkit.org/show_bug.cgi?id=158719
<rdar://problem/26825641>
Reviewed by Filip Pizlo.
This patch changes how we emit code for *byId ICs inline.
We no longer keep data labels to patch structure checks, etc.
Instead, we just regenerate the entire IC into a designated
region of code that the Baseline/DFG/FTL JIT will emit inline.
This makes it much simpler to patch inline ICs. All that's
needed to patch an inline IC is to memcpy the code from
a macro assembler inline using LinkBuffer. This architecture
will be easy to extend into other forms of ICs, such as one
for add, in the future.
To support this change, I've reworked the fields inside
StructureStubInfo. It now has one field that is the CodeLocationLabel
of the start of the inline IC. Then it has a few ints that track deltas
to other locations in the IC such as the slow path start, slow path call, the
ICs 'done' location. We used to perform math on these ints in a bunch of different
places. I've consolidated that math into methods inside StructureStubInfo.
To generate inline ICs, I've implemented a new class called InlineAccess.
InlineAccess is stateless: it just has a bunch of static methods for
generating code into the inline region specified by StructureStubInfo.
Repatch will now decide when it wants to generate such an inline
IC, and it will ask InlineAccess to do so.
I've implemented three types of inline ICs to begin with (extending
this in the future should be easy):
- Self property loads (both inline and out of line offsets).
- Self property replace (both inline and out of line offsets).
- Array length on specific array types.
(An easy extension would be to implement JSString length.)
To know how much inline space to reserve, I've implemented a
method that stubs out the various inline cache shapes and
dumps their size. This is used to determine how much space
to save inline. When InlineAccess ends up generating more
code than can fit inline, we will fall back to generating
code with PolymorphicAccess instead.
To make generating code into already allocated executable memory
efficient, I've made AssemblerData have 128 bytes of inline storage.
This saves us a malloc when splatting code into the inline region.
This patch also tidies up LinkBuffer's API for generating
into already allocated executable memory. Now, when generating
code that has less size than the already allocated space, LinkBuffer
will fill the extra space with nops. Also, if branch compaction shrinks
the code, LinkBuffer will add a nop sled at the end of the shrunken
code to take up the entire allocated size.
This looks like it could be a 1% octane progression.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::nop):
(JSC::ARM64Assembler::fillNops):
- assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::nopw):
(JSC::ARMv7Assembler::nopPseudo16):
(JSC::ARMv7Assembler::nopPseudo32):
(JSC::ARMv7Assembler::fillNops):
(JSC::ARMv7Assembler::dmbSY):
- assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::addLinkTask):
(JSC::AbstractMacroAssembler::emitNops):
(JSC::AbstractMacroAssembler::AbstractMacroAssembler):
- assembler/AssemblerBuffer.h:
(JSC::AssemblerData::AssemblerData):
(JSC::AssemblerData::operator=):
(JSC::AssemblerData::~AssemblerData):
(JSC::AssemblerData::buffer):
(JSC::AssemblerData::grow):
(JSC::AssemblerData::isInlineBuffer):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::ensureSpace):
(JSC::AssemblerBuffer::codeSize):
(JSC::AssemblerBuffer::setCodeSize):
(JSC::AssemblerBuffer::label):
(JSC::AssemblerBuffer::debugOffset):
(JSC::AssemblerBuffer::releaseAssemblerData):
- assembler/LinkBuffer.cpp:
(JSC::LinkBuffer::copyCompactAndLinkCode):
(JSC::LinkBuffer::linkCode):
(JSC::LinkBuffer::allocate):
(JSC::LinkBuffer::performFinalization):
(JSC::LinkBuffer::shrink): Deleted.
- assembler/LinkBuffer.h:
(JSC::LinkBuffer::LinkBuffer):
(JSC::LinkBuffer::debugAddress):
(JSC::LinkBuffer::size):
(JSC::LinkBuffer::wasAlreadyDisassembled):
(JSC::LinkBuffer::didAlreadyDisassemble):
(JSC::LinkBuffer::applyOffset):
(JSC::LinkBuffer::code):
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::patchableBranch32):
(JSC::MacroAssemblerARM64::patchableBranch64):
- assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::patchableBranch32):
(JSC::MacroAssemblerARMv7::patchableBranchPtrWithPatch):
- assembler/X86Assembler.h:
(JSC::X86Assembler::nop):
(JSC::X86Assembler::fillNops):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::printGetByIdCacheStatus):
- bytecode/InlineAccess.cpp: Added.
(JSC::InlineAccess::dumpCacheSizesAndCrash):
(JSC::linkCodeInline):
(JSC::InlineAccess::generateSelfPropertyAccess):
(JSC::getScratchRegister):
(JSC::hasFreeRegister):
(JSC::InlineAccess::canGenerateSelfPropertyReplace):
(JSC::InlineAccess::generateSelfPropertyReplace):
(JSC::InlineAccess::isCacheableArrayLength):
(JSC::InlineAccess::generateArrayLength):
(JSC::InlineAccess::rewireStubAsJump):
- bytecode/InlineAccess.h: Added.
(JSC::InlineAccess::sizeForPropertyAccess):
(JSC::InlineAccess::sizeForPropertyReplace):
(JSC::InlineAccess::sizeForLengthAccess):
- bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::regenerate):
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::initGetByIdSelf):
(JSC::StructureStubInfo::initArrayLength):
(JSC::StructureStubInfo::initPutByIdReplace):
(JSC::StructureStubInfo::deref):
(JSC::StructureStubInfo::aboutToDie):
(JSC::StructureStubInfo::propagateTransitions):
(JSC::StructureStubInfo::containsPC):
- bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::considerCaching):
(JSC::StructureStubInfo::slowPathCallLocation):
(JSC::StructureStubInfo::doneLocation):
(JSC::StructureStubInfo::slowPathStartLocation):
(JSC::StructureStubInfo::patchableJumpForIn):
(JSC::StructureStubInfo::valueRegs):
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::link):
- dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::reifyInlinedCallFrames):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::cachedGetById):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::cachedGetById):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileIn):
(JSC::FTL::DFG::LowerDFGToB3::getById):
- jit/JITInlineCacheGenerator.cpp:
(JSC::JITByIdGenerator::finalize):
(JSC::JITByIdGenerator::generateFastCommon):
(JSC::JITGetByIdGenerator::JITGetByIdGenerator):
(JSC::JITGetByIdGenerator::generateFastPath):
(JSC::JITPutByIdGenerator::JITPutByIdGenerator):
(JSC::JITPutByIdGenerator::generateFastPath):
(JSC::JITPutByIdGenerator::slowPathFunction):
(JSC::JITByIdGenerator::generateFastPathChecks): Deleted.
- jit/JITInlineCacheGenerator.h:
(JSC::JITByIdGenerator::reportSlowPathCall):
(JSC::JITByIdGenerator::slowPathBegin):
(JSC::JITByIdGenerator::slowPathJump):
(JSC::JITGetByIdGenerator::JITGetByIdGenerator):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id):
- jit/Repatch.cpp:
(JSC::repatchCall):
(JSC::tryCacheGetByID):
(JSC::repatchGetByID):
(JSC::appropriateGenericPutByIdFunction):
(JSC::tryCachePutByID):
(JSC::repatchPutByID):
(JSC::tryRepatchIn):
(JSC::repatchIn):
(JSC::linkSlowFor):
(JSC::resetGetByID):
(JSC::resetPutByID):
(JSC::resetIn):
(JSC::repatchByIdSelfAccess): Deleted.
(JSC::resetGetByIDCheckAndLoad): Deleted.
(JSC::resetPutByIDCheckAndLoad): Deleted.
(JSC::replaceWithJump): Deleted.
- 11:26 AM Changeset in webkit [202213] by
-
- 2 edits in trunk/Tools
Fix master.cfg
Unreviewed build fix.
- BuildSlaveSupport/build.webkit.org-config/master.cfg:
(CompileWebKit.start):
- 11:02 AM Changeset in webkit [202212] by
-
- 1 edit in trunk/Tools/ChangeLog
Test another commit.
Unreviewed.
- 10:51 AM Changeset in webkit [202211] by
-
- 4 edits in trunk/Source/WebCore
The JSBuiltinConstructor feature can't handle a JS interface extending an other JS interface
https://bugs.webkit.org/show_bug.cgi?id=158834
Reviewed by Eric Carlson.
No change of behavior.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader): Explicitly setting DOMWrapped type definition from
JSXX class deriving from another JSYY class.
- bindings/scripts/test/JS/JSTestEventTarget.h: Rebased.
- bindings/scripts/test/JS/JSTestNode.h: Ditto.
- 10:48 AM Changeset in webkit [202210] by
-
- 1 edit in trunk/Tools/ChangeLog
Test commit.
Unreviewed.
- 10:35 AM Changeset in webkit [202209] by
-
- 1 edit in trunk/Tools/ChangeLog
Test another commit.
Unreviewed.
- 10:31 AM Changeset in webkit [202208] by
-
- 1 edit in trunk/Tools/ChangeLog
Test commit.
Unreviewed.
- 10:19 AM Changeset in webkit [202207] by
-
- 1 edit in trunk/Tools/ChangeLog
Test yet another commit.
Unreviewed.
- 10:01 AM Changeset in webkit [202206] by
-
- 1 edit in trunk/Tools/ChangeLog
Test another commit.
Unreviewed.
- 9:42 AM Changeset in webkit [202205] by
-
- 3 edits in trunk/Source/JavaScriptCore
REGRESSION(concurrent baseline JIT): Kraken/ai-astar runs 20% slower
https://bugs.webkit.org/show_bug.cgi?id=158906
Reviewed by Benjamin Poulain.
The concurrent baseline JIT was a 2-3% progression on JSBench, possibly a 1% progression
on PLT3, but a 2-5% regression on Kraken. This patch fixes the Kraken regression without
affecting the other tests.
The problem is that Kraken/ai-astar's initialization code had a ginormous piece of init
code that took about 16ms to compile in baseline. There's no good way to avoid letting it
tier-up into baseline since it has a compute loop. The time it takes to run this code is
never measured. The concurrent baseline JIT caused us to schedule the compilation of this
huge code rather than doing it eagerly. This meant that after initialization was done and
we started actually running real stuff, all of the real stuff's compiles would be convoyed
behind this super-expensive baseline compile. Note that DFG and FTL compiles convoy behind
baseline compiles, since you can't schedule a DFG compile for a code block until that code
block is in baseline.
This uses the simplest fix: if we are thinking about scheduling some compile and the
thread is busy, do the compile on the main thread instead. This doesn't completely
eliminate the ai-astar regression (we still have a 4% regression on that test) but it now
results in concurrent baseline JIT being an overall progression on Kraken as a whole (1%
on my machine). This is because concurrent baseline appears to help on other tests.
In the future, we could fix this even better by allowing the JITWorklist to spawn more
threads or by being smarter about baseline compilation. I think it's nasty that if a giant
piece of initialization code ends in a compute loop, we compile all of the code instead of
just the loop. It's also gross that a constant-like object creation expression will result
in so much code. It would result in less code if we allowed ourselves to do a bit more
static reasoning about object literals.
But for now, I think that this is a great way to recover the Kraken regression while still
keeping the other progressions from concurrent baseline.
- jit/JITWorklist.cpp:
(JSC::JITWorklist::Plan::Plan):
(JSC::JITWorklist::Plan::compileInThread):
(JSC::JITWorklist::Plan::finalize):
(JSC::JITWorklist::Plan::codeBlock):
(JSC::JITWorklist::Plan::isFinishedCompiling):
(JSC::JITWorklist::Plan::compileNow):
(JSC::JITWorklist::JITWorklist):
(JSC::JITWorklist::compileLater):
(JSC::JITWorklist::compileNow):
(JSC::JITWorklist::runThread):
(JSC::JITWorklist::Plan::isFinalized): Deleted.
- jit/JITWorklist.h:
- 9:28 AM Changeset in webkit [202204] by
-
- 1 edit in trunk/Tools/ChangeLog
Test commit.
Unreviewed.
- 8:54 AM Changeset in webkit [202203] by
-
- 1 edit in trunk/Tools/ChangeLog
Test post-commit after apache restart.
Unreviewed.
- 8:22 AM Changeset in webkit [202202] by
-
- 1 edit in trunk/Tools/ChangeLog
Testing yet another fix for trac-mirror.
Unreviewed.
- 8:16 AM Changeset in webkit [202201] by
-
- 1 edit in trunk/Tools/ChangeLog
Testing another fix for trac-mirror.
Unreviewed.
- 8:10 AM Changeset in webkit [202200] by
-
- 1 edit in trunk/Tools/ChangeLog
Testing fix for trac-mirror.
Unreviewed.
- 7:53 AM Changeset in webkit [202199] by
-
- 1 edit in trunk/Tools/ChangeLog
Test a commit against the SVN 1.9 server upgrade.
Unreviewed.
Jun 18, 2016:
- 4:46 AM Changeset in webkit [202198] by
-
- 16 edits in trunk/Source/WebCore
Use time literals in WebCore
https://bugs.webkit.org/show_bug.cgi?id=158905
Reviewed by Andreas Kling.
std::chrono::milliseconds(1) -> 1ms etc.
- dom/Document.cpp:
(WebCore::Document::minimumLayoutDelay):
(WebCore::Document::elapsedTime):
- fileapi/FileReader.cpp:
(WebCore::FileReader::create):
- inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::showPaintRect):
- loader/CrossOriginPreflightResultCache.cpp:
(WebCore::CrossOriginPreflightResultCache::CrossOriginPreflightResultCache):
- loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::progressStarted):
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::freshnessLifetime):
- page/ChromeClient.h:
- page/DOMTimer.cpp:
(WebCore::DOMTimer::intervalClampedToMinimum):
(WebCore::DOMTimer::alignedFireTime):
- page/DOMTimer.h:
- page/FrameView.cpp:
(WebCore::FrameView::scrollPositionChanged):
- page/ResourceUsageThread.cpp:
(WebCore::ResourceUsageThread::threadBody):
- page/Settings.cpp:
(WebCore::Settings::Settings):
- page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown):
- platform/graphics/FontCache.cpp:
(WebCore::FontCache::fontForFamily):
- platform/network/CacheValidation.cpp:
(WebCore::computeCurrentAge):
(WebCore::computeFreshnessLifetimeForHTTPFamily):
Jun 17, 2016:
- 10:53 PM Changeset in webkit [202197] by
-
- 21 edits8 adds1 delete in trunk
:indeterminate pseudo-class should match radios whose group has no checked radio
https://bugs.webkit.org/show_bug.cgi?id=156270
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/selectors/pseudo-classes/indeterminate-expected.txt:
One more pass on official tests :)
Source/WebCore:
The pseudo-class ":indeterminate" is supposed to match radio buttons
for which the entire group has no checked button.
Spec: https://html.spec.whatwg.org/#pseudo-classes:selector-indeterminate
The change is straightforward with one non-obvious choice:
I added matchesIndeterminatePseudoClass() in addition to shouldAppearIndeterminate().
The reason is shouldAppearIndeterminate() is used for styling and AX of elements
with an indeterminate states (check boxes and progress element). There is no such
UI for radio boxes.
I could have extended shouldAppearIndeterminate() to radio box
then filter out this case in RenderTheme. The problem is doing that would also requires
changes to the repaint logic to match :indeterminate. It seemed overkill to me to
change repaint() for a case that is never used in practice.
Tests: fast/css/pseudo-indeterminate-radio-buttons-basics.html
fast/css/pseudo-indeterminate-with-radio-buttons-style-invalidation.html
fast/selectors/detached-radio-button-checked-and-indeterminate-states.html
fast/selectors/pseudo-indeterminate-with-radio-buttons-style-update.html
- css/SelectorCheckerTestFunctions.h:
(WebCore::shouldAppearIndeterminate):
- dom/Element.cpp:
(WebCore::Element::matchesIndeterminatePseudoClass):
- dom/Element.h:
- dom/RadioButtonGroups.cpp:
(WebCore::RadioButtonGroup::setCheckedButton):
(WebCore::RadioButtonGroup::updateCheckedState):
(WebCore::RadioButtonGroup::remove):
(WebCore::RadioButtonGroup::setNeedsStyleRecalcForAllButtons):
(WebCore::RadioButtonGroups::hasCheckedButton):
- dom/RadioButtonGroups.h:
- html/CheckboxInputType.cpp:
(WebCore::CheckboxInputType::matchesIndeterminatePseudoClass):
(WebCore::CheckboxInputType::shouldAppearIndeterminate):
(WebCore::CheckboxInputType::supportsIndeterminateAppearance): Deleted.
- html/CheckboxInputType.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setChecked):
(WebCore::HTMLInputElement::matchesIndeterminatePseudoClass):
(WebCore::HTMLInputElement::shouldAppearIndeterminate):
(WebCore::HTMLInputElement::radioButtonGroups):
- html/HTMLInputElement.h:
- html/InputType.cpp:
(WebCore::InputType::matchesIndeterminatePseudoClass):
(WebCore::InputType::shouldAppearIndeterminate):
(WebCore::InputType::supportsIndeterminateAppearance): Deleted.
- html/InputType.h:
- html/RadioInputType.cpp:
(WebCore::RadioInputType::matchesIndeterminatePseudoClass):
(WebCore::RadioInputType::willDispatchClick): Deleted.
(WebCore::RadioInputType::didDispatchClick): Deleted.
(WebCore::RadioInputType::supportsIndeterminateAppearance): Deleted.
The iOS specific code is just plain wrong.
It was changing the indeterminate state of the input element.
The spec clearly says that state is only used by checkbox:
https://html.spec.whatwg.org/#dom-input-indeterminate
Moreover, the style update would not change the indeterminate state
of other buttons in the Button Group, which is just bizarre.
RenderThemeIOS does not make use of any of this with the current style.
- html/RadioInputType.h:
- style/StyleSharingResolver.cpp:
(WebCore::Style::SharingResolver::canShareStyleWithElement):
(WebCore::Style::canShareStyleWithControl): Deleted.
(WebCore::Style::SharingResolver::sharingCandidateHasIdenticalStyleAffectingAttributes): Deleted.
Style sharing is unified behind the selector matching which is neat.
LayoutTests:
There are two important aspect to cover for this change:
1) The style is updated correctly when a Button Group composition change.
2) When the checkness changes for a Button Group, all its elements
are invalidated to match :indeterminate.
- fast/forms/radio/indeterminate-radio.html:
This test was verifying that the property "indeterminate" of the input element
is not reflected to the style through :indeterminate.
I updated the test to still verify that except that we now match :indeterminate
before changing the property.
- fast/css/pseudo-indeterminate-radio-buttons-basics-expected.html: Added.
- fast/css/pseudo-indeterminate-radio-buttons-basics.html: Added.
- fast/css/pseudo-indeterminate-with-radio-buttons-style-invalidation-expected.txt: Added.
- fast/css/pseudo-indeterminate-with-radio-buttons-style-invalidation.html: Added.
Verify that we don't invalidate everything when the checked button changes.
We only need to invalidate everything if the checked state of the whole group changes.
- fast/selectors/detached-radio-button-checked-and-indeterminate-states-expected.txt: Added.
- fast/selectors/detached-radio-button-checked-and-indeterminate-states.html: Added.
- fast/selectors/pseudo-indeterminate-with-radio-buttons-style-update-expected.txt: Added.
- fast/selectors/pseudo-indeterminate-with-radio-buttons-style-update.html: Added.
- 8:33 PM Changeset in webkit [202196] by
-
- 21 edits2 deletes in trunk
Unreviewed, rolling out r202152.
https://bugs.webkit.org/show_bug.cgi?id=158897
The new test is very unstable, timing out frequently
(Requested by ap on #webkit).
Reverted changeset:
"Web Inspector: console.profile should use the new Sampling
Profiler"
https://bugs.webkit.org/show_bug.cgi?id=153499
http://trac.webkit.org/changeset/202152
- 8:29 PM Changeset in webkit [202195] by
-
- 6 edits2 deletes in trunk
Unreviewed, rolling out r202068, r202115, and r202128.
https://bugs.webkit.org/show_bug.cgi?id=158896
The new test is very unstable, timing out frequently
(Requested by ap on #webkit).
Reverted changesets:
"decompose4 return value is unchecked, leading to potentially
uninitialized data."
https://bugs.webkit.org/show_bug.cgi?id=158761
http://trac.webkit.org/changeset/202068
"[mac] LayoutTest transforms/undecomposable.html is a flaky
timeout"
https://bugs.webkit.org/show_bug.cgi?id=158816
http://trac.webkit.org/changeset/202115
"[mac] LayoutTest transforms/undecomposable.html is a flaky
timeout"
https://bugs.webkit.org/show_bug.cgi?id=158816
http://trac.webkit.org/changeset/202128
- 6:19 PM Changeset in webkit [202194] by
-
- 4 edits2 adds in trunk
AX: HTML indeterminate IDL attribute not mapped to checkbox value=2 for native checkboxes
https://bugs.webkit.org/show_bug.cgi?id=158876
<rdar://problem/26842619>
Reviewed by Joanmarie Diggs.
Source/WebCore:
The indeterminate state was not being reported for native checkboxes.
Also the isIndeterminate() method was relying on whether the appearance changed, which does not happen on Mac, so that
was not being reported correctly. Changed that to check the actual attribute.
Test: accessibility/checkbox-mixed-value.html
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::isIndeterminate):
(WebCore::AccessibilityNodeObject::isPressed):
(WebCore::AccessibilityNodeObject::checkboxOrRadioValue):
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::checkboxOrRadioValue):
LayoutTests:
- accessibility/checkbox-mixed-value-expected.txt: Added.
- accessibility/checkbox-mixed-value.html: Added.
- 6:09 PM Changeset in webkit [202193] by
-
- 3 edits2 copies in branches/safari-601-branch
Merged r202174. rdar://problem/26701322
- 6:06 PM Changeset in webkit [202192] by
-
- 4 edits2 adds in trunk
REGRESSION (r199819): CrashTracer: [GraphicsContext3D::getInternalFramebufferSize
https://bugs.webkit.org/show_bug.cgi?id=158895
<rdar://problem/26423617>
Reviewed by Zalan Bujtas.
Source/WebCore:
In r199819 we started resetting contexts if the page had too
many. Unfortunately there were entry points in the WebGL context
that didn't check for the validity of the object before trying
to access the lower level objects.
Test: webgl/many-contexts-access-after-loss.html
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::drawingBufferWidth): Return 0 if we're lost.
(WebCore::WebGLRenderingContextBase::drawingBufferHeight): Ditto.
LayoutTests:
New test to access the contexts after loss. Also cleaned
up the JavaScript code in the existing test (and made sure
it ran outside of the test system).
- webgl/many-contexts-access-after-loss-expected.txt: Added.
- webgl/many-contexts-access-after-loss.html: Added.
- webgl/many-contexts.html:
- 6:05 PM Changeset in webkit [202191] by
-
- 3 edits2 copies in branches/safari-601.1.46-branch
Merged r202174. rdar://problem/26701284
- 6:03 PM Changeset in webkit [202190] by
-
- 6 edits2 deletes in trunk
Unreviewed, rolling out r202186.
Broke the Apple Windows, Apple Yosemite, GTK, and WinCairo
builds.
Reverted changeset:
"File scheme should not allow access of a resource on a
different volume."
https://bugs.webkit.org/show_bug.cgi?id=158552
http://trac.webkit.org/changeset/202186
- 6:02 PM Changeset in webkit [202189] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, rolling out r202187.
202186
Reverted changeset:
"Unreviewed clean-up after r202186."
http://trac.webkit.org/changeset/202187
- 5:25 PM Changeset in webkit [202188] by
-
- 4 edits in trunk/Source
Optimize parseCacheHeader() by using StringView
https://bugs.webkit.org/show_bug.cgi?id=158891
Reviewed by Darin Adler.
Source/WebCore:
Optimize parseCacheHeader() and avoid some temporary String allocations
by using StringView. We now strip the whitespaces in the input string
at the beginning of the function, at the same as as we strip the
control characters. We are then able to leverage StringView in the
rest of the function to get substrings without the need for extra
String allocations.
- platform/network/CacheValidation.cpp:
(WebCore::isControlCharacterOrSpace):
(WebCore::trimToNextSeparator):
(WebCore::parseCacheHeader):
Source/WTF:
Add a StringView::find() overload which takes a CharacterMatchFunction
to match the one on String.
- wtf/text/StringView.h:
(WTF::StringView::find):
- 5:09 PM Changeset in webkit [202187] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed clean-up after r202186.
- platform/FileSystem.cpp:
(WebCore::filesHaveSameVolume): Don't use C-style formatting.
- 5:03 PM Changeset in webkit [202186] by
-
- 6 edits2 adds in trunk
File scheme should not allow access of a resource on a different volume.
https://bugs.webkit.org/show_bug.cgi?id=158552
<rdar://problem/15307582>
Patch by Pranjal Jumde <pjumde@apple.com> on 2016-06-17
Reviewed by Brent Fulgham.
Source/WebCore:
Tests: Tools/TestWebKitAPI/Tests/mac/CrossPartitionFileSchemeAccess.mm
- page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::canDisplay):
- platform/FileSystem.cpp:
(WebCore::platformFileStat):
(WebCore::filesHaveSameVolume):
Returns true if the files are on the same volume
- platform/FileSystem.h:
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/mac/CrossPartitionFileSchemeAccess.html: Added.
- TestWebKitAPI/Tests/mac/CrossPartitionFileSchemeAccess.mm: Added.
(-[CrossPartitionFileSchemeAccessNavigationDelegate webView:didFinishNavigation:]):
When the main page load is complete fetch the contents of the document to check if iframe was loaded
(createPartition):
Create a disk image and load the contents of the file.
(cleanUp):
(TestWebKitAPI::TEST):
- 4:31 PM Changeset in webkit [202185] by
-
- 15 edits in trunk/Source/WebKit2
Support configurable autocapitalization.
https://bugs.webkit.org/show_bug.cgi?id=158860
rdar://problem/26231403
Reviewed by Tim Horton.
The behavior of spellchecker should be configurable to avoid
unwanted autocapitalization.
- UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::copy):
- UIProcess/API/APIPageConfiguration.h:
(API::PageConfiguration::initialCapitalizationEnabled):
(API::PageConfiguration::setInitialCapitalizationEnabled):
- UIProcess/API/C/WKPageConfigurationRef.cpp:
(WKPageConfigurationSetIntialCapitalizationEnabled):
- UIProcess/API/C/WKPageConfigurationRef.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _initialCapitalizationEnabled]):
(-[WKWebViewConfiguration _setInitialCapitalizationEnabled:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/TextChecker.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::checkTextOfParagraph):
(WebKit::WebPageProxy::getGuessesForWord):
- UIProcess/WebPageProxy.h:
- UIProcess/efl/TextCheckerEfl.cpp:
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::getGuessesForWord):
- UIProcess/gtk/TextCheckerGtk.cpp:
(WebKit::TextChecker::getGuessesForWord):
(WebKit::TextChecker::checkTextOfParagraph):
- UIProcess/ios/TextCheckerIOS.mm:
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::getGuessesForWord):
- UIProcess/mac/TextCheckerMac.mm:
(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::getGuessesForWord):
- 4:27 PM Changeset in webkit [202184] by
-
- 14 edits in trunk/Source/WebKit2
Use WTF::NoncopyableFunction in NetworkDataTaskClient
https://bugs.webkit.org/show_bug.cgi?id=158887
Reviewed by Alex Christensen.
Use WTF::NoncopyableFunction in NetworkDataTaskClient instead of std::function
and consistently move it around. This avoids some unnecessary copying.
- NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::willDecidePendingDownloadDestination):
(WebKit::DownloadManager::continueDecidePendingDownloadDestination):
- NetworkProcess/Downloads/DownloadManager.h:
- NetworkProcess/NetworkDataTask.h:
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::willPerformHTTPRedirection):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::findPendingDownloadLocation):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/PingLoad.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::didReceiveChallenge):
(WebKit::NetworkDataTask::didReceiveResponse):
(WebKit::NetworkDataTask::willPerformHTTPRedirection):
(WebKit::NetworkDataTask::tryPasswordBasedAuthentication):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
- Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::addChallengeToChallengeMap):
(WebKit::AuthenticationManager::coalesceChallengesMatching):
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):
(WebKit::AuthenticationManager::useCredentialForSingleChallenge):
- Shared/Authentication/AuthenticationManager.h:
- Shared/Authentication/mac/AuthenticationManager.mac.mm:
(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):
- 3:24 PM Changeset in webkit [202183] by
-
- 34 edits1 move2 adds in trunk
Web video playback controls should have RTL volume slider
https://bugs.webkit.org/show_bug.cgi?id=158856
<rdar://problem/25971769>
Patch by Antoine Quint <Antoine Quint> on 2016-06-17
Reviewed by Tim Horton.
Source/WebCore:
We reproduce the system used to propagate the page scale factor from the WebPage to the media controls to
propagate the user interface layout direction.
The Page exposes a new setUserInterfaceLayoutDirection() method which is set by the WebPage. The Page
then notifies the Document of a change, which propagates down to registered media elements, and finally sets
the usesLTRUserInterfaceLayoutDirection property on the media controller object in the injected JavaScript.
Based on the value of that property we toggle a new .uses-ltr-user-interface-layout-direction CSS class on the
.volume-box which applies a translate to the right and flips the volume controls on the x axis.
Since we're setting a new JS property from HTMLMediaController, we refactor much of the code out of the existing
pageScaleFactorChanged() and setPageScaleFactorProperty() into the new setControllerJSProperty() method so that
can easily set a named JS property with a given JSValue.
For testing purposes, we expose the WebCore::Page::setUserInterfaceLayoutDirection() method through Internals.
Test: fullscreen/video-controls-rtl.html
- Modules/mediacontrols/mediaControlsApple.css:
(video:-webkit-full-screen::-webkit-media-controls-panel .volume-box:not(.uses-ltr-user-interface-layout-direction)):
- Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.set usesLTRUserInterfaceLayoutDirection):
- WebCore.xcodeproj/project.pbxproj:
- dom/Document.cpp:
(WebCore::Document::registerForUserInterfaceLayoutDirectionChangedCallbacks):
(WebCore::Document::unregisterForUserInterfaceLayoutDirectionChangedCallbacks):
(WebCore::Document::userInterfaceLayoutDirectionChanged):
- dom/Document.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::registerWithDocument):
(WebCore::HTMLMediaElement::unregisterWithDocument):
(WebCore::HTMLMediaElement::updatePageScaleFactorJSProperty):
(WebCore::HTMLMediaElement::updateUsesLTRUserInterfaceLayoutDirectionJSProperty):
(WebCore::HTMLMediaElement::setControllerJSProperty):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):
(WebCore::HTMLMediaElement::pageScaleFactorChanged):
(WebCore::HTMLMediaElement::userInterfaceLayoutDirectionChanged):
(WebCore::setPageScaleFactorProperty): Deleted.
- html/HTMLMediaElement.h:
- page/Page.cpp:
(WebCore::Page::setUserInterfaceLayoutDirection):
- page/Page.h:
(WebCore::Page::userInterfaceLayoutDirection):
- platform/UserInterfaceLayoutDirection.h: Renamed from Source/WebKit2/UIProcess/UserInterfaceLayoutDirection.h.
- testing/Internals.cpp:
(WebCore::Internals::setUserInterfaceLayoutDirection):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit2:
We now call setUserInterfaceLayoutDirection() on WebCore::Page to propagate
the user interface layout direction down to the Web content. To facilitate this,
the UserInterfaceLayoutDirection enum is now defined in WebCore.
- Shared/WebPageCreationParameters.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(convertSystemLayoutDirection):
(toUserInterfaceLayoutDirection):
- UIProcess/API/gtk/PageClientImpl.h:
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::toUserInterfaceLayoutDirection):
(WebKit::WebViewImpl::userInterfaceLayoutDirection):
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::userInterfaceLayoutDirection):
(WebKit::WebPageProxy::setUserInterfaceLayoutDirection):
- UIProcess/WebPageProxy.h:
- UIProcess/efl/WebView.h:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::userInterfaceLayoutDirection):
- UIProcess/mac/PageClientImpl.h:
- UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::userInterfaceLayoutDirection):
- UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanBecomeSwipe):
(WebKit::ViewGestureController::isPhysicallySwipingLeft):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_userInterfaceLayoutDirection):
(WebKit::WebPage::setUserInterfaceLayoutDirection):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performNonEditingBehaviorForSelector):
LayoutTests:
New test that checks that the volume box has the correct CSS class name and the expected
CSS transform value applied to it when the user interface layout direction is right-to-left
and that changing the user interface layout direction dynamically update the media element
shadow tree as expected.
- fullscreen/video-controls-rtl-expected.txt: Added.
- fullscreen/video-controls-rtl.html: Added.
- 2:46 PM Changeset in webkit [202182] by
-
- 2 edits in trunk/LayoutTests
Update LayoutTest fast/canvas/canvas-composite-text-alpha.html
https://bugs.webkit.org/show_bug.cgi?id=158710
Reviewed by Alexey Proskuryakov.
Though this test passes, opening the test file directly reports multiple failures. Updating the
readback locations to get the correct results.
- fast/canvas/canvas-composite-text-alpha.html:
- 2:46 PM Changeset in webkit [202181] by
-
- 2 edits in trunk/LayoutTests
Marking media/video-controls-show-on-kb-or-ax-event.html as flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=158889
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 2:30 PM Changeset in webkit [202180] by
-
- 2 edits in trunk/LayoutTests
Skip security/contentSecurityPolicy/video-with-file-url-allowed-by-media-src-star.html on Mac
https://bugs.webkit.org/show_bug.cgi?id=155196
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 2:21 PM Changeset in webkit [202179] by
-
- 3 edits2 adds in trunk
REGRESSION: Double tap to zoom does not work on yahoo finance
https://bugs.webkit.org/show_bug.cgi?id=158886
<rdar://problem/24917760>
Reviewed by Simon Fraser.
Source/WebKit2:
We shouldn't enable fast click on pages that have
had to shrink to fit. In other words, we should enable
double-tap-to-zoom if the page has already zoomed.
Test: fast/events/ios/viewport-shrink-to-fit-allows-double-tap.html
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _allowsDoubleTapGestures]):
LayoutTests:
- fast/events/ios/viewport-shrink-to-fit-allows-double-tap-expected.txt: Added.
- fast/events/ios/viewport-shrink-to-fit-allows-double-tap.html: Added.
- 1:51 PM Changeset in webkit [202178] by
-
- 7 edits2 adds in trunk
TouchEvent should have a constructor
https://bugs.webkit.org/show_bug.cgi?id=158883
<rdar://problem/26063585>
Reviewed by Benjamin Poulain.
Source/WebCore:
TouchEvent should have a constructor:
Chrome already ships this:
Test: fast/events/touch/touch-event-constructor.html
- bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::convertValue):
- bindings/js/JSDictionary.h:
- dom/TouchEvent.cpp:
(WebCore::TouchEvent::TouchEvent):
- dom/TouchEvent.h:
- dom/TouchEvent.idl:
LayoutTests:
Add layout test coverage for the TouchEvent constructor.
- fast/events/touch/touch-event-constructor-expected.txt: Added.
- fast/events/touch/touch-event-constructor.html: Added.
- 1:21 PM Changeset in webkit [202177] by
-
- 3 edits in trunk/Source/WebCore
Potential null dereferencing on a detached positioned renderer.
https://bugs.webkit.org/show_bug.cgi?id=158879
Reviewed by Simon Fraser.
This patch fixes the case when the while loop to search for the absolute positioned ancestor
returns null (it happens when positioned renderer has been detached from the render tree).
Speculative fix.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::markFixedPositionObjectForLayoutIfNeeded):
- rendering/RenderBlock.h:
- 1:18 PM Changeset in webkit [202176] by
-
- 9 edits in trunk
URL hash setter does not remove fragment identifier if argument is an empty string
https://bugs.webkit.org/show_bug.cgi?id=158869
<rdar://problem/26863430>
Reviewed by Darin Adler.
Source/WebCore:
URL hash setter and URLUtils hash setter should remove the fragment identifier
if set to "#" or "":
- https://url.spec.whatwg.org/#dom-url-hash
- https://html.spec.whatwg.org/multipage/semantics.html#dom-hyperlink-hash
This patch aligns our behavior with the specification and with other browsers
(tested Firefox and Chrome).
This patch also updates HTMLAnchorElement to inherit URLUtils to avoid code
duplication. HTMLAnchorElement already implements URLUtils in the IDL, as per
the specification:
No new tests, rebaselined existing tests.
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::origin): Deleted.
(WebCore::HTMLAnchorElement::text): Deleted.
(WebCore::HTMLAnchorElement::setText): Deleted.
(WebCore::HTMLAnchorElement::toString): Deleted.
(WebCore::HTMLAnchorElement::isLiveLink): Deleted.
(WebCore::HTMLAnchorElement::sendPings): Deleted.
(WebCore::HTMLAnchorElement::handleClick): Deleted.
(WebCore::HTMLAnchorElement::eventType): Deleted.
(WebCore::HTMLAnchorElement::treatLinkAsLiveForEventType): Deleted.
(WebCore::isEnterKeyKeydownEvent): Deleted.
(WebCore::shouldProhibitLinks): Deleted.
(WebCore::HTMLAnchorElement::willRespondToMouseClickEvents): Deleted.
(WebCore::rootEditableElementMap): Deleted.
(WebCore::HTMLAnchorElement::rootEditableElementForSelectionOnMouseDown): Deleted.
(WebCore::HTMLAnchorElement::clearRootEditableElementForSelectionOnMouseDown): Deleted.
(WebCore::HTMLAnchorElement::setRootEditableElementForSelectionOnMouseDown): Deleted.
- html/HTMLAnchorElement.h:
(WebCore::HTMLAnchorElement::invalidateCachedVisitedLinkHash): Deleted.
- html/URLUtils.h:
(WebCore::URLUtils<T>::setHash):
LayoutTests:
Update existing layout tests now that setting hash to "" or "#" clears
the fragment identifier.
- fast/dom/DOMURL/set-href-attribute-hash-expected.txt:
- fast/dom/DOMURL/set-href-attribute-hash.html:
- fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-hash.js:
- fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt:
- 12:51 PM Changeset in webkit [202175] by
-
- 5 edits4 copies in branches/safari-601-branch
Merged r202151. rdar://problem/26701322
- 12:50 PM Changeset in webkit [202174] by
-
- 3 edits2 adds in trunk
Ignore case in the check for security origin inheritance
https://bugs.webkit.org/show_bug.cgi?id=158878
Reviewed by Alex Christensen.
Source/WebCore:
Darin Adler commented in https://bugs.webkit.org/show_bug.cgi?id=158855:
"Are these comparisons intentionally case sensitive? Shouldn’t they ignore ASCII
case? We could use equalIgnoringASCIICase and equalLettersIgnoringASCIICase for
those two lines instead of using ==. URL::parse normalizes letters in the scheme
and host by using toASCIILower, but does not normalize letters elsewhere in the
URL, such as in the "blank" or "srcdoc" in the above URLs."
Test: http/tests/dom/window-open-about-uppercase-blank-and-access-document.html
- platform/URL.cpp:
(WebCore::URL::shouldInheritSecurityOriginFromOwner):
LayoutTests:
- http/tests/dom/window-open-about-uppercase-blank-and-access-document-expected.txt: Added.
- http/tests/dom/window-open-about-uppercase-blank-and-access-document.html: Added.
- 12:22 PM Changeset in webkit [202173] by
-
- 3 edits in trunk/Source/WTF
OOM Assertion failure in JSON.stringify.
https://bugs.webkit.org/show_bug.cgi?id=158794
<rdar://problem/26826254>
Reviewed by Saam Barati.
The bug was actually in StringBuilder::appendQuotedJSONString() where it failed
to detect an imminent unsigned int overflow. The fix is to use Checked<unsigned>
for the needed math, and RELEASE_ASSERT afterwards that we did not overflow.
I also added more assertions to detect sooner if any there are any problems with
StringBuilder's m_buffer or m_length being incorrectly sized. These assertions
have been run on the JSC and layout tests without any issue.
- wtf/text/StringBuilder.cpp:
(WTF::StringBuilder::resize):
(WTF::StringBuilder::allocateBuffer):
(WTF::StringBuilder::allocateBufferUpConvert):
(WTF::StringBuilder::reallocateBuffer<LChar>):
(WTF::StringBuilder::reallocateBuffer<UChar>):
(WTF::StringBuilder::reserveCapacity):
(WTF::StringBuilder::appendUninitializedSlow):
(WTF::StringBuilder::append):
(WTF::StringBuilder::appendQuotedJSONString):
- wtf/text/StringBuilder.h:
(WTF::StringBuilder::swap):
- 12:10 PM Changeset in webkit [202172] by
-
- 2 edits in trunk/Source/WebCore
Fix compilation errors when we enable DUMP_NODE_STATISTICS in Node.h
https://bugs.webkit.org/show_bug.cgi?id=158868
Reviewed by Alex Christensen.
Fix compilation errors in Node.cpp when we enable DUMP_NODE_STATISTICS
- dom/Node.cpp:
(WebCore::Node::dumpStatistics):
- 11:47 AM Changeset in webkit [202171] by
-
- 5 edits4 copies in branches/safari-601.1.46-branch
Merged r202151. rdar://problem/26701284
- 10:24 AM Changeset in webkit [202170] by
-
- 2 edits in trunk/LayoutTests
Skipping two new LayoutTests that rely on mouse events on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=158855
Unreviewed test gardening.
- platform/ios-simulator/TestExpectations:
- 10:20 AM Changeset in webkit [202169] by
-
- 2 edits in trunk/Source/WebCore
[Win] Scrolling in popup menu scrolls past last entry.
https://bugs.webkit.org/show_bug.cgi?id=158870
Reviewed by Brent Fulgham.
When the popup has a scrollbar, the content size is not equal to the popup window size.
- platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::contentsSize):
- 9:54 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 9:54 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 9:53 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 9:30 AM Changeset in webkit [202168] by
-
- 27 edits1 add4 deletes in trunk
Refactor RenderMathMLRoot layout function to avoid using flexbox
https://bugs.webkit.org/show_bug.cgi?id=153987
Patch by Frederic Wang <fwang@igalia.com> on 2016-06-17
Reviewed by Brent Fulgham.
Source/WebCore:
No new tests, already covered by existing tests.
A case for RTL root has been added to roots.xhtml.
We reimplement RenderMathMLRoot without any flexbox or anonymous.
The anonymous RenderMathMLRadicalOperator used to draw the radical sign is replaced with
the MathOperator class introduced in bug 152244.
msqrt (row of children under a square root) is now implemented directly in RenderMathMLRoot,
so RenderMathMLSquareRoot is removed and RenderMathMLRoot now inherits from RenderMathMLRow.
- CMakeLists.txt: Remove files for RenderMathMLRadicalOperator and RenderMathMLSquareRoot.
- WebCore.xcodeproj/project.pbxproj: ditto.
- accessibility/AccessibilityRenderObject.cpp: Update code now that we do not use any
radical wrappers.
(WebCore::AccessibilityRenderObject::isMathRow): Now that RenderMathMLRoot inherits from
RenderMathMLRow, we must exclude MathRoot or otherwise some accessibility code may treat
roots as rows.
(WebCore::AccessibilityRenderObject::mathRadicandObject): Return the first child for
Root/SquareRoot or nullptr.
(WebCore::AccessibilityRenderObject::mathRootIndexObject): Return the second child for
Root and nullptr for SquareRoot.
- mathml/MathMLInlineContainerElement.cpp:
(WebCore::MathMLInlineContainerElement::childrenChanged): We no longer need a special case
for msqrt, it is treated as a normal RenderMathMLRow.
(WebCore::MathMLInlineContainerElement::createElementRenderer): Make msqrt create a
RenderMathMLRoot object.
- rendering/RenderObject.h:
(WebCore::RenderObject::isRenderMathMLRadicalOperator): Deleted.
- rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::mirrorIfNeeded): New function to mirror a child horizontal
offset according to the parent width.
(WebCore::RenderMathMLBlock::renderName):
- rendering/mathml/RenderMathMLBlock.h:
(WebCore::RenderMathMLBlock::mirrorIfNeeded): Moved from RenderMathMLScripts, just forward
call to the other mirrorIfNeeded function.
- rendering/mathml/RenderMathMLOperator.cpp: We no longer need this trailingSpaceError hack.
(WebCore::RenderMathMLOperator::trailingSpaceError): Deleted.
- rendering/mathml/RenderMathMLOperator.h: ditto.
- rendering/mathml/RenderMathMLRadicalOperator.cpp: Removed. The radical sign is now drawn
with a MathOperator.
- rendering/mathml/RenderMathMLRadicalOperator.h: Removed.
- rendering/mathml/RenderMathMLRoot.cpp: Complete refactoring to avoid using flexbox and
anonymous wrappers.
(WebCore::RenderMathMLRoot::RenderMathMLRoot): Set m_kind parameters to distinguish between
square root and general root and set the MathOperator member to draw the radical sign.
(WebCore::RenderMathMLRoot::isValid): Helper function to verify whether the child list is valid.
(WebCore::RenderMathMLRoot::getBase): Get the base of an mroot.
(WebCore::RenderMathMLRoot::getIndex): Get the index of an mroot.
(WebCore::RenderMathMLRoot::styleDidChange): Be sure to keep the style of the
MathOperator in sync with ours ; no need to skip empty roots.
(WebCore::RenderMathMLRoot::updateFromElement): Call the function from the new parent class ;
no need to skip empty roots.
(WebCore::RenderMathMLRoot::updateStyle): Remove the isEmpty ASSERT as it is valid to have
empty square root. Set the m_kernBeforeDegree, m_kernBeforeDegree members.
No need to set style for anonymous.
(WebCore::RenderMathMLRoot::computePreferredLogicalWidths): Implement this function.
(WebCore::RenderMathMLRoot::layoutBlock): Implement this function.
(WebCore::RenderMathMLRoot::paintChildren): Implement this function.
(WebCore::RenderMathMLRoot::paint): Remove the trailingSpaceError hack ;
paint the radical sign via MathOperator::paint
(WebCore::RenderMathMLRoot::baseWrapper): Deleted.
(WebCore::RenderMathMLRoot::radicalWrapper): Deleted.
(WebCore::RenderMathMLRoot::indexWrapper): Deleted.
(WebCore::RenderMathMLRoot::radicalOperator): Deleted.
(WebCore::RenderMathMLRoot::restructureWrappers): Deleted.
(WebCore::RenderMathMLRoot::addChild): Deleted.
(WebCore::RenderMathMLRoot::firstLineBaseline): Deleted.
(WebCore::RenderMathMLRoot::layout): Deleted.
(WebCore::RenderMathMLRootWrapper::createAnonymousWrapper): Deleted.
(WebCore::RenderMathMLRootWrapper::removeChildWithoutRestructuring): Deleted.
(WebCore::RenderMathMLRootWrapper::removeChild): Deleted.
- rendering/mathml/RenderMathMLRoot.h: Make RenderMathMLRoot inherit from RenderMathMLRow.
Make RenderMathMLRoot support <msqrt>.
Remove all the anonymous wrapper stuff and instead use a MathOperator for the radical symbol.
Update function declaration to implement layout without flexbox and add some helper functions.
- rendering/mathml/RenderMathMLRow.cpp: Allow to get the exact metrics of the chid row,
for use in RenderMathMLRoot.
(WebCore::RenderMathMLRow::computeLineVerticalStretch): rename parameters.
(WebCore::RenderMathMLRow::layoutRowItems): Set parameters to the final ascent, descent and
logical width of the chid row. Set the temporary logical width for RenderMathRoot before
laying the children out.
(WebCore::RenderMathMLRow::layoutBlock): Rename parameters ; add a dummy logicalWidth
parameter.
- rendering/mathml/RenderMathMLRow.h: Make some functions accessible or overridable by
RenderMathMLRoot. Make layoutRowItems return the final ascent, descent and logical width
after the chid row is laid out.
- rendering/mathml/RenderMathMLScripts.cpp: Move mirrorIfNeeded to RenderMathMLBlock.
(WebCore::RenderMathMLScripts::mirrorIfNeeded): Deleted.
- rendering/mathml/RenderMathMLScripts.h: Move mirrorIfNeeded to RenderMathMLBlock.
- rendering/mathml/RenderMathMLSquareRoot.cpp: Removed.
- rendering/mathml/RenderMathMLSquareRoot.h: Removed.
- rendering/mathml/MathOperator.cpp:
(WebCore::MathOperator::paint): Apply a mirroring scale transform to radical symbol
in RTL direction.
LayoutTests:
Update expectations for some MathML tests containing radical operators.
- TestExpectations: mathml/roots-removeChild.html works as expected now
that we do not manage anonymous wrappers anymore.
- mathml/presentation/roots.xhtml: Add one test for RTL roots.
- platform/gtk/mathml/presentation/mo-stretch-expected.txt: Update expectation to
take into change in the render tree.
- platform/gtk/mathml/presentation/roots-expected.txt: Ditto.
- platform/gtk/mathml/presentation/roots-expected.png: Update expectation to take
into account small rendering changes.
- platform/ios-simulator/mathml/presentation/roots-expected.txt: Ditto.
- platform/gtk/mathml/radical-fallback-expected.txt: Ditto.
- platform/gtk/mathml/radical-fallback-expected.png: Ditto.
- platform/mac/mathml/radical-fallback-expected.txt: Ditto.
- platform/mac/mathml/radical-fallback-expected.png: Ditto.
- platform/ios-simulator/mathml/radical-fallback-expected.txt: Ditto.
- platform/ios-simulator/mathml/radical-fallback-expected.png: Added.
- 8:43 AM Changeset in webkit [202167] by
-
- 33 edits1 add in trunk/Source/WebCore
Drop some unnecessary header includes
https://bugs.webkit.org/show_bug.cgi?id=158864
Reviewed by Alexey Proskuryakov.
Drop some unnecessary header includes to try and reduce build times.
- WebCore.xcodeproj/project.pbxproj:
- accessibility/AccessibilityList.cpp:
- css/CSSComputedStyleDeclaration.cpp:
- css/MediaQueryMatcher.cpp:
- css/StyleMedia.cpp:
- css/TransformFunctions.cpp:
- dom/NodeRenderStyle.h:
- dom/PseudoElement.h:
(isType): Deleted.
- html/HTMLTitleElement.cpp:
- html/shadow/MediaControlElementTypes.h:
- html/shadow/MediaControls.cpp:
- inspector/InspectorDOMAgent.h:
- inspector/InspectorLayerTreeAgent.h:
- inspector/InspectorPageAgent.cpp:
- page/scrolling/AsyncScrollingCoordinator.cpp:
- page/scrolling/ScrollingCoordinator.h:
- rendering/BidiRun.h:
- rendering/BorderEdge.h:
- rendering/RenderElement.h:
- rendering/RenderObject.h:
(WebCore::AnnotatedRegionValue::operator==): Deleted.
(WebCore::AnnotatedRegionValue::operator!=): Deleted.
- rendering/RenderObjectEnums.h: Added.
- rendering/RenderTheme.h:
- rendering/SimpleLineLayoutFlowContents.h:
- rendering/SimpleLineLayoutTextFragmentIterator.h:
- rendering/TextPainter.h:
- rendering/style/RenderStyle.h:
(WebCore::pseudoElementRendererIsNeeded):
- rendering/style/ShapeValue.cpp:
- rendering/style/ShapeValue.h:
- style/ClassChangeInvalidation.cpp:
- style/ClassChangeInvalidation.h:
- style/InlineTextBoxStyle.h:
- style/StyleUpdate.cpp:
- 6:35 AM Changeset in webkit [202166] by
-
- 4 edits in trunk/Source/WebCore
[iOS] Throw away linked code when navigating to a new page.
<https://webkit.org/b/153851>
Reviewed by Antti Koivisto.
When navigating to a new page, tell JSC to throw out any linked code it has lying around.
Linked code is tied to a specific global object, and as we're creating a new one for the
new page, none of it is useful to us here.
In the event that the user navigates back, the cost of relinking some code will be far
lower than the memory cost of keeping all of it around.
This was in-tree before but was rolled out due to regressing JSBench. It was a slowdown
due to the benchmark harness using top-level navigations to drive the tests.
This new version avoids that problem by only throwing out code if we haven't navigated
in the last 2 seconds. This also prevents excessive work in response to redirects.
I've also moved this into MemoryPressureHandler so we don't make a mess in FrameLoader.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
- platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::jettisonExpensiveObjectsOnTopLevelNavigation):
- platform/MemoryPressureHandler.h:
- 4:50 AM Changeset in webkit [202165] by
-
- 2 edits in trunk/Tools
Unreviewed. Added myself to the list of committers.
- Scripts/webkitpy/common/config/contributors.json:
- 4:46 AM Changeset in webkit [202164] by
-
- 2 edits3 deletes in trunk/LayoutTests
Update test-expected file for failing fullscreen test
https://bugs.webkit.org/show_bug.cgi?id=158838
Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-06-17
Reviewed by Carlos Garcia Campos.
Used MAC version of the test as the default version since only MAC and
GTK do not skip this test and expect the same result. Removed
test-expected files specific to each port when there was one. Prior to
this patch, GTK test was failing unexpectedly.
- fullscreen/video-controls-override-expected.txt:
- platform/efl/fullscreen/video-controls-override-expected.txt: Removed.
- platform/gtk/fullscreen/video-controls-override-expected.txt: Removed.
- platform/mac/fullscreen/video-controls-override-expected.txt: Removed.
- 4:19 AM Changeset in webkit [202163] by
-
- 2 edits in trunk/Source/WebKit/win
[Win] Rendering is not scaled correctly if process is DPI aware.
https://bugs.webkit.org/show_bug.cgi?id=158781
Reviewed by Brent Fulgham.
Scale the root graphics layer with the device scale factor.
- WebView.cpp:
(WebView::setAcceleratedCompositing):
- 3:34 AM Changeset in webkit [202162] by
-
- 13 edits in trunk
CORS preflight with a non-200 response should be a preflight failure
https://bugs.webkit.org/show_bug.cgi?id=111008
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/XMLHttpRequest/data-uri-expected.txt:
Source/WebCore:
Covered by rebased tests.
- Modules/fetch/FetchResponse.h: Making use of ResourceResponse::isSuccessful.
- loader/CrossOriginPreflightChecker.cpp:
(WebCore::CrossOriginPreflightChecker::validatePreflightResponse): Checking that response status is code is
successful. If not, calling preflight failure callback.
(WebCore::CrossOriginPreflightChecker::startPreflight): Putting in manual redirection mode so that redirection
responses are processed as other responses.
- loader/ResourceLoaderOptions.h:
(WebCore::ResourceLoaderOptions::fetchOptions): Adding a non-const getter and fixing const getter to return a
const reference.
(WebCore::ResourceLoaderOptions::setFetchOptions): Passing options by reference.
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::isSuccessful): Utility function.
- platform/network/ResourceResponseBase.h:
LayoutTests:
- http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt:
- http/tests/xmlhttprequest/access-control-and-redirects-async.html:
- http/tests/xmlhttprequest/access-control-basic-get-fail-non-simple-expected.txt:
- http/tests/xmlhttprequest/workers/access-control-basic-get-fail-non-simple-expected.txt:
- 2:27 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 2:24 AM Changeset in webkit [202161] by
-
- 8 edits6 adds in trunk
MathOperator: Add fallback mechanisms for stretching and mirroring radical symbols
https://bugs.webkit.org/show_bug.cgi?id=156836
Source/WebCore:
Patch by Frederic Wang <fwang@igalia.com> on 2016-06-17
Reviewed by Sergio Villar Senin.
Some platforms do not have OpenType MATH fonts pre-installed and thus can not draw stretchy
operators using size variants or glyph assembly. This is especially problematic for the
radical symbol which is used to write roots. Currently, we have some fallback code to draw
that symbol using graphical primitives but it is a bit complex and makes the style of radical
inconsistent with the font used. We solve these issues by just scaling the base glyph via a
scale transform. Such scale transform is also used to mirror the radical symbol so that we
have some support for right-to-left roots until we can do glyph-level mirroring
via the OpenType rtlm feature.
Test: mathml/radical-fallback.html
- rendering/mathml/MathOperator.cpp: Add a constant for the code point U+221A of the radical.
(WebCore::MathOperator::reset): In general, we don't need any vertical scaling for radical
symbols so m_radicalVerticalScale is initialized to 1.
(WebCore::MathOperator::calculateStretchyData): If we don't have a font with a MATH table and we
try streching a radical, then we update the vertical metrics to match the target size and
set m_radicalVerticalScale to the value necessary to make the base glyph scaled to that size.
(WebCore::MathOperator::paint): For a radical operator, we may apply a scale transform of
parameters (radicalHorizontalScale, m_radicalVerticalScale) in order to support RTL
mirroring or vertical stretching.
- rendering/mathml/MathOperator.h: We add a m_radicalVerticalScale member to indicate the
scaling to apply to the base radical glyph when the stretchy fallback is necessary.
(WebCore::MathOperator::isStretched): The operator is also considered stretched when the
m_radicalVerticalScale is applied to the base size.
- rendering/mathml/RenderMathMLRadicalOperator.cpp: Remove code specific to the old fallback mechanism.
- rendering/mathml/RenderMathMLRadicalOperator.h: Ditto.
LayoutTests:
Reviewed by Sergio Villar Senin.
We add a pixel test to verify the result of stretching a radical operator.
We test RTL/LTR direction as well as default/sans-serif font in order to check the fallback code.
- mathml/radical-fallback.html: Added.
- platform/gtk/mathml/radical-fallback-expected.png: Added.
- platform/gtk/mathml/radical-fallback-expected.txt: Added.
- platform/ios-simulator/mathml/radical-fallback-expected.txt: Added.
- platform/mac/mathml/radical-fallback-expected.png: Added.
- platform/mac/mathml/radical-fallback-expected.txt: Added.
- platform/ios-simulator/mathml/presentation/roots.txt: Updated.
Jun 16, 2016:
- 11:23 PM Changeset in webkit [202160] by
-
- 4 edits4 deletes in trunk
Unreviewed, rolling out r202147.
https://bugs.webkit.org/show_bug.cgi?id=158867
Broke scrolling tests on iOS Simulator (Requested by ap on
#webkit).
Reverted changeset:
"Focus event dispatched in iframe causes parent document to
scroll incorrectly"
https://bugs.webkit.org/show_bug.cgi?id=158629
http://trac.webkit.org/changeset/202147
- 10:19 PM Changeset in webkit [202159] by
-
- 8 edits12 adds in trunk
:in-range & :out-of-range CSS pseudo-classes shouldn't match disabled or readonly inputs
https://bugs.webkit.org/show_bug.cgi?id=156530
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-16
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/selectors/pseudo-classes/inrange-outofrange-expected.txt:
Source/WebCore:
Elements should only match :in-range and :out-of-range
when they are candidate for constraint validation.
Tests: fast/css/pseudo-in-range-on-disabled-input-basics.html
fast/css/pseudo-in-range-on-readonly-input-basics.html
fast/css/pseudo-in-range-out-of-range-on-disabled-input-trivial.html
fast/css/pseudo-out-of-range-on-disabled-input-basics.html
fast/css/pseudo-out-of-range-on-readonly-input-basics.html
fast/selectors/in-range-out-of-range-style-update.html
- html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::minOrMaxAttributeChanged):
- html/NumberInputType.cpp:
(WebCore::NumberInputType::minOrMaxAttributeChanged):
I forgot to handle style update in r202143.
This is covered by the new style invalidation test.
- html/BaseDateAndTimeInputType.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::isInRange):
(WebCore::HTMLInputElement::isOutOfRange):
LayoutTests:
- fast/css/pseudo-in-range-on-disabled-input-basics-expected.html: Added.
- fast/css/pseudo-in-range-on-disabled-input-basics.html: Added.
- fast/css/pseudo-in-range-on-readonly-input-basics-expected.html: Added.
- fast/css/pseudo-in-range-on-readonly-input-basics.html: Added.
- fast/css/pseudo-in-range-out-of-range-on-disabled-input-trivial-expected.html: Added.
- fast/css/pseudo-in-range-out-of-range-on-disabled-input-trivial.html: Added.
- fast/css/pseudo-out-of-range-on-disabled-input-basics-expected.html: Added.
- fast/css/pseudo-out-of-range-on-disabled-input-basics.html: Added.
- fast/css/pseudo-out-of-range-on-readonly-input-basics-expected.html: Added.
- fast/css/pseudo-out-of-range-on-readonly-input-basics.html: Added.
- fast/selectors/in-range-out-of-range-style-update-expected.txt: Added.
- fast/selectors/in-range-out-of-range-style-update.html: Added.
- 9:56 PM Changeset in webkit [202158] by
-
- 5 edits1 add in trunk
[EFL][GTK] LayoutTest doesn't run on Ubuntu 16.04
https://bugs.webkit.org/show_bug.cgi?id=158141
Reviewed by Michael Catanzaro.
Tools:
- Scripts/webkitpy/port/base.py: Detect php version in system, then use it.
(Port._is_debian_php_version_7):
(Port._debian_php_version):
(Port._apache_config_file_name_for_platform):
- efl/install-dependencies:
- gtk/install-dependencies:
LayoutTests:
- http/conf/debian-httpd-2.4-php7.conf: Added.
- 9:48 PM Changeset in webkit [202157] by
-
- 25 edits5 adds in trunk
Baseline JIT should be concurrent
https://bugs.webkit.org/show_bug.cgi?id=158755
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:
This makes the baseline JIT concurrent. We want it to be concurrent because it takes up
about 1% of PLT3 and 10% of JSBench (though the JSBench number might be down from recent
optimizations).
The idea is really simple: I separated the compile and link phases of JIT::privateCompile(),
and arranged to call the compile phase from another thread. This doesn't reuse the old
DFG::Worklist code, because that code does things we don't need (like compilation plan
cancellation to allow GC to interleave with compilations) and is structured in a way that
would have required more changes to the baseline JIT. Also, I think that code uses the wrong
API, and as a result, clients of that API have a bad time. For example, it's never clear who
has the responsibility of setting the JIT thresholds and the DFG::Worklist goes to great
lengths to try to help its client set those things correctly, but since it doesn't set them
directly, the client then has to have additional complex logic to combine what it learned
from the Worklist and what it knows to set the thresholds. This patch takes a simpler
approach: the JITWorklist takes complete control over scheduling compilations. It's like a
combination of DFG::Worklist and operationOptimize().
Because the baseline JIT runs quickly, we can take some shortcuts. The JITWorklist requires
that all of its plans complete before a GC begins. This ensures that we don't have to worry
about interactions between the concurrent baseline JIT and the GC.
I needed to do a bunch of minor changes to the JIT to handle the races that emerged. For
example, I needed to do things to opcodes that read profiling both in the main path code
generator and the slow path one. One trick I used was to create a copy of the instruction
stream and provide that for anyone interested in the original value of the profiles. Most
code still uses the CodeBlock's instruction stream because it may emit JIT code that points
at the stream.
This also fixes a LLInt bug in prototype caching. This bug was revealed by this change
because more of our LayoutTests now run in LLInt.
This looks like it might be a ~1% Octane speed-up (on command line) and a ~0.7% PLT3
speed-up. This also looks like a ~2% JSBench speed-up.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- debugger/Debugger.cpp:
(JSC::Debugger::setSteppingMode):
(JSC::Debugger::toggleBreakpoint):
(JSC::Debugger::clearBreakpoints):
(JSC::Debugger::clearDebuggerRequests):
- dfg/DFGOSRExitPreparation.cpp:
(JSC::DFG::prepareCodeOriginForOSRExit):
- heap/Heap.cpp:
(JSC::Heap::didFinishIterating):
(JSC::Heap::completeAllJITPlans):
(JSC::Heap::deleteAllCodeBlocks):
(JSC::Heap::collectImpl):
(JSC::Heap::completeAllDFGPlans): Deleted.
- heap/Heap.h:
- heap/HeapInlines.h:
(JSC::Heap::forEachCodeBlock):
- jit/JIT.cpp:
(JSC::JIT::emitNotifyWrite):
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::compileWithoutLinking):
(JSC::JIT::link):
(JSC::JIT::privateCompile):
(JSC::JIT::privateCompileExceptionHandlers):
- jit/JIT.h:
(JSC::JIT::compile):
(JSC::JIT::getSlowCase):
(JSC::JIT::linkSlowCase):
(JSC::JIT::linkDummySlowCase):
- jit/JITInlines.h:
(JSC::JIT::emitTagBool):
(JSC::JIT::originalInstruction):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitSlow_op_put_to_scope):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::emit_op_resolve_scope):
(JSC::JIT::emitSlow_op_resolve_scope):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::emitSlow_op_get_from_scope):
(JSC::JIT::emit_op_put_to_scope):
(JSC::JIT::emitSlow_op_put_to_scope):
- jit/JITWorklist.cpp: Added.
(JSC::JITWorklist::Plan::Plan):
(JSC::JITWorklist::Plan::compileInThread):
(JSC::JITWorklist::Plan::finalize):
(JSC::JITWorklist::Plan::codeBlock):
(JSC::JITWorklist::Plan::vm):
(JSC::JITWorklist::Plan::isFinishedCompiling):
(JSC::JITWorklist::Plan::isFinalized):
(JSC::JITWorklist::JITWorklist):
(JSC::JITWorklist::~JITWorklist):
(JSC::JITWorklist::completeAllForVM):
(JSC::JITWorklist::poll):
(JSC::JITWorklist::compileLater):
(JSC::JITWorklist::compileNow):
(JSC::JITWorklist::runThread):
(JSC::JITWorklist::finalizePlans):
(JSC::JITWorklist::instance):
- jit/JITWorklist.h: Added.
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::jitCompileAndSetHeuristics):
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/CommonSlowPaths.h:
(JSC::CommonSlowPaths::tryCachePutToScopeGlobal):
(JSC::CommonSlowPaths::tryCacheGetFromScopeGlobal):
- runtime/VM.cpp:
(JSC::VM::~VM):
Source/WTF:
The concurrent baseline JIT needs to be able to clone bytecode to get a consistent snapshot.
So, this adds such a method.
- wtf/RefCountedArray.h:
(WTF::RefCountedArray::RefCountedArray):
(WTF::RefCountedArray::clone):
Tools:
Need to disable concurrent JIT when running profiler tests. We should have been doing this
all along.
- Scripts/run-jsc-stress-tests:
LayoutTests:
This change revealed a latent bug in the LLInt. The non-llint version of this new test
would usually fail because it was still in LLInt. This new test always fails.
- js/dom/prototype-chain-caching-with-impure-get-own-property-slot-traps-llint.html: Added.
- js/dom/prototype-chain-caching-with-impure-get-own-property-slot-traps-llint-expected.txt: Added.
- js/dom/script-tests/prototype-chain-caching-with-impure-get-own-property-slot-traps-llint.js: Added.
- 9:36 PM MathML/Early_2016_Refactoring edited by
- (diff)
- 9:34 PM Changeset in webkit [202156] by
-
- 22 edits in trunk
Add separate MathOperator for selection/measuring/drawing of stretchy operators
https://bugs.webkit.org/show_bug.cgi?id=152244
Patch by Frederic Wang <fwang@igalia.com> on 2016-06-16
Reviewed by Brent Fulgham.
Source/WebCore:
We complete the class to select, measure and draw stretchy operators that is independent
from RenderMathMLOperator. That way, we will be able use stretchy operator without having
to introduce & manage anonymous RenderMathMLOperator's
(e.g for <mroot>, <msqrt> and <mfenced>).
No new tests, already covered by existing tests.
- rendering/mathml/MathOperator.cpp:
(WebCore::ascentForGlyph): Add this helper function to get glyph ascent.
(WebCore::descentForGlyph): Add this helper function to get glyph descent.
(WebCore::MathOperator::reset): Initialize all the data and calculate ascent/descent of the
base glyph.
(WebCore::MathOperator::setSizeVariant): Set the width/ascent/descent.
(WebCore::MathOperator::setGlyphAssembly): Ditto.
(WebCore::MathOperator::calculateDisplayStyleLargeOperator): Remove the STIX Word hack and
change m_maxPreferredWidth to use the actual width instead.
(WebCore::MathOperator::stretchTo): New functions to execute the actual operator streching.
(WebCore::MathOperator::fillWithVerticalExtensionGlyph): Add a FIXME for bug 155434.
(WebCore::MathOperator::fillWithHorizontalExtensionGlyph): Align all the glyph baselines on
the same axis, given by m_ascent.
Add a FIXME for bug 155434.
(WebCore::MathOperator::paintHorizontalGlyphAssembly): Ditto.
(WebCore::MathOperator::paint): Public function to do the painting.
(WebCore::MathOperator::paintVerticalGlyphAssembly): Deleted.
- rendering/mathml/MathOperator.h: Update declarations and make most of the members private.
(WebCore::MathOperator::ascent): Function to expose m_ascent.
(WebCore::MathOperator::descent): Function to expose m_descent.
- rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::stretchTo): Forward the stretching call to MathOperator.
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Unfold advanceForGlyph
since we delete RenderMathMLOperator::advanceForGlyph. Just rely on
MathOperator::maxPreferredWidth to determine the preferred width of stretchy operators.
For horizontal operators, we just use the width of the base glyph.
Finally, we remove the dirty flag on preferred logical width.
(WebCore::RenderMathMLOperator::rebuildTokenContent): Reinit the MathOperator instance.
(WebCore::RenderMathMLOperator::updateFromElement): Force more updates of
RenderMathMLOperator to avoid test breakage.
(WebCore::RenderMathMLOperator::styleDidChange): Call MathOperator::reset to take into
account style change.
(WebCore::RenderMathMLOperator::updateStyle): Remove unused code.
(WebCore::RenderMathMLOperator::firstLineBaseline): Use MathOperator::ascent() function.
(WebCore::RenderMathMLOperator::computeLogicalHeight): Use MathOperator::ascent() and
MathOperator::descent() functions to calculate the height.
(WebCore::RenderMathMLOperator::paint): Only stretched operators are treated specially.
We center horizontal operator and forward the paint() call to MathOperator.
(WebCore::RenderMathMLOperator::trailingSpaceError): The error is now just the difference
between the values returned by MathOperator::maxPreferredWidth() and
MathOperator::width().
(WebCore::boundsForGlyph): Deleted.
(WebCore::heightForGlyph): Deleted.
(WebCore::advanceWidthForGlyph): Deleted.
(WebCore::RenderMathMLOperator::updateStyle): Deleted.
LayoutTests:
Update expectations for some MathML tests containing operators/radicals
to take into account small rendering changes.
- platform/gtk/mathml/opentype/horizontal-expected.png:
- platform/gtk/mathml/opentype/horizontal-expected.txt:
- platform/gtk/mathml/opentype/horizontal-munderover-expected.txt:
- platform/gtk/mathml/opentype/large-operators-expected.png:
- platform/gtk/mathml/opentype/large-operators-expected.txt:
- platform/gtk/mathml/opentype/opentype-stretchy-expected.png:
- platform/gtk/mathml/opentype/opentype-stretchy-expected.txt:
- platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png:
- platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
- platform/gtk/mathml/opentype/vertical-expected.png:
- platform/gtk/mathml/opentype/vertical-expected.txt:
- platform/gtk/mathml/presentation/mo-stretch-expected.png:
- platform/gtk/mathml/presentation/mo-stretch-expected.txt:
- platform/gtk/mathml/presentation/roots-expected.txt:
- platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt:
- platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.png:
- platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
- 8:51 PM Changeset in webkit [202155] by
-
- 3 edits1 copy1 move7 adds5 deletes in trunk
CSP: Content Security Policy should allow '*' to match the originating page's scheme
https://bugs.webkit.org/show_bug.cgi?id=158811
<rdar://problem/26819568>
Reviewed by Daniel Bates.
Source/WebCore:
Tests: security/contentSecurityPolicy/image-with-file-url-allowed-by-img-src-star.html
security/contentSecurityPolicy/link-with-file-url-allowed-by-style-src-star.html
security/contentSecurityPolicy/script-with-file-url-allowed-by-script-src-star.html
security/contentSecurityPolicy/video-with-file-url-allowed-by-media-src-star.html
- page/csp/ContentSecurityPolicySourceList.cpp:
(WebCore::ContentSecurityPolicySourceList::isProtocolAllowedByStar):
LayoutTests:
- security/contentSecurityPolicy/image-with-file-url-allowed-by-img-src-star-expected.html: Added.
- security/contentSecurityPolicy/image-with-file-url-allowed-by-img-src-star.html: Added.
- security/contentSecurityPolicy/image-with-file-url-blocked-by-img-src-star-expected.html: Removed.
- security/contentSecurityPolicy/image-with-file-url-blocked-by-img-src-star.html: Removed.
- security/contentSecurityPolicy/link-with-file-url-allowed-by-style-src-star-expected.html: Added.
- security/contentSecurityPolicy/link-with-file-url-allowed-by-style-src-star.html: Added.
- security/contentSecurityPolicy/link-with-file-url-blocked-by-style-src-star-expected.html: Removed.
- security/contentSecurityPolicy/link-with-file-url-blocked-by-style-src-star.html: Removed.
- security/contentSecurityPolicy/resources/alert-pass.js: Added.
- security/contentSecurityPolicy/script-with-file-url-allowed-by-script-src-star-expected.txt: Added.
- security/contentSecurityPolicy/script-with-file-url-allowed-by-script-src-star.html: Added.
- security/contentSecurityPolicy/video-with-file-url-allowed-by-media-src-star-expected.html: Copied from LayoutTests/security/contentSecurityPolicy/video-with-file-url-blocked-by-media-src-star.html.
- security/contentSecurityPolicy/video-with-file-url-allowed-by-media-src-star.html: Renamed from LayoutTests/security/contentSecurityPolicy/video-with-file-url-blocked-by-media-src-star.html.
- security/contentSecurityPolicy/video-with-file-url-blocked-by-media-src-star-expected.html: Removed.
- 7:50 PM Changeset in webkit [202154] by
-
- 8 edits in trunk/Source
No need to ref connection in lambda inside NetworkResourceLoader::tryStoreAsCacheEntry()
https://bugs.webkit.org/show_bug.cgi?id=158862
Reviewed by Darin Adler.
Source/WebKit2:
No need to ref connection in lambda inside NetworkResourceLoader::tryStoreAsCacheEntry().
We already ref the NetworkResourceLoader which hold a ref to the connection. Also update
the lambda capture to use Ref<> for the NetworkResourceLoader instead of RefPtr<>.
Switch callback type from std::function to WTF::NoncopyableFunction so we can capture a
Ref<>.
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::store):
- NetworkProcess/cache/NetworkCache.h:
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::WriteOperation::WriteOperation):
- NetworkProcess/cache/NetworkCacheStorage.h:
Source/WTF:
Add NoncopyableFunction constructor that takes a nullptr_t in, in order
to match the std::function API and make porting from one to the other
easier.
- wtf/NoncopyableFunction.h:
- 7:30 PM Changeset in webkit [202153] by
-
- 2 edits in trunk/Source/WebCore
Add HTTPHeaderMap::set() overload taking a NSString*
https://bugs.webkit.org/show_bug.cgi?id=158857
Reviewed by Darin Adler.
Add HTTPHeaderMap::set() overloading taking a NSString* in addition to
the one taking a CFStringRef. It is useful for the Cocoa implementation
of ResourceRequest::doUpdateResourceRequest().
- platform/network/HTTPHeaderMap.h:
(WebCore::HTTPHeaderMap::set):
- 7:26 PM Changeset in webkit [202152] by
-
- 21 edits2 adds in trunk
Web Inspector: console.profile should use the new Sampling Profiler
https://bugs.webkit.org/show_bug.cgi?id=153499
<rdar://problem/24352431>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-16
Reviewed by Timothy Hatcher.
Source/JavaScriptCore:
Currently console.profile/profileEnd behave slightly differently
between JSContext and Web inspection. Unifying will be part of:
<https://webkit.org/b/158753> Generalize the concept of Instruments on the backend
Both JSContext and Web inspection keep track of active
profiles started and stopped via console.profile/profileEnd.
JSContext inspection sends its programmatic start/stop
via the ScriptProfiler domain.
Web inspection sends its programmatic start/stop
via the Timeline domain, and also will start/stop backend
list of Instruments.
The functional differences between these is that for JSContext
inspection, console.profile only starts/stops the ScriptProfiler
domain, and does not auto-start other instruments. This isn't really
a problem right now given the instruments available for JSContext
inspection; but it will be nice to unify as we add more instruments.
Also, JSContext inspection won't have "Profile (name)" records in
its Events view, since those are currently generated only by the
Web's Timeline domain.
- inspector/protocol/ScriptProfiler.json:
- inspector/protocol/Timeline.json:
Events to inform the frontend of programmatic start/stop.
- debugger/Debugger.h:
- inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::breakpointsActive):
(Inspector::InspectorDebuggerAgent::isPaused):
- inspector/agents/InspectorDebuggerAgent.h:
Expose breakpoints active state, since programmatic recording
will temporarily disabled breakpoints if needed.
- inspector/JSGlobalObjectConsoleClient.cpp:
(Inspector::JSGlobalObjectConsoleClient::JSGlobalObjectConsoleClient):
(Inspector::JSGlobalObjectConsoleClient::profile):
(Inspector::JSGlobalObjectConsoleClient::profileEnd):
(Inspector::JSGlobalObjectConsoleClient::startConsoleProfile):
(Inspector::JSGlobalObjectConsoleClient::stopConsoleProfile):
- inspector/JSGlobalObjectConsoleClient.h:
- inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
- inspector/agents/InspectorScriptProfilerAgent.cpp:
(Inspector::InspectorScriptProfilerAgent::programmaticCaptureStarted):
(Inspector::InspectorScriptProfilerAgent::programmaticCaptureStopped):
- inspector/agents/InspectorScriptProfilerAgent.h:
JSContext implementation of console.profile/profileEnd.
Source/WebCore:
Test: inspector/timeline/setInstruments-programmatic-capture.html
- inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::startFromConsole):
(WebCore::InspectorTimelineAgent::stopFromConsole):
(WebCore::InspectorTimelineAgent::mainFrameStartedLoading):
(WebCore::InspectorTimelineAgent::startProgrammaticCapture):
(WebCore::InspectorTimelineAgent::stopProgrammaticCapture):
(WebCore::InspectorTimelineAgent::toggleInstruments):
(WebCore::InspectorTimelineAgent::toggleScriptProfilerInstrument):
(WebCore::InspectorTimelineAgent::toggleHeapInstrument):
(WebCore::InspectorTimelineAgent::toggleMemoryInstrument):
(WebCore::InspectorTimelineAgent::toggleTimelineInstrument):
- inspector/InspectorTimelineAgent.h:
Web implementation of console.profile/profileEnd.
Make helpers for startings / stopping instruments.
Source/WebInspectorUI:
- UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype.programmaticCaptureStarted):
(WebInspector.TimelineManager.prototype.programmaticCaptureStopped):
(WebInspector.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStarted):
(WebInspector.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStopped):
For programmatic captures, automatically show the Script Timeline, since
that is guarenteed to have been started by the backend. Start capturing
without creating a new recording.
- UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.stop):
(WebInspector.TimelineRecording.prototype.addScriptInstrumentForProgrammaticCapture):
When stopping for programmatic capture we don't need to disable
instruments, the backend would have already done this.
- UserInterface/Protocol/ScriptProfilerObserver.js:
(WebInspector.ScriptProfilerObserver.prototype.programmaticCaptureStarted):
(WebInspector.ScriptProfilerObserver.prototype.programmaticCaptureStopped):
(WebInspector.ScriptProfilerObserver):
- UserInterface/Protocol/TimelineObserver.js:
(WebInspector.TimelineObserver.prototype.programmaticCaptureStarted):
(WebInspector.TimelineObserver.prototype.programmaticCaptureStopped):
(WebInspector.TimelineObserver):
Pass through Web and JSContext programmatic capture events.
LayoutTests:
- inspector/timeline/setInstruments-programmatic-capture-expected.txt: Added.
- inspector/timeline/setInstruments-programmatic-capture.html: Added.
New test that the backend auto-starts instruments during programmatic capture.
- 6:10 PM Changeset in webkit [202151] by
-
- 5 edits4 adds in trunk
Restrict security origin inheritance to empty, about:blank, and about:srcdoc URLs
https://bugs.webkit.org/show_bug.cgi?id=158855
<rdar://problem/26142632>
Reviewed by Alex Christensen.
Source/WebCore:
Tests: http/tests/dom/window-open-about-blank-and-access-document.html
http/tests/dom/window-open-about-webkit-org-and-access-document.html
Document.cpp previously checked whether a document should inherit its owner's
security origin by checking if the URL is either empty or blank. URL.cpp in
turn only checks if the protocol is "about:" in the isBlankURL() function.
Thus all about:* URLs inherited security origin. This patch restricts
security origin inheritance to empty, about:blank, and about:srcdoc URLs.
Quotes and links from the WHATWG spec regarding about:srcdoc:
7.1 Browsing contexts
A browsing context can have a creator browsing context, the browsing context
that was responsible for its creation. If a browsing context has a parent
browsing context, then that is its creator browsing context. Otherwise, if the
browsing context has an opener browsing context, then that is its creator
browsing context. Otherwise, the browsing context has no creator browsing
context.
https://html.spec.whatwg.org/multipage/browsers.html#concept-document-bc
7.1.1 Nested browsing contexts
Certain elements (for example, iframe elements) can instantiate further
browsing contexts. These are called nested browsing contexts. If a browsing
context P has a Document D with an element E that nests another browsing
context C inside it, then C is said to be nested through D, and E is said to
be the browsing context container of C. If the browsing context container
element E is in the Document D, then P is said to be the parent browsing
context of C and C is said to be a child browsing context of P. Otherwise,
the nested browsing context C has no parent browsing context.
https://html.spec.whatwg.org/multipage/browsers.html#nested-browsing-context
4.8.5 The iframe element
The iframe element represents a nested browsing context.
...
If the srcdoc attribute is specified
Navigate the element's child browsing context to a new response whose
url list consists of about:srcdoc ...
https://html.spec.whatwg.org/multipage/embedded-content.html#attr-iframe-srcdoc
- dom/Document.cpp:
(WebCore::Document::initSecurityContext):
Now uses the URL::shouldInheritSecurityOriginFromOwner() function instead.
(WebCore::Document::initContentSecurityPolicy):
Now uses the URL::shouldInheritSecurityOriginFromOwner() function instead.
(WebCore::shouldInheritSecurityOriginFromOwner): Deleted.
Moved to URL::shouldInheritSecurityOriginFromOwner() and restricted the check.
- platform/URL.cpp:
(WebCore::URL::shouldInheritSecurityOriginFromOwner):
- platform/URL.h:
Moved the function from Document and restricted the check to only allow
security origin inheritance for empty, about:blank, and about:srcdoc URLs.
LayoutTests:
- http/tests/dom/window-open-about-blank-and-access-document-expected.txt: Added.
- http/tests/dom/window-open-about-blank-and-access-document.html: Added.
- http/tests/dom/window-open-about-webkit-org-and-access-document-expected.txt: Added.
- http/tests/dom/window-open-about-webkit-org-and-access-document.html: Added.
- 5:45 PM Changeset in webkit [202150] by
-
- 4 edits40 moves2 adds in trunk/LayoutTests
Move most of CSP tests into security/contentSecurityPolicy/
https://bugs.webkit.org/show_bug.cgi?id=158859
Reviewed by Daniel Bates.
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- platform/wk2/TestExpectations:
- security/contentSecurityPolicy/blocks-video-expected.txt: Renamed from LayoutTests/media/csp-blocks-video-expected.txt.
- security/contentSecurityPolicy/blocks-video.html: Renamed from LayoutTests/media/csp-blocks-video.html.
- security/contentSecurityPolicy/font-loading-block-all-expected.txt: Renamed from LayoutTests/fast/text/font-loading-csp-block-all-expected.txt.
- security/contentSecurityPolicy/font-loading-block-all.html: Renamed from LayoutTests/fast/text/font-loading-csp-block-all.html.
- security/contentSecurityPolicy/image-with-blob-url-allowed-by-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-blob-url-allowed-by-csp-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html.
- security/contentSecurityPolicy/image-with-blob-url-allowed-by-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-blob-url-allowed-by-csp-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html.
- security/contentSecurityPolicy/image-with-blob-url-blocked-by-img-src-star-expected.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-blob-url-blocked-by-csp-img-src-star-expected.html.
- security/contentSecurityPolicy/image-with-blob-url-blocked-by-img-src-star.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-blob-url-blocked-by-csp-img-src-star.html.
- security/contentSecurityPolicy/image-with-data-url-allowed-by-img-src-star-expected.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-data-url-allowed-by-csp-img-src-star-expected.html.
- security/contentSecurityPolicy/image-with-data-url-allowed-by-img-src-star.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-data-url-allowed-by-csp-img-src-star.html.
- security/contentSecurityPolicy/image-with-file-url-allowed-by-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-file-url-allowed-by-csp-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html.
- security/contentSecurityPolicy/image-with-file-url-allowed-by-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-file-url-allowed-by-csp-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html.
- security/contentSecurityPolicy/image-with-file-url-blocked-by-img-src-star-expected.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-file-url-blocked-by-csp-img-src-star-expected.html.
- security/contentSecurityPolicy/image-with-file-url-blocked-by-img-src-star.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-file-url-blocked-by-csp-img-src-star.html.
- security/contentSecurityPolicy/link-with-blob-url-allowed-by-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-blob-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html.
- security/contentSecurityPolicy/link-with-blob-url-allowed-by-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-blob-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html.
- security/contentSecurityPolicy/link-with-blob-url-blocked-by-style-src-star-expected.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-blob-url-blocked-by-csp-style-src-star-expected.html.
- security/contentSecurityPolicy/link-with-blob-url-blocked-by-style-src-star.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-blob-url-blocked-by-csp-style-src-star.html.
- security/contentSecurityPolicy/link-with-data-url-allowed-by-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-data-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html.
- security/contentSecurityPolicy/link-with-data-url-allowed-by-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-data-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html.
- security/contentSecurityPolicy/link-with-data-url-blocked-by-style-src-star-expected.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-data-url-blocked-by-csp-style-src-star-expected.html.
- security/contentSecurityPolicy/link-with-data-url-blocked-by-style-src-star.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-data-url-blocked-by-csp-style-src-star.html.
- security/contentSecurityPolicy/link-with-file-url-allowed-by-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-file-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html.
- security/contentSecurityPolicy/link-with-file-url-allowed-by-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-file-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html.
- security/contentSecurityPolicy/link-with-file-url-blocked-by-style-src-star-expected.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-file-url-blocked-by-csp-style-src-star-expected.html.
- security/contentSecurityPolicy/link-with-file-url-blocked-by-style-src-star.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-file-url-blocked-by-csp-style-src-star.html.
- security/contentSecurityPolicy/resources/worker-inherits-blocks-eval.js: Renamed from LayoutTests/fast/workers/resources/worker-inherits-csp-blocks-eval.js.
(catch):
- security/contentSecurityPolicy/resources/worker-inherits-blocks-xhr.js: Renamed from LayoutTests/fast/workers/resources/worker-inherits-csp-blocks-xhr.js.
(catch):
- security/contentSecurityPolicy/video-with-blob-url-allowed-by-media-src-star-expected.html: Renamed from LayoutTests/media/video-with-blob-url-allowed-by-csp-media-src-star-expected.html.
- security/contentSecurityPolicy/video-with-blob-url-allowed-by-media-src-star.html: Renamed from LayoutTests/media/video-with-blob-url-allowed-by-csp-media-src-star.html.
- security/contentSecurityPolicy/video-with-data-url-allowed-by-media-src-star-expected.html: Renamed from LayoutTests/media/video-with-data-url-allowed-by-csp-media-src-star-expected.html.
- security/contentSecurityPolicy/video-with-data-url-allowed-by-media-src-star.html: Renamed from LayoutTests/media/video-with-data-url-allowed-by-csp-media-src-star.html.
- security/contentSecurityPolicy/video-with-file-url-allowed-by-media-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Renamed from LayoutTests/media/video-with-file-url-allowed-by-csp-media-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html.
- security/contentSecurityPolicy/video-with-file-url-allowed-by-media-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Renamed from LayoutTests/media/video-with-file-url-allowed-by-csp-media-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html.
- security/contentSecurityPolicy/video-with-file-url-blocked-by-media-src-star-expected.html: Renamed from LayoutTests/media/video-with-file-url-blocked-by-csp-media-src-star-expected.html.
- security/contentSecurityPolicy/video-with-file-url-blocked-by-media-src-star.html: Renamed from LayoutTests/media/video-with-file-url-blocked-by-csp-media-src-star.html.
- security/contentSecurityPolicy/worker-inherits-blocks-eval-expected.txt: Renamed from LayoutTests/fast/workers/worker-inherits-csp-blocks-eval-expected.txt.
- security/contentSecurityPolicy/worker-inherits-blocks-eval.html: Renamed from LayoutTests/fast/workers/worker-inherits-csp-blocks-eval.html.
- security/contentSecurityPolicy/worker-inherits-blocks-xhr-expected.txt: Renamed from LayoutTests/fast/workers/worker-inherits-csp-blocks-xhr-expected.txt.
- security/contentSecurityPolicy/worker-inherits-blocks-xhr.html: Renamed from LayoutTests/fast/workers/worker-inherits-csp-blocks-xhr.html.
- 5:00 PM Changeset in webkit [202149] by
-
- 2 edits in trunk/Tools
[Win] Accessibility implementation unable to recurse through document (sometimes) to find named elements
https://bugs.webkit.org/show_bug.cgi?id=140798
Reviewed by Brent Fulgham.
Make sure layout is up-to-date before trying to find named elements.
- DumpRenderTree/win/AccessibilityControllerWin.cpp:
(AccessibilityController::rootElement):
- 4:39 PM Changeset in webkit [202148] by
-
- 9 edits in trunk/Source/WebKit2
[WK2] Improve serialization of SubresourcesEntry to network disk cache
https://bugs.webkit.org/show_bug.cgi?id=158851
Reviewed by Antti Koivisto.
Improve serialization of SubresourcesEntry to network disk cache:
- Do not bother serializing SubresourceInfo's first party for cookies and HTTP headers data members if the resource is transient. This is because those are never used for transient resources. This patch also makes it so that we do not even bother initializing those data members if the transient flag is set.
- Update SubresourceInfo::encode() / decode() to encode and decode the HTTPHeaderMap data member with the right NetworkCache::Coder template specialization instead of using directly HTTPHeaderMap::decode() and HTTPHeaderMap::encode(). HTTPHeaderMap::decode() / encode() is unsafe in the disk cache case (see r200394).
Also update entry types as so:
- "resource" -> "Resource"
- "subresources" -> "SubResources"
These entry types are used a folder names in the disk cache and other
folder names were capitalized. Antti suggested this was a good time
to harmonize since we're bumping the cache version.
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::constructRevalidationRequest):
(WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation):
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
- NetworkProcess/cache/NetworkCacheStorage.h:
- NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:
(WebKit::NetworkCache::SubresourceInfo::encode):
(WebKit::NetworkCache::SubresourceInfo::decode):
- NetworkProcess/cache/NetworkCacheSubresourcesEntry.h:
(WebKit::NetworkCache::SubresourceInfo::SubresourceInfo):
(WebKit::NetworkCache::SubresourceInfo::isTransient):
(WebKit::NetworkCache::SubresourceInfo::firstPartyForCookies):
(WebKit::NetworkCache::SubresourceInfo::requestHeaders):
- 4:34 PM Changeset in webkit [202147] by
-
- 4 edits4 adds in trunk
Source/WebCore:
[iOS] Focus event dispatched in iframe causes parent document to scroll incorrectly
https://bugs.webkit.org/show_bug.cgi?id=158629
rdar://problem/26521616
Reviewed by Enrica Casucci.
When focussing elements in iframes, the page could scroll to an incorrect location.
This happened because code in Element::focus() tried to disable scrolling on focus,
but did so only for the current frame, so ancestor frames got programmatically scrolled.
On iOS we handle the scrolling in the UI process, so never want the web process to
do programmatic scrolling.
Fix by changing the focus and cache restore code to use SelectionRevealMode::DoNotReveal,
rather than manually prohibiting frame scrolling.
Tests: fast/forms/ios/focus-input-in-iframe.html
fast/forms/ios/programmatic-focus-input-in-iframe.html
- dom/Element.cpp:
(WebCore::Element::focus):
- history/CachedPage.cpp:
(WebCore::CachedPage::restore):
LayoutTests:
Focus event dispatched in iframe causes parent document to scroll incorrectly
https://bugs.webkit.org/show_bug.cgi?id=158629
rdar://problem/26521616
Reviewed by Enrica Casucci.
Tests for user-initiated and programmatic focus in frames.
- fast/forms/ios/focus-input-in-iframe-expected.txt: Added.
- fast/forms/ios/focus-input-in-iframe.html: Added.
- fast/forms/ios/programmatic-focus-input-in-iframe.html: Added.
- fast/forms/ios/programmatic-focus-input-in-iframe-expected.txt: Added.
- 4:27 PM Changeset in webkit [202146] by
-
- 3 edits2 adds in trunk
[New Block-Inside-Inline Model] Do not attempt to re-run margin collapsing on the block sequence.
https://bugs.webkit.org/show_bug.cgi?id=158854
Reviewed by David Hyatt.
Source/WebCore:
Test: fast/block/inside-inlines/crash-on-first-line-change.html
- rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::marginCollapseLinesFromStart):
LayoutTests:
- fast/block/inside-inlines/crash-on-first-line-change-expected.txt: Added.
- fast/block/inside-inlines/crash-on-first-line-change.html: Added.
- 4:03 PM Changeset in webkit [202145] by
-
- 2 edits in trunk/Source/WebCore
Include cstdlib before using std::atexit
https://bugs.webkit.org/show_bug.cgi?id=158681
Patch by Ting-Wei Lan <Ting-Wei Lan> on 2016-06-16
Reviewed by Brent Fulgham.
- platform/graphics/PlatformDisplay.cpp:
- 3:55 PM Changeset in webkit [202144] by
-
- 2 edits in trunk/Source/WebCore
Use StringView::toAtomicString() in HTMLImageElement::setBestFitURLAndDPRFromImageCandidate()
https://bugs.webkit.org/show_bug.cgi?id=158853
Reviewed by Brent Fulgham.
Use StringView::toAtomicString() in HTMLImageElement::setBestFitURLAndDPRFromImageCandidate()
as m_bestFitImageURL data member is an AtomicString. This avoids constructing a String and
then atomizing it.
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
- 3:47 PM Changeset in webkit [202143] by
-
- 15 edits6 adds in trunk
:in-range & :out-of-range CSS pseudo-classes shouldn't match inputs without range limitations
https://bugs.webkit.org/show_bug.cgi?id=156558
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-16
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/selectors/pseudo-classes/inrange-outofrange-expected.txt:
One of the previous match was erroneous.
Our results are still very far from being correct. There are several
bugs affecting our range validation.
Source/WebCore:
The pseudo selectors :in-range and :out-of-range should only
apply if:
-minimum/maximum are defined for the input type
-the input value is/is-not suffering from underflow/overflow.
Only certain types have a valid minimum and maximum:
-number
-range
-date
-month
-week
-time
-datetime-local
Of those, only one has a default minimum and maximum: range.
For all the others, the minimum or maximum is only defined
if the min/max attribute is defined and valid.
This patch addresses these constraints for number and range.
The date types range validation is severely broken and is
left untouched. It really needs a clean rewrite.
Tests: fast/css/pseudo-in-range-basics.html
fast/css/pseudo-in-range-out-of-range-trivial.html
fast/css/pseudo-out-of-range-basics.html
- html/DateInputType.cpp:
(WebCore::DateInputType::createStepRange):
- html/DateTimeInputType.cpp:
(WebCore::DateTimeInputType::createStepRange):
- html/DateTimeLocalInputType.cpp:
(WebCore::DateTimeLocalInputType::createStepRange):
- html/InputType.cpp:
(WebCore::InputType::isInRange):
(WebCore::InputType::isOutOfRange):
Notice the isEmpty() shortcut.
A value can only overflow/underflow if it is not empty.
- html/MonthInputType.cpp:
(WebCore::MonthInputType::createStepRange):
- html/NumberInputType.cpp:
(WebCore::NumberInputType::createStepRange):
- html/RangeInputType.cpp:
(WebCore::RangeInputType::createStepRange):
- html/StepRange.cpp:
(WebCore::StepRange::StepRange):
- html/StepRange.h:
(WebCore::StepRange::hasRangeLimitations):
- html/WeekInputType.cpp:
(WebCore::WeekInputType::createStepRange):
LayoutTests:
- fast/css/pseudo-in-range-basics-expected.html: Added.
- fast/css/pseudo-in-range-basics.html: Added.
- fast/css/pseudo-in-range-out-of-range-trivial-expected.html: Added.
- fast/css/pseudo-in-range-out-of-range-trivial.html: Added.
- fast/css/pseudo-out-of-range-basics-expected.html: Added.
- fast/css/pseudo-out-of-range-basics.html: Added.
- 3:44 PM Changeset in webkit [202142] by
-
- 6 edits in trunk/Source
Fix macOS Sierra build
https://bugs.webkit.org/show_bug.cgi?id=158849
Reviewed by Tim Horton.
Source/WebCore:
Add WebCore:: qualifiers for IOSurface, to avoid conflicts with the IOSurface Objective-C class.
Also, add an asLayerContents() getter that will return an id that's suitable for setting
as the contents of a CALayer.
- platform/graphics/cocoa/IOSurface.h:
- platform/graphics/cocoa/IOSurface.mm:
Source/WebKit2:
Add WebCore:: qualifiers for IOSurface, to avoid conflicts with the IOSurface Objective-C class
and adopt IOSurface::asLayerContents().
- Shared/mac/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::decode):
(WebKit::RemoteLayerBackingStore::bytesPerPixel):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
(WebKit::RemoteLayerBackingStore::setBufferVolatility):
(WebKit::RemoteLayerBackingStore::Buffer::discard):
- UIProcess/mac/ViewSnapshotStore.mm:
(WebKit::ViewSnapshot::create):
(WebKit::ViewSnapshot::ViewSnapshot):
(WebKit::ViewSnapshot::asLayerContents):
- 3:18 PM Changeset in webkit [202141] by
-
- 3 edits in trunk/Source/JavaScriptCore
Kraken/stanford-crypto-pbkdf2.js sometimes crashes with an OSR assertion in FTL
https://bugs.webkit.org/show_bug.cgi?id=158850
Reviewed by Keith Miller.
Bytecode liveness was incorrectly claiming that all tail-deleted locals are live! That's
crazy! We never noticed this because extending OSR liveness is usually not a showstopper and
until recently we didn't have a lot of tail-call test cases to play with. Well, we do now,
thanks to the increasing reliance on tail calls in our builtins.
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::localsLiveInBytecode): Fix the bug and add some optional tracing. Also restructure the code so that we don't break to return true, since that's counterintuitive.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::buildExitArguments): Make this assertion print more useful information.
- 3:06 PM Changeset in webkit [202140] by
-
- 5 edits in trunk/Source/WebKit2
When a WebsiteDataStore finds no ProcessPools and creates one from scratch, it should represent the data store's config.
rdar://problem/26586991 and https://bugs.webkit.org/show_bug.cgi?id=158844
Reviewed by Anders Carlsson.
- UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration):
- UIProcess/API/APIProcessPoolConfiguration.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::processPools):
- UIProcess/WebsiteData/WebsiteDataStore.h:
- 2:47 PM Changeset in webkit [202139] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r196217): 3% JSBench regression on iPhone 5.
<https://webkit.org/b/158848>
<rdar://problem/26609622>
Unreviewed rollout.
Don't jettison linked code on every top-level navigation as that was hurting JSBench on iPhone 5.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
- 2:35 PM Changeset in webkit [202138] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION (r201538): Web Inspector: Border over Allocations Views is too thick
https://bugs.webkit.org/show_bug.cgi?id=158846
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-16
Reviewed by Timothy Hatcher.
- UserInterface/Views/HeapAllocationsTimelineView.css:
(.timeline-view.heap-allocations > .content-view-container > .content-view): Deleted.
- 1:41 PM Changeset in webkit [202137] by
-
- 1 copy in tags/Safari-602.1.37
New tag.
- 1:39 PM Changeset in webkit [202136] by
-
- 12 edits in trunk
Unreviewed, rolling out r202002 and r202111.
Ryosuke says this was a JSBench regression on iOS
Reverted changesets:
"Make HashMap and HashSet work with Refs"
https://bugs.webkit.org/show_bug.cgi?id=158638
http://trac.webkit.org/changeset/202002
"Improve HashMap and HashSet support for Ref"
https://bugs.webkit.org/show_bug.cgi?id=158789
http://trac.webkit.org/changeset/202111
- 1:39 PM Changeset in webkit [202135] by
-
- 5 edits in trunk/Source
Versioning.
- 12:50 PM Changeset in webkit [202134] by
-
- 2 edits in trunk/Source/WebInspectorUI
Unreviewed build fix.
- UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.createSettings):
"showColumn" -> "setColumnVisible".
- 12:39 PM Changeset in webkit [202133] by
-
- 14 edits in trunk/Source/WebInspectorUI
Web Inspector: DataGrid should manage its own settings
https://bugs.webkit.org/show_bug.cgi?id=158675
<rdar://problem/26761338>
Reviewed by Timothy Hatcher.
Move grid sorting settings (sort order, column identifier) into DataGrid,
removing duplicated code from various views. A new grid method, "createSettings",
takes an identifier which is used as a prefix for naming the grid's settings.
So that the new behavior is easy to use and hard to misuse, default values
for each setting are set to the current value of the associated property.
The result is that:
grid.sortColumnIdentifier = "columnA";
grid.createSettings("myGrid");
will use "columnA" as the default value the first time the setting is created.
- UserInterface/Views/ApplicationCacheFrameContentView.js:
(WebInspector.ApplicationCacheFrameContentView.prototype._createDataGrid):
- UserInterface/Views/CookieStorageContentView.js:
(WebInspector.CookieStorageContentView.prototype._rebuildTable):
- UserInterface/Views/DOMStorageContentView.js:
(WebInspector.DOMStorageContentView):
- UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid):
(WebInspector.DataGrid.prototype.createSettings):
(WebInspector.DataGrid.prototype.get identifier): Deleted.
(WebInspector.DataGrid.prototype.set identifier): Deleted.
(WebInspector.DataGrid.prototype.set sortOrderSetting): Deleted.
(WebInspector.DataGrid.prototype.set sortColumnIdentifierSetting): Deleted.
- UserInterface/Views/HeapAllocationsTimelineView.js:
(WebInspector.HeapAllocationsTimelineView):
- UserInterface/Views/HeapSnapshotContentView.js:
(WebInspector.HeapSnapshotContentView):
- UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
- UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView):
- UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
- UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView):
- UserInterface/Views/ProfileView.js:
(WebInspector.ProfileView):
- UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView):
- UserInterface/Views/ScriptDetailsTimelineView.js:
(WebInspector.ScriptDetailsTimelineView):
- 11:49 AM Changeset in webkit [202132] by
-
- 14 edits6 adds in trunk
[iOS WK2] On iPad, indirect focussing of a text field doesn't always scroll to the correct location
https://bugs.webkit.org/show_bug.cgi?id=158828
Reviewed by Enrica Casucci.
Source/WebKit2:
WebPage::getAssistedNodeInformation() unconditionally set information.selectionRect()
to a 1x1 rect at the last interaction location. This caused -[WKWebView _zoomToFocusRect:...]
to early return under the !forceScroll clause if the last interaction rect was visible, but
the elementRect was not. This would happen, for example, if a click in a <button> focussed
an input on some other portion of the page. This behavior is iPad-only, because forceScroll
is only NO there.
Fix by making getAssistedNodeInformation() only set the selectionRect to the last interaction
location if that is inside of the elementRect (this caters to the case where a tap is inside
an input which is larger than the screen). Otherwise, set it to the empty rect.
Make this testable by allowing a test to opt into the iPad-style scrolling/zooming behavior
in this code path (essentially, making forceScroll NO for testing), via testing SPI on WKWebView,
plumbed through to WKContentView.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView forceIPadStyleZoomOnInputFocus]):
(-[WKWebView setForceIPadStyleZoomOnInputFocus:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _displayFormNodeInputView]):
(-[WKContentView requiresAccessoryView:]):
(-[WKContentView inputAccessoryView]):
(-[WKContentView forceIPadStyleZoomOnInputFocus]):
(-[WKContentView setForceIPadStyleZoomOnInputFocus:]):
(-[WKContentView requiresAccessoryView]): Remove redundant returns, and allow testing to
override the "isIPad" condition.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):
Tools:
Expose "forceIPadStyleZoomOnInputFocus" on UIScriptController, which allows iPad-style
zooming behavior on <input> focus in the iPhone simulator, which is used for testing.
- WebKitTestRunner/UIScriptContext/Bindings/UIScriptController.idl:
- WebKitTestRunner/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::forceIPadStyleZoomOnInputFocus):
(WTR::UIScriptController::setForceIPadStyleZoomOnInputFocus):
- WebKitTestRunner/UIScriptContext/UIScriptController.h:
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::forceIPadStyleZoomOnInputFocus):
(WTR::UIScriptController::setForceIPadStyleZoomOnInputFocus):
LayoutTests:
Add various tests for focusing form fields. focus-input-via-button-ipad.html tests
the change in the current patch.
- fast/forms/ios/focus-input-in-fixed-expected.txt: Added.
- fast/forms/ios/focus-input-in-fixed.html: Added.
- fast/forms/ios/focus-input-via-button-ipad-expected.txt: Added.
- fast/forms/ios/focus-input-via-button-ipad.html: Added.
- fast/forms/ios/focus-long-textarea-expected.txt: Added.
- fast/forms/ios/focus-long-textarea.html: Added.
- fast/forms/ios/resources/zooming-test-utils.js:
(testZoomAfterTap):
- 11:25 AM Changeset in webkit [202131] by
-
- 8 edits in trunk/Source/JavaScriptCore
Add collecting of LLINT slow path stats.
https://bugs.webkit.org/show_bug.cgi?id=158829
Reviewed by Keith Miller.
- llint/LLIntData.cpp:
(JSC::LLInt::Data::dumpStats):
- llint/LLIntData.h:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- 11:12 AM Changeset in webkit [202130] by
-
- 5 edits2 adds in trunk
WebRTC: Check type of this in RTCPeerConnection JS built-in functions
https://bugs.webkit.org/show_bug.cgi?id=151303
Reviewed by Youenn Fablet.
Source/WebCore:
Check type of 'this' in RTCPeerConnection JS built-in functions.
Test: fast/mediastream/RTCPeerConnection-js-built-ins-check-this.html
- Modules/mediastream/RTCPeerConnection.js:
(createOffer):
(createAnswer):
(setLocalDescription):
(setRemoteDescription):
(addIceCandidate):
(getStats):
Reject if 'this' isn't of type RTCPeerConnection.
- Modules/mediastream/RTCPeerConnectionInternals.js:
(isRTCPeerConnection):
Add helper function to perform type check. Needs further robustifying.
LayoutTests:
Verify that the RTCPeerConnection JS built-in methods checks 'this'. The test has expected
failures (bug: http://webkit.org/b/158831).
- fast/mediastream/RTCPeerConnection-js-built-ins-check-this-expected.txt: Added.
- fast/mediastream/RTCPeerConnection-js-built-ins-check-this.html: Added.
- platform/mac/TestExpectations:
The mac port does not build with WEB_RTC enabled yet.
- 10:54 AM Changeset in webkit [202129] by
-
- 15 edits1 add in trunk
Forward/Back keyboard shortcuts need to flip for RTL
https://bugs.webkit.org/show_bug.cgi?id=158823
<rdar://problem/25975359>
Reviewed by Darin Adler.
Source/WebKit2:
Pipe the UserInterfaceLayoutDirection down to the WebContentProcess on initialization
and when it changes, and use it to flip the behavior of command-left and command-right
when in RTL mode.
Tests:
WebKit2_CommandBackForwardTestWKView.LTR
WebKit2_CommandBackForwardTestWKView.RTL
WebKit2_CommandBackForwardTestWKWebView.LTR
WebKit2_CommandBackForwardTestWKWebView.RTL
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):
- Shared/WebPageCreationParameters.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _webViewPrintFormatter]):
(-[WKWebView setSemanticContentAttribute:]):
(-[WKWebView _printOperationWithPrintInfo:forFrame:]):
(-[WKWebView setUserInterfaceLayoutDirection:]):
- UIProcess/API/mac/WKView.mm:
(-[WKView setUserInterfaceLayoutDirection:]):
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::windowIsFrontWindowUnderMouse):
(WebKit::toUserInterfaceLayoutDirection):
(WebKit::WebViewImpl::userInterfaceLayoutDirection):
(WebKit::WebViewImpl::setUserInterfaceLayoutDirection):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::userInterfaceLayoutDirection):
(WebKit::WebPageProxy::setUserInterfaceLayoutDirection):
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::hasHadSelectionChangesFromUserInteraction):
- UIProcess/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_userInterfaceLayoutDirection):
(WebKit::WebPage::setResourceCachingDisabled):
(WebKit::WebPage::setUserInterfaceLayoutDirection):
(WebKit::m_shouldDispatchFakeMouseMoveEvents): Deleted.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performNonEditingBehaviorForSelector):
Tools:
Add tests for flipping the behavior of command-left and command-right
under RTL mode.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/CommandBackForward.mm: Added.
(-[CommandBackForwardOffscreenWindow isKeyWindow]):
(-[CommandBackForwardOffscreenWindow isVisible]):
(simulateCommandArrow):
(WebKit2_CommandBackForwardTest::SetUp):
(WebKit2_CommandBackForwardTestWKView::didFinishLoadForFrame):
(WebKit2_CommandBackForwardTestWKView::SetUp):
(WebKit2_CommandBackForwardTestWKView::loadFiles):
(-[CommandBackForwardNavigationDelegate webView:didFinishNavigation:]):
(WebKit2_CommandBackForwardTestWKWebView::SetUp):
(WebKit2_CommandBackForwardTestWKWebView::loadFiles):
- 10:43 AM Changeset in webkit [202128] by
-
- 2 edits in trunk/LayoutTests
[mac] LayoutTest transforms/undecomposable.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=158816
Another attempt to deflake this test. Or is it unflake? I don't know.
- transforms/undecomposable.html:
- 10:10 AM Changeset in webkit [202127] by
-
- 3 edits2 adds in trunk
Sporadic crash in HashTableAddResult following CSSValuePool::createFontFamilyValue
https://bugs.webkit.org/show_bug.cgi?id=158297
Reviewed by Darin Adler.
Source/WebCore:
In an effort to reduce the flash of unstyled content, we force all elements
to have display: none during an external stylesheet load. We do this by
ignoring the CSS cascade and forcing all elements to have a placeholder style
which hardcodes display: none. (This is necessary to make elements created by
script during the stylesheet load not flash.)
This style is exposed to web content via getComputedStyle(), which means it
needs to maintain the invariant that font-families can never be null strings.
We enforce this by forcing the font-family to be the standard font name.
Test: fast/text/placeholder-renderstyle-null-font.html
- style/StyleTreeResolver.cpp:
(WebCore::Style::ensurePlaceholderStyle):
LayoutTests:
- fast/text/placeholder-renderstyle-null-font-expected.txt: Added.
- fast/text/placeholder-renderstyle-null-font.html: Added.
- 9:32 AM Changeset in webkit [202126] by
-
- 3 edits in trunk/Source/WebCore
Avoid some temporary String allocations for common HTTP headers in ResourceResponse::platformLazyInit()
https://bugs.webkit.org/show_bug.cgi?id=158827
Reviewed by Darin Adler.
Add a HTTPHeaderMap::set() overload taking in a CFStringRef. The
implementation has a fast path which gets the internal characters
of the CFStringRef when possible and constructs a StringView for
it in order to call findHTTPHeaderName(). As a result, we avoid
allocating a temporary String when findHTTPHeaderName() succeeds.
This new HTTPHeaderMap::set() overload is called from both the
CF and Cocoa implementations of ResourceResponse::platformLazyInit().
I have confirmed locally on both Mac and iOS that the fast path
is used ~93% of the time. CFStringGetCStringPtr() returns null in
rare cases, causing the regular code path to be used.
- platform/network/HTTPHeaderMap.cpp:
(WebCore::HTTPHeaderMap::set):
- platform/network/HTTPHeaderMap.h:
Jun 15, 2016:
- 11:01 PM Changeset in webkit [202125] by
-
- 56 edits5 adds in trunk
Add support for Symbol.isConcatSpreadable (round 2)
https://bugs.webkit.org/show_bug.cgi?id=158769
Reviewed by Mark Lam.
Source/JavaScriptCore:
This patch adds support for Symbol.isConcatSpreadable. In order to
do so, it was necessary to move the Array.prototype.concat function
to JS. A number of different optimizations were needed to make
such the move to a builtin performant. First, this patch adds a
new Bytecode intrinsic, isJSArray, that checks if the value is a
JSArray object. Specifically, isJSArray checks that the array
object is a normal instance of JSArray and not a RuntimeArray or
Array.prototype. isJSArray can also be converted into a constant
by the DFG if we are able to prove that the incomming value is
already a JSArray.
In order to further improve the perfomance we also now cover more
indexing types in our fast path memcpy code. Before we would only
memcpy Arrays if they had the same indexing type and did not have
Array storage or were undecided. Now the memcpy code covers the
following additional three cases:
1) One array is undecided and the other does not have array storage
2) One array is Int32 and the other is contiguous (we map this
into a contiguous array).
3) The this value is an array and first argument is a non-array
that does not have Symbol.isConcatSpreadable set.
This patch also adds a new fast path for concat with more than one
array argument by using memcpy to append values onto the result
array. This works roughly the same as the two array fast path
using the same methodology to decide if we can memcpy the other
butterfly into the result butterfly.
- JavaScriptCore.xcodeproj/project.pbxproj:
- builtins/ArrayPrototype.js:
(concatSlowPath):
(concat):
- bytecode/BytecodeIntrinsicRegistry.cpp:
(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):
- bytecode/BytecodeIntrinsicRegistry.h:
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::emitIsJSArray):
- bytecompiler/NodesCodegen.cpp:
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isJSArray):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::compileIsJSArray):
(JSC::DFG::SpeculativeJIT::compileCallObjectConstructor):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCallObjectConstructor):
(JSC::FTL::DFG::LowerDFGToB3::compileIsJSArray):
(JSC::FTL::DFG::LowerDFGToB3::isArray):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
- jit/JIT.h:
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_is_jsarray):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_is_jsarray):
- jit/JITOperations.h:
- llint/LLIntData.cpp:
(JSC::LLInt::Data::performAssertions):
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/ArrayConstructor.h:
(JSC::isArrayConstructor):
- runtime/ArrayPrototype.cpp:
(JSC::ArrayPrototype::finishCreation):
(JSC::speciesWatchpointsValid):
(JSC::speciesConstructArray):
(JSC::moveElements):
(JSC::concatAppendOne):
(JSC::arrayProtoFuncConcat): Deleted.
- runtime/ArrayPrototype.h:
- runtime/CommonIdentifiers.h:
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/IndexingType.h:
(JSC::indexingTypeForValue):
- runtime/JSArray.cpp:
(JSC::JSArray::appendMemcpy):
(JSC::JSArray::fastConcatWith): Deleted.
- runtime/JSArray.h:
(JSC::JSArray::createStructure):
(JSC::isJSArray):
(JSC::JSArray::fastConcatType): Deleted.
- runtime/JSArrayInlines.h: Added.
(JSC::JSArray::mergeIndexingTypeForCopying):
(JSC::JSArray::canFastCopy):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- runtime/JSObject.cpp:
(JSC::JSObject::convertUndecidedForValue):
- runtime/JSType.h:
- runtime/ObjectConstructor.h:
(JSC::constructObject):
- tests/es6.yaml:
- tests/stress/array-concat-spread-object.js: Added.
(arrayEq):
- tests/stress/array-concat-spread-proxy-exception-check.js: Added.
(arrayEq):
- tests/stress/array-concat-spread-proxy.js: Added.
(arrayEq):
- tests/stress/array-concat-with-slow-indexingtypes.js: Added.
(arrayEq):
- tests/stress/array-species-config-array-constructor.js:
LayoutTests:
Fix tests for Symbol.isConcatSpreadable. Also, add new test that
the array species construction does not use the callees' global
object's Array[Symbol.species] when given an array from another
global object.
- js/Object-getOwnPropertyNames-expected.txt:
- js/array-species-different-globalobjects.html:
- js/dom/array-prototype-properties-expected.txt:
- js/script-tests/Object-getOwnPropertyNames.js:
- 9:41 PM Changeset in webkit [202124] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
Assertion failure when returning incomplete property descriptor from proxy trap.
https://bugs.webkit.org/show_bug.cgi?id=157078
Reviewed by Saam Barati.
If the proxy returns a descriptor that expects a value but does not specify one,
we should use undefined for the value.
- runtime/ProxyObject.cpp:
(JSC::ProxyObject::performInternalMethodGetOwnProperty):
- tests/stress/proxy-returning-incomplete-property-descriptor.js: Added.
(truthiness):
(compare):
(shouldBe):
(test):
(get test):
- 8:30 PM Changeset in webkit [202123] by
-
- 6 edits2 copies2 adds in trunk
Decouple the percent height and positioned descendants maps.
https://bugs.webkit.org/show_bug.cgi?id=158773
Reviewed by David Hyatt and Chris Dumez.
Source/WebCore:
We track renderers with percent height across multiple containers using
HashMap<const RenderBox*, std::unique_ptr<HashSet<const RenderBlock*>>>.
We also use the same data structure to track positioned descendants.
However a positioned renderer can have only one containing block so tracking it
with a 1:many type is defective.
It allows multiple inserts for positioned descendants, which could lead to
inconsistent layout state as the rendering logic expects these type of renderers
with only one containing block.
This patch decouples percent height and positioned tracking by introducing
the PositionedDescendantsMap class. This class is responsible for tracking
the positioned descendants inbetween layouts.
No change in functionality.
Tests: fast/block/positioning/change-containing-block-for-absolute-positioned.html
fast/block/positioning/change-containing-block-for-fixed-positioned.html
- rendering/RenderBlock.cpp:
(WebCore::insertIntoTrackedRendererMaps):
(WebCore::removeFromTrackedRendererMaps):
(WebCore::PositionedDescendantsMap::addDescendant): Add more defensive ASSERT_NOT_REACHED
to the double insert branch when webkit.org/b/158772 gets fixed.
(WebCore::PositionedDescendantsMap::removeDescendant):
(WebCore::PositionedDescendantsMap::removeContainingBlock):
(WebCore::PositionedDescendantsMap::positionedRenderers):
(WebCore::positionedDescendantsMap):
(WebCore::removeBlockFromPercentageDescendantAndContainerMaps):
(WebCore::RenderBlock::~RenderBlock):
(WebCore::RenderBlock::positionedObjects):
(WebCore::RenderBlock::insertPositionedObject):
(WebCore::RenderBlock::removePositionedObject):
(WebCore::RenderBlock::addPercentHeightDescendant):
(WebCore::RenderBlock::removePercentHeightDescendant):
(WebCore::RenderBlock::percentHeightDescendants):
(WebCore::RenderBlock::checkPositionedObjectsNeedLayout):
(WebCore::removeBlockFromDescendantAndContainerMaps): Deleted.
- rendering/RenderBlock.h:
LayoutTests:
Various dynamic containing block changing tests.
- fast/block/fixed-position-reparent-when-transition-is-removed.html:
- fast/block/positioning/change-containing-block-for-absolute-positioned-expected.txt: Added.
- fast/block/positioning/change-containing-block-for-absolute-positioned.html: Added.
- fast/block/positioning/change-containing-block-for-fixed-positioned-expected.txt: Added.
- fast/block/positioning/change-containing-block-for-fixed-positioned.html: Added.
- 8:22 PM Changeset in webkit [202122] by
-
- 3 edits1 move in trunk/Source/WebCore
Move SoftLinking.h to platform/cococa from platform/mac
<https://webkit.org/b/158825>
Reviewed by Andy Estes.
- PlatformMac.cmake: Update for new directory.
- WebCore.xcodeproj/project.pbxproj: Ditto.
- platform/cocoa/SoftLinking.h: Renamed from Source/WebCore/platform/mac/SoftLinking.h.
- 7:59 PM Changeset in webkit [202121] by
-
- 6 edits in trunk/Source
[Cocoa] Clean up / optimize ResourceResponse::platformLazyInit(InitLevel)
https://bugs.webkit.org/show_bug.cgi?id=158809
Reviewed by Darin Adler.
Source/WebCore:
Clean up / optimize ResourceResponse::platformLazyInit(InitLevel).
- platform/network/HTTPParsers.cpp:
(WebCore::extractReasonPhraseFromHTTPStatusLine):
- platform/network/HTTPParsers.h:
Have extractReasonPhraseFromHTTPStatusLine() return an AtomicString as the
Reason is stored as an AtomicString on ResourceResponse. Have the
implementation use StringView::subString()::toAtomicString().
- platform/network/cocoa/ResourceResponseCocoa.mm:
(WebCore::stripLeadingAndTrailingDoubleQuote):
Move the stripLeadingAndTrailingDoubleQuote logic from platformLazyInit()
to its own function. Have it use StringView::subString()::toAtomicString()
to avoid unnecessarily atomizing the textEncodingName that has surrounding
double-quotes.
(WebCore::initializeHTTPHeaders):
Move HTTP headers initialization to its own function for clarity.
(WebCore::extractHTTPStatusText):
Move HTTP status Text extraction to its own function for clarity.
(WebCore::ResourceResponse::platformLazyInit):
- The function is streamlined a bit because most of the logic was moved into separate functions.
- Drop unnecessary (initLevel >= CommonFieldsOnly) check in the first if case and replace with an assertion. This function is always called with CommonFieldsOnly or above (AllFields).
- Drop unnecessary (m_initLevel < AllFields) check in the second if case as this is always true. If not, we would have returned early at the beginning of the function when checking m_initLevel >= initLevel.
- Use AutodrainedPool instead of NSAutoreleasePool for convenience and have only 1 pool instead of 2.
- Drop unnecessary copyNSURLResponseStatusLine() function and call directly CFHTTPMessageCopyResponseStatusLine() since we already have a CFHTTPMessageRef at the call site.
Source/WTF:
Add toAtomicString() method to StringView to avoid having to call toString()
and then atomizing the String at call sites.
- wtf/text/StringView.h:
(WTF::StringView::toAtomicString):
- 7:20 PM Changeset in webkit [202120] by
-
- 5 edits in trunk
Expose _shouldExpandContentToViewHeightForAutoLayout SPI on WKWebView
https://bugs.webkit.org/show_bug.cgi?id=158824
<rdar://problem/23713857>
Reviewed by Simon Fraser.
Test: TestWebKitAPI/WebKit2.AutoLayoutIntegration
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _shouldExpandContentToViewHeightForAutoLayout]):
(-[WKWebView _setShouldExpandContentToViewHeightForAutoLayout:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
This property exists on WKView; expose it on WKWebView.
- TestWebKitAPI/Tests/WebKit2Cocoa/AutoLayoutIntegration.mm:
(-[AutoLayoutWKWebView load:withWidth:expectingContentSize:]):
(-[AutoLayoutWKWebView load:withWidth:expectingContentSize:resettingWidth:]):
(-[AutoLayoutWKWebView layoutAtMinimumWidth:andExpectContentSizeChange:resettingWidth:]):
(TEST):
Add a test for _shouldExpandContentToViewHeightForAutoLayout.
- 6:28 PM Changeset in webkit [202119] by
-
- 3 edits in trunk/Source/WebKit2
Revert part of r196034
https://bugs.webkit.org/show_bug.cgi?id=158805
rdar://problem/26788138
Reviewed by Dan Bernstein.
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::~NetworkLoad):
If the WebResourceLoader was destroyed and received a canAuthenticateAgainstProtectionSpace
but did not send a continueCanAuthenticateAgainstProtectionSpace answer because there's no
core loader, then the NetworkLoad will be destroyed. When this happens, we still need to call
the callback for the challenge.
- WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::canAuthenticateAgainstProtectionSpace):
If there's no core loader, we can't send IPC.
- 6:22 PM Changeset in webkit [202118] by
-
- 2 edits in trunk/Source/WebKit/mac
+[WebHTMLRepresentation supportedMIMETypes] leaks
https://bugs.webkit.org/show_bug.cgi?id=158683
Reviewed by Darin Adler.
The problem occurred when chaining newArrayByConcatenatingArrays calls.
Also refactored the code to avoid returning NSMutableArrays disguised as NSArrays,
and removed unsafe_unretained modifiers that were added in http://trac.webkit.org/r149453
for no apparent reason.
- WebView/WebHTMLRepresentation.mm:
(newArrayWithStrings):
(+[WebHTMLRepresentation supportedMIMETypes]):
(+[WebHTMLRepresentation supportedMediaMIMETypes]):
(+[WebHTMLRepresentation supportedNonImageMIMETypes]):
(+[WebHTMLRepresentation supportedImageMIMETypes]):
(+[WebHTMLRepresentation unsupportedTextMIMETypes]):
(newArrayByConcatenatingArrays): Deleted.
- 6:14 PM Changeset in webkit [202117] by
-
- 7 edits2 adds in trunk
<attachment> elements jump around a lot around when subtitle text changes slightly
https://bugs.webkit.org/show_bug.cgi?id=158818
<rdar://problem/24450270>
Reviewed by Simon Fraser.
Test: fast/attachment/attachment-subtitle-resize.html
- rendering/RenderAttachment.cpp:
(WebCore::RenderAttachment::layout):
- rendering/RenderAttachment.h:
- rendering/RenderThemeMac.mm:
(WebCore::AttachmentLayout::AttachmentLayout):
(WebCore::RenderThemeMac::paintAttachment):
In order to avoid changes to the centered subtitle text causing the whole
attachment to bounce around a lot, make it so that attachment width can only
increase, never decrease, and round the subtitle's width up to the nearest
increment of 10px when determining its affect on the whole element's width.
Also, center the attachment in its element, instead of left-aligning it,
so that the extra width we may have is evenly distributed between the two sides.
- fast/attachment/attachment-subtitle-resize-expected.txt: Added.
- fast/attachment/attachment-subtitle-resize.html: Added.
- 4:44 PM Changeset in webkit [202116] by
-
- 10 edits2 adds in trunk
[iOS WK2] Make it possible to test the Next/Previous buttons in the keyboard accessory bar
https://bugs.webkit.org/show_bug.cgi?id=158714
Reviewed by Enrica Casucci.
Add UIScriptController.keyboardAccessoryBar{Next,Previous} and hook it up to the WKContentView
method that gets called from UIKit.
Add a test that exercises it.
Source/WebKit2:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView keyboardAssistantBarNext]):
(-[WKWebView keyboardAssistantBarPrevious]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
Tools:
- WebKitTestRunner/UIScriptContext/Bindings/UIScriptController.idl:
- WebKitTestRunner/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::keyboardAccessoryBarNext):
(WTR::UIScriptController::keyboardAccessoryBarPrevious):
- WebKitTestRunner/UIScriptContext/UIScriptController.h:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::keyboardAccessoryBarNext):
(WTR::UIScriptController::keyboardAccessoryBarPrevious):
LayoutTests:
- TestExpectations:
- fast/forms/ios/accessory-bar-navigation-expected.txt: Added.
- fast/forms/ios/accessory-bar-navigation.html: Added.
- fast/forms/ios/resources/zooming-test-utils.js: Added.
(testZoomAfterTap):
(tableFromJSON):
- platform/ios-simulator-wk2/TestExpectations:
- 4:34 PM Changeset in webkit [202115] by
-
- 2 edits in trunk/LayoutTests
[mac] LayoutTest transforms/undecomposable.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=158816
Unflakify this test by putting the script in a place that
will execute it before the load event (by which time the animation
may have started).
- transforms/undecomposable.html:
- 4:07 PM Changeset in webkit [202114] by
-
- 2 edits11 adds in trunk/LayoutTests
[iOS WK2] Add tests for zooming to text fields on focus
https://bugs.webkit.org/show_bug.cgi?id=158786
Reviewed by Enrica Casucci.
Add tests that focus form controls, and test the resulting scroll position and zoom level.
- TestExpectations:
- fast/forms/ios/focus-input-via-button-expected.txt: Added.
- fast/forms/ios/focus-input-via-button-no-scaling-expected.txt: Added.
- fast/forms/ios/focus-input-via-button-no-scaling.html: Added.
- fast/forms/ios/focus-input-via-button.html: Added.
- fast/forms/ios/resources/zooming-test-utils.js: Added.
(testZoomAfterTap):
(tableFromJSON):
- fast/forms/ios/zoom-after-input-tap-expected.txt: Added.
- fast/forms/ios/zoom-after-input-tap-wide-input-expected.txt: Added.
- fast/forms/ios/zoom-after-input-tap-wide-input.html: Added.
- fast/forms/ios/zoom-after-input-tap.html: Added.
- platform/ios-simulator-wk2/TestExpectations:
- 3:37 PM Changeset in webkit [202113] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, fix typo in test and move tests to the correct files.
- tests/stress/multi-get-by-offset-proto-or-unset.js:
- tests/stress/multi-get-by-offset-proto-self-or-unset.js:
- 3:14 PM Changeset in webkit [202112] by
-
- 4 edits in trunk/Source
RTL <select> forms are misplaced
https://bugs.webkit.org/show_bug.cgi?id=158810
<rdar://problem/24847541>
Reviewed by Eric Carlson.
AppKit made a change in Sierra that causes popup menus
to snap to a different point when the system language is RTL.
We need to be more explicit about what directionality
we want, and override the location of the popup based
on the text direction.
I also made a small tweak to the fudge offsets we use
in order to make button text and menu text to be
more consistent.
Unfortunately since this is just about the location
of the popup menu, it's unable to be tested in our
current infrastructure.
Source/WebKit/mac:
- WebCoreSupport/PopupMenuMac.mm:
(PopupMenuMac::show):
Source/WebKit2:
- UIProcess/mac/WebPopupMenuProxyMac.mm:
(WebKit::WebPopupMenuProxyMac::showPopupMenu):
- 3:07 PM Changeset in webkit [202111] by
-
- 8 edits in trunk
Improve HashMap and HashSet support for Ref
https://bugs.webkit.org/show_bug.cgi?id=158789
Patch by Sam Weinig <sam@webkit.org> on 2016-06-15
Reviewed by Chris Dumez.
Source/WTF:
Tests: Add more cases to WTF_HashMap.Ref_Key, WTF_HashMap.Ref_Value and WTF_HashSet.Ref
- wtf/HashMap.h:
- wtf/HashSet.h:
Add a MappedTakeType typedef and rework the take functions to use it and HashTraits::take(...).
- wtf/HashTraits.h:
(WTF::GenericHashTraits::assignToEmpty):
Move to GenericHashTraits rather than GenericHashTraitsBase, since it is not different
between integral and non-integral HashTraits.
(WTF::GenericHashTraits::take):
Add a trait function for take that defaults as a forward. This allows us to override take
just like we do with get/peek.
(WTF::HashTraits<Ref<P>>::emptyValue):
Remove unnecessary explicit construction.
(WTF::HashTraits<Ref<P>>::peek):
Fix assertion that could happen if you did a HashMap.get() on an empty Ref value.
(WTF::HashTraits<Ref<P>>::take):
Make the TakeType of a Ref<P> be Optional<Ref<P>>, to avoid having empty
Refs returned from HashMap and HashSet. Implement an explicit take() function to
construct one.
(WTF::HashTraits<Ref<P>>::customDeleteBucket): Deleted.
Remove unnecessary customDeleteBucket implementation. Ref does not assign nullptr to
it's m_ptr in destruction, so there is no dead store to avoid here.
- wtf/Ref.h:
(WTF::Ref::ptrAllowingHashTableEmptyValue):
Add HashTrait helper to allow getting the value of m_ptr even when it is null. This
allows us to avoid a branch in HashTraits<Ref<P>>::peek().
Tools:
- TestWebKitAPI/Tests/WTF/HashMap.cpp:
- TestWebKitAPI/Tests/WTF/HashSet.cpp:
Add more cases to WTF_HashMap.Ref_Key, WTF_HashMap.Ref_Value and WTF_HashSet.Ref
- 2:56 PM Changeset in webkit [202110] by
-
- 2 edits in trunk/Source/WebCore
Reset bindings test results after r202105
Unreviewed test gardening.
- bindings/scripts/test/JS/JSTestObj.cpp:
- 2:27 PM Changeset in webkit [202109] by
-
- 2 edits in trunk/Source/WebCore
WebRTC: (Refactor) Align the structure of RTCPeerConnection.idl with the header file
https://bugs.webkit.org/show_bug.cgi?id=158779
Reviewed by Eric Carlson.
Restructure RTCPeerConnection.idl to make it easer to read and extend in the future.
No change in behavior.
- Modules/mediastream/RTCPeerConnection.idl:
- 2:27 PM Changeset in webkit [202108] by
-
- 2 edits2 adds in trunk/LayoutTests
WebRTC: Add media setup test using the legacy callback APIs
https://bugs.webkit.org/show_bug.cgi?id=158736
Reviewed by Eric Carlson.
Add a test that sets up media using the legacy callback-based createOffer/Answer() and
setLocal/RemoteDescription() methods [1].
[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#legacy-interface-extensions
- fast/mediastream/RTCPeerConnection-media-setup-callbacks-single-dialog-expected.txt: Added.
- fast/mediastream/RTCPeerConnection-media-setup-callbacks-single-dialog.html: Added.
- platform/mac/TestExpectations:
The mac port is not building with WEB_RTC yet.
- 2:25 PM Changeset in webkit [202107] by
-
- 2 edits in trunk/Tools
Too much log data generated during layout-tests on iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=158751
Reviewed by Alexey Proskuryakov.
- Scripts/webkitpy/port/ios.py:
(IOSSimulatorPort.developer_dir): memoized the property so that it is not called
repeatedly.
- 2:15 PM Changeset in webkit [202106] by
-
- 2 edits in trunk/Source/WebInspectorUI
Uncaught Exception: TypeError: undefined is not an object (evaluating 'imageElement.classList')
https://bugs.webkit.org/show_bug.cgi?id=158808
<rdar://problem/26821034>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-15
Reviewed by Brian Burg.
- UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js:
(WebInspector.HeapAllocationsTimelineOverviewGraph.prototype._updateSnapshotMarkers):
If the record is out of the layout bounds of the overview graph, the overview graph
may not have created an image element yet, so bail. Later, when the image element
is created, it would get the appropriate style if the record is selected.
- 1:59 PM Changeset in webkit [202105] by
-
- 99 edits in trunk/Source
Drop some unnecessary header includes
https://bugs.webkit.org/show_bug.cgi?id=158788
Reviewed by Alexey Proskuryakov.
Drop some unnecessary header includes in headers to speed up build time.
Source/WebCore:
- Modules/encryptedmedia/MediaKeySession.cpp:
- Modules/gamepad/GamepadManager.cpp:
- Modules/indexeddb/IDBDatabase.cpp:
- Modules/indexeddb/IDBOpenDBRequest.cpp:
- Modules/indexeddb/IDBRequest.cpp:
- Modules/indexeddb/IDBTransaction.cpp:
- Modules/mediasource/MediaSource.cpp:
- Modules/mediasource/SourceBuffer.cpp:
- Modules/mediasource/SourceBufferList.cpp:
- Modules/mediastream/MediaStream.cpp:
- Modules/mediastream/MediaStreamTrack.cpp:
- Modules/speech/SpeechSynthesis.cpp:
- Modules/webaudio/AudioScheduledSourceNode.cpp:
- Modules/webaudio/ScriptProcessorNode.cpp:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- dom/CharacterData.cpp:
- dom/ContainerNode.cpp:
- dom/DOMNamedFlowCollection.cpp:
- dom/DeviceMotionController.cpp:
- dom/DeviceOrientationController.cpp:
- dom/Document.cpp:
- dom/Document.h:
- dom/DocumentEventQueue.cpp:
- dom/DocumentOrderedMap.h:
- dom/Element.cpp:
- dom/Event.cpp:
- dom/EventDispatcher.cpp:
- dom/EventTarget.cpp:
- dom/EventTarget.h:
- dom/KeyboardEvent.cpp:
- dom/MessageEvent.cpp:
- dom/MessagePort.cpp:
- dom/ScriptElement.cpp:
- dom/ScriptExecutionContext.cpp:
- dom/ScriptExecutionContext.h:
- dom/SecurityContext.h:
- dom/SimulatedClick.cpp:
- dom/TextEvent.cpp:
- dom/WebKitNamedFlow.cpp:
- editing/FrameSelection.cpp:
- fileapi/FileReader.cpp:
- html/HTMLLinkElement.cpp:
- html/HTMLPlugInImageElement.cpp:
- html/HTMLStyleElement.cpp:
- html/HTMLSummaryElement.cpp:
- html/HTMLTrackElement.cpp:
- html/HTMLVideoElement.cpp:
- html/InputType.cpp:
- html/MediaController.cpp:
- html/TextFieldInputType.cpp:
- html/canvas/WebGLRenderingContextBase.cpp:
- html/parser/HTMLScriptRunner.cpp:
- html/shadow/MediaControlElementTypes.cpp:
- html/shadow/MediaControls.cpp:
- html/shadow/MediaControlsApple.cpp:
- html/shadow/SliderThumbElement.cpp:
- html/shadow/mac/ImageControlsButtonElementMac.cpp:
- inspector/InspectorIndexedDBAgent.cpp:
- loader/DocumentLoader.cpp:
- loader/ImageLoader.cpp:
- loader/PolicyChecker.cpp:
- mathml/MathMLSelectElement.cpp:
- page/DOMWindow.h:
- page/EventSource.cpp:
- page/FrameView.cpp:
- page/Performance.cpp:
- page/csp/ContentSecurityPolicy.cpp:
- platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
- platform/network/HTTPHeaderMap.h:
- platform/network/ResourceHandle.cpp:
- rendering/RenderEmbeddedObject.cpp:
- rendering/RenderSnapshottedPlugIn.cpp:
- svg/SVGSVGElement.cpp:
- svg/SVGUseElement.cpp:
- svg/animation/SVGSMILElement.cpp:
- workers/WorkerGlobalScope.h:
- xml/XMLHttpRequest.cpp:
- xml/XMLHttpRequestProgressEventThrottle.cpp:
- xml/XMLHttpRequestUpload.cpp:
Source/WebKit/mac:
- WebCoreSupport/WebFrameLoaderClient.mm:
Source/WebKit/win:
- Plugins/PluginView.cpp:
Source/WebKit2:
- WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
- WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:
- WebProcess/Plugins/PDF/PDFPluginPasswordField.mm:
- WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
- WebProcess/Plugins/PluginView.cpp:
- WebProcess/WebPage/WebPage.cpp:
- 1:52 PM Changeset in webkit [202104] by
-
- 7 edits in trunk
GoogleMaps transit schedule explorer comes up blank initially
https://bugs.webkit.org/show_bug.cgi?id=158803
rdar://problem/25818080
Source/WebCore:
Reviewed by Andreas Kling.
In case we had something like
.foo bar { ... }
and later a new stylesheet was added dynamically that contained
.foo baz { ... }
we would fail to add the new rules to the descendant invalidation rule sets for ".foo". This could
cause some style invalidations to be missed.
- css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::collectFeatures):
Reset the ancestorClassRules and ancestorAttributeRulesForHTML rule set caches when new style sheets
are added (==collectFeatures is called).
LayoutTests:
Reviewed by Andreas Kling
Expand the tests to cover this case.
- fast/css/style-invalidation-attribute-change-descendants-expected.txt:
- fast/css/style-invalidation-attribute-change-descendants.html:
- fast/css/style-invalidation-class-change-descendants-expected.txt:
- fast/css/style-invalidation-class-change-descendants.html:
- 1:48 PM Changeset in webkit [202103] by
-
- 3 edits2 adds in trunk
[css-sizing] Item borders are missing with 'min-width:-webkit-fill-available' and zero available width
https://bugs.webkit.org/show_bug.cgi?id=158258
Source/WebCore:
Reviewed by Darin Adler.
The "fill-available" size is defined as the containing block's size less
the box's border and padding size. However, when used for min-width we
should ensure we don't get negative values as result of logical width
computation.
http://www.w3.org/TR/css-sizing-3/#fill-available-sizing
This patch ensure fill-available value computed value will be always
greater than box's boder and padding width.
Test: fast/css-intrinsic-dimensions/fill-available-with-zero-width.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeIntrinsicLogicalWidthUsing):
LayoutTests:
Tests to verify that fill-available size works as expected when contaner's width is zero.
Reviewed by Darin Adler.
- fast/css-intrinsic-dimensions/fill-available-with-zero-width-expected.html: Added.
- fast/css-intrinsic-dimensions/fill-available-with-zero-width.html: Added.
- 12:41 PM Changeset in webkit [202102] by
-
- 3 edits2 adds in trunk
Fix 2d canvas transform after r192900
https://bugs.webkit.org/show_bug.cgi?id=158725
Source/WebCore:
rdar://problem/26774230
Patch by Alex Christensen <achristensen@webkit.org> on 2016-06-15
Reviewed by Dean Jackson.
Test: fast/canvas/canvas-transform-inverse.html
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::transform):
r192900 was intended to have no change in behavior, but I made a typo.
We need to apply the inverse of the original transform to the path to be correct.
This affects transforms applied to the canvas during the creation of a path.
LayoutTests:
Patch by Alex Christensen <achristensen@webkit.org> on 2016-06-15
Reviewed by Dean Jackson.
- fast/canvas/canvas-transform-inverse-expected.html: Added.
- fast/canvas/canvas-transform-inverse.html: Added.
- 12:40 PM Changeset in webkit [202101] by
-
- 3 edits3 adds in trunk/Source/JavaScriptCore
DFGByteCodeParser should be able to infer the value of unset properties in MultiGetByOffset
https://bugs.webkit.org/show_bug.cgi?id=158802
Reviewed by Filip Pizlo.
This patch adds support for unset properties in MultiGetByOffset. Since MultiGetByOffset
already supports constant values this patch just adds a constant case where the fetched
value is undefined. Fortunately (or unfortunately) we don't support object allocation
sinking for constant cases of MultiGetByOffset, which means we don't need to adjust any
in that phase.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::planLoad):
(JSC::DFG::ByteCodeParser::handleGetById):
- dfg/DFGMultiGetByOffsetData.h:
- tests/stress/multi-get-by-offset-proto-or-unset.js: Added.
(foo):
- tests/stress/multi-get-by-offset-proto-self-or-unset.js: Added.
(foo):
- tests/stress/multi-get-by-offset-self-or-unset.js: Added.
(foo):
- 12:32 PM Changeset in webkit [202100] by
-
- 8 edits4 adds in trunk
[iOS] Make HTMLMediaElement.muted mutable
https://bugs.webkit.org/show_bug.cgi?id=158787
<rdar://problem/24452567>
Reviewed by Dean Jackson.
Source/WebCore:
Tests: media/audio-playback-restriction-removed-muted.html
media/audio-playback-restriction-removed-track-enabled.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::audioTrackEnabledChanged): Remove most behavior restrictions if
the track state was changed as a result of a user gesture.
(WebCore::HTMLMediaElement::setMuted): Ditto.
(WebCore::HTMLMediaElement::removeBehaviorsRestrictionsAfterFirstUserGesture): Add mask
parameter so caller can choose which restrictions are removed.
- html/HTMLMediaElement.h:
- html/MediaElementSession.cpp:
(WebCore::restrictionName): Drive-by fix: remove duplicate label.
- html/MediaElementSession.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Set muted on AVPlayer if setMuted
was called before the player was created.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVolume): Drive-by fix: return early if there
is no AVPlayer, not if we won't have metadata yet.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setMuted): New.
LayoutTests:
- media/audio-playback-restriction-removed-muted-expected.txt: Added.
- media/audio-playback-restriction-removed-muted.html: Added.
- media/audio-playback-restriction-removed-track-enabled-expected.txt: Added.
- media/audio-playback-restriction-removed-track-enabled.html: Added.
- 12:30 PM Changeset in webkit [202099] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed GCC build fix after r202098.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::thresholdForJIT):
- 12:20 PM Changeset in webkit [202098] by
-
- 6 edits in trunk/Source/JavaScriptCore
compilation policy should adapt to past behavior
https://bugs.webkit.org/show_bug.cgi?id=158759
Reviewed by Saam Barati.
This looks like a ~9% speedup on JSBench.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::~CodeBlock): Record when a CodeBlock dies without ever
making it to DFG.
(JSC::CodeBlock::thresholdForJIT): CodeBlocks that make it to DFG should
compile sooner; CodeBlocks that don't should compile later. The goal is
to use past behavior, in addition to execution counts, to determine
whether compilation is profitable.
(JSC::CodeBlock::jitAfterWarmUp):
(JSC::CodeBlock::jitSoon): Apply the thresholdForJIT rule.
- bytecode/CodeBlock.h: Moved some code into the .cpp file so I could
change stuff without recompiling.
(JSC::CodeBlock::jitAfterWarmUp): Deleted.
(JSC::CodeBlock::jitSoon): Deleted.
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::didOptimize):
(JSC::UnlinkedCodeBlock::setDidOptimize): Added a piece of data to track
whether we made it to DFG.
- jit/JITOperations.cpp: Record when we make it to DFG.
- 12:17 PM Changeset in webkit [202097] by
-
- 2 edits in trunk/LayoutTests
fast/events/ios tests are marked as flakey, but really just fail in OpenSource and WK1
https://bugs.webkit.org/show_bug.cgi?id=158804
Test gardening.
fast/events/ios is skipped globally. Ideally it would be re-enabled in /ios-simulator-wk2/TestExpectations, but relies on unreleased
software, so leave disabled for now.
- platform/ios-simulator/TestExpectations:
- 12:04 PM Changeset in webkit [202096] by
-
- 4 edits in trunk/Source
Source/JavaScriptCore:
Only Mac port needs ObjC API for JSC.
https://bugs.webkit.org/show_bug.cgi?id=158780
Reviewed by Philippe Normand.
- API/JSBase.h: Removed !defined(BUILDING_GTK)
Source/WTF:
Only Mac port needs ObjC API for JSC
https://bugs.webkit.org/show_bug.cgi?id=158780
Reviewed by Philippe Normand.
- wtf/FeatureDefines.h:
- 11:40 AM WebKit2 edited by
- (diff)
- 10:08 AM Changeset in webkit [202095] by
-
- 3 edits in trunk/Tools
[Win][CMake] Changes in WebKit options are not reflected in incremental builds.
https://bugs.webkit.org/show_bug.cgi?id=158727
Reviewed by Alex Christensen.
Delete CMake cache file if WebKit options have been modified.
- Scripts/build-webkit:
- Scripts/webkitdirs.pm:
(shouldRemoveCMakeCache):
- 9:45 AM Changeset in webkit [202094] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, follow up patch for r202092
https://bugs.webkit.org/show_bug.cgi?id=158661
During checking Windows port on EWS, accidentally introduce the regression.
- wtf/Platform.h:
- 9:39 AM Changeset in webkit [202093] by
-
- 6 edits1 add in trunk/Source/JavaScriptCore
DFGByteCodeParser should be able to infer a property is unset from the Baseline inline cache.
https://bugs.webkit.org/show_bug.cgi?id=158774
Reviewed by Filip Pizlo.
This patch allows the DFGByteCodeParser to speculatively convert a property access into a
constant if that access was always a miss in the Baseline inline cache. This patch does
not add support for MultiGetByOffset and unset properties. That functionality will come
a future patch.
- bytecode/ComplexGetStatus.cpp:
(JSC::ComplexGetStatus::computeFor):
- bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/GetByIdVariant.h:
(JSC::GetByIdVariant::isPropertyUnset):
- bytecode/PutByIdVariant.h:
(JSC::PutByIdVariant::isPropertyUnset):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::load):
(JSC::DFG::ByteCodeParser::handleGetById):
- tests/stress/undefined-access-then-self-change.js: Added.
(foo):
- 9:30 AM Changeset in webkit [202092] by
-
- 6 edits in trunk/Source
[JSC] Move calling convention flags to WTF
https://bugs.webkit.org/show_bug.cgi?id=158661
Reviewed by Keith Miller.
Source/JavaScriptCore:
Due to some calling convention flags and JIT_OPERATION flags, MathCommon.h includes MacroAssemblerCodeRef and JITOperations.h.
But MacroAssembler and JIT part should not be necessary for the MathCommon component.
As with other calling convention flags like JSC_HOST_CALL, these flags should be in WTF.
- assembler/MacroAssemblerCodeRef.h:
- jit/JITOperations.h:
Add wtf/Platform.h inclusion driven by the Windows port build failure.
- runtime/MathCommon.h:
Source/WTF:
- wtf/Platform.h:
- 8:22 AM Changeset in webkit [202091] by
-
- 69 edits in trunk
Enabling Shadow DOM for all platforms
https://bugs.webkit.org/show_bug.cgi?id=158738
Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-06-15
Reviewed by Ryosuke Niwa.
.:
Removed Shadow DOM from options (enabled by default)
- Source/cmake/OptionsEfl.cmake:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWin.cmake:
- Source/cmake/WebKitFeatures.cmake:
- Source/cmake/tools/vsprops/FeatureDefines.props:
- Source/cmake/tools/vsprops/FeatureDefinesCairo.props:
Source/JavaScriptCore:
Removed Shadow DOM from options (enabled by default)
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
No new tests (no new behavior to be tested).
Removed Shadow DOM from options (enabled by default)
(comprises removal of corresponding preprocessor directives)
- Configurations/FeatureDefines.xcconfig:
- DerivedSources.make:
- bindings/generic/RuntimeEnabledFeatures.h:
- bindings/js/JSDocumentFragmentCustom.cpp:
- bindings/js/JSNodeCustom.cpp:
- css/CSSGrammar.y.in:
- css/CSSParser.cpp:
- css/CSSParserValues.cpp:
- css/CSSParserValues.h:
- css/CSSSelector.cpp:
- css/CSSSelector.h:
- css/ElementRuleCollector.cpp:
- css/ElementRuleCollector.h:
- css/RuleSet.cpp:
- css/RuleSet.h:
- css/SelectorChecker.cpp:
- css/SelectorChecker.h:
- css/SelectorPseudoClassAndCompatibilityElementMap.in:
- css/StyleResolver.cpp:
- cssjit/SelectorCompiler.cpp:
- dom/ComposedTreeAncestorIterator.h:
- dom/ComposedTreeIterator.cpp:
- dom/ComposedTreeIterator.h:
- dom/ContainerNode.cpp:
- dom/Document.cpp:
- dom/Document.h:
- dom/Element.cpp:
- dom/Element.h:
- dom/Element.idl:
- dom/Event.idl:
- dom/EventPath.cpp:
- dom/Node.cpp:
- dom/Node.h:
- dom/NonDocumentTypeChildNode.idl:
- dom/ShadowRoot.cpp:
- dom/ShadowRoot.h:
- dom/ShadowRoot.idl:
- dom/SlotAssignment.cpp:
- dom/SlotAssignment.h:
- html/HTMLSlotElement.cpp:
- html/HTMLSlotElement.h:
- html/HTMLSlotElement.idl:
- html/HTMLTagNames.in:
- page/FocusController.cpp:
- style/StyleSharingResolver.cpp:
- style/StyleTreeResolver.cpp:
Source/WebKit/mac:
Removed Shadow DOM from options (enabled by default)
- Configurations/FeatureDefines.xcconfig:
- WebView/WebPreferences.mm:
- WebView/WebView.mm:
Source/WebKit/win:
Removed Shadow DOM from options (enabled by default)
(comprises removal of corresponding preprocessor directives)
- WebView.cpp:
Source/WebKit2:
Removed Shadow DOM from options (enabled by default)
(comprises removal of corresponding preprocessor directives)
- Configurations/FeatureDefines.xcconfig:
- WebProcess/InjectedBundle/InjectedBundle.cpp:
- WebProcess/WebPage/WebPage.cpp:
Tools:
Removed Shadow DOM from options (enabled by default)
- Scripts/webkitperl/FeatureList.pm:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
- 8:13 AM Changeset in webkit [202090] by
-
- 4 edits in trunk/Source/WebCore
[Cocoa] Add two notify listeners for poking the garbage collector.
<https://webkit.org/b/158783>
Reviewed by Antti Koivisto.
Add two new notify listeners:
- com.apple.WebKit.fullGC
Trigger a full garbage collection in the main WebCore VM immediately.
- com.apple.WebKit.deleteAllCode
Throw away all of JSC's linked and unlinked code, and do a full GC.
These will make it easier to diagnose memory growth issues by having a lever that
eliminates many of the large object graphs without going after behavior-changing things
like the memory cache.
- platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::platformInitialize):
- platform/MemoryPressureHandler.h:
- platform/cocoa/MemoryPressureHandlerCocoa.mm:
(WebCore::MemoryPressureHandler::platformInitialize):
- 7:12 AM Changeset in webkit [202089] by
-
- 18 edits in trunk
Vary:Cookie validation doesn't work in private browsing
https://bugs.webkit.org/show_bug.cgi?id=158616
Source/WebCore:
<rdar://problem/26755067>
Reviewed by Andreas Kling.
There wasn't a way to get cookie based on SessionID from WebCore.
- platform/CookiesStrategy.h:
Add a cookie retrival function that takes SessionID instead of NetworkStorageSession.
- platform/network/CacheValidation.cpp:
(WebCore::headerValueForVary):
Use it.
(WebCore::verifyVaryingRequestHeaders):
Source/WebKit/mac:
<rdar://problem/26755067>
Reviewed by Andreas Kling.
- WebCoreSupport/WebFrameNetworkingContext.h:
(WebFrameNetworkingContext::create):
- WebCoreSupport/WebFrameNetworkingContext.mm:
(privateSession):
(WebFrameNetworkingContext::ensurePrivateBrowsingSession):
Expose the private browsing session.
(WebFrameNetworkingContext::destroyPrivateBrowsingSession):
- WebCoreSupport/WebPlatformStrategies.h:
- WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::cookieRequestHeaderFieldValue):
Implement SessionID version of the function.
(WebPlatformStrategies::getRawCookies):
Source/WebKit2:
<rdar://problem/26755067>
Reviewed by Andreas Kling.
- WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
Implement SessionID version of the function.
- WebProcess/WebCoreSupport/WebPlatformStrategies.h:
LayoutTests:
Reviewed by Darin Adler.
- http/tests/cache/disk-cache/disk-cache-vary-cookie-expected.txt:
- http/tests/cache/disk-cache/disk-cache-vary-cookie.html:
Exapand the existing test to cover memory cache and private browsing.
- 2:55 AM Changeset in webkit [202088] by
-
- 4 edits in trunk
[Win] The test accessibility/selected-text-range-aria-elements.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=158732
Reviewed by Brent Fulgham.
Source/WebCore:
Implement support for getting selected text range.
- accessibility/win/AccessibilityObjectWrapperWin.cpp:
(WebCore::AccessibilityObjectWrapper::accessibilityAttributeValue):
Tools:
Implement selectedTextRange() method.
- DumpRenderTree/win/AccessibilityUIElementWin.cpp:
(AccessibilityUIElement::selectedTextRange):
- 2:36 AM Changeset in webkit [202087] by
-
- 2 edits in trunk/Tools
[Win] MiniBrowser is not DPI aware.
https://bugs.webkit.org/show_bug.cgi?id=158733
Reviewed by Brent Fulgham.
Call Win32 api function to let Windows know that we will scale the contents ourselves.
- MiniBrowser/win/WinMain.cpp:
(wWinMain):
- 2:26 AM Changeset in webkit [202086] by
-
- 2 edits in trunk/Tools
Unreviewed: add new email address to contributors.json.
- Scripts/webkitpy/common/config/contributors.json:
Jun 14, 2016:
- 11:36 PM Changeset in webkit [202085] by
-
- 2 edits in trunk/Source/WebCore
Addressing post-review comments after r201971
https://bugs.webkit.org/show_bug.cgi?id=158450
Unreviewed.
- css/CSSFontFaceSet.cpp:
(WebCore::CSSFontFaceSet::add):
(WebCore::CSSFontFaceSet::remove):
- 10:04 PM Changeset in webkit [202084] by
-
- 2 edits in trunk/Tools
JSBench should use geometric mean
https://bugs.webkit.org/show_bug.cgi?id=158775
Reviewed by Mark Lam.
For some reason JSBench was using algebraic mean. Since each test
is pretty substantially different it should use geometric mean
instead.
- Scripts/run-jsc-benchmarks:
- 9:44 PM Changeset in webkit [202083] by
-
- 6 edits2 adds in trunk
Honor bidi unicode codepoints
https://bugs.webkit.org/show_bug.cgi?id=149170
<rdar://problem/26527378>
Reviewed by Simon Fraser.
Source/WebCore:
BidiResolver doesn't have any concept of isolate Unicode code points, so produces
unexpected output when they are present. Fix by considering such code points as
whitespace in the bidi algorithm. This is a stop-gap measure until we can support
the codepoints fully in our Bidi algorithm.
Test: fast/text/isolate-ignore.html
- platform/graphics/Font.cpp:
(WebCore::createAndFillGlyphPage):
- platform/text/BidiResolver.h:
(WebCore::Subclass>::createBidiRunsForLine):
Source/WTF:
- wtf/unicode/CharacterNames.h:
LayoutTests:
- fast/text/isolate-ignore-expected.html: Added.
- fast/text/isolate-ignore.html: Added.
- 7:52 PM Changeset in webkit [202082] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Rename DataGrid.showColumn to setColumnVisible
https://bugs.webkit.org/show_bug.cgi?id=158764
<rdar://problem/26801448>
Reviewed by Joseph Pecoraro.
- UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid):
Drive-by update to initialize "this._columnChooserEnabled".
(WebInspector.DataGrid.prototype.set identifier):
(WebInspector.DataGrid.prototype.insertColumn):
(WebInspector.DataGrid.prototype._collapseColumnGroupWithCell):
Use new method name.
(WebInspector.DataGrid.prototype._contextMenuInHeader):
Drive-by style update.
- 7:52 PM Changeset in webkit [202081] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Storage tab should allow hiding columns in the cookies grid
https://bugs.webkit.org/show_bug.cgi?id=158767
<rdar://problem/26803568>
Reviewed by Joseph Pecoraro.
- UserInterface/Views/CookieStorageContentView.js:
(WebInspector.CookieStorageContentView.prototype._rebuildTable):
Enable column chooser, exclude Name and Value columns.
- 7:18 PM Changeset in webkit [202080] by
-
- 3 edits in trunk/Source/WebKit2
Avoid constructing a AuthenticationChallenge unnecessarily in the NetworkLoad constructor
https://bugs.webkit.org/show_bug.cgi?id=158746
Reviewed by Darin Adler.
Avoid constructing a AuthenticationChallenge unnecessarily in the
NetworkLoad constructor by using WTF::Optional<> for this data
member.
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
- NetworkProcess/NetworkLoad.h:
- 7:07 PM Changeset in webkit [202079] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Play glyph is pixelated when the page zoom is large
https://bugs.webkit.org/show_bug.cgi?id=158770
<rdar://problem/26092124>
Patch by Antoine Quint <Antoine Quint> on 2016-06-14
Reviewed by Dean Jackson.
Use the same technique that we use to scale the video controls by using a combination
of CSS "zoom" and "transform" properties to have the video play glyph scaled at its
native size regardless of page zoom.
- Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.set pageScaleFactor):
- 6:45 PM Changeset in webkit [202078] by
-
- 2 edits in trunk/Tools
Debug crash logs are not fully symbolicated on Yosemite
https://bugs.webkit.org/show_bug.cgi?id=158760
Reviewed by Darin Adler.
- BuildSlaveSupport/build.webkit.org-config/master.cfg: Don't enable dSYM generation
for debug builds on Yosemite.
- 6:31 PM Changeset in webkit [202077] by
-
- 2 edits in trunk/Source/WebKit2
Add missing WTFMove() in NetworkResourceLoader::didReceiveResponse()
https://bugs.webkit.org/show_bug.cgi?id=158745
Reviewed by Darin Adler.
Add missing WTFMove() in NetworkResourceLoader::didReceiveResponse()
to avoid copying the ResourceResponse.
- NetworkProcess/NetworkResourceLoader.cpp:
- 6:25 PM Changeset in webkit [202076] by
-
- 5 edits in trunk/Source/WebCore
Regression(r201534): Compile time greatly regressed
https://bugs.webkit.org/show_bug.cgi?id=158765
<rdar://problem/26587342>
Reviewed by Darin Adler.
Compile time greatly regressed by r201534 due to Document.h now including
TextAutoSizing.h. Move the TextAutoSizingTraits back to Document.h to
restore pre-r201534 behavior.
- WebCore.xcodeproj/project.pbxproj:
- dom/Document.cpp:
(WebCore::TextAutoSizingTraits::constructDeletedValue):
(WebCore::TextAutoSizingTraits::isDeletedValue):
- dom/Document.h:
- rendering/TextAutoSizing.h:
(WebCore::TextAutoSizingTraits::constructDeletedValue): Deleted.
(WebCore::TextAutoSizingTraits::isDeletedValue): Deleted.
- 6:03 PM Changeset in webkit [202075] by
-
- 2 edits in trunk/Source/WebCore
Inline media controls cut off PiP and fullscreen buttons on cnn.com
https://bugs.webkit.org/show_bug.cgi?id=158766
<rdar://problem/24175161>
Patch by Antoine Quint <Antoine Quint> on 2016-06-14
Reviewed by Dean Jackson.
The display of the picture-in-picture and fullscreen buttons are dependent on the availability
of video tracks through a call to hasVideo(). We need to ensure that the display properties of
both those buttons are updated when the number of video tracks has changed since the controls
may be populated prior to the availability of video tracks.
- Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.updateHasVideo):
- 5:45 PM Changeset in webkit [202074] by
-
- 5 edits in trunk
The parser doesn't properly parse "super" when default parameter is an
arrow function.
https://bugs.webkit.org/show_bug.cgi?id=157872.
Patch by Caio Lima <Caio Lima> on 2016-06-14
Reviewed by Saam Barati.
The "super" member or "super()" could not be used when default parameter is an
arrow function, resuling in sytax error. It happened because the
"closestOrdinaryFunctionScope" was not being initialized properly
before "parseFunctionParameters" step and the condition
"functionSuperBinding == SuperBinding::NotNeeded" or
"functionConstructorKind != ConstructorKind::Derived" on
"Parser<LexerType>::parseMemberExpression" step were being true
resulting in SyntaxError.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseFunctionInfo): setting
"functionScope->setExpectedSuperBinding(expectedSuperBinding)" and
"functionScope->setConstructorKind(constructorKind)" before
"parseFunctionParameters" step.
- 5:43 PM Changeset in webkit [202073] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Visual Sidebar: Remove "Text -> Content" subsection
https://bugs.webkit.org/show_bug.cgi?id=158758
<rdar://problem/26799628>
Reviewed by Timothy Hatcher.
"content" CSS property only works with pseudo elements ::before and ::after.
It doesn't do anything for regular (non pseudo) elements. Remove it to
reduce UI clutter.
- UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype.initialLayout):
(WebInspector.VisualStyleDetailsPanel.prototype._populateContentSection): Deleted.
- UserInterface/Views/VisualStylePropertyEditor.css:
(.visual-style-property-container > *:first-child:matches(.visual-style-property-value-container)): Deleted.
- 5:42 PM Changeset in webkit [202072] by
-
- 8 edits2 moves in trunk
Web Inspector: Rename Timeline.setAutoCaptureInstruments to Timeline.setInstruments
https://bugs.webkit.org/show_bug.cgi?id=158762
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-14
Reviewed by Timothy Hatcher.
Source/JavaScriptCore:
Rename the protocol methods since the backend may use the instruments
for purposes other then auto-capture, such as programmatic capture
via console.profile.
- inspector/protocol/Timeline.json:
Source/WebCore:
Test: inspector/timeline/setInstruments-errors.html
- inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorTimelineAgent::setInstruments):
(WebCore::InspectorTimelineAgent::mainFrameStartedLoading):
(WebCore::InspectorTimelineAgent::setAutoCaptureInstruments): Deleted.
- inspector/InspectorTimelineAgent.h:
Source/WebInspectorUI:
- UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._updateAutoCaptureInstruments):
(WebInspector.TimelineManager):
LayoutTests:
- inspector/timeline/setInstruments-errors-expected.txt: Renamed from LayoutTests/inspector/timeline/setAutoCaptureInstruments-errors-expected.txt.
- inspector/timeline/setInstruments-errors.html: Renamed from LayoutTests/inspector/timeline/setAutoCaptureInstruments-errors.html.
- 4:38 PM Changeset in webkit [202071] by
-
- 3 edits in trunk/Tools
Tests don't work in iOS Simulator when ASan is enabled
https://bugs.webkit.org/show_bug.cgi?id=158726
Reviewed by David Kilzer.
- Scripts/webkitpy/port/driver.py:
(Driver._setup_environ_for_driver): Added a FIXME.
- Scripts/webkitpy/port/ios.py:
(IOSSimulatorPort.setup_environ_for_server): Don't try to insert a dylib built for
simulator into LayoutTestRelay, which is a macOS tool.
- 4:28 PM Changeset in webkit [202070] by
-
- 2 edits in trunk/Tools
Continuous "Reentrancy avoided" error messages in run-webkit-tests if Simulator quits unexpectedly
https://bugs.webkit.org/show_bug.cgi?id=158756
Reviewed by Alexey Proskuryakov.
- Scripts/webkitpy/xcode/simulator.py:
(Simulator.wait_until_device_is_booted): If checking Simulator boot state fails, verify if
the "simulator device" is still in booted state. Since we ensured that simulator device
was in booted state earlier in this method, this indicates that simulator device has shut down
unexpectedly.
- 3:56 PM Changeset in webkit [202069] by
-
- 2 edits in trunk/Source/JavaScriptCore
Document the native format of JSChar type
<http://webkit.org/b/156137>
Reviewed by Darin Adler.
- API/JSStringRef.h:
(typedef JSChar): Update documentation.
- 3:47 PM Changeset in webkit [202068] by
-
- 6 edits2 adds in trunk
decompose4 return value is unchecked, leading to potentially uninitialized data.
https://bugs.webkit.org/show_bug.cgi?id=158761
<rdar://problem/17526268>
Reviewed by Simon Fraser.
Source/WebCore:
WebCore::decompose4 could return early without initializing data.
I now initialize it, but I also started checking the return
value at all the call sites to make sure everything is sensible.
Test: transforms/undecomposable.html
- platform/graphics/transforms/PerspectiveTransformOperation.cpp:
(WebCore::PerspectiveTransformOperation::blend):
- platform/graphics/transforms/RotateTransformOperation.cpp:
(WebCore::RotateTransformOperation::blend):
- platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::decompose4):
(WebCore::TransformationMatrix::blend4):
- platform/graphics/transforms/TransformationMatrix.h:
LayoutTests:
- transforms/undecomposable-expected.txt: Added.
- transforms/undecomposable.html: Added.
- 3:34 PM Changeset in webkit [202067] by
-
- 6 edits4 adds in trunk
The Array species constructor watchpoints should be created the first time they are needed rather than on creation
https://bugs.webkit.org/show_bug.cgi?id=158754
Reviewed by Benjamin Poulain.
Source/JavaScriptCore:
We use adaptive watchpoints for some Array prototype functions to
ensure that the user has not overridden the value of the
Array.prototype.constructor or Array[Symbol.species]. This patch
changes when the Array species constructor watchpoints are
initialized. Before, those watchpoints would be created when the
global object is initialized. This had the advantage that it did
not require validating the constructor and Symbol.species
properties. On the other hand, it also meant that if the user were
to reconfigure properties Array.prototype, which would cause the
structure of the property to become an uncachable dictionary,
prior to running code that the watchpoints would be
invalidated. It turns out that JSBench amazon, for instance, does
reconfigure some of Array.prototype's properties. This patch
initializes the watchpoints the first time they are needed. Since
we only initialize once we also flatten the structure of Array and
Array.prototype.
- runtime/ArrayPrototype.cpp:
(JSC::speciesConstructArray):
(JSC::ArrayPrototype::attemptToInitializeSpeciesWatchpoint):
(JSC::ArrayPrototypeAdaptiveInferredPropertyWatchpoint::handleFire):
(JSC::ArrayPrototype::setConstructor): Deleted.
- runtime/ArrayPrototype.h:
(JSC::ArrayPrototype::speciesWatchpointStatus):
(JSC::ArrayPrototype::didChangeConstructorOrSpeciesProperties): Deleted.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::speciesGetterSetter):
(JSC::JSGlobalObject::arrayConstructor):
- tests/stress/array-symbol-species-lazy-watchpoints.js: Added.
(test):
(arrayEq):
(A):
LayoutTests:
Add new micro-benchmark that tests the impact of lazily
initializing the array species watchpoints.
- js/regress/lazy-array-species-watchpoints-expected.txt: Added.
- js/regress/lazy-array-species-watchpoints.html: Added.
- js/regress/script-tests/lazy-array-species-watchpoints.js: Added.
(test):
- 3:09 PM Changeset in webkit [202066] by
-
- 35 edits2 adds in trunk
Add the unprefixed version of the pseudo element ::placeholder
https://bugs.webkit.org/show_bug.cgi?id=158653
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-14
Reviewed by Dean Jackson.
Source/WebCore:
Test: fast/forms/placeholder-pseudo-element-with-webkit-prefix.html
The pseudo element ::-webkit-input-placeholder is stupidly popular
which forces other engines to support this exact name.
The pseudo-element spec provides a new standard name we can adopt
to drop the prefix: https://drafts.csswg.org/css-pseudo-4/#placeholder-pseudo
This patch does just that, make ::placeholder the standard name to select
the placeholder element in the shadow dom of input elements.
Unlike pseudo classes, we did not have any support for prefixes and aliasing.
I want to keep the absurdly efficient matching we currently use for styling
because style updates are more common than stylesheet updates.
With that constraint in mind, the value of CSSSelector has to be the unprefixed
version for both forms of input.
This leaves us with the problem of displaying the CSSSelector for CSSOM.
To differentiate the legacy form from the standard form, I added
a new type of PseudoElement: PseudoElementWebKitCustomLegacyPrefixed.
When parsing, PseudoElementWebKitCustomLegacyPrefixed let us replace
the original value "-webkit-input-placeholder" by the standard value.
When creating the selectorText for CSSOM, PseudoElementWebKitCustomLegacyPrefixed
let us replace the standard for by the legacy form.
- css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::parsePseudoElementSelector):
- css/CSSSelector.cpp:
(WebCore::CSSSelector::pseudoId):
(WebCore::CSSSelector::selectorText):
- css/CSSSelector.h:
(WebCore::CSSSelector::isCustomPseudoElement):
(WebCore::CSSSelector::isWebKitCustomPseudoElement):
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matchRecursively):
- css/SelectorPseudoElementTypeMap.in:
- css/html.css:
(::placeholder):
(input::placeholder, isindex::placeholder):
(textarea::placeholder):
(::-webkit-input-placeholder): Deleted.
(input::-webkit-input-placeholder, isindex::-webkit-input-placeholder): Deleted.
(textarea::-webkit-input-placeholder): Deleted.
- features.json:
- html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlPlaceholderElement::TextControlPlaceholderElement):
Source/WebInspectorUI:
- UserInterface/Views/FilterBar.css:
(.filter-bar > input[type="search"]::placeholder):
(.filter-bar > input[type="search"]::-webkit-input-placeholder): Deleted.
- UserInterface/Views/FindBanner.css:
(.find-banner.console-find-banner > input[type="search"]::placeholder):
(.find-banner.console-find-banner > input[type="search"]::-webkit-input-placeholder): Deleted.
- UserInterface/Views/GoToLineDialog.css:
(.go-to-line-dialog > div > input::placeholder):
(.go-to-line-dialog > div > input::-webkit-input-placeholder): Deleted.
- UserInterface/Views/OpenResourceDialog.css:
(.open-resource-dialog > .field > input::placeholder):
(.open-resource-dialog > .field > input::-webkit-input-placeholder): Deleted.
- UserInterface/Views/SearchBar.css:
(.search-bar > input[type="search"]::placeholder):
(.search-bar > input[type="search"]::-webkit-input-placeholder): Deleted.
- UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
LayoutTests:
- fast/css/css-selector-text-expected.txt:
- fast/css/css-selector-text.html:
- fast/css/css-set-selector-text-expected.txt:
- fast/css/css-set-selector-text.html:
This covers CSSOM for the prefixed version.
- fast/forms/placeholder-pseudo-element-with-webkit-prefix-expected.html: Added.
- fast/forms/placeholder-pseudo-element-with-webkit-prefix.html: Added.
This verifies both version of the pseudo elements are equivalent.
- fast/css/pseudo-cache-stale-expected.html:
- fast/css/pseudo-cache-stale.html:
- fast/forms/input-placeholder-paint-order-2-expected.html:
- fast/forms/input-placeholder-paint-order-2.html:
- fast/forms/input-placeholder-paint-order.html:
- fast/forms/input-placeholder-text-indent.html:
- fast/forms/input-user-modify.html:
- fast/forms/isindex-placeholder.html:
- fast/forms/placeholder-position.html:
- fast/forms/placeholder-pseudo-style.html:
- fast/forms/textarea-placeholder-pseudo-style.html:
- fast/forms/textarea/textarea-placeholder-paint-order-2-expected.html:
- fast/forms/textarea/textarea-placeholder-paint-order-2.html:
- fast/forms/textarea/textarea-placeholder-paint-order.html:
- 3:02 PM Changeset in webkit [202065] by
-
- 2 edits in trunk/Tools
Follow-up fix #2: REGRESSION (r202020): El Capitan CMake Debug build broken
<https://webkit.org/b/158743>
Unreviewed build fix.
- DumpRenderTree/PlatformMac.cmake: Fix silly typo.
- 2:42 PM Changeset in webkit [202064] by
-
- 13 edits in trunk/Source/WebInspectorUI
Web Inspector: Introduce --navigation-bar-height CSS variable
https://bugs.webkit.org/show_bug.cgi?id=158752
Reviewed by Timothy Hatcher.
Abstract a commonly repeated height value (29px) into a variable.
- UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content.has-filter-bar):
- UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger > :matches(.content, .empty-content-placeholder)):
- UserInterface/Views/FilterBar.css:
(.filter-bar):
- UserInterface/Views/NavigationBar.css:
(.navigation-bar):
- UserInterface/Views/NavigationSidebarPanel.css:
(.sidebar > .panel.navigation > .content):
(.sidebar > .panel.navigation > .overflow-shadow.top):
- UserInterface/Views/NetworkSidebarPanel.css:
(.sidebar > .panel.navigation.network > .title-bar):
- UserInterface/Views/ResourceSidebarPanel.css:
(.sidebar > .panel.navigation.resource > :matches(.content, .empty-content-placeholder)):
- UserInterface/Views/SearchSidebarPanel.css:
(.sidebar > .panel.navigation.search > :matches(.content, .empty-content-placeholder)):
(.sidebar > .panel.navigation.search > .search-bar):
- UserInterface/Views/Sidebar.css:
(.sidebar.has-navigation-bar > .panel):
- UserInterface/Views/StorageSidebarPanel.css:
(.sidebar > .panel.navigation.storage > :matches(.content, .empty-content-placeholder)):
- UserInterface/Views/TimelineRecordingContentView.css:
(.content-view.timeline-recording > .content-browser .recording-progress):
- UserInterface/Views/Variables.css:
(:root):
- 2:28 PM Changeset in webkit [202063] by
-
- 13 edits10 adds in trunk
AX: Form label text should be exposed as static text if it contains only static text
https://bugs.webkit.org/show_bug.cgi?id=158634
Reviewed by Chris Fleizach.
Use AccessibilityLabel to represent HTMLLabelElement to assistive technology.
AccessibilityLabel::containsOnlyStaticText() searches label subtree to evaluate
if all children are static text.
AccessibilityLabel::stringValue() consults containsOnlyStaticText() and returns
textUnderElement() if true.
WebAccessibilityObjectWrapperMac consults containsOnlyStaticText() and substitutes
StaticTextRole for LabelRole if true.
Cache containsOnlyStaticText() in the common case when updating children.
Source/WebCore:
Tests: accessibility/mac/label-element-all-text-string-value.html
accessibility/mac/label-element-with-link-string-value.html
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- accessibility/AXObjectCache.cpp:
(WebCore::createFromRenderer):
- accessibility/AccessibilityAllInOne.cpp:
- accessibility/AccessibilityLabel.cpp: Added.
(WebCore::AccessibilityLabel::AccessibilityLabel):
(WebCore::AccessibilityLabel::~AccessibilityLabel):
(WebCore::AccessibilityLabel::create):
(WebCore::AccessibilityLabel::computeAccessibilityIsIgnored):
(WebCore::AccessibilityLabel::stringValue):
(WebCore::childrenContainOnlyStaticText):
(WebCore::AccessibilityLabel::containsOnlyStaticText):
(WebCore::AccessibilityLabel::updateChildrenIfNecessary):
(WebCore::AccessibilityLabel::clearChildren):
(WebCore::AccessibilityLabel::insertChild):
- accessibility/AccessibilityLabel.h: Added.
- accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isLabel):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper role]):
LayoutTests:
- accessibility/aria-labelledby-overrides-label-expected.txt:
- accessibility/mac/label-element-all-text-string-value-expected.txt: Added.
- accessibility/mac/label-element-all-text-string-value.html: Added.
- accessibility/mac/label-element-with-hidden-control-expected.txt:
- accessibility/mac/label-element-with-hidden-control.html:
- accessibility/mac/label-element-with-link-string-value-expected.txt: Added.
- accessibility/mac/label-element-with-link-string-value.html: Added.
- accessibility/mac/slider-allows-title-ui-element-expected.txt:
- accessibility/mac/slider-allows-title-ui-element.html:
- 2:27 PM Changeset in webkit [202062] by
-
- 2 edits in trunk/Tools
Too much log data generated during layout-tests on iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=158751
Reviewed by Alexey Proskuryakov.
- Scripts/webkitpy/port/ios.py:
(IOSSimulatorPort._quit_ios_simulator): Do not use -v flag.
(IOSSimulatorPort.clean_up_test_run): Ditto.
(IOSSimulatorPort._createSimulatorApp): Ditto.
- 1:35 PM Changeset in webkit [202061] by
-
- 2 edits in trunk/LayoutTests
Increase timeouts for userscripts/window-onerror-for-isolated-world-3.html to fix flakiness.
https://bugs.webkit.org/show_bug.cgi?id=158750
Reviewed by Joseph Pecoraro.
- userscripts/window-onerror-for-isolated-world-3.html:
- 1:17 PM Changeset in webkit [202060] by
-
- 2 edits in trunk/Tools
Follow-up fix: REGRESSION (r202020): El Capitan CMake Debug build broken
<https://webkit.org/b/158743>
Unreviewed build fix.
The fix in r202056 clobbered DumpRenderTree_SOURCES and
TestNetscapePlugin_SOURCES from DumpRenderTree/CMakeLists.txt,
so the build failure is now that we're not building the common
sources.
Fix that by saving the common sources (which are all C++ source
files) into *_Cpp_SOURCES lists first, then setting the compiler
flags, then creating the final *_SOURCES lists.
- DumpRenderTree/PlatformMac.cmake: Add
${TestNetscapePlugin_Cpp_SOURCES} to list that needs
"-std=c++14" compiler switch.
(TestNetscapePlugin_Cpp_SOURCES): Add new list for C++ source
files for TestNetscapePlugin. Seeded with
${TestNetscapePlugin_SOURCES} from CMakeLists.txt.
(TestNetscapePlugin_SOURCES): Add
${TestNetscapePlugin_Cpp_SOURCES} to the list of files.
(DumpRenderTree_Cpp_SOURCES): Seed list for C++ source files
with ${DumpRenderTree_SOURCES} from CMakeLists.txt.
(DumpRenderTree_SOURCES): Reformat and sort source lists.
- 1:15 PM Changeset in webkit [202059] by
-
- 6 edits2 deletes in trunk
Unreviewed, rolling out r202057.
https://bugs.webkit.org/show_bug.cgi?id=158749
This change broke the Windows build. (Requested by ryanhaddad
on #webkit).
Reverted changeset:
"Honor bidi unicode codepoints"
https://bugs.webkit.org/show_bug.cgi?id=149170
http://trac.webkit.org/changeset/202057
Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-14
- 12:01 PM Changeset in webkit [202058] by
-
- 2 edits in trunk/Source/JavaScriptCore
REGRESSION(202002-202014): 845 32-bit JSC Stress Test failures
https://bugs.webkit.org/show_bug.cgi?id=158737
Reviewed by Filip Pizlo.
When the this child and arguments child for the varargs nodes was switched I missed one
case in the 32-bit build.
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
- 11:59 AM Changeset in webkit [202057] by
-
- 6 edits2 adds in trunk
Honor bidi unicode codepoints
https://bugs.webkit.org/show_bug.cgi?id=149170
<rdar://problem/26527378>
Reviewed by Simon Fraser.
Source/WebCore:
BidiResolver doesn't have any concept of isolate Unicode code points, so produces
unexpected output when they are present. Fix by considering such code points as
whitespace in the bidi algorithm. This is a stop-gap measure until we can support
the codepoints fully in our Bidi algorithm.
Test: fast/text/isolate-ignore.html
- platform/graphics/Font.cpp:
(WebCore::createAndFillGlyphPage):
- platform/text/BidiResolver.h:
(WebCore::Subclass>::createBidiRunsForLine):
Source/WTF:
- wtf/unicode/CharacterNames.h:
LayoutTests:
- fast/text/isolate-ignore-expected.html: Added.
- fast/text/isolate-ignore.html: Added.
- 11:51 AM Changeset in webkit [202056] by
-
- 2 edits in trunk/Tools
REGRESSION (r202020): El Capitan CMake Debug build broken
<https://webkit.org/b/158743>
Reviewed by Alex Christensen.
The bug was that pure C++ source files (and Objective-C source
files) were being compiled as Objective-C++ source files. This
is obviously incorrect, so the fix was to split out the list of
source files by language, then define compiler switches based on
each file type.
- DumpRenderTree/PlatformMac.cmake: Replace add_definitions()
with separate foreach loops that set compiler flags based on
each source file's type.
(TestNetscapePlugin_ObjCpp_SOURCES): Rename from
TestNetscapePlugin_SOURCES.
(TestNetscapePlugin_SOURCES): Create based on
${TestNetscapePlugin_ObjCpp_SOURCES}.
(DumpRenderTree_ObjC_SOURCES): Split from DumpRenderTree_SOURCES.
(DumpRenderTree_Cpp_SOURCES): Ditto.
(DumpRenderTree_ObjCpp_SOURCES): Ditto.
(DumpRenderTree_SOURCES): Create from above three lists.
- 11:42 AM Changeset in webkit [202055] by
-
- 2 edits in trunk/Source/WebInspectorUI
Follow up to: Web Inspector: Call Trees view should have a 'Top Functions'-like mode
https://bugs.webkit.org/show_bug.cgi?id=158555
<rdar://problem/26712544>
Unreviewed follow up patch.
- Move a long if-else sequence to a switch statement.
- Fix a copy-paste typo in a Symbol(.) enum.
- UserInterface/Models/CallingContextTree.js:
(WebInspector.CallingContextTree.prototype.updateTreeWithStackTrace):
- 11:37 AM Changeset in webkit [202054] by
-
- 8 edits in trunk/Source/WebKit2
Reduce copying of NetworkLoadParameters
https://bugs.webkit.org/show_bug.cgi?id=158744
Reviewed by Alex Christensen.
Reduce copying of NetworkLoadParameters by moving it around instead.
- NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::startDownload):
- NetworkProcess/Downloads/PendingDownload.cpp:
(WebKit::PendingDownload::PendingDownload):
- NetworkProcess/Downloads/PendingDownload.h:
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::NetworkLoad):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::startNetworkLoad):
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
- 11:09 AM Changeset in webkit [202053] by
-
- 2 edits in trunk/LayoutTests
Removing duplicated TestExpectation and sorting others alphabetically
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 11:03 AM Changeset in webkit [202052] by
-
- 2 edits in trunk/LayoutTests
Marking inspector/debugger/break-in-constructor-before-super.html as flaky on mac debug.
https://bugs.webkit.org/show_bug.cgi?id=158742
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 10:55 AM Changeset in webkit [202051] by
-
- 3 edits in trunk/LayoutTests
Moving flaky expectation for inspector/heap/garbageCollected.html from mac-wk1 to mac
https://bugs.webkit.org/show_bug.cgi?id=153039
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- 9:54 AM Changeset in webkit [202050] by
-
- 4 edits in trunk/Source/WebCore
Unreviewed, rolling out r200455.
https://bugs.webkit.org/show_bug.cgi?id=158740
hangs twitter/facebook (Requested by mcatanzaro on #webkit).
Reverted changeset:
"[GStreamer] Adaptive streaming issues"
https://bugs.webkit.org/show_bug.cgi?id=144040
http://trac.webkit.org/changeset/200455
- 9:46 AM Changeset in webkit [202049] by
-
- 4 edits in trunk
WebRTC: RTCPeerConnection::addTrack() should throw InvalidAccessError instead of InvalidModificationError.
https://bugs.webkit.org/show_bug.cgi?id=158735
Reviewed by Eric Carlson.
Source/WebCore:
Throw InvalidAccessError instead of InvalidModificationError when track already exists in connection's
set of senders as per specification (https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtrack).
Updated existing test results: fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::addTrack):
LayoutTests:
Check that an InvalidAccessError exception is thrown when the track already exists in set of senders.
- fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt:
- 9:41 AM Changeset in webkit [202048] by
-
- 8 edits2 adds in trunk
WebRTC: Imlement MediaEndpointPeerConnection::addIceCandidate()
https://bugs.webkit.org/show_bug.cgi?id=158690
Reviewed by Eric Carlson.
Source/WebCore:
Implement MediaEndpointPeerConnection::addIceCandidate() that is the MediaEndpoint
implementation of RTCPeerConnection.addIceCandidate() [1].
[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#dom-peerconnection-addicecandidate
Test: fast/mediastream/RTCPeerConnection-addIceCandidate.html
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::addIceCandidate):
(WebCore::MediaEndpointPeerConnection::addIceCandidateTask):
Implemented.
- Modules/mediastream/MediaEndpointPeerConnection.h:
- platform/mediastream/MediaEndpoint.h:
Use mid instead of mdescIndex to identify the target media description in the backend.
- platform/mock/MockMediaEndpoint.cpp:
Update mock method signature accordingly.
(WebCore::MockMediaEndpoint::addRemoteCandidate):
- platform/mock/MockMediaEndpoint.h:
LayoutTests:
Add test for RTCPeerConnection.addIceCandidate() that verifies:
- Candidate line parsing
- That a underlying media description can be identified using either sdpMid or sdpMLineIndex
- That sdpMid takes precedence over sdpMLineIndex
- fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt: Added.
- fast/mediastream/RTCPeerConnection-addIceCandidate.html: Added.
- platform/mac/TestExpectations:
The mac port is not building with WEB_RTC yet.
- 9:40 AM Changeset in webkit [202047] by
-
- 2 edits in trunk/Tools
<rdar://problem/26685782>
Teach the copy-webkitlibraries-to-product-directory script about WebKitSystemInterfaceOSX10.12
Rubber-stamped by Jessie Berlin.
- Scripts/copy-webkitlibraries-to-product-directory:
- 9:32 AM Changeset in webkit [202046] by
-
- 2 edits in trunk/Tools
Activate CMake export compile commands option
https://bugs.webkit.org/show_bug.cgi?id=158734
Reviewed by Alex Christensen.
- Scripts/webkitdirs.pm:
(generateBuildSystemFromCMakeProject): Activating this option for all CMake builds.
This allows using ymcd for WebKit hacking.
- 9:32 AM Changeset in webkit [202045] by
-
- 5 edits1 add in trunk/WebKitLibraries
Update existing WebKitSystemInterface Libraries.
Add macOS Sierra WebKitSystemInterface.
Rubber-stamped by Alexey Proskuryakov.
- libWebKitSystemInterfaceElCapitan.a:
- libWebKitSystemInterfaceIOSDevice9.2.a:
- libWebKitSystemInterfaceIOSSimulator9.2.a:
- libWebKitSystemInterfaceOSX10.12.a: Added.
- libWebKitSystemInterfaceYosemite.a:
- 9:07 AM Changeset in webkit [202044] by
-
- 3 edits in trunk/Source/WebCore
Make RenderBlock::insertInto/RemoveFromTrackedRendererMaps functions static.
https://bugs.webkit.org/show_bug.cgi?id=158722
Reviewed by Simon Fraser.
These functions manipulate static tracker hashmaps. They don't need to be on RenderBlock.
This is also in preparation for decoupling positioned descendant tracking from descendent percentage height handling.
(gPositionedDescendantsMap and gPercentHeightDescendantsMap)
No change in functionality.
- rendering/RenderBlock.cpp:
(WebCore::insertIntoTrackedRendererMaps):
(WebCore::removeFromTrackedRendererMaps):
(WebCore::removeBlockFromDescendantAndContainerMaps):
(WebCore::RenderBlock::insertPositionedObject):
(WebCore::RenderBlock::addPercentHeightDescendant):
(WebCore::RenderBlock::insertIntoTrackedRendererMaps): Deleted.
(WebCore::RenderBlock::removeFromTrackedRendererMaps): Deleted.
- rendering/RenderBlock.h:
- 8:13 AM Changeset in webkit [202043] by
-
- 4 edits2 adds in trunk
WebRTC: Add media setup test where media is set up in one direction at a time
https://bugs.webkit.org/show_bug.cgi?id=158691
Reviewed by Eric Carlson.
Source/WebCore:
Add test for setting up media in one direction at a time. This requires a change in sdp.js
to allow an SDP that doesn't contain a stream id or track id (representing
a track being sent). In this test, the first answer doesn't contain any sending media.
Test: fast/mediastream/RTCPeerConnection-media-setup-two-dialogs.html
- Modules/mediastream/sdp.js:
LayoutTests:
Test setting up media in one direction at a time. This is achieved by first negotiating
media in one direction. In a second step, an updated offer is sent to add bi-directional
media.
- fast/mediastream/RTCPeerConnection-media-setup-two-dialogs-expected.txt: Added.
- fast/mediastream/RTCPeerConnection-media-setup-two-dialogs.html: Added.
- platform/mac/TestExpectations:
The mac port is not building with WEB_RTC yet.
- 7:31 AM Changeset in webkit [202042] by
-
- 2 edits in trunk/Source/WebCore
[Cocoa] Avoid extra copy of headers dictionary in ResourceResponse::platformLazyInit()
https://bugs.webkit.org/show_bug.cgi?id=158717
Reviewed by Alex Christensen.
Avoid extra copy of headers dictionary in ResourceResponse::platformLazyInit() by
calling CFHTTPMessageCopyAllHeaderFields() instead of [NSURLResponse allHeaderFields].
CFHTTPMessageCopyAllHeaderFields() creates only 1 copy while
[NSURLResponse allHeaderFields] creates 2 (see <rdar://problem/26778863>).
- platform/network/cocoa/ResourceResponseCocoa.mm:
(WebCore::addToHTTPHeaderMap):
(WebCore::ResourceResponse::platformLazyInit):
- 6:10 AM Changeset in webkit [202041] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION (r151608): Leak of QTMovieLayer or AVPlayerLayer in -[WebVideoFullscreenController setVideoElement:]
<https://webkit.org/b/158729>
Reviewed by Eric Carlson.
- platform/mac/WebVideoFullscreenController.mm:
(-[WebVideoFullscreenController setVideoElement:]): Use
RetainPtr<> to prevent leaks.
- platform/mac/WebVideoFullscreenHUDWindowController.mm:
Drive-by fix to remove unused <wtf/RetainPtr.h> import.
- 3:00 AM WebKitGTK/2.12.x edited by
- (diff)
- 2:58 AM Changeset in webkit [202040] by
-
- 6 edits in trunk/Source/WebKit2
[ThreadedCompositor] Opening the inspector in a window causes a crash.
https://bugs.webkit.org/show_bug.cgi?id=154444
Reviewed by Žan Doberšek.
The threaded compositor doesn't handle the case of changing or removing the native surface handle. When the web
view is reparented, the current native surface handle is destroyed when the view is removed from the parent, and
a new one is created when added to the new parent. We need to handle this case in the threaded compositor.
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::CompositingRunLoop::stopUpdateTimer): Allow users to stop the update timer.
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing): Use performTaskSync because this is called
from a synchronous IPC message and right after it returns, the current native surface is destroyed by the UI
process. So we need to ensure we finish all pending operations for the current native surface in the compositing
thread before it's destroyed. Then we enable or disable the scene depending on whether the native surface has
been created or destroyed and destroy the current context in case the new handle is 0.
(WebKit::ThreadedCompositor::tryEnsureGLContext): Just renamed to make it clear that it can fail.
(WebKit::ThreadedCompositor::glContext):
(WebKit::ThreadedCompositor::renderLayerTree): Return early if scene is not active.
- WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::setNativeSurfaceHandleForCompositing): Schedule a new layer flush
after the native surface handle changed.
- 1:08 AM Changeset in webkit [202039] by
-
- 3 edits in trunk/Source/WebCore
The vector of mediastreams should be passed via a reference to RTCPeerConnection::addTrack()
https://bugs.webkit.org/show_bug.cgi?id=158701
Pass vector of mediastreams by reference.
Reviewed by Youenn Fablet.
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::addTrack):
- Modules/mediastream/RTCPeerConnection.h:
- 12:52 AM Changeset in webkit [202038] by
-
- 5 edits in trunk/Source/WebKit2
[Threaded Compositor] Modernize and simplify threaded compositor code
https://bugs.webkit.org/show_bug.cgi?id=158615
Reviewed by Žan Doberšek.
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::CompositingRunLoop::performTask): Use NoncopyableFunction.
(WebKit::CompositingRunLoop::performTaskSync): Ditto.
(WebKit::CompositingRunLoop::startUpdateTimer): Just renamed to start instead of set.
(WebKit::CompositingRunLoop::run): Expose run/stop methods instead of the internal RunLoop object.
(WebKit::CompositingRunLoop::stop): Also stop the update timer instead of relying on the caller to do it.
(WebKit::CompositingRunLoop::setUpdateTimer): Deleted.
(WebKit::CompositingRunLoop::stopUpdateTimer): Deleted.
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing): Protects this directly in lambda capture.
(WebKit::ThreadedCompositor::setDeviceScaleFactor): Ditto.
(WebKit::ThreadedCompositor::didChangeViewportSize): Ditto.
(WebKit::ThreadedCompositor::didChangeViewportAttribute): Ditto.
(WebKit::ThreadedCompositor::didChangeContentsSize): Ditto.
(WebKit::ThreadedCompositor::scrollTo): Ditto.
(WebKit::ThreadedCompositor::scrollBy): Ditto.
(WebKit::ThreadedCompositor::updateViewport): Use startUpdateTimer().
(WebKit::ThreadedCompositor::scheduleDisplayImmediately): Ditto.
(WebKit::ThreadedCompositor::didChangeVisibleRect): Improve lambda captures.
(WebKit::ThreadedCompositor::renderLayerTree): Use m_viewportController directly.
(WebKit::ThreadedCompositor::createCompositingThread): Use createThread() version that receives a function.
(WebKit::ThreadedCompositor::runCompositingThread): Use run method and don't stop the update timer when the run
loop finishes.
(WebKit::ThreadedCompositor::terminateCompositingThread): Use stop method.
(WebKit::ThreadedCompositor::ThreadedCompositor): Deleted.
(WebKit::ThreadedCompositor::compositingThreadEntry): Deleted.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
(WebKit::ThreadedCompositor::viewportController): Deleted.
- 12:48 AM Changeset in webkit [202037] by
-
- 4 edits in trunk/Source/WebKit2
[Threaded Compositor] Flickering and rendering artifacts when resizing the web view
https://bugs.webkit.org/show_bug.cgi?id=154070
Reviewed by Žan Doberšek.
Resizing the web view is expected to be a sync operation, the UI process creates a new backing store state ID,
sends UpdateBackingStoreState message with the flag RespondImmediately to the web process and waits up to 500ms
for the reply (DidUpdateBackingStoreState message). When using the threaded compositor, we schedule a task in
the compositing thread to update the viewport size, and return immediately, so that we reply to the UI process
before the compositing thread has actually updated its size. There's a moment in which sizes are out of sync
causing the flickering and rendering artifacts, the UI process continues rendering at the new size, while the
web process is still rendering at the previous size. We can prevent this from happening just by making the
resize task synchronous in the threaded compositor.
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::CompositingRunLoop::performTaskSync): Add sync version of performTask().
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::didChangeViewportSize): Use performTaskSync().
- 12:43 AM Changeset in webkit [202036] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed. Fix Soup downloads after r201943.
This is a follow up of r201943. The DownloadClient used in DownloadSoup was not updated to the new API of the
ResourceHandleClient because it was not using override on the virtual methods, so it was unnoticed. That broke
the downloads soup implementation, because didReceiveResponse is no longer used in the DownloadClient. This
patch updates the DownloadClient to the new ResourceHandleClient API adding also override to all the virtual
methods to prevent this from happening in the future.
- NetworkProcess/Downloads/soup/DownloadSoup.cpp:
(WebKit::Download::start):
(WebKit::Download::startWithHandle):
(WebKit::DownloadClient::DownloadClient):
(WebKit::DownloadClient::downloadFailed):
(WebKit::DownloadClient::didReceiveResponse):
(WebKit::DownloadClient::didReceiveData):
(WebKit::DownloadClient::didFinishLoading):
(WebKit::DownloadClient::didFail):
(WebKit::DownloadClient::wasBlocked): Deleted.
(WebKit::DownloadClient::cannotShowURL): Deleted.
(WebKit::DownloadClient::cancel):
(WebKit::DownloadClient::handleResponse):
- 12:35 AM Changeset in webkit [202035] by
-
- 2 edits in trunk/Source/WebCore
Crash inside firstPositionInNode in checkLoadCompleteForThisFrame
https://bugs.webkit.org/show_bug.cgi?id=158724
Reviewed by Alex Christensen.
Added null checks for document and document element since they could be nullptr here.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
- 12:10 AM Changeset in webkit [202034] by
-
- 2 edits in trunk/Tools
Modernize DumpRenderTreeMac.h
<https://webkit.org/b/158721>
Reviewed by Andy Estes.
- DumpRenderTree/mac/DumpRenderTreeMac.h:
- Update copyright.
- Update license.
- Use #pragma once.
- Use OBJC_CLASS macro.
Jun 13, 2016:
- 11:57 PM Changeset in webkit [202033] by
-
- 3 edits in trunk/Source/JavaScriptCore
setUpStaticFunctionSlot does not handle Builtin|Accessor properties
https://bugs.webkit.org/show_bug.cgi?id=158637
Reviewed by Geoff Garen.
setUpStaticFunctionSlot contains a duplicate copy of the body of the function reifyStaticProperty
- however it is missing handling for Accessor type under Builtin functions.
Fix the bug by de-duplicating - setUpStaticFunctionSlot should just call reifyStaticProperty.
- runtime/Lookup.cpp:
(JSC::setUpStaticFunctionSlot):
- should just call reifyStaticProperty.
- runtime/Lookup.h:
(JSC::lookupPut):
(JSC::reifyStaticProperty):
- changed reifyStaticProperty to take PropertyName.
- 11:36 PM Changeset in webkit [202032] by
-
- 2 edits in trunk/Source/WebCore
Remove hasStaticPropertyTable (part 3: JSLocation::putDelegate)
https://bugs.webkit.org/show_bug.cgi?id=158431
Unreviewed build fix.
- bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::putDelegate):
- 11:18 PM Changeset in webkit [202031] by
-
- 3 edits in trunk/Source/WebCore
Remove hasStaticPropertyTable (part 4: JSHTMLDocument & JSStorage)
https://bugs.webkit.org/show_bug.cgi?id=158431
Reviewed by Chris Dumez.
All uses of hasStaticPropertyTable flag generated by bindings are wrong.
JSHTMLDocument & JSStorage contain a number of static_asserts claiming that
various methods do not support static properties. These asserts were likely
correct at the time they were added, as JSObject::getOwnPropertySlot and
JSObject::deleteProperty did not support getting / deleting static value.
This is no longer the case, and these asserts are now incorrect.
- bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::JSHTMLDocument::getOwnPropertySlot):
- bindings/js/JSStorageCustom.cpp:
(WebCore::JSStorage::deleteProperty):
(WebCore::JSStorage::deletePropertyByIndex):
(WebCore::JSStorage::putDelegate):
- remove incorrect static_asserts.
- 11:17 PM Changeset in webkit [202030] by
-
- 2 edits in trunk/Source/WebCore
Remove hasStaticPropertyTable (part 3: JSLocation::putDelegate)
https://bugs.webkit.org/show_bug.cgi?id=158431
Reviewed by Geoff Garen.
All uses of hasStaticPropertyTable flag generated by bindings are wrong.
JSLocation::putDelegate checks the static property table redundantly.
In the case of same origin access, if the property is not in the static
table the method will call JSObject::put and return true (indicating the
delegate handled the put). If the property is in the static table, the
method will return false (indicating the the delegate did not handle the
access) - in which case the calling function will call JSObject::put.
Checking for the property in the static table is redundant - same origin
access does not require any special handling, and should just always
return false & let the caller handle the put.
In the case of cross origin access, if the property is not in the static
table we return true (indicating the access was handled, and silently
blocking it). If it is a static property, we check the name, and if the
name is not 'href' we also return true, silently blocking. In the case
that the name is 'href' we'll return false, indicating to the caller
that the access was not handled by the delegate, resulting in it taking
place. The additional check of the static table is redundant, since we
only have special behaviour in the case of 'href'. (Moreover it is
unnecesszarily fragile, since if we made a change such that 'href' was no
longer implemented as a static property with would fail.)
- for same origin, always return false.
- for cross origin, return false for 'href', otherwise return true.
- bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::putDelegate):
- restructure & remove static table check.
- 11:09 PM Changeset in webkit [202029] by
-
- 2 edits in trunk/Source/WebCore
Remove hasStaticPropertyTable (part 2: JSPluginElement)
https://bugs.webkit.org/show_bug.cgi?id=158431
Reviewed by Chris Dumez.
All uses of hasStaticPropertyTable flag generated by bindings are wrong.
The check in pluginElementCustomGetOwnPropertySlot was somewhat dubious in the
first place (for types with static properties it would give precedence to both
static and also property storage properties; for types without static properties
it would check neither - an odd asymetry in the case of values in the storage
array, and was depending on an implementation detail that could change).
This is all now redundant anyway. None of these types have static properties.
All properties are now corretcly on the prototype (which is handled appropriately
below). This is just dead code.
- bindings/js/JSPluginElementFunctions.h:
(WebCore::pluginElementCustomGetOwnPropertySlot):
- remove dead code.
- 11:08 PM Changeset in webkit [202028] by
-
- 2 edits in trunk/Source/WebCore
Remove hasStaticPropertyTable (part 1: DOM bindings)
https://bugs.webkit.org/show_bug.cgi?id=158431
Reviewed by Chris Dumez.
All uses of hasStaticPropertyTable flag generated by bindings are wrong.
- bindings/js/JSDOMBinding.h:
(WebCore::getStaticValueSlotEntryWithoutCaching): Deleted.
(WebCore::getStaticValueSlotEntryWithoutCaching<JSDOMObject>): Deleted.
- this method is not used anywhere.
- 11:04 PM Changeset in webkit [202027] by
-
- 10 edits2 moves in trunk/Source/JavaScriptCore
JSBoundSlotBaseFunction no longer binds slot base
https://bugs.webkit.org/show_bug.cgi?id=157978
Reviewed by Geoff Garen.
This class is basically currently named after a bug. We should never have
been binding function to slot bases - this was not ever correct behavior.
This was fixed earlier in the year, but there is still some cruft including
the class name to clean up.
- renamed JSBoundSlotBaseFunction -> JSCustomGetterSetterFunction
- removed m_boundSlotBase - don't retain the original slot base (we were not really using it anyway).
- ASSERT customGetterSetter->getter/setter are non-null, rather than checking.
- Store the PropertyName such that we can pass this to the getter (we're currently reperforming the String->Identifier conversion every time).
- Removed JSFunction::lookUpOrCreateNativeExecutable - this is just overhead, and not used consistently.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- runtime/JSBoundSlotBaseFunction.cpp: Removed.
- runtime/JSBoundSlotBaseFunction.h: Removed.
- JSBoundSlotBaseFunction -> JSCustomGetterSetterFunction
- runtime/JSCustomGetterSetterFunction.cpp: Copied from Source/JavaScriptCore/runtime/JSBoundSlotBaseFunction.cpp.
(JSC::JSCustomGetterSetterFunction::customGetterSetterFunctionCall):
- made a static function on JSCustomGetterSetterFunction such that accessor to member properties could be made private. Call variant of callCustomSetter that does not require slotBase, ASSERT getter/setter present, pass stored PropertyName to getter.
(JSC::JSCustomGetterSetterFunction::JSCustomGetterSetterFunction):
- renamed, store propertyName.
(JSC::JSCustomGetterSetterFunction::create):
- use same function name to Executable as is being passed to Function::finishCreation.
(JSC::JSCustomGetterSetterFunction::visitChildren):
(JSC::JSCustomGetterSetterFunction::finishCreation):
- removed m_boundSlotBase.
- runtime/JSCustomGetterSetterFunction.h: Copied from Source/JavaScriptCore/runtime/JSBoundSlotBaseFunction.h.
(JSC::JSCustomGetterSetterFunction::customGetterSetter):
(JSC::JSCustomGetterSetterFunction::isSetter):
- made private.
(JSC::JSCustomGetterSetterFunction::propertyName):
- new accessor.
(JSC::JSBoundSlotBaseFunction::boundSlotBase): Deleted.
- removed.
- runtime/JSFunction.cpp:
(JSC::JSFunction::create):
(JSC::JSFunction::lookUpOrCreateNativeExecutable): Deleted.
- removed lookUpOrCreateNativeExecutable. This inconsistently used wrapper was providing no value, only bloat.
- runtime/JSFunction.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
- renamed JSBoundSlotBaseFunction -> JSCustomGetterSetterFunction, etc.
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::customGetterSetterFunctionStructure):
(JSC::JSGlobalObject::boundSlotBaseFunctionStructure): Deleted.
- renamed JSBoundSlotBaseFunction -> JSCustomGetterSetterFunction, etc.
- runtime/JSNativeStdFunction.cpp:
(JSC::JSNativeStdFunction::create):
- removed lookUpOrCreateNativeExecutable.
- runtime/JSObject.cpp:
(JSC::getCustomGetterSetterFunctionForGetterSetter):
(JSC::JSObject::getOwnPropertyDescriptor):
(JSC::getBoundSlotBaseFunctionForGetterSetter): Deleted.
- renamed JSBoundSlotBaseFunction -> JSCustomGetterSetterFunction, etc.
- runtime/VM.h:
- renamed JSBoundSlotBaseFunction -> JSCustomGetterSetterFunction, etc.
- 11:04 PM Changeset in webkit [202026] by
-
- 15 edits in trunk
WebRTC: Imlement MediaEndpointPeerConnection::replaceTrack()
https://bugs.webkit.org/show_bug.cgi?id=158688
Reviewed by Eric Carlson.
Source/WebCore:
Implement MediaEndpointPeerConnection::replaceTrack() that is the MediaEndpoint implementation
of RTCRtpSender.replaceTrack() [1].
[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#dom-rtcrtpsender-replacetrack
Updated fast/mediastream/RTCRtpSender-replaceTrack.html
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::replaceTrack):
(WebCore::MediaEndpointPeerConnection::replaceTrackTask):
Implemented.
- Modules/mediastream/MediaEndpointPeerConnection.h:
- Modules/mediastream/PeerConnectionBackend.h:
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::replaceTrack):
- Modules/mediastream/RTCPeerConnection.h:
Move the MediaStreamTrack instance of sending a reference to it. This change is the main
reason many files are touched by this change.
- Modules/mediastream/RTCRtpSender.h:
- Modules/mediastream/RTCRtpSender.idl:
- platform/mediastream/MediaEndpoint.h:
Use mid instead of mdescIndex to identify the media description in the backend.
- platform/mock/MockMediaEndpoint.cpp:
(WebCore::MockMediaEndpoint::replaceSendSource):
- platform/mock/MockMediaEndpoint.h:
LayoutTests:
Update existing test for RTCRtpSender.replaceTrack.
- fast/mediastream/RTCRtpSender-replaceTrack-expected.txt:
- fast/mediastream/RTCRtpSender-replaceTrack.html:
Add test cases where a "not yet negotiated track" is directly replaced. Also check that the
old track id is used in later offers.
- fast/mediastream/resources/promise-utils.js:
(promiseShouldResolve):
Added utility method to test promise expressions that are expected to resolve.
- 9:33 PM Changeset in webkit [202025] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Show Exception Stack in UncaughtExceptionReporter view
https://bugs.webkit.org/show_bug.cgi?id=158657
<rdar://problem/26754441>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-13
Reviewed by Darin Adler.
- UserInterface/Debug/UncaughtExceptionReporter.css:
(.uncaught-exception-sheet li):
Make newlines significant.
- UserInterface/Debug/UncaughtExceptionReporter.js:
(unblockEventHandlers):
(handleError):
(handleLinkClick):
(formattedEntry):
Format the exception and a possible stack with a bit of sanitizing.
- 9:10 PM MathML/Early_2016_Refactoring edited by
- (diff)
- 9:03 PM Changeset in webkit [202024] by
-
- 2 edits in trunk/Source/WebKit2
[Mac] Web Content service with a restricted entitlement may load arbitrary dylibs
https://bugs.webkit.org/show_bug.cgi?id=156668
<rdar://problem/26714558>
Reviewed by Anders Carlsson.
- Configurations/WebContentService.xcconfig: Enable library validation when the Web Content service is given the XPC domain extension entitlement when targeting macOS Sierra or later.
- 8:28 PM Changeset in webkit [202023] by
-
- 81 edits3 copies11 adds in trunk
window.onerror should pass the ErrorEvent's 'error' property as the 5th argument to the event handler
https://bugs.webkit.org/show_bug.cgi?id=55092
<rdar://problem/25731279>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-13
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/html/dom/interfaces-expected.txt:
Source/WebCore:
This includes the actual Error in window.error / ErrorEvent:
https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface
This is useful for scripts to be able to get an error stack
from uncaught exceptions, by checking the error itself.
Tests: fast/events/window-onerror17.html
http/tests/security/cross-origin-script-error-event-redirected.html
http/tests/security/cross-origin-script-error-event.html
http/tests/security/script-crossorigin-error-event-information.html
http/tests/security/script-no-crossorigin-error-event-should-be-sanitized.html
userscripts/window-onerror-for-isolated-world-3.html
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSBindingsAllInOne.cpp:
Add new custom error event file.
- bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
Include the JSC::Exception when reporting exceptions, so the error value is available.
- bindings/js/JSErrorEventCustom.cpp:
(WebCore::JSErrorEvent::error):
Sanitized access to the ErrorEvent's error property to prevent leaking objects
across isolated world boundaries. This is like CustomEvent's data property.
- bindings/js/JSErrorHandler.cpp:
(WebCore::JSErrorHandler::handleEvent):
- bindings/js/JSErrorHandler.h:
Include the error object as the 4th argument to the window.onerror event handler.
- dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::sanitizeScriptError):
(WebCore::ScriptExecutionContext::reportException):
(WebCore::ScriptExecutionContext::dispatchErrorEvent):
- dom/ScriptExecutionContext.h:
Include the error object in the ErrorEvent constructed when dispatching error events.
- dom/ErrorEvent.cpp:
(WebCore::ErrorEvent::ErrorEvent):
(WebCore::ErrorEvent::sanitizedErrorValue):
(WebCore::ErrorEvent::trySerializeError):
- dom/ErrorEvent.h:
- dom/ErrorEvent.idl:
Include an any "error" property on the ErrorEvent, and allow it in initialization.
- bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate):
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
Within the Worker world, the error is included in the event.
When re-dispatching the error on the world object in the world that spawned the
Worker the event does not include an error object. This matches other browsers
right now, but could be improved to have the same cross world serialization
as isolated worlds have with the error data.
- dom/CustomEvent.h:
Remove unimplemented stale method.
LayoutTests:
- platform/wk2/TestExpectations:
Skip new userscript test on WebKit2 like others.
- fast/events/constructors/error-event-constructor-expected.txt:
- fast/events/constructors/error-event-constructor.html:
Test for the new any "error" initialization property.
- fast/events/event-leak-objects-expected.txt:
- fast/events/event-leak-objects.html:
- fast/events/event-properties-gc-expected.txt:
- fast/events/event-properties-gc.html:
Like CustomEvent.details, ErrorEvent.error should not leak
objects across isolated worlds.
- fast/events/window-onerror-exception-in-attr-expected.txt:
- fast/events/window-onerror-exception-in-attr.html:
- fast/events/window-onerror-syntax-error-in-attr-expected.txt:
- fast/events/window-onerror-syntax-error-in-attr.html:
- fast/events/window-onerror1-expected.txt:
- fast/events/window-onerror1.html:
- fast/events/window-onerror10-expected.txt:
- fast/events/window-onerror10.html:
- fast/events/window-onerror11-expected.txt:
- fast/events/window-onerror11.html:
- fast/events/window-onerror12-expected.txt:
- fast/events/window-onerror12.html:
- fast/events/window-onerror13.html:
- fast/events/window-onerror14.html:
- fast/events/window-onerror16.html:
- fast/events/window-onerror17-expected.txt: Added.
- fast/events/window-onerror17.html: Copied from LayoutTests/fast/events/window-onerror12.html.
- fast/events/window-onerror2-expected.txt:
- fast/events/window-onerror2.html:
- fast/events/window-onerror3-expected.txt:
- fast/events/window-onerror3.html:
- fast/events/window-onerror4-expected.txt:
- fast/events/window-onerror4.html:
- fast/events/window-onerror5-expected.txt:
- fast/events/window-onerror5.html:
- fast/events/window-onerror6-expected.txt:
- fast/events/window-onerror6.html:
- fast/events/window-onerror7-expected.txt:
- fast/events/window-onerror7.html:
- fast/events/window-onerror8-expected.txt:
- fast/events/window-onerror8.html:
- fast/events/window-onerror9-expected.txt:
- fast/events/window-onerror9.html:
Include output for the column number and error object where possible.
- fast/files/resources/setup-for-read-common.js:
- fast/files/workers/worker-apply-blob-url-to-xhr.html:
- fast/workers/resources/worker-error-in-handling-script-error.js:
- fast/workers/resources/worker-script-error-bubbled.js:
- fast/workers/resources/worker-script-error-handled.js:
- fast/workers/resources/worker-script-error.js:
- fast/workers/worker-script-error-expected.txt:
Test "onerror" within Workers, and the "error" event on
the Worker from the spawning context.
- http/tests/security/cross-origin-script-error-event-expected.txt: Added.
- http/tests/security/cross-origin-script-error-event-redirected-expected.txt: Added.
- http/tests/security/cross-origin-script-error-event-redirected.html: Added.
- http/tests/security/cross-origin-script-error-event.html: Added.
- http/tests/security/cross-origin-script-window-onerror-expected.txt:
- http/tests/security/cross-origin-script-window-onerror-redirected-expected.txt:
- http/tests/security/cross-origin-script-window-onerror-redirected.html:
- http/tests/security/cross-origin-script-window-onerror.html:
- http/tests/security/script-crossorigin-error-event-information-expected.txt: Added.
- http/tests/security/script-crossorigin-error-event-information.html: Added.
- http/tests/security/script-crossorigin-onerror-information-expected.txt:
- http/tests/security/script-crossorigin-onerror-information.html:
- http/tests/security/script-no-crossorigin-error-event-should-be-sanitized-expected.txt: Added.
- http/tests/security/script-no-crossorigin-error-event-should-be-sanitized.html: Copied from LayoutTests/http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html.
- http/tests/security/script-no-crossorigin-onerror-should-be-sanitized-expected.txt:
- http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html:
- http/tests/security/window-onerror-exception-in-iframe-expected.txt:
- http/tests/security/window-onerror-exception-in-iframe.html:
- http/tests/workers/worker-importScriptsOnError-expected.txt:
- js/dom/exception-line-number-expected.txt:
- js/dom/script-tests/exception-line-number.js:
(window.onerror):
- userscripts/window-onerror-for-isolated-world-1-expected.txt:
- userscripts/window-onerror-for-isolated-world-1.html:
- userscripts/window-onerror-for-isolated-world-2-expected.txt:
- userscripts/window-onerror-for-isolated-world-2.html:
- userscripts/window-onerror-for-isolated-world-3-expected.txt: Added.
- userscripts/window-onerror-for-isolated-world-3.html: Added.
Add an explicit test for error objects crossing isolated world boundaries.
In the Isolated World case, serializable values are cloned, but unserializable
values cause the error object to return to null to avoid leaking across worlds.
- 8:05 PM Changeset in webkit [202022] by
-
- 3 edits2 adds in trunk
SVG elements don't blend correctly into HTML
https://bugs.webkit.org/show_bug.cgi?id=158718
<rdar://problem/26782004>
Reviewed by Antoine Quint.
Source/WebCore:
We were not creating any transparency layers for the root SVG nodes.
This is ok if the SVG is the root document, because it is the backdrop.
However, if it is inline SVG, it needs to apply the operation in
order to composite into the document.
Test: svg/css/mix-blend-mode-with-inline-svg.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::beginTransparencyLayers):
LayoutTests:
- svg/css/mix-blend-mode-with-inline-svg-expected.html: Added.
- svg/css/mix-blend-mode-with-inline-svg.html: Added.
- 7:29 PM Changeset in webkit [202021] by
-
- 2 edits in trunk/Source/JavaScriptCore
The sampling profiler should further protect itself against certain forms of sampling bias that arise due to the sampling interval being in sync with some other system process
https://bugs.webkit.org/show_bug.cgi?id=158678
Reviewed by Benjamin Poulain.
I first became aware of this problem when I read this paper:
http://plv.colorado.edu/papers/mytkowicz-pldi10.pdf
To provide background for this change, I'll quote a paragraph
from section 6.2:
"One statically sound method for collecting random samples is to collect a
sample at every t + r milliseconds, where t is the desired sampling interval
and r is a random number between −t and t. One might think that sampling every
t seconds is enough (i.e., drop the r component) but it is not: specifically,
if a profiler samples every t seconds, the sampling rate would be synchronized
with any program or system activity that occurs at regular time intervals [17].
For example, if the thread scheduler switches between threads every 10ms and our
sampling interval was also 10ms, then we may always take samples immediately after
a thread switch. Because performance is often different immediately after a thread
switch than at other points (e.g., due to cache and TLB warm-up effects) we would
get biased data. The random component, r, guards against such situations."
- runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::timerLoop):
- 7:27 PM Changeset in webkit [202020] by
-
- 3 edits in trunk/Tools
False-positive over-release of WebView in destroyWebViewAndOffscreenWindow() in DumpRenderTree.mm
<https://webkit.org/b/158716>
Reviewed by Andy Estes.
- DumpRenderTree/mac/DumpRenderTree.mm:
(destroyWebViewAndOffscreenWindow): Change this function to take
a WebView, and assert that it's the same as [mainFrame webView].
(dumpRenderTree): Pass 'webView' into
destroyWebViewAndOffscreenWindow().
- DumpRenderTree/mac/DumpRenderTreeMac.h:
(createWebViewAndOffscreenWindow): Add NS_RETURNS_RETAINED since
this function returns a +1 WebView. Declare this method only for
Objective-C[++] source.
- 5:34 PM Changeset in webkit [202019] by
-
- 6 edits in trunk
storage/indexeddb/modern/leaks-1.html leaks the database connection handle.
https://bugs.webkit.org/show_bug.cgi?id=158643
Reviewed by Alex Christensen.
Source/WebCore:
Tested by changes to existing test.
- Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::hasPendingActivity):
- dom/EventTarget.h:
(WebCore::EventTarget::eventTargetData):
(WebCore::EventTarget::hasEventListeners):
LayoutTests:
- storage/indexeddb/modern/leak-1-expected.txt:
- storage/indexeddb/modern/resources/leak-1.js:
- 5:17 PM Changeset in webkit [202018] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION(r201956): Failure to initialize new internal settings produced random test failures in release.
https://bugs.webkit.org/show_bug.cgi?id=158713
rdar://26769957
Reviewed by Simon Fraser.
Failed to initialize the new member variable in both Settings and InternalSettings classes.
- page/Settings.cpp:
(WebCore::Settings::Settings):
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
- 5:11 PM Changeset in webkit [202017] by
-
- 4 edits in trunk/Source/WebCore
Drop HipChat hack introduced in r197548
https://bugs.webkit.org/show_bug.cgi?id=158711
Reviewed by Geoffrey Garen.
Drop HipChat hack introduced in r197548. This hack is no longer needed
as the bug was fixed in HipChat since then:
https://support.atlassian.com/servicedesk/customer/portal/32/HCP-7532
I have confirmed locally that the latest version (4.0.12.665) is able
to connect without the hack.
- bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::putDelegate): Deleted.
- platform/RuntimeApplicationChecks.h:
- platform/RuntimeApplicationChecks.mm:
(WebCore::MacApplication::isHipChat): Deleted.
- 4:52 PM Changeset in webkit [202016] by
-
- 2 edits in trunk/Websites/webkit.org
Minor style updates for figcaptions and post forewords.
- wp-content/themes/webkit/style.css:
(article .foreword):
(figure.aligncenter figcaption):
(figure.aligncenter figcaption::before):
- 4:17 PM Changeset in webkit [202015] by
-
- 3 edits in trunk/Source/JavaScriptCore
DFG Validation fails when performing a concatenation with only a single entry
https://bugs.webkit.org/show_bug.cgi?id=158699
Reviewed by Saam Barati.
Fairly simple short circuiting of a single replacement template string
without any padding to be planted as a simple to string rather than
op_strcat.
- bytecompiler/NodesCodegen.cpp:
(JSC::TemplateLiteralNode::emitBytecode):
- tests/stress/template-literal.js:
(testSingleNode):
- 4:05 PM Changeset in webkit [202014] by
-
- 2 edits in trunk/Source/WebCore
AX: CrashTracer: com.apple.WebKit.WebContent at WebCore::AccessibilityRenderObject::remoteSVGRootElement const + 227
https://bugs.webkit.org/show_bug.cgi?id=158685
Reviewed by David Kilzer.
Crash reports show a null access at a line that tries to dereference a pointer.
I still don't have a way to layout test this, as it seems tied to tear down of the main document.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::remoteSVGRootElement):
- 3:57 PM Changeset in webkit [202013] by
-
- 2 edits in trunk/Source/WebCore
Use two video layer solution only on mac.
https://bugs.webkit.org/show_bug.cgi?id=158705
rdar://problem/26776360
Patch by Jeremy Jones <jeremyj@apple.com> on 2016-06-13
Reviewed by Jer Noble.
Two video layer solution is only useful on the mac to prevent flicker, so don't do it elsewhere.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
- 3:53 PM Changeset in webkit [202012] by
-
- 3 edits in trunk/Websites/webkit.org
Adds support for foreword custom meta and display styles on blog posts.
https://bugs.webkit.org/show_bug.cgi?id=158707.
Reviewed by Timothy Hatcher.
- wp-content/themes/webkit/functions.php:
- wp-content/themes/webkit/style.css:
(article .foreword):
- 3:44 PM Changeset in webkit [202011] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Filter Records not applying to new records
https://bugs.webkit.org/show_bug.cgi?id=158213
<rdar://problem/26543912>
Reviewed by Timothy Hatcher.
This patch makes the following improvements to timeline grid filtering:
- Records are filtered as they are added to the grid.
- Timeline view no longer triggers a filter refresh while the current time changes while recording.
- Filters are refreshed whenever the current timeline view changes.
- UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.hasFilters):
Helper function to check for custom and text filters.
(WebInspector.DataGrid.prototype._applyFiltersToNodeAndDispatchEvent):
Encapsulate node state change and event dispatch, which was previously
done in multiple places.
(WebInspector.DataGrid.prototype.insertChild):
Filter incoming node if needed.
(WebInspector.DataGrid.prototype._updateFilter.createIteratorForNodesToBeFiltered):
(WebInspector.DataGrid.prototype._updateFilter):
(WebInspector.DataGrid.prototype.yieldableTaskWillProcessItem):
Use new convenience functions.
(WebInspector.DataGrid.prototype.hasCustomFilters): Deleted.
RenamedhasFilters.
- UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
Refresh grid filters on view change.
- UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView.prototype.set startTime):
(WebInspector.TimelineView.prototype.set endTime):
Schedule filter change notification when selection bounds changes.
(WebInspector.TimelineView.prototype._timesDidChange):
(WebInspector.TimelineView.prototype._scheduleFilterDidChange):
(WebInspector.TimelineView):
- 3:43 PM Changeset in webkit [202010] by
-
- 7 edits2 adds in trunk/Source/WebInspectorUI
Web Inspector: Call Trees view should have a 'Top Functions'-like mode
https://bugs.webkit.org/show_bug.cgi?id=158555
<rdar://problem/26712544>
Reviewed by Timothy Hatcher.
This patch adds a Top Functions view that is similar to Instruments'
Top Functions view. I really wanted to add this view because I've
been doing a lot of performance debugging and I've exclusively
used the Top Functions view and I want the Inspector to also have
this view. I like to think of it as a more sophisticated version of the bottom-up view.
Top Functions works by treating every frame as a root in the tree.
Top functions view then presents a list of "roots". This is the same
as all other views, which also present a list of roots, but in this case,
every frame is a root. Bottom Up is great for nailing in specific performance
problems in exactly one frame. But Bottom Up doesn't give you good context about where
a specific frame is in the call tree and how frames are related by having
a caller or some path of shared callers. For example, consider this call tree:
(program)
/ \
/ \
(many nodes...)
/
/
(parent)
/ \
/ \
(leaf1) (leaf2)
Suppose that 'leaf1' is super hot, and 'leaf2' is moderately hot.
If we look at this through Bottom Up view, we will see 'leaf1'
is super hot, but it will take more scrolling to see that 'leaf2'
is moderately hot. Lets say that 'parent' is also moderately hot,
but that the majority of its time isn't self time. With Bottom Up view,
there is no good way to see that 'leaf1' and 'leaf2' are both nodes under 'parent'.
With Top Down, you can find this information, but it requires a ton of drilling down into
the tree (i.e, you must expand past the 'many nodes...' I drew above). It's inconvenient to
use Top Down here for indentation alone. Bottom up will tell you that 'leaf1' is super hot,
and that 'leaf2' and 'parent' are moderately hot, but it doesn't show how they're related
in the original tree. It's important to see that 'parent's total time is very high
because it itself is moderately hot, and it has a child node that is super hot, and
another child that's moderately 'hot'. For the sake of this example, let's pretend
that 85% of the program's time is spent inside 'parent'. Seeing this information through
'Top Functions' is easy because this information filters to the top of the list. Specifically,
when using 'Top Functions' sorted by Total Time. Because every node is a root, there will be
a top-level entry for every frame in the program. Specifically, there will be a top-level node
for 'parent' in my above example. Because I've sorted this view by Total Time, I will see '(program)'
first. That's because 100% of execution time is under the '(program)' frame. Then, I might see
a few other nodes that also run the entire time because '(program)' calls them, and they eventually
call into other things that never leave the stack. These will also have time ranges near 100%.
But, only a few nodes after that, I'll see 'parent' in the list because it accounts for 85% of
execution time. Immediately, I will see that it has some self time, and that it has two child
nodes that have self time. This is really helpful.
Let's consider another example where it's not easy in Top Down to get the full picture of 'parent':
(program)
/ | \
(... many nodes...)
/ \
(many nodes...) (many nodes...)
/ \
parent parent
| |
leaf1 leaf2
If we viewed this program in Top Down, we don't get a full picture of 'parent'
because it has its time distributed in two different subsections of the tree.
Specifically, lets say it has 70% of time in the leaf1 path, and 30% of the
time in the leaf2 path. We want a way to see these things together. It's impossible
to do this in Top Down or Bottom Up. But, in Top Functions view, we get the view that
we want to see because we treat 'parent' as a root of the tree. Because we do this,
we will create the following sub tree in the Top Functions view:
parent
/ \
leaf1 leaf2
This happens naturally because when 'parent' is a root, we add all its children
to its subtree.
Constructing this tree is really easy. What we do is take any arbitrary stack
trace of length n, and treat is as n separate stack traces. Specifically, we
perform the following operation for any stack trace S.
S = [A, B, C, D]
(A is the entry frame, and D is the top of the stack).
We will transform this into a list of stack traces S' like so:
S' = A, B, C, D], [B, C, D], [C, D], [D
If we then run the normal top down tree algorithm on this set of stack
traces, all nodes get treated as roots, and voila, we get the Top Functions view.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Controllers/TimelineManager.js:
- UserInterface/Main.html:
- UserInterface/Models/CallingContextTree.js:
- UserInterface/Models/TimelineRecording.js:
- UserInterface/Views/ScriptProfileTimelineView.js:
- UserInterface/Views/TextToggleButtonNavigationItem.css: Added.
- UserInterface/Views/TextToggleButtonNavigationItem.js: Added.
- 3:41 PM Changeset in webkit [202009] by
-
- 7 edits in trunk/Source/WebInspectorUI
Web Inspector: Add ability to show/hide DataGird columns
https://bugs.webkit.org/show_bug.cgi?id=158676
<rdar://problem/26761573>
Reviewed by Timothy Hatcher.
Make it possible to show/hide grid columns using the grid header
context menu. This patch enables the new behavior for most of the
timeline grids.
- UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid):
(WebInspector.DataGrid.prototype.get identifier):
(WebInspector.DataGrid.prototype.set identifier):
An identifier for the grid instance, for managing per-grid settings.
Setting the id causes settings to be created, and their values to be
applied to the grid.
(WebInspector.DataGrid.prototype.get columnChooserEnabled):
(WebInspector.DataGrid.prototype.set columnChooserEnabled):
Enable showing/hiding columns via the grid header.
(WebInspector.DataGrid.prototype.insertColumn):
(WebInspector.DataGrid.prototype.showColumn):
Set column visibility and hidden column setting, then perform layout.
(WebInspector.DataGrid.prototype._collapseColumnGroupWithCell):
(WebInspector.DataGrid.prototype._contextMenuInHeader):
Create column chooser menu items if necessary.
(WebInspector.DataGrid.prototype._showColumn): Deleted.
(WebInspector.DataGrid.prototype._hideColumn): Deleted.
Replaced byshowColumn.
- UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView):
Always show "type" and "name" columns.
- UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView):
- UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView):
- UserInterface/Views/ScriptDetailsTimelineView.js:
(WebInspector.ScriptDetailsTimelineView):
Always show "name" column.
- UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid):
Enable column chooser.
- 3:25 PM Changeset in webkit [202008] by
-
- 2 edits in trunk/Websites/perf.webkit.org
Build fix. Strip out "use strict" everywhere so that the perf dashboard works on the shipping Safari.
- tools/bundle-v3-scripts.py:
(main):
- 3:17 PM Changeset in webkit [202007] by
-
- 3 edits in trunk/Source/JavaScriptCore
FTL::Output methods should be out-of-line whenever possible
https://bugs.webkit.org/show_bug.cgi?id=158704
Reviewed by Benjamin Poulain.
These methods turn into a non-trivial amount of code because of the template-based B3 API.
Inlining them didn't achieve any performance advantages for the FTL, but it did make the
code larger. This outlines most methods in FTL::Output. It makes FTL::LowerDFGToB3 smaller
and it doesn't change performance.
- ftl/FTLOutput.cpp:
(JSC::FTL::Output::appendTo):
(JSC::FTL::Output::framePointer):
(JSC::FTL::Output::lockedStackSlot):
(JSC::FTL::Output::constBool):
(JSC::FTL::Output::constInt32):
(JSC::FTL::Output::constInt64):
(JSC::FTL::Output::constDouble):
(JSC::FTL::Output::phi):
(JSC::FTL::Output::add):
(JSC::FTL::Output::sub):
(JSC::FTL::Output::mul):
(JSC::FTL::Output::div):
(JSC::FTL::Output::chillDiv):
(JSC::FTL::Output::mod):
(JSC::FTL::Output::chillMod):
(JSC::FTL::Output::neg):
(JSC::FTL::Output::doubleAdd):
(JSC::FTL::Output::doubleSub):
(JSC::FTL::Output::doubleMul):
(JSC::FTL::Output::doubleDiv):
(JSC::FTL::Output::doubleMod):
(JSC::FTL::Output::bitAnd):
(JSC::FTL::Output::bitOr):
(JSC::FTL::Output::bitXor):
(JSC::FTL::Output::shl):
(JSC::FTL::Output::aShr):
(JSC::FTL::Output::lShr):
(JSC::FTL::Output::bitNot):
(JSC::FTL::Output::logicalNot):
(JSC::FTL::Output::ctlz32):
(JSC::FTL::Output::doubleAbs):
(JSC::FTL::Output::doubleCeil):
(JSC::FTL::Output::doubleFloor):
(JSC::FTL::Output::doubleTrunc):
(JSC::FTL::Output::doubleSin):
(JSC::FTL::Output::doubleCos):
(JSC::FTL::Output::doublePow):
(JSC::FTL::Output::doublePowi):
(JSC::FTL::Output::doubleSqrt):
(JSC::FTL::Output::doubleLog):
(JSC::FTL::Output::hasSensibleDoubleToInt):
(JSC::FTL::Output::doubleToUInt):
(JSC::FTL::Output::signExt32To64):
(JSC::FTL::Output::zeroExt):
(JSC::FTL::Output::intToDouble):
(JSC::FTL::Output::unsignedToDouble):
(JSC::FTL::Output::castToInt32):
(JSC::FTL::Output::doubleToFloat):
(JSC::FTL::Output::floatToDouble):
(JSC::FTL::Output::load):
(JSC::FTL::Output::load8SignExt32):
(JSC::FTL::Output::baseIndex):
(JSC::FTL::Output::equal):
(JSC::FTL::Output::notEqual):
(JSC::FTL::Output::above):
(JSC::FTL::Output::aboveOrEqual):
(JSC::FTL::Output::below):
(JSC::FTL::Output::belowOrEqual):
(JSC::FTL::Output::greaterThan):
(JSC::FTL::Output::greaterThanOrEqual):
(JSC::FTL::Output::lessThan):
(JSC::FTL::Output::lessThanOrEqual):
(JSC::FTL::Output::doubleEqual):
(JSC::FTL::Output::doubleEqualOrUnordered):
(JSC::FTL::Output::doubleNotEqualOrUnordered):
(JSC::FTL::Output::doubleLessThan):
(JSC::FTL::Output::doubleLessThanOrEqual):
(JSC::FTL::Output::doubleGreaterThan):
(JSC::FTL::Output::doubleGreaterThanOrEqual):
(JSC::FTL::Output::doubleNotEqualAndOrdered):
(JSC::FTL::Output::doubleLessThanOrUnordered):
(JSC::FTL::Output::doubleLessThanOrEqualOrUnordered):
(JSC::FTL::Output::doubleGreaterThanOrUnordered):
(JSC::FTL::Output::doubleGreaterThanOrEqualOrUnordered):
(JSC::FTL::Output::isZero32):
(JSC::FTL::Output::notZero32):
(JSC::FTL::Output::isZero64):
(JSC::FTL::Output::notZero64):
(JSC::FTL::Output::select):
(JSC::FTL::Output::jump):
(JSC::FTL::Output::branch):
(JSC::FTL::Output::check):
(JSC::FTL::Output::ret):
(JSC::FTL::Output::unreachable):
(JSC::FTL::Output::speculate):
(JSC::FTL::Output::speculateAdd):
(JSC::FTL::Output::speculateSub):
(JSC::FTL::Output::speculateMul):
(JSC::FTL::Output::patchpoint):
(JSC::FTL::Output::trap):
(JSC::FTL::Output::anchor):
(JSC::FTL::Output::bitCast):
(JSC::FTL::Output::fround):
- ftl/FTLOutput.h:
(JSC::FTL::Output::setOrigin):
(JSC::FTL::Output::origin):
(JSC::FTL::Output::constIntPtr):
(JSC::FTL::Output::doubleNeg):
(JSC::FTL::Output::zeroExtPtr):
(JSC::FTL::Output::load32NonNegative):
(JSC::FTL::Output::isNull):
(JSC::FTL::Output::notNull):
(JSC::FTL::Output::testIsZeroPtr):
(JSC::FTL::Output::testNonZeroPtr):
(JSC::FTL::Output::call):
(JSC::FTL::Output::operation):
(JSC::FTL::Output::branch):
(JSC::FTL::Output::switchInstruction):
(JSC::FTL::Output::addIncomingToPhi):
(JSC::FTL::Output::framePointer): Deleted.
(JSC::FTL::Output::constBool): Deleted.
(JSC::FTL::Output::constInt32): Deleted.
(JSC::FTL::Output::constInt64): Deleted.
(JSC::FTL::Output::constDouble): Deleted.
(JSC::FTL::Output::phi): Deleted.
(JSC::FTL::Output::add): Deleted.
(JSC::FTL::Output::sub): Deleted.
(JSC::FTL::Output::mul): Deleted.
(JSC::FTL::Output::div): Deleted.
(JSC::FTL::Output::chillDiv): Deleted.
(JSC::FTL::Output::mod): Deleted.
(JSC::FTL::Output::chillMod): Deleted.
(JSC::FTL::Output::doubleAdd): Deleted.
(JSC::FTL::Output::doubleSub): Deleted.
(JSC::FTL::Output::doubleMul): Deleted.
(JSC::FTL::Output::doubleDiv): Deleted.
(JSC::FTL::Output::doubleMod): Deleted.
(JSC::FTL::Output::bitAnd): Deleted.
(JSC::FTL::Output::bitOr): Deleted.
(JSC::FTL::Output::bitXor): Deleted.
(JSC::FTL::Output::shl): Deleted.
(JSC::FTL::Output::aShr): Deleted.
(JSC::FTL::Output::lShr): Deleted.
(JSC::FTL::Output::ctlz32): Deleted.
(JSC::FTL::Output::addWithOverflow32): Deleted.
(JSC::FTL::Output::subWithOverflow32): Deleted.
(JSC::FTL::Output::mulWithOverflow32): Deleted.
(JSC::FTL::Output::addWithOverflow64): Deleted.
(JSC::FTL::Output::subWithOverflow64): Deleted.
(JSC::FTL::Output::mulWithOverflow64): Deleted.
(JSC::FTL::Output::doubleAbs): Deleted.
(JSC::FTL::Output::doubleCeil): Deleted.
(JSC::FTL::Output::doubleFloor): Deleted.
(JSC::FTL::Output::doubleSin): Deleted.
(JSC::FTL::Output::doubleCos): Deleted.
(JSC::FTL::Output::doublePow): Deleted.
(JSC::FTL::Output::doubleSqrt): Deleted.
(JSC::FTL::Output::doubleLog): Deleted.
(JSC::FTL::Output::signExt32To64): Deleted.
(JSC::FTL::Output::zeroExt): Deleted.
(JSC::FTL::Output::intToDouble): Deleted.
(JSC::FTL::Output::castToInt32): Deleted.
(JSC::FTL::Output::doubleToFloat): Deleted.
(JSC::FTL::Output::floatToDouble): Deleted.
(JSC::FTL::Output::equal): Deleted.
(JSC::FTL::Output::notEqual): Deleted.
(JSC::FTL::Output::above): Deleted.
(JSC::FTL::Output::aboveOrEqual): Deleted.
(JSC::FTL::Output::below): Deleted.
(JSC::FTL::Output::belowOrEqual): Deleted.
(JSC::FTL::Output::greaterThan): Deleted.
(JSC::FTL::Output::greaterThanOrEqual): Deleted.
(JSC::FTL::Output::lessThan): Deleted.
(JSC::FTL::Output::lessThanOrEqual): Deleted.
(JSC::FTL::Output::doubleEqual): Deleted.
(JSC::FTL::Output::doubleEqualOrUnordered): Deleted.
(JSC::FTL::Output::doubleNotEqualOrUnordered): Deleted.
(JSC::FTL::Output::doubleLessThan): Deleted.
(JSC::FTL::Output::doubleLessThanOrEqual): Deleted.
(JSC::FTL::Output::doubleGreaterThan): Deleted.
(JSC::FTL::Output::doubleGreaterThanOrEqual): Deleted.
(JSC::FTL::Output::doubleNotEqualAndOrdered): Deleted.
(JSC::FTL::Output::doubleLessThanOrUnordered): Deleted.
(JSC::FTL::Output::doubleLessThanOrEqualOrUnordered): Deleted.
(JSC::FTL::Output::doubleGreaterThanOrUnordered): Deleted.
(JSC::FTL::Output::doubleGreaterThanOrEqualOrUnordered): Deleted.
(JSC::FTL::Output::isZero32): Deleted.
(JSC::FTL::Output::notZero32): Deleted.
(JSC::FTL::Output::isZero64): Deleted.
(JSC::FTL::Output::notZero64): Deleted.
(JSC::FTL::Output::select): Deleted.
(JSC::FTL::Output::extractValue): Deleted.
(JSC::FTL::Output::jump): Deleted.
(JSC::FTL::Output::ret): Deleted.
(JSC::FTL::Output::unreachable): Deleted.
(JSC::FTL::Output::speculate): Deleted.
(JSC::FTL::Output::speculateAdd): Deleted.
(JSC::FTL::Output::speculateSub): Deleted.
(JSC::FTL::Output::speculateMul): Deleted.
(JSC::FTL::Output::patchpoint): Deleted.
(JSC::FTL::Output::trap): Deleted.
(JSC::FTL::Output::anchor): Deleted.
(JSC::FTL::Output::bitCast): Deleted.
(JSC::FTL::Output::fround): Deleted.
- 3:00 PM Changeset in webkit [202006] by
-
- 2 edits in trunk/Source/WebCore
Decrease PiP flicker by not removing window prematurely.
https://bugs.webkit.org/show_bug.cgi?id=158436
<rdar://problem/19052639>
Patch by Jeremy Jones <jeremyj@apple.com> on 2016-06-13
Reviewed by Darin Adler.
UIWindow shouldn't be removed until cleanupFullscreen, so the video layer has a chance
to be reparented in the DOM first.
- platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::didStopPictureInPicture):
- 2:58 PM Changeset in webkit [202005] by
-
- 44 edits4 adds in trunk/Source
Add WebSocketProvider stub
https://bugs.webkit.org/show_bug.cgi?id=158702
Reviewed by Brady Eidson.
Source/WebCore:
No new tests. No change in behavior.
- WebCore.xcodeproj/project.pbxproj:
- dom/DocumentMarkerController.cpp:
- dom/ScriptedAnimationController.cpp:
- html/HTMLMediaElement.cpp:
- html/MediaDocument.cpp:
- html/shadow/MediaControlElements.cpp:
- html/shadow/MediaControls.cpp:
- html/shadow/MediaControls.h:
- html/shadow/MediaControlsApple.cpp:
- inspector/InspectorInstrumentation.cpp:
- inspector/InspectorInstrumentation.h:
- inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::overlayPage):
- loader/EmptyClients.h:
- loader/FrameLoader.cpp:
- loader/FrameLoader.h:
- loader/appcache/ApplicationCacheHost.cpp:
- loader/cache/CachedResource.cpp:
- page/FrameView.cpp:
- page/Page.cpp:
(WebCore::Page::Page):
- page/Page.h:
(WebCore::Page::applicationCacheStorage):
(WebCore::Page::databaseProvider):
(WebCore::Page::socketProvider):
(WebCore::Page::storageNamespaceProvider):
- page/PageConfiguration.cpp:
(WebCore::PageConfiguration::PageConfiguration):
- page/PageConfiguration.h:
- page/ResourceUsageOverlay.cpp:
- page/SocketProvider.h: Added.
(WebCore::SocketProvider::~SocketProvider):
- page/cocoa/ResourceUsageOverlayCocoa.mm:
- rendering/RenderElement.cpp:
- rendering/RenderLayerBacking.cpp:
- style/StyleResolveForDocument.cpp:
- style/StyleTreeResolver.cpp:
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
- testing/MockPageOverlayClient.cpp:
Source/WebKit:
- WebKit.xcodeproj/project.pbxproj:
Source/WebKit/mac:
- Misc/WebSocketProvider.h: Added.
- WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
Source/WebKit/win:
- WebSocketProvider.h: Added.
- WebView.cpp:
(WebView::initWithFrame):
Source/WebKit2:
- WebKit2.xcodeproj/project.pbxproj:
- WebProcess/Network/WebSocketProvider.h: Added.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_shouldDispatchFakeMouseMoveEvents):
Source/WTF:
- wtf/UniqueRef.h:
(WTF::UniqueRef::operator->):
(WTF::UniqueRef::operator T&):
(WTF::UniqueRef::operator const T&):
Added operator T& to avoid unneeded .get() calls.
- 2:55 PM Changeset in webkit [202004] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, Cloop build fix.
- bytecode/BytecodeList.json:
- 2:05 PM Changeset in webkit [202003] by
-
- 32 edits1 add in trunk/Source/JavaScriptCore
Add new builtin opcode tailCallForwardArguments
https://bugs.webkit.org/show_bug.cgi?id=158666
Reviewed by Filip Pizlo.
We should support the ability to have a builtin forward its
arguments to a helper without allocating an arguments object. This
patch adds a new bytecode intrinsic @tailCallForwardArguments that
takes two values. The first is the target of the call and the
second is the new this value. This opcode will tail call to the
passed function without triggering an allocation of an arguments
object for the caller function.
In the LLInt and Baseline this function acts the same way a normal
tail call does. The bytecode will allocate a new stack frame
copying all the arguments of the caller function into the new
frame, along with the new this. Then when the actual call happens
the new frame is copied over the caller frame. While this is not
necessary, it allows the target function to have more arguments
than the caller function via arity fixup.
Once we get to the DFG we reuse existing DFG Nodes for forwarding
arguments, although there were some minor changes. This patch
swaps the meaning of the second and third children for each DFG
varargs node, exchanging the argmuments and this child,
respectively. It also makes the arguments child for each varargs
node, as well as the ForwardVarargs node optional. If the optional
child is missing, then forwarding node assumes that the arguments
for the node's inlineCallFrame should be used instead. Finally,
when inlining the target of an inlined
op_tail_call_forward_arguments we make sure the arguments of the
forwarding function are marked as non-unboxable since this would
normally be done by the caller's create arguments object node,
which does not exist in this case.
- bytecode/BytecodeIntrinsicRegistry.h:
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CallLinkInfo.h:
(JSC::CallLinkInfo::callTypeFor):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::finishCreation):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitCallForwardArgumentsInTailPosition):
(JSC::BytecodeGenerator::emitCallVarargs):
- bytecompiler/BytecodeGenerator.h:
- bytecompiler/NodesCodegen.cpp:
(JSC::BytecodeIntrinsicNode::emit_intrinsic_tailCallForwardArguments):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_tryGetById):
- dfg/DFGArgumentsEliminationPhase.cpp:
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::getPredictionWithoutOSRExit):
(JSC::DFG::ByteCodeParser::handleCall):
(JSC::DFG::ByteCodeParser::handleVarargsCall):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNode.h:
(JSC::DFG::Node::hasArgumentsChild):
(JSC::DFG::Node::argumentsChild):
- dfg/DFGPreciseLocalClobberize.h:
(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileForwardVarargs):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
- dfg/DFGVarargsForwardingPhase.cpp:
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileForwardVarargs):
- interpreter/Interpreter.cpp:
(JSC::sizeFrameForForwardArguments):
(JSC::setupForwardArgumentsFrame):
(JSC::setupForwardArgumentsFrameAndSetThis):
- interpreter/Interpreter.h:
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
- jit/JIT.h:
- jit/JITCall.cpp:
(JSC::JIT::compileSetupVarargsFrame):
(JSC::JIT::compileOpCall):
(JSC::JIT::compileOpCallSlowCase):
(JSC::JIT::emit_op_tail_call_forward_arguments):
(JSC::JIT::emitSlow_op_tail_call_forward_arguments):
- jit/JITCall32_64.cpp:
(JSC::JIT::emitSlow_op_tail_call_forward_arguments):
(JSC::JIT::emit_op_tail_call_forward_arguments):
(JSC::JIT::compileSetupVarargsFrame):
(JSC::JIT::compileOpCall):
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::varargsSetup):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- tests/stress/tailCallForwardArguments.js: Added.
(putFuncToPrivateName.createBuiltin):
(putFuncToPrivateName):
(createTailCallForwardingFuncWith):
(baz):
(baz2):
(baz3):
(let.bodyText):
(baz4):
(baz5):
(arrayEq):
- 1:06 PM Changeset in webkit [202002] by
-
- 12 edits in trunk
Make HashMap and HashSet work with Refs
https://bugs.webkit.org/show_bug.cgi?id=158638
Patch by Sam Weinig <sam@webkit.org> on 2016-06-13
Reviewed by Darin Adler.
Source/WTF:
- wtf/GetPtr.h:
Move HashTableDeletedValueType and HashTableEmptyValueType here, as they are now shared
by more than one smart pointer. This file should probably be renamed to something else
at some point to indicate that it contains helpers for pointer and ref related functionality.
- wtf/HashFunctions.h:
Add a DefaultHash for Refs. Customize the PtrHash to indicate that it is not safe to compare
to empty or deleted Refs.
- wtf/HashMap.h:
(WTF::HashMapTranslator::equal):
(WTF::HashMapTranslator::translate):
(WTF::HashMapEnsureTranslator::equal):
(WTF::HashMapEnsureTranslator::translate):
- wtf/HashSet.h:
(WTF::IdentityExtractor::extract):
(WTF::HashSetTranslator::hash):
(WTF::HashSetTranslator::equal):
(WTF::HashSetTranslator::translate):
- wtf/HashTable.h:
(WTF::IdentityHashTranslator::hash):
(WTF::IdentityHashTranslator::equal):
(WTF::IdentityHashTranslator::translate):
Use the new assignToEmpty trait function to allow uninitialized Ref's to be safely assigned to.
- wtf/HashTraits.h:
(WTF::HashTraits<Ref<P>>::emptyValue):
(WTF::HashTraits<Ref<P>>::isEmptyValue):
(WTF::HashTraits<Ref<P>>::assignToEmpty):
(WTF::HashTraits<Ref<P>>::peek):
(WTF::HashTraits<Ref<P>>::customDeleteBucket):
Add custom HashTraits for Ref. Also, introduce a new trait function, assignToEmpty, for use
in translation assignments. This is necessary since the default assignment operator for Ref
will not allow assignment to the empty Ref, which we need to do here.
- wtf/Ref.h:
(WTF::Ref::operator=):
(WTF::Ref::Ref):
(WTF::Ref::isHashTableDeletedValue):
(WTF::Ref::hashTableDeletedValue):
(WTF::Ref::isHashTableEmptyValue):
(WTF::Ref::hashTableEmptyValue):
Add explicit constructors/predicates for making deleted/empty Refs.
(WTF::Ref::assignToHashTableEmptyValue):
Add a special function that allows assignment to an empty Ref, which the
assignment operator does not.
(WTF::IsSmartPtr):
Add an IsSmartPtr override to indicate that Ref is a smart pointer.
- wtf/RefPtr.h:
Move HashTableDeletedValueType to GetPtr.h.
Tools:
- TestWebKitAPI/Tests/WTF/HashMap.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WTF/HashSet.cpp:
(TestWebKitAPI::TEST):
Add tests for using Refs in HashMaps (both as key and value) and HashSets.
- 12:47 PM Changeset in webkit [202001] by
-
- 9 edits3 adds in trunk/Websites/perf.webkit.org
Invalid token error when trying to create an A/B analysis for a range
https://bugs.webkit.org/show_bug.cgi?id=158679
Reviewed by Chris Dumez.
The problem in this particular case was due to another website overriding cookies for our subdomain.
Make PrivilegedAPI robust against its token becoming invalid in general to fix the bug since the cookie
is only available under /privileged-api/ and the v3 UI can't access it for security reasons.
This patch factors out PrivilegedAPI out of remote.js so that it can be tested separately in server tests
as well as unit tests even though RemoteAPI itself is implemented differently in each case.
- init-database.sql: Added a forgotten default value "false" to run_marked_outlier.
- public/v3/index.html:
- public/v3/privileged-api.js: Added. Extracted out of public/v3/remote.js.
(PrivilegedAPI.sendRequest): Fixed the bug. When the initial request fails with "InvalidToken" error,
re-generate the token and re-issue the request.
(PrivilegedAPI.requestCSRFToken):
- public/v3/remote.js:
(RemoteAPI.postJSON): Added to match tools/js/remote.js.
(RemoteAPI.postJSONWithStatus): Ditto.
(PrivilegedAPI): Moved to privileged-api.js.
- server-tests/api-measurement-set-tests.js: Removed the unused require for crypto.
- server-tests/privileged-api-upate-run-status.js: Added tests for /privileged-api/update-run-status.
- server-tests/resources/test-server.js:
(TestServer.prototype.inject): Clear the cookies as well as tokens in PrivilegedAPI.
- tools/js/remote.js:
(RemoteAPI): Added the support for PrivilegedAPI by making cookie set by the server persist.
(RemoteAPI.prototype.clearCookies): Added for tests.
(RemoteAPI.prototype.postJSON): Make sure sendHttpRequest always sends a valid JSON.
(RemoteAPI.prototype.postJSONWithStatus): Added since this API is used PrivilegedAPI.
(RemoteAPI.prototype.sendHttpRequest): Retain the cookie set by the server and send it back in each request.
- tools/js/v3-models.js:
- unit-tests/privileged-api-tests.js: Added unit tests for PrivilegedAPI.
- unit-tests/resources/mock-remote-api.js:
(MockRemoteAPI.postJSON): Added for unit testing.
(MockRemoteAPI.postJSONWithStatus): Ditto.
- 12:40 PM Changeset in webkit [202000] by
-
- 3 edits in trunk/Websites/perf.webkit.org
/admin/tests is very slow
https://bugs.webkit.org/show_bug.cgi?id=158682
Reviewed by Chris Dumez.
The slowness came from TestNameResolver::construct, which was fetching the entire table of test_configurations,
which at this point contains more than 32,000 rows. Don't fetch the entire table in the constructor. Instead,
fetch a subset of rows as needed in configurations_for_metric_and_platform. Even though this results in many SQL
queries being issued, that's a lot more efficient in practice because we only fetch a few dozen rows in practice.
Also removed a whole bunch of features from /admin/tests to simplify the page. In particular, the ability to update
the list of triggerables has been removed now that sync-buildbot.js automatically updates that for us. This removed
the last use of test_exists_on_platform, which was also dependent on fetching test_configurations upfront.
- public/admin/tests.php:
- public/include/test-name-resolver.php:
(TestNameResolver::construct): Don't fetch the entire table of test_configurations.
(TestNameResolver::configurations_for_metric_and_platform): Just issue a SQL query for the specified platform and metric.
(TestNameResolver::test_exists_on_platform): Removed.
- 12:39 PM Changeset in webkit [201999] by
-
- 2 edits2 adds in trunk/LayoutTests
WebRTC: Add test that verifies that RTCPeerConnection.addTrack can reuse an existing RTCRtpSender
https://bugs.webkit.org/show_bug.cgi?id=158621
Reviewed by Eric Carlson.
Add test to verify that RTCPeerConnection.addTrack reuses an existing RTCRtpSender
under the right circumstances.
- fast/mediastream/RTCPeerConnection-addTrack-reuse-sender-expected.txt: Added.
- fast/mediastream/RTCPeerConnection-addTrack-reuse-sender.html: Added.
- platform/mac/TestExpectations:
The mac port is not building with WEB_RTC yet.
- 12:38 PM Changeset in webkit [201998] by
-
- 2 edits2 adds in trunk/LayoutTests
WebRTC: Add media setup test with complete offer/answer dialog
https://bugs.webkit.org/show_bug.cgi?id=158620
Reviewed by Eric Carlson.
Test a complete SDP offer/answer dialog between two RTCPeerConnection instances in the same
page. Media is set up in both direction with a single dialog. Check the local- and
remoteDescription attributes and the RTCPeerConnection states.
- fast/mediastream/RTCPeerConnection-media-setup-single-dialog-expected.txt: Added.
- fast/mediastream/RTCPeerConnection-media-setup-single-dialog.html: Added.
- platform/mac/TestExpectations:
The mac port is not building with WEB_RTC yet.
- 11:56 AM Changeset in webkit [201997] by
-
- 2 edits in trunk/Source/WebCore
Crashes in WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTask.
<rdar://problem/26768449> and https://bugs.webkit.org/show_bug.cgi?id=158696
Reviewed by David Kilzer.
No new tests (Covered by all existing tests in Gmalloc/ASAN configs).
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTask):
(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTaskReply):
- 11:08 AM Changeset in webkit [201996] by
-
- 2 edits in trunk/PerformanceTests
Fix round-down goof in Air.js's ShuffleCustom.forEachArg
https://bugs.webkit.org/show_bug.cgi?id=158674
Reviewed by Michael Saboff.
x / 3 * 3 is not how you round down to multiples of 3 in JavaScript. You need to do
Math.floor(x / 3) * 3 instead.
This is a benign change, because having extra arguments to a Shuffle is not something we
actually take advantage of yet. But I think it's best to match the original C++ code's
intent.
- Air.js/custom.js:
(const.ShuffleCustom.forEachArg):
- 10:32 AM Changeset in webkit [201995] by
-
- 2 edits in trunk/Source/WebCore
Modern IDB: IDBOpenDBRequest objects leak.
https://bugs.webkit.org/show_bug.cgi?id=158694
Reviewed by Alex Christensen.
No new tests (Currently have no testing strategy for guaranteeing lifetime of WebCore DOM objects)
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::completeOpenDBRequest): At this point we never need the
request again, so remove it from the map.
- 10:28 AM Changeset in webkit [201994] by
-
- 3 edits in trunk/Source/WebCore
Make sure HTTPHeaderMap gets a move constructor / assignment operator
https://bugs.webkit.org/show_bug.cgi?id=158695
<rdar://problem/26729511>
Reviewed by Alex Christensen.
Make sure HTTPHeaderMap gets a move constructor / assignment operator.
It was not getting an implicit one because of its user-declared
destructor. This patch drops the user-declared destructor so that
HTTPHeaderMap now gets an implicit move constructor / assignment
operator.
Not having a move constructor / assignment operator is an issue because
we rely on HTTPHeaderMap::isolatedCopy() / WTFMove() since r201623 to
pass HTTPHeaderMap across thread.
- platform/network/HTTPHeaderMap.cpp:
(WebCore::HTTPHeaderMap::~HTTPHeaderMap): Deleted.
- platform/network/HTTPHeaderMap.h:
- 9:52 AM Changeset in webkit [201993] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, follow up patch for r201964
https://bugs.webkit.org/show_bug.cgi?id=158619
Fix typo in the comment.
- runtime/MathCommon.h:
(JSC::toInt32):
- 9:46 AM Changeset in webkit [201992] by
-
- 2 edits in trunk/Source/WebCore
Remove useless parameter from GenerateParametersCheck signature
https://bugs.webkit.org/show_bug.cgi?id=158692
Reviewed by Chris Dumez.
Remove one parameter which is passed to GenerateParametersCheck
but never used in the caller code.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateParametersCheck):
(GenerateConstructorDefinition):
- 9:27 AM Changeset in webkit [201991] by
-
- 2 edits in trunk/Source/WTF
Stack overflow at RefPtr::release on Windows port since r201782
https://bugs.webkit.org/show_bug.cgi?id=158687
Patch by Fujii Hironori <Fujii Hironori> on 2016-06-13
Reviewed by Chris Dumez.
RefPtr::release calls RefPtr::RefPtr, and RefPtr::RefPtr calls
RefPtr::release.
RefPtr::RefPtr does not need to call RefPtr::release.
- wtf/RefPtr.h:
(WTF::RefPtr::RefPtr): Do not call RefPtr::release.
- 8:53 AM Changeset in webkit [201990] by
-
- 14 edits in trunk
Add a mechanism for collecting LLINT stats.
https://bugs.webkit.org/show_bug.cgi?id=158668
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
This patch will add a mechanism for collecting the stats on LLINT opcode
execution counts. The changes made to enable this are:
- Refactored how Options availability work so that we can add a new category: Configurable (in addition to the pre-existing Normal and Restricted availability).
Normal options - always available.
Restricted options - only available on debug builds.
Configurable options - depends on #define flag options.
This change is necessary so that:
- we won't have to rebuild the world when we want to enable that #define flag to make that Configurable option available.
- when the #define flag is disabled, the option will be invisible to the user.
With this, we add our first configurable option, JSC_reportLLIntStats, which
is dependent on the ENABLE_LLINT_STATS flag. See next.
- Added the ENABLE_LLINT_STATS flag in LLIntCommon.h. To enable LLINT stats collection, we'll need to set this flag to a non-zero value, and rebuilding the project. By design, this will only require a minimal set of files to be rebuilt.
ENABLE_LLINT_STATS is 0 (i.e. disabled) by default.
- Added a slow path callback to the LLINT's traceExecution() macro, to call _llint_count_opcode(), which in turns counts the opcode. This callback will only be built into the LLINT if ENABLE_LLINT_STATS is non-zero.
- Added s_opcodeStatsArray to LLInt::Data. This is where the stats are recorded and stored.
- Added calls to LLInt::Data::dumpStats() in jsc.cpp and DumpRenderTree.mm to dump the LLINT stats if enabled. If enabled, the LLINT stats will be sorted and dumped (via dataLog) before the programs terminate.
- interpreter/Interpreter.h:
- jsc.cpp:
(main):
- llint/LLIntCommon.h:
- llint/LLIntData.cpp:
(JSC::LLInt::initialize):
(JSC::LLInt::Data::dumpStats):
- llint/LLIntData.h:
(JSC::LLInt::Data::opcodeStats):
- llint/LLIntOfflineAsmConfig.h:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::llint_crash):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- runtime/Options.cpp:
(JSC::parse):
(JSC::Options::isAvailable):
(JSC::overrideOptionWithHeuristic):
(JSC::scaleJITPolicy):
(JSC::Options::initialize):
(JSC::Options::setOptionWithoutAlias):
(JSC::Options::dumpAllOptions):
(JSC::Options::dumpOption):
- runtime/Options.h:
(JSC::Option::Option):
(JSC::Option::operator!=):
(JSC::Option::id):
Tools:
- DumpRenderTree/mac/DumpRenderTree.mm:
(DumpRenderTreeMain):
- 7:10 AM Changeset in webkit [201989] by
-
- 6 edits in trunk
[GTK] Enabling Shadow DOM by default
https://bugs.webkit.org/show_bug.cgi?id=158686
Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-06-13
Reviewed by Carlos Garcia Campos.
.:
Added support for enabling Shadow DOM by default for GTK.
- Source/cmake/OptionsGTK.cmake:
Tools:
Added support for enabling Shadow DOM by default for GTK.
Changed GTK test expectations for fast/shadow-dom tests (most tests
pass).
- Scripts/webkitperl/FeatureList.pm:
LayoutTests:
Changed GTK test expectations for fast/shadow-dom tests (most tests
pass).
- platform/gtk/TestExpectations:
- 6:40 AM Changeset in webkit [201988] by
-
- 9 edits in trunk/Source/WebCore
Improve code generator for functions with variadic parameters
https://bugs.webkit.org/show_bug.cgi?id=158529
Reviewed by Darin Adler.
JS bindings code of functions with variadic parameters is improved.
Functions with variadic parameters are skipped for ObjC and GObject code generators.
- bindings/scripts/CodeGeneratorGObject.pm:
(SkipFunction): Skip functions with variadic parameters.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
- bindings/scripts/CodeGeneratorObjC.pm:
(SkipFunction): Skip functions with variadic parameters.
- bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_any): Deleted.
(webkit_dom_test_obj_attach_shadow_root): Deleted.
(webkit_dom_test_obj_get_read_only_long_attr): Deleted.
(webkit_dom_test_obj_get_read_only_string_attr): Deleted.
- bindings/scripts/test/GObject/WebKitDOMTestObj.h:
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod12):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
- bindings/scripts/test/ObjC/DOMTestObj.h:
- bindings/scripts/test/ObjC/DOMTestObj.mm:
- 2:06 AM Changeset in webkit [201987] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening.
Unskip passing fast/workers tests.
- platform/win/TestExpectations:
Jun 12, 2016:
- 8:57 PM Changeset in webkit [201986] by
-
- 2 edits in trunk/Tools
run-safari/run-webkit-app fail to quit iOS simulator after Xcode installation
https://bugs.webkit.org/show_bug.cgi?id=158651
rdar://problem/26499824
Reviewed by Daniel Bates.
This change is to make our tools more robust. Sometimes run-safari/run-webkit-app fails
to start the tests as one of the first thing these scripts do is to relaunch iOS Simulators,
and in process call quitIOSSimulator. In case the Simulator is not registered in LaunchServices
for some reason, quitIOSSimulator fails and the script stops. This change will make the scripts
still continue when they fail to quit iOS Simuator, and modify the way Simulator is opened,
so that Simulator is implicitly registered with LaunchServices while opening it.
- Scripts/webkitdirs.pm:
(relaunchIOSSimulator):
Launch iOS Simulator using complete path. Partially reverting http://trac.webkit.org/changeset/184202.
(quitIOSSimulator):
Do not die if quitting ios Simulator fails, so that relaunchIOSSimulator can still
attempt to launch the simulator.
(waitUntilIOSSimulatorDeviceIsInState):
Added a FIXME.
- 1:57 PM Changeset in webkit [201985] by
-
- 3 edits in trunk/Source/WebCore
Cleanup RenderBlock::removePositionedObjects
https://bugs.webkit.org/show_bug.cgi?id=158670
Reviewed by Simon Fraser.
No change in functionality.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::insertPositionedObject):
(WebCore::RenderBlock::removePositionedObject):
(WebCore::RenderBlock::removePositionedObjects):
- rendering/RenderBlock.h:
- 1:45 PM Changeset in webkit [201984] by
-
- 3 edits2 adds in trunk
Remove positioned descendants when RenderBlock is no longer a containing block.
https://bugs.webkit.org/show_bug.cgi?id=158655
<rdar://problem/26510032>
Reviewed by Simon Fraser.
Normally the RenderView is the containing block for fixed positioned renderers.
However when a renderer acquires some transform related properties, it becomes the containing
block for all the fixed positioned renderers in its descendant tree.
When the last transform related property is removed, the renderer is no longer a containing block
and we need to remove all these positioned renderers from the descendant tracker map (gPositionedDescendantsMap).
They will be inserted back into the tracker map during the next layout (either under the RenderView or
under the next transformed renderer in the ancestor chain).
Source/WebCore:
Test: fast/block/fixed-position-reparent-when-transition-is-removed.html
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removePositionedObjectsIfNeeded):
LayoutTests:
- fast/block/fixed-position-reparent-when-transition-is-removed-expected.txt: Added.
- fast/block/fixed-position-reparent-when-transition-is-removed.html: Added.
- 6:22 AM Changeset in webkit [201983] by
-
- 3 edits in trunk/Source/bmalloc
Crash in com.apple.WebKit.WebContent at std::1::call_once_proxy<std::__1::tuple<CrashReporterSupportLibrary()::$_0&&> >
<https://webkit.org/b/158660>
<rdar://problem/25652686>
Reviewed by Darin Adler.
- bmalloc/Logging.cpp: Switch to use
BSOFT_LINK_PRIVATE_FRAMEWORK() to link
CrashReporterSupport.framework.
- bmalloc/darwin/BSoftLinking.h:
(BSOFT_LINK_PRIVATE_FRAMEWORK): Rename from BSOFT_LINK_FRAMEWORK.
Switch to use /System/Library/PrivateFrameworks/.
Jun 11, 2016:
- 6:14 PM Changeset in webkit [201982] by
-
- 7 edits in trunk
Addressing post-review comments after r201978.
https://bugs.webkit.org/show_bug.cgi?id=158649
<rdar://problem/13258122>
Unreviewed.
Source/WebCore:
- platform/graphics/FontCache.cpp:
(WebCore::FontCache::alternateFamilyName):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::platformAlternateFamilyName):
Source/WTF:
- wtf/text/StringCommon.h:
(WTF::equal):
(WTF::naiveEqualWithoutPerformingUnicodeNormalization): Deleted.
Tools:
- TestWebKitAPI/Tests/WTF/WTFString.cpp:
(TestWebKitAPI::TEST):
- 4:44 PM Changeset in webkit [201981] by
-
- 2 edits in trunk/Tools
Unreviewed leak fix after r201863.
- DumpRenderTree/mac/DumpRenderTree.mm:
(dumpFramesAsText):
- 4:35 PM Changeset in webkit [201980] by
-
- 2 edits in trunk/Source/WebCore
Tighten code to build set of tag names
https://bugs.webkit.org/show_bug.cgi?id=158662
Reviewed by Alexey Proskuryakov.
- dom/Element.cpp:
(WebCore::canAttachAuthorShadowRoot): Use an array of pointers that the loader
can initialize as part of loading the library, rather than an array that needs
to be initialized with code at runtime.
- 3:55 PM Changeset in webkit [201979] by
-
- 3 edits in trunk/Source/WebCore
[Win] [EFL] Build fix after r201978.
https://bugs.webkit.org/show_bug.cgi?id=158649
<rdar://problem/13258122>
Unreviewed
- platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::FontCache::platformAlternateFamilyName):
- platform/graphics/win/FontCacheWin.cpp:
- 2:48 PM Changeset in webkit [201978] by
-
- 16 edits4 adds in trunk
[Cocoa] Map commonly used Chinese Windows font names to names present on Cocoa operating systems
https://bugs.webkit.org/show_bug.cgi?id=158649
<rdar://problem/13258122>
Reviewed by Darin Adler.
Source/WebCore:
There are many Chinese websites which hardcode Windows font names.
We should map these to fonts which best match them on Cocoa operating
systems. We can do this by using our existing fallback font name
infrastructure.
Tests: fast/text/chinese-font-name-aliases-2.html
fast/text/chinese-font-name-aliases.html
- platform/graphics/FontCache.cpp:
(WebCore::FontCache::alternateFamilyName):
(WebCore::alternateFamilyName): Deleted.
- platform/graphics/FontCache.h:
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::platformAlternateFamilyName):
- platform/graphics/freetype/FontCacheFreeType.cpp:
(WebCore::FontCache::platformAlternateFamilyName):
- platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::platformAlternateFamilyName):
Source/WTF:
- wtf/text/StringCommon.h:
(WTF::naiveEqualWithoutPerformingUnicodeNormalization): Added.
Tools:
- TestWebKitAPI/Tests/WTF/WTFString.h:
(TestWebKitAPI::TEST):
LayoutTests:
Because this tests platform-specific font names, the test must
be platform-specific. Because it's a ref test, make two tests which
are mutually-exclusive on Cocoa platforms, and expected to fail
everywhere else.
- fast/text/chinese-font-name-aliases-2-expected.html: Added.
- fast/text/chinese-font-name-aliases-2.html: Added.
- fast/text/chinese-font-name-aliases-expected.html: Added.
- fast/text/chinese-font-name-aliases.html: Added.
- platform/efl/TestExpectations:
- platform/gtk/TestExpectations:
- platform/ios-simulator/TestExpectations:
- platform/mac/TestExpectations:
- platform/win/TestExpectations:
- 1:05 PM Changeset in webkit [201977] by
-
- 11 edits1 delete in trunk
Unreviewed, rolling out r201967, r201968, and r201972.
https://bugs.webkit.org/show_bug.cgi?id=158665
Caused flaky failures on IndexedDB tests (Requested by ap on
#webkit).
Reverted changesets:
"Vary:Cookie validation doesn't work in private browsing"
https://bugs.webkit.org/show_bug.cgi?id=158616
http://trac.webkit.org/changeset/201967
"Build fix."
http://trac.webkit.org/changeset/201968
"WinCairo build fix attempt."
http://trac.webkit.org/changeset/201972
- 12:58 PM Changeset in webkit [201976] by
-
- 7 edits in trunk/Source/JavaScriptCore
Minimize the amount of memcpy done for allocating Error stacks.
https://bugs.webkit.org/show_bug.cgi?id=158664
Reviewed by Darin Adler.
Currently, Vector<StackFrame> are being copied around multiple times in the
process of creating Error stacks.
This patch avoids this unnecessary copying by:
- Sizing the StackFrame vector correctly to begin with, and skipping undesirable top frames before filling in the vector.
- Using perfect forwarding or passing by reference to pass the vector data around instead of copying the vectors.
- Changing the Exception object to take a Vector<StackFrame> instead of a RefCountedArray<StackFrame>.
This patch has passed the JSC and layout tests. Benchmarks show that perf is
neutral.
- API/tests/testapi.mm:
(testObjectiveCAPI):
- inspector/ScriptCallStackFactory.cpp:
(Inspector::createScriptCallStackFromException):
- interpreter/Interpreter.cpp:
(JSC::GetStackTraceFunctor::GetStackTraceFunctor):
(JSC::GetStackTraceFunctor::operator()):
(JSC::Interpreter::getStackTrace):
(JSC::Interpreter::stackTraceAsString):
(JSC::findExceptionHandler):
- interpreter/Interpreter.h:
- runtime/Error.cpp:
(JSC::addErrorInfoAndGetBytecodeOffset):
- runtime/Exception.cpp:
(JSC::Exception::finishCreation):
- runtime/Exception.h:
(JSC::Exception::valueOffset):
(JSC::Exception::value):
(JSC::Exception::stack):
(JSC::Exception::didNotifyInspectorOfThrow):
(JSC::Exception::setDidNotifyInspectorOfThrow):
- 12:48 PM Changeset in webkit [201975] by
-
- 2 edits in trunk/PerformanceTests
Unreviewed, skip Air.js. It got unskipped when I renamed it from JSAir.
- Skipped:
- 11:53 AM Changeset in webkit [201974] by
-
- 2 edits in trunk/Source/JavaScriptCore
Tests that overflows the stack should not be run with the sampling profiler.
https://bugs.webkit.org/show_bug.cgi?id=158663
Reviewed by Saam Barati.
The sampling profiler will be sampling the whole stack, and the amount of memory
churn will make this tests time out, especially with debug builds. Hence,
let's not run the test with the sampling profiler configuration.
- tests/stress/mutual-tail-call-no-stack-overflow.js:
(shouldThrow):
- 11:07 AM Changeset in webkit [201973] by
-
- 2 edits in trunk/Source/WebCore
Fixed compilation of LocaleICU with ENABLE(DATE_AND_TIME_INPUT_TYPES)
https://bugs.webkit.org/show_bug.cgi?id=158659
Reviewed by Darin Adler.
No new tests needed.
- platform/text/LocaleICU.cpp:
(WebCore::getFormatForSkeleton):
(WebCore::LocaleICU::monthFormat):
(WebCore::LocaleICU::shortMonthFormat):
- 10:58 AM Changeset in webkit [201972] by
-
- 4 edits in trunk/Source/WebCore
WinCairo build fix attempt.
- platform/network/NetworkStorageSession.cpp:
- platform/network/NetworkStorageSession.h:
- platform/network/NetworkStorageSessionStub.cpp:
(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::context):
(WebCore::NetworkStorageSession::createPrivateBrowsingSession):
(WebCore::NetworkStorageSession::switchToNewTestingSession):
(WebCore::NetworkStorageSession::~NetworkStorageSession): Deleted.
(WebCore::defaultSession): Deleted.
(WebCore::NetworkStorageSession::defaultStorageSession): Deleted.
- 10:52 AM Changeset in webkit [201971] by
-
- 10 edits2 adds in trunk
Deleting a CSSOM style rule invalidates any previously-added FontFaces
https://bugs.webkit.org/show_bug.cgi?id=158450
Reviewed by Darin Adler.
Source/WebCore:
This patch has two pieces: updating the CSSOM when the FontFace changes, and
updating the FontFace when the CSSOM changes.
1: Updating the CSSOM when the FontFace changes: CSSFontFaces already have a RefPtr
to their StyleRuleFontFace which represents their CSS-connection. When changing a
property of the CSSFontFace, we simply reach into the StyleRule and update it to
match. Our existing infrastructure of invalidation due to the attribute changes
makes sure that all the necessary updates occur.
- Updating the FontFace when the CSSOM changes: If the CSSOM changes in a trivial
way (for example, a new @font-face is appended to the end of the last <style>
element), we can handle it directly. However, when something more invasive occurs,
we end up clearing the entire CSSFontSelector, and then adding all the style rules
from scratch. This involves three steps:
a) CSSFontSelector::buildStarted() is run, which means "we're about to start
building up all the @font-face rules from scratch." We take this opportunity
to purge as many fonts as possible. This is valuable because, for example,
this function gets run when the page gets put into the page cache, so we
want to destroy as much as possible. Not everything can be purged, however -
only CSS-connected fonts which have never been inspected by script are
purgeable. We don't allow fonts inspected by script to be purged because
purging might result in a font appearing from JavaScript to transition from
a success -> failure state, which we don't allow.
b) Upon style recalc (possibly asynchronously) CSSFontSelector::addFontFaceRule()
is called for each @font-face rule. We actually detect that we're in the
middle of a style rebuild, and defer this step.
c) When we're done adding all the font face rules, we call
CSSFontSelector::buildCompleted(). This is where we compare the newly built-
up list of font faces with what existed previously (as remembered in
CSSFontSelector::buildStarted()) in order to detect font faces which were
deleted from the document. Fonts which were newly added to the document
are handled naturally.
Fonts which have a property modified on them are created as if they were new.
However, instead of simply adding the CSSFontFace, we search for the existing
CSSFontFace (by CSS connection pointer) and tell the existing FontFace to
adopt this new CSSFontFace. This means that the JavaScript object will just
pick up any newly-written values in the CSSOM. It also means that the
"status" attribute of the JavaScript object is reset, but this is expected
and allowed by the spec. (For example, if you change the "src" attribute of
an @font-face block via the CSSOM, all bets are off when you inspect the
FontFace JS object representing that block.)
Test: fast/text/font-face-set-cssom.html
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::setFamilies):
(WebCore::CSSFontFace::setStyle):
(WebCore::CSSFontFace::setWeight):
(WebCore::CSSFontFace::setUnicodeRange):
(WebCore::CSSFontFace::setVariantLigatures):
(WebCore::CSSFontFace::setVariantPosition):
(WebCore::CSSFontFace::setVariantCaps):
(WebCore::CSSFontFace::setVariantNumeric):
(WebCore::CSSFontFace::setVariantAlternates):
(WebCore::CSSFontFace::setVariantEastAsian):
(WebCore::CSSFontFace::setFeatureSettings):
(WebCore::CSSFontFace::initializeWrapper):
(WebCore::CSSFontFace::wrapper):
(WebCore::CSSFontFace::setWrapper):
(WebCore::CSSFontFace::purgeable):
(WebCore::CSSFontFace::updateStyleIfNeeded):
- css/CSSFontFace.h:
- css/CSSFontFaceSet.cpp:
(WebCore::CSSFontFaceSet::remove):
(WebCore::CSSFontFaceSet::containsCSSConnection):
(WebCore::CSSFontFaceSet::purge):
- css/CSSFontFaceSet.h:
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::buildStarted):
(WebCore::CSSFontSelector::buildCompleted):
(WebCore::CSSFontSelector::addFontFaceRule):
- css/CSSFontSelector.h:
- css/FontFace.cpp:
(WebCore::FontFace::family):
(WebCore::FontFace::style):
(WebCore::FontFace::weight):
(WebCore::FontFace::unicodeRange):
(WebCore::FontFace::variant):
(WebCore::FontFace::featureSettings):
(WebCore::FontFace::adopt):
- css/FontFace.h:
LayoutTests:
- fast/text/font-face-set-cssom-expected.txt: Added.
- fast/text/font-face-set-cssom.html: Added.
- 10:44 AM Changeset in webkit [201970] by
-
- 17 edits4 copies in trunk
WorkerNavigator is missing some attributes
https://bugs.webkit.org/show_bug.cgi?id=158593
<rdar://problem/26731334>
Reviewed by Darin Adler.
Source/WebCore:
Add attributes that are missing on WorkerNavigator:
- appCodeName
- hardwareConcurrency
- language
- product
- productSub
- vendor
- vendorSub
Firefox and Chrome already expose those attributes.
Relevant specification:
https://html.spec.whatwg.org/multipage/workers.html#the-workernavigator-object
This patch also refactors the IDL to match the specification more
closely and promote sharing between Navigator and WorkerNavigator.
No new tests, updated existing test.
- CMakeLists.txt:
- DerivedSources.make:
Add new supplemental IDL files.
- page/Navigator.cpp:
- page/Navigator.h:
Moved language() / hardwareConcurrency() from Navigator to NavigatorBase
so that it can be used by NavigatorWorker as well.
- page/NavigatorBase.h:
- page/NavigatorBase.cpp:
(WebCore::NavigatorBase::language):
The implementation still calls defaultLanguage() but I updated it to be
thread safe on all platforms.
(WebCore::NavigatorBase::hardwareConcurrency):
Use std::call_once() for thread safety.
- page/Navigator.idl:
- page/NavigatorConcurrentHardware.idl: Copied from Source/WebCore/page/WorkerNavigator.idl.
- page/NavigatorID.idl: Copied from Source/WebCore/page/WorkerNavigator.idl.
- page/NavigatorLanguage.idl: Copied from Source/WebCore/page/WorkerNavigator.idl.
- page/NavigatorOnLine.idl: Copied from Source/WebCore/page/WorkerNavigator.idl.
- page/WorkerNavigator.idl:
Move several attributes to their own supplemental interfaces to match
the specification and promote sharing with WorkerNavigator.
- platform/Language.cpp:
(WebCore::userPreferredLanguages):
- platform/Language.h:
Made thread-safe on all platforms.
Source/WTF:
- wtf/PlatformUserPreferredLanguages.h:
- wtf/PlatformUserPreferredLanguagesWin.cpp:
(WTF::platformLanguage):
(WTF::platformUserPreferredLanguages):
Make platformUserPreferredLanguages() thread safe on Windows. The
Mac and Unix implementations are already thread-safe.
LayoutTests:
Improved test coverage for WorkerNavigator.
- fast/workers/resources/worker-navigator.js:
- 4:46 AM Changeset in webkit [201969] by
-
- 5 edits in trunk/Source/bmalloc
Implement logging for RELEASE_BASSERT_WITH_MESSAGE() in BAssert.h
<http://webkit.org/b/155992>
Reviewed by Geoff Garen.
- bmalloc/BAssert.h:
(BLOG_ERROR): Add method to always log error messages.
(RELEASE_BASSERT_WITH_MESSAGE): Use BLOG_ERROR() to implement
logging in Debug builds.
- bmalloc/BPlatform.h:
(BPLATFORM_MAC): Add.
(BUSE): Add BUSE() macro.
(BATTRIBUTE_PRINTF): Add.
(BUSE_OS_LOG): Add.
- bmalloc/Logging.cpp:
(bmalloc::reportAssertionFailureWithMessage): Add. Logs to
stderr.
- bmalloc/Logging.h:
(bmalloc::reportAssertionFailureWithMessage): Add declaration.
- 4:20 AM Changeset in webkit [201968] by
-
- 2 edits in trunk/Source/WebCore
Build fix.
- platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::switchToNewTestingSession):
- 4:09 AM Changeset in webkit [201967] by
-
- 10 edits1 add in trunk
Vary:Cookie validation doesn't work in private browsing
https://bugs.webkit.org/show_bug.cgi?id=158616
Source/WebCore:
rdar://problem/26755067
Reviewed by Darin Adler.
This wasn't implemented because there was no way to get NetworkStorageSession from
a SessionID on WebCore side.
The patch adds a simple WebCore level weak map that allows getting NetworkStorageSessions
from SessionID. This seemed like the cleanest way to do this without a big refactoring
around the currently WebKit2 level SessionTracker.
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/network/CacheValidation.cpp:
(WebCore::headerValueForVary):
Get NetworkStorageSession from SessionID for cookies
(WebCore::verifyVaryingRequestHeaders):
- platform/network/NetworkStorageSession.cpp: Added.
Add platform independent .cpp for NetworkStorageSession.
Implement a weak map for SessionID -> NetworkStorageSession.
(WebCore::sessionsMap):
(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::~NetworkStorageSession):
(WebCore::NetworkStorageSession::forSessionID):
Get NetworkStorageSession for sessionID.
- platform/network/NetworkStorageSession.h:
(WebCore::NetworkStorageSession::sessionID):
(WebCore::NetworkStorageSession::credentialStorage):
- platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::NetworkStorageSession):
Call to common constructor.
(WebCore::defaultNetworkStorageSession):
- platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::NetworkStorageSession::NetworkStorageSession):
Call to common constructor.
(WebCore::defaultSession):
(WebCore::NetworkStorageSession::~NetworkStorageSession): Deleted.
LayoutTests:
Reviewed by Darin Adler.
- http/tests/cache/disk-cache/disk-cache-vary-cookie-expected.txt:
- http/tests/cache/disk-cache/disk-cache-vary-cookie.html:
Exapand the existing test to cover memory cache and private browsing.
Jun 10, 2016:
- 11:01 PM Changeset in webkit [201966] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, attempt to fix r201964 failure on Apple ports
https://bugs.webkit.org/show_bug.cgi?id=158619
Reviewed by Mark Lam.
Add Private attributes to MathCommon.h.
- JavaScriptCore.xcodeproj/project.pbxproj:
- 10:32 PM Changeset in webkit [201965] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: <template> content should not be hidden as Shadow Content
https://bugs.webkit.org/show_bug.cgi?id=158654
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-10
Reviewed by Ryosuke Niwa.
- Localizations/en.lproj/localizedStrings.js:
New "Template Content" string.
- UserInterface/Models/DOMNode.js:
(WebInspector.DOMNode):
Don't treat template content as shadow content.
- UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._nodeTitleInfo):
Custom string for template content fragment.
- 10:31 PM Changeset in webkit [201964] by
-
- 7 edits in trunk/Source/JavaScriptCore
[JSC] Inline JSC::toInt32 to improve kraken
https://bugs.webkit.org/show_bug.cgi?id=158619
Reviewed by Mark Lam.
Several kraken benchmarks show that JSC::toInt32 is frequently called.
For example, stanford-crypto-pbkdf2 reports that the hottest runtime function is JSC::toInt32.
The data is below (taken by Linux perf tools).
5.50% jsc libJavaScriptCore.so.1.0.0 . _ZN3JSC7toInt32Ed
3.96% jsc libJavaScriptCore.so.1.0.0 . _ZN3JSC20arrayProtoFuncConcatEPNS_9ExecStateE
2.48% jsc libJavaScriptCore.so.1.0.0 . _ZN3JSC19arrayProtoFuncSliceEPNS_9ExecStateE
1.69% jsc libJavaScriptCore.so.1.0.0 . _ZNK3JSC9Structure27holesMustForwardToPrototypeERNS_2VME
This is because of CommonSlowPaths' bit operations's JSValue::toInt32.
Due to the slow path, invalue | 0,valuemay be a double number value. In that case, JSC::toInt32 is called.
While JSC::toIn32 is hot, the function itself is very small. It's worth inlining.
This change offers the following kraken improvements.
baseline patched
Kraken:
audio-beat-detection 47.492+-1.701 46.657+-1.232 might be 1.0179x faster
stanford-crypto-aes 43.669+-0.210 42.862+-0.115 definitely 1.0188x faster
stanford-crypto-ccm 45.213+-1.424 44.490+-1.290 might be 1.0162x faster
stanford-crypto-pbkdf2 107.665+-0.581 106.229+-0.807 definitely 1.0135x faster
This patch only focused on the call to toInt32 from the runtime functions.
So JSC::toInt32 calls from the baseline / DFG remain.
We ensure that JIT code uses operationToInt32 instead of JSC::toInt32 since JSC::toInt32 is now marked as ALWAYS_INLINE.
Linux perf profiler also finds that thisoperationToInt32is frequently called in the above benchmarks.
It may be good to introduce asm emit for that instead of calling JSC::toInt32 operation in the separated patch.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::doubleToInt32):
(JSC::FTL::DFG::LowerDFGToB3::sensibleDoubleToInt32):
- runtime/JSCJSValue.cpp:
(JSC::toInt32): Deleted.
- runtime/JSCJSValueInlines.h:
- runtime/MathCommon.cpp:
(JSC::operationToInt32):
- runtime/MathCommon.h:
(JSC::toInt32):
- 9:37 PM Changeset in webkit [201963] by
-
- 5 edits in trunk/Source
Use the video element's video box when getting the inline video rect in WebVideoFullscreenManager
https://bugs.webkit.org/show_bug.cgi?id=158351
<rdar://problem/26567938>
Reviewed by Darin Adler.
Source/WebCore:
- WebCore.xcodeproj/project.pbxproj:
Change the visibility of RenderVideo.h and RenderMedia.h since we'll be importing RenderVideo.h from WebKit2.
- rendering/RenderVideo.h:
Source/WebKit2:
- WebProcess/cocoa/WebVideoFullscreenManager.mm:
(WebKit::inlineVideoFrame):
(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::WebVideoFullscreenManager::exitVideoFullscreenForVideoElement):
(WebKit::WebVideoFullscreenManager::fullscreenMayReturnToInline):
(WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced):
(WebKit::clientRectForElement): Deleted.
- 9:24 PM Changeset in webkit [201962] by
-
- 2 edits in trunk/Source/WebKit
Fix CMake build.
- PlatformMac.cmake:
- 6:52 PM Changeset in webkit [201961] by
-
- 2 edits1 add in trunk/PerformanceTests
Make it easy to package Air.js
https://bugs.webkit.org/show_bug.cgi?id=158652
Reviewed by Benjamin Poulain.
If you want to give Air.js to someone, you can now do:
cd PerformanceTests/Air.js
./make_dist.sh
This will create Air.js.tar.gz and a directory called Air.js. If you want to send someone
the benchmark, just send either of those things and tell them to look at index.html.
You may have to edit make_dist.sh for wherever you have Markdown.pl. You can get that from
https://daringfireball.net/projects/markdown/
- Air.js/make_dist.sh: Added.
- Air.js/test.html:
- 6:32 PM Changeset in webkit [201960] by
-
- 2 edits in trunk/PerformanceTests
Unreviewed, make the link to test.html into an actual link.
- Air.js/README.md:
- 6:20 PM Changeset in webkit [201959] by
-
- 2 edits in trunk/PerformanceTests
Fix some text in Air.js/README.md
https://bugs.webkit.org/show_bug.cgi?id=158650
Reviewed by Benjamin Poulain.
I read the text again and found bugs:
- We never actually say how to run the benchmark. This change adds a blurb about how to run it.
- We both say that allocateStack is responsible for the bulk of the running time and that we haven't measured where the bulk of the time is spent. This changes the text to say that it was a goal to make allocateStack be the hottest part of the benchmark, but that we did not measure this.
- Air.js/README.md:
- 6:18 PM Changeset in webkit [201958] by
-
- 37 edits10 adds in trunk
Add support for passive event listeners on touch events
https://bugs.webkit.org/show_bug.cgi?id=158601
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-10
Reviewed by Simon Fraser.
Source/WebCore:
This patch wires "passive" state of EventTarget to the delivery of touch
events in WebKit2.
Instead of having a NonFastScrollableRegion, we have a pair of regions
in EventTrackingRegions.
The "asynchronousDispatchRegion" tracks the area for which all event
listeners are passive. For those, events should be dispatched asynchronously.
The "synchronousDispatchRegion" tracks the area for which there is at
least one active event listener. Events have to be dispatched synchronously
for correctness.
Tests: fast/events/touch/ios/tap-with-active-listener-on-elements.html
fast/events/touch/ios/tap-with-active-listener-on-window.html
fast/events/touch/ios/tap-with-passive-listener-on-elements.html
fast/events/touch/ios/tap-with-passive-listener-on-window.html
- WebCore.xcodeproj/project.pbxproj:
- dom/Document.cpp:
(WebCore::Document::wheelEventHandlersChanged):
(WebCore::Document::Document): Deleted.
- dom/Document.h:
- dom/EventListenerMap.cpp:
(WebCore::EventListenerMap::containsActive):
If a Target has multiple listener for an event type, we want to know
if any of them is active.
- dom/EventListenerMap.h:
- dom/EventTarget.cpp:
(WebCore::EventTarget::hasActiveEventListeners):
(WebCore::EventTarget::hasActiveTouchEventListeners):
- dom/EventTarget.h:
- page/DebugPageOverlays.cpp:
(WebCore::NonFastScrollableRegionOverlay::updateRegion):
I did not change the debug overlays.
The NonFastScrollable area is the region for which events needs
synchronous dispatch. Everything else should scroll without delay.
- page/FrameView.cpp:
(WebCore::FrameView::scrollableAreaSetChanged):
- page/Page.cpp:
(WebCore::Page::nonFastScrollableRects):
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::setEventTrackingRegionsDirty):
(WebCore::AsyncScrollingCoordinator::willCommitTree):
(WebCore::AsyncScrollingCoordinator::updateEventTrackingRegions):
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::frameViewEventTrackingRegionsChanged):
(WebCore::AsyncScrollingCoordinator::scrollingStateTreeAsText):
(WebCore::AsyncScrollingCoordinator::setNonFastScrollableRegionDirty): Deleted.
(WebCore::AsyncScrollingCoordinator::updateNonFastScrollableRegion): Deleted.
(WebCore::AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged): Deleted.
- page/scrolling/AsyncScrollingCoordinator.h:
(WebCore::AsyncScrollingCoordinator::eventTrackingRegionsDirty):
(WebCore::AsyncScrollingCoordinator::nonFastScrollableRegionDirty): Deleted.
- page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::absoluteEventTrackingRegionsForFrame):
(WebCore::ScrollingCoordinator::absoluteEventTrackingRegions):
(WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegionForFrame): Deleted.
(WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegion): Deleted.
I intentionally left the Wheel event with synchronous dispatch.
This use case will need its own set of tests.
- page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::frameViewEventTrackingRegionsChanged):
(WebCore::ScrollingCoordinator::frameViewNonFastScrollableRegionChanged): Deleted.
- page/scrolling/ScrollingStateFrameScrollingNode.cpp:
(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::setEventTrackingRegions):
(WebCore::ScrollingStateFrameScrollingNode::dumpProperties):
(WebCore::ScrollingStateFrameScrollingNode::setNonFastScrollableRegion): Deleted.
- page/scrolling/ScrollingStateFrameScrollingNode.h:
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously):
(WebCore::ScrollingTree::commitNewTreeState):
(WebCore::ScrollingTree::eventTrackingTypeForPoint):
(WebCore::ScrollingTree::isPointInNonFastScrollableRegion): Deleted.
- page/scrolling/ScrollingTree.h:
- page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
- platform/EventTrackingRegions.h: Added.
(WebCore::EventTrackingRegions::isEmpty):
(WebCore::EventTrackingRegions::trackingTypeForPoint):
(WebCore::operator==):
Source/WebKit2:
- Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
(WebKit::dump):
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<EventTrackingRegions>::encode):
(IPC::ArgumentCoder<EventTrackingRegions>::decode):
- Shared/WebCoreArgumentCoders.h:
- UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::eventTrackingTypeForPoint):
(WebKit::RemoteScrollingCoordinatorProxy::isPointInNonFastScrollableRegion): Deleted.
- UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::touchEventTrackingType):
The type is the most restrictive type of all the touch points.
If any touch point needs synchronous tracking, everything has to be synchronous.
(WebKit::WebPageProxy::handleTouchEventSynchronously):
This is a very unfortunate design.
The upper layer dealing with UIKit knows about gesture and when something
can be dispatched asynchrnously because a gesture has started.
This layer knows about tracking and can use that extra inforamtion
to dispatch an event asynchrnously anyway.
In the future, we should refactor this to let WebPageProxy
always decide of the dispatch type. I am just concerned changing
the upper layer while we are stabilizing WebKit.
(WebKit::WebPageProxy::handleTouchEventAsynchronously):
(WebKit::WebPageProxy::handleTouchEvent):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::WebPageProxy): Deleted.
(WebKit::WebPageProxy::shouldStartTrackingTouchEvents): Deleted.
- UIProcess/WebPageProxy.h:
LayoutTests:
- fast/events/touch/ios/tap-with-active-listener-on-elements-expected.txt: Added.
- fast/events/touch/ios/tap-with-active-listener-on-elements.html: Added.
- fast/events/touch/ios/tap-with-active-listener-on-window-expected.txt: Added.
- fast/events/touch/ios/tap-with-active-listener-on-window.html: Added.
- fast/events/touch/ios/tap-with-passive-listener-inside-active-listener-expected.txt: Added.
- fast/events/touch/ios/tap-with-passive-listener-on-elements-expected.txt: Added.
- fast/events/touch/ios/tap-with-passive-listener-on-elements.html: Added.
- fast/events/touch/ios/tap-with-passive-listener-on-window-expected.txt: Added.
- fast/events/touch/ios/tap-with-passive-listener-on-window.html: Added.
- 5:48 PM Changeset in webkit [201957] by
-
- 1 edit1 add in trunk/PerformanceTests
Air.js should have some documentation
https://bugs.webkit.org/show_bug.cgi?id=158648
Reviewed by Keith Miller.
I want to be able to point people at a document if they want to know more about this
benchmark.
- Air.js/README.md: Added.
- 5:21 PM Changeset in webkit [201956] by
-
- 9 edits2 adds in trunk
REGRESSION(r198177): Cannot paste an image when the pasteboard format is mime type.
https://bugs.webkit.org/show_bug.cgi?id=158590
rdar://problem/25471371
Reviewed by Darin Adler.
Source/WebCore:
When creating a fragment from an image resource, the resource needs to
be added to the document loader before setting the src attribute to the
image element, otherwise loading is triggered and the loading fails.
In r198177 the order of the operations was changed causing the bug.
This patch adds support to test the scenario where the image in the pasteboard
is available only as mime type (not WebArchive or RTFD), a situation that occurs
more frequently on iOS.
Test: editing/pasteboard/image-in-iframe.html
- editing/ios/EditorIOS.mm:
(WebCore::Editor::createFragmentForImageResourceAndAddResource):
- editing/mac/EditorMac.mm:
(WebCore::Editor::WebContentReader::readWebArchive):
(WebCore::Editor::WebContentReader::readRTFD):
(WebCore::Editor::WebContentReader::readRTF):
(WebCore::Editor::createFragmentForImageResourceAndAddResource):
- page/Settings.cpp:
(WebCore::Settings::setImagesEnabled):
(WebCore::Settings::setPreferMimeTypeForImages):
(WebCore::Settings::setForcePendingWebGLPolicy):
- page/Settings.h:
(WebCore::Settings::areImagesEnabled):
(WebCore::Settings::preferMimeTypeForImages):
(WebCore::Settings::arePluginsEnabled):
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setLangAttributeAwareFormControlUIEnabled):
(WebCore::InternalSettings::setPreferMimeTypeForImages):
(WebCore::InternalSettings::setImagesEnabled):
- testing/InternalSettings.h:
- testing/InternalSettings.idl:
LayoutTests:
- editing/pasteboard/image-in-iframe-expected.txt: Added.
- editing/pasteboard/image-in-iframe.html: Added.
- 5:20 PM Changeset in webkit [201955] by
-
- 2 edits in trunk/Tools
Fix CMake build.
- TestWebKitAPI/PlatformMac.cmake:
- 5:15 PM Changeset in webkit [201954] by
-
- 3 edits in trunk/Source/WebCore
Fix WinCairo build after r201943
- platform/network/curl/MultipartHandle.cpp:
(WebCore::MultipartHandle::didReceiveResponse):
- platform/network/curl/ResourceHandleManager.cpp:
(WebCore::handleLocalReceiveResponse):
(WebCore::headerCallback):
(WebCore::ResourceHandleManager::dispatchSynchronousJob):
- 4:54 PM Changeset in webkit [201953] by
-
- 3 edits6 copies1 move2 deletes in trunk
PerformanceTests:
Rename JSAir to Air.js.
Rubber stamped by Mark Lam.
- Air.js: Copied from PerformanceTests/JSAir.
- Air.js/airjs-tests.yaml: Copied from PerformanceTests/JSAir/jsair-tests.yaml.
- Air.js/benchmark.js: Copied from PerformanceTests/JSAir/benchmark.js.
(Benchmark):
- Air.js/jsair-tests.yaml: Removed.
- Air.js/payload-airjs-ACLj8C.js: Copied from PerformanceTests/JSAir/payload-jsair-ACLj8C.js.
- Air.js/payload-jsair-ACLj8C.js: Removed.
- Air.js/stress-test.js: Copied from PerformanceTests/JSAir/stress-test.js.
- Air.js/test.html: Copied from PerformanceTests/JSAir/test.html.
- Air.js/test.js: Copied from PerformanceTests/JSAir/test.js.
- JSAir: Removed.
- JSAir/all.js: Removed.
- JSAir/allocate_stack.js: Removed.
- JSAir/arg.js: Removed.
- JSAir/basic_block.js: Removed.
- JSAir/benchmark.js: Removed.
- JSAir/code.js: Removed.
- JSAir/custom.js: Removed.
- JSAir/frequented_block.js: Removed.
- JSAir/insertion_set.js: Removed.
- JSAir/inst.js: Removed.
- JSAir/jsair-tests.yaml: Removed.
- JSAir/liveness.js: Removed.
- JSAir/opcode.js: Removed.
- JSAir/payload-gbemu-executeIteration.js: Removed.
- JSAir/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
- JSAir/payload-jsair-ACLj8C.js: Removed.
- JSAir/payload-typescript-scanIdentifier.js: Removed.
- JSAir/reg.js: Removed.
- JSAir/stack_slot.js: Removed.
- JSAir/stress-test.js: Removed.
- JSAir/strip-hash.rb: Removed.
- JSAir/symbols.js: Removed.
- JSAir/test.html: Removed.
- JSAir/test.js: Removed.
- JSAir/tmp.js: Removed.
- JSAir/tmp_base.js: Removed.
- JSAir/util.js: Removed.
Tools:
Rename JSAir to Air.js
Rubber stamped by Mark Lam.
- Scripts/run-javascriptcore-tests:
- 4:29 PM Changeset in webkit [201952] by
-
- 2 edits in trunk/LayoutTests
Marking imported/blink/storage/indexeddb/blob-delete-objectstore-db.html as flaky on Yosemite Release WK2
https://bugs.webkit.org/show_bug.cgi?id=158639
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 4:18 PM Changeset in webkit [201951] by
-
- 2 edits in branches/safari-601.1.46-branch/LayoutTests
Roll out r201287. rdar://problem/26605164
- 4:10 PM Changeset in webkit [201950] by
-
- 2 edits in branches/safari-601-branch/LayoutTests
Merge r201287. rdar://problem/26228555
- 4:05 PM Changeset in webkit [201949] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: heap snapshot comparison view shows nothing if later snapshot is chosen first
https://bugs.webkit.org/show_bug.cgi?id=158584
<rdar://problem/26727849>
Reviewed by Timothy Hatcher.
ALways compare the the later snapshot to the earlier snapshot,
regardless of selection order.
- UserInterface/Views/HeapAllocationsTimelineView.js:
(WebInspector.HeapAllocationsTimelineView):
(WebInspector.HeapAllocationsTimelineView.prototype._dataGridNodeSelected):
Swap shapshots if the first has a greater identifier than the second.
Drive-by cleanup: null out_baselineDataGridNodesince it isn't used
after the comparison completes.
- 4:00 PM Changeset in webkit [201948] by
-
- 2 edits in branches/safari-601.1.46-branch/LayoutTests
Merge r201287. rdar://problem/26605164
- 3:55 PM Changeset in webkit [201947] by
-
- 7 edits1 add in trunk
JSC Stress Test failing: jsair-tests.yaml/test.js.ftl-eager-no-cjit
https://bugs.webkit.org/show_bug.cgi?id=158571
Reviewed by Keith Miller.
PerformanceTests:
Introduce a different harness for run-jsc-stress-tests, which runs for a minimum of 10
iterations and then tries to do any number of "bonus" iterations until it's been running for
two seconds. Since this is the sort of test that isn't really meant to stress anything in
particular, I think it's OK if it is time-limited in this way. The worst case is that some
of its failures will be flaky, but I think that they would have been flaky anyway given the
complexity of the test.
- JSAir/benchmark.js:
(Benchmark):
(Benchmark.prototype.runIteration):
(benchmark): Deleted.
- JSAir/jsair-tests.yaml:
- JSAir/stress-test.js: Added.
(preciseTime):
- JSAir/test.html:
- JSAir/test.js:
Tools:
Unskip the JSAir test.
- Scripts/run-javascriptcore-tests:
(runJSCStressTests):
- 3:26 PM Changeset in webkit [201946] by
-
- 3 edits2 deletes in trunk/Source/WebCore
handleDataURL is only used by curl
https://bugs.webkit.org/show_bug.cgi?id=158636
Reviewed by Tim Horton.
- CMakeLists.txt:
- platform/network/DataURL.cpp: Removed.
- platform/network/DataURL.h: Removed.
- platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::startScheduledJobs):
(WebCore::handleDataURL):
(WebCore::ResourceHandleManager::dispatchSynchronousJob):
- 3:18 PM Changeset in webkit [201945] by
-
- 3 edits in trunk/Source/WebKit2
Add requestExitFullScreen to WKFullScreenWindowController
https://bugs.webkit.org/show_bug.cgi?id=158633
-and corresponding-
rdar://problem/26564036
Reviewed by Tim Horton.
- UIProcess/mac/WKFullScreenWindowController.h:
- UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController requestExitFullScreen]):
- 3:15 PM Changeset in webkit [201944] by
-
- 2 edits in trunk/Tools
Re-disable the UserMedia tests which are timing out.
They used to be accidentally disabled, due to not including
the FeatureDefines correctly, but not we explicitly disable it.
- TestWebKitAPI/Tests/WebKit2/UserMedia.cpp:
(TestWebKitAPI::TEST):
- 3:02 PM Changeset in webkit [201943] by
-
- 37 edits in trunk/Source
Reduce ResourceResponse copying
https://bugs.webkit.org/show_bug.cgi?id=158232
Reviewed by Darin Adler.
Source/WebCore:
No new tests. No change in behavior except removing an unnecessary copy on cocoa platforms.
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::didSendData):
(WebCore::ResourceLoader::didReceiveResponse):
- loader/ResourceLoader.h:
- loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::createResourceHandle):
(WebCore::ApplicationCacheGroup::didReceiveResponse):
- loader/appcache/ApplicationCacheGroup.h:
- platform/graphics/PlatformMediaResourceLoader.h:
(WebCore::PlatformMediaResourceClient::~PlatformMediaResourceClient):
(WebCore::PlatformMediaResourceClient::responseReceived):
(WebCore::PlatformMediaResourceClient::redirectReceived):
(WebCore::PlatformMediaResourceClient::shouldCacheResponse):
(WebCore::PlatformMediaResourceClient::dataSent):
- platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(ResourceHandleStreamingClient::willSendRequest):
(ResourceHandleStreamingClient::didReceiveResponse):
- platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::notifyResponseOnSuccess):
(WebCore::BlobResourceHandle::notifyResponseOnError):
(WebCore::BlobResourceHandle::notifyReceiveData):
- platform/network/DataURL.cpp:
(WebCore::handleDataURL):
- platform/network/PingHandle.h:
(WebCore::PingHandle::PingHandle):
- platform/network/ResourceHandleClient.cpp:
(WebCore::ResourceHandleClient::willSendRequestAsync):
(WebCore::ResourceHandleClient::didReceiveResponseAsync):
- platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::didSendData):
(WebCore::ResourceHandleClient::didReceiveResponse):
(WebCore::ResourceHandleClient::didReceiveData):
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::ResourceResponseBase):
(WebCore::ResourceResponseBase::includeCertificateInfo):
(WebCore::ResourceResponseBase::suggestedFilename):
(WebCore::ResourceResponseBase::certificateInfo): Deleted.
- platform/network/ResourceResponseBase.h:
(WebCore::ResourceResponseBase::certificateInfo):
(WebCore::ResourceResponseBase::encode):
(WebCore::ResourceResponseBase::decode):
(WebCore::ResourceResponseBase::containsCertificateInfo): Deleted.
- platform/network/SynchronousLoaderClient.cpp:
(WebCore::SynchronousLoaderClient::canAuthenticateAgainstProtectionSpace):
(WebCore::SynchronousLoaderClient::didReceiveResponse):
(WebCore::SynchronousLoaderClient::didReceiveData):
- platform/network/SynchronousLoaderClient.h:
- platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
- platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveData):
- platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
- platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::nextMultipartResponsePartCallback):
(WebCore::sendRequestCallback):
Source/WebKit2:
- NetworkProcess/Downloads/PendingDownload.h:
- NetworkProcess/NetworkDataTask.h:
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::continueDidReceiveResponse):
(WebKit::NetworkLoad::sharedDidReceiveResponse):
(WebKit::NetworkLoad::sharedWillSendRedirectedRequest):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::didReceiveResponseAsync):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/NetworkLoadClient.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::abort):
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/PingLoad.h:
- NetworkProcess/cache/NetworkCacheCoders.h:
(WebKit::NetworkCache::Coder<Optional<T>>::encode):
(WebKit::NetworkCache::Coder<Optional<T>>::decode):
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::didCompleteWithError):
(WebKit::NetworkDataTask::didReceiveResponse):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::url):
(WebKit::WebFrame::certificateInfo):
(WebKit::WebFrame::innerText):
- 3:00 PM Changeset in webkit [201942] by
-
- 9 edits in trunk/Source
Add SPI to disable spellchecking on auto-fillable text fields
https://bugs.webkit.org/show_bug.cgi?id=158611
Reviewed by Anders Carlsson.
Source/WebCore:
Added a boolean flag m_isSpellCheckingEnabled to HTMLInputElement. This flag defaults to true, and can be set
to false by WebKit2 C API.
- editing/Editor.cpp:
(WebCore::Editor::isSpellCheckingEnabledFor): Fixed a bug that we were calling isSpellCheckingEnabled on
the div inside an input element's shadow tree instead of the input element itself.
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::HTMLInputElement): Initialize m_spellcheckEnabled to true (it's a bit field).
(WebCore::HTMLInputElement::isSpellCheckingEnabled): Added. Return false if m_spellcheckEnabled is false.
- html/HTMLInputElement.h:
(WebCore::HTMLInputElement::setSpellcheckEnabled): Added.
Source/WebKit2:
Added WKBundleNodeHandleSetHTMLInputElementSpellcheckEnabled to disable spellchecking on a text field.
This is used by WebKit2 client which desires to disable spellchecking and notably autocorrection on
login forms, etc... where such feature would interfere with user's actions.
- WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:
(WKBundleNodeHandleSetHTMLInputElementSpellcheckEnabled): Added.
- WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
- WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::InjectedBundleNodeHandle::setHTMLInputElementSpellcheckEnabled): Added.
- WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
- 2:26 PM Changeset in webkit [201941] by
-
- 20 edits2 adds in trunk
Introduce WTF::UniqueRef
https://bugs.webkit.org/show_bug.cgi?id=158596
Reviewed by Brady Eidson.
Source/WebCore:
No new tests. No change in behavior.
- inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::overlayPage):
- loader/EmptyClients.cpp:
(WebCore::fillWithEmptyClients):
- page/Page.cpp:
(WebCore::Page::Page):
- page/Page.h:
(WebCore::Page::canStartMedia):
(WebCore::Page::editorClient):
(WebCore::Page::plugInClient):
(WebCore::Page::mainFrame):
(WebCore::Page::groupPtr): Deleted.
- page/PageConfiguration.cpp:
(WebCore::PageConfiguration::PageConfiguration):
- page/PageConfiguration.h:
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
Source/WebKit/mac:
- WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
Source/WebKit/win:
- WebView.cpp:
(WebView::initWithFrame):
Source/WebKit2:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_shouldDispatchFakeMouseMoveEvents):
Source/WTF:
WTF::UniqueRef is like a std::unique_ptr that is guaranteed to be non-null.
std::make_unique returns a non-null value that is put into a std::unique_ptr, a type
that could contain null values. To be able to pass such values around and store them
without wondering if they are null, we now have WTF::UniqueRef which cannot be null.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/UniqueRef.h: Added.
(WTF::makeUniqueRef):
(WTF::UniqueRef::UniqueRef):
(WTF::UniqueRef::get):
(WTF::UniqueRef::operator&):
(WTF::UniqueRef::operator->):
Tools:
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/UniqueRef.cpp: Added.
(TestWebKitAPI::B::B):
(TestWebKitAPI::C::C):
(TestWebKitAPI::function):
(TestWebKitAPI::TEST):
- 2:01 PM Changeset in webkit [201940] by
-
- 1 edit3 adds in trunk/LayoutTests
Add an IDB leak test.
https://bugs.webkit.org/show_bug.cgi?id=158632
Reviewed by Alex Christensen.
- storage/indexeddb/modern/leak-1-expected.txt: Added.
- storage/indexeddb/modern/leak-1.html: Added.
- storage/indexeddb/modern/resources/leak-1.js: Added.
- 1:59 PM Changeset in webkit [201939] by
-
- 2 edits in trunk/Source/WebCore
Web Inspector: Cleanup InspectorIndexedDBAgent a bit
https://bugs.webkit.org/show_bug.cgi?id=158598
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-10
Reviewed by Darin Adler.
- inspector/InspectorIndexedDBAgent.cpp:
- 1:38 PM Changeset in webkit [201938] by
-
- 8 edits4 adds in trunk/Tools
Refactor TestWebKitAPI to allow just testing WTF
https://bugs.webkit.org/show_bug.cgi?id=158625
Reviewed by Tim Horton.
Extract all the WTF tests into a new target to allow a faster build / test / fix
cycle when working on WTF bugs and features.
By callingrun-api-tests --wtf-only, you don't need to have a build of JavaScriptCore/WebCore/etc
to test WTF only changes.
- Scripts/build-api-tests:
- Scripts/run-api-tests:
(buildTestTool):
(testToolPaths):
Add new options to build-api-tests and run-api-tests to only build/run the WTF test runner.
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/Configurations/TestWTF.xcconfig: Added.
- TestWebKitAPI/Configurations/TestWTFLibrary.xcconfig: Added.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
Add two new targets, TestWTFLibrary which contains all the WTF tests, and TestWTF,
the test runner that runs the WTF tests.
- TestWebKitAPI/Tests/WTF/RunLoop.cpp:
Use Utilities.h rather than PlatformUtilities.h.
- TestWebKitAPI/Utilities.h: Added.
- TestWebKitAPI/PlatformUtilities.h:
- TestWebKitAPI/cocoa/PlatformUtilitiesCocoa.mm:
- TestWebKitAPI/cocoa/UtilitiesCocoa.mm: Added.
Move the sleep and run functions into a new Utilities.h/cpp file. This file contains utilities
that don't depend on anything in the WebKit project.
- 12:59 PM Changeset in webkit [201937] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: rendering frames timeline "60fps" horizontal guide is mispositioned after switching timeline modes
https://bugs.webkit.org/show_bug.cgi?id=158587
<rdar://problem/26728174>
Reviewed by Timothy Hatcher.
When the view mode changes we iterate over all overview graphs, updating
their visibility as needed. Graphs being shown perform layout, even though
the overview's state is in transition: its offset height may still change.
A simple fix is to use TimelineOverviewGraph.height instead of the graph
element's offset height when performing layout.
- UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype.layout):
- 12:56 PM Changeset in webkit [201936] by
-
- 7 edits in trunk/Source/JavaScriptCore
The backend should be happy to compile Unreachable even if AI didn't prove it to be unreachable
https://bugs.webkit.org/show_bug.cgi?id=158631
Reviewed by Keith Miller.
We've been slowly making the DFG Unreachable opcode behave like a grown-up. When we first
added it, it was a hack for Throw, and we could always rely on AI proving that Unreachable
was not reachable. But then we started using Unreachable as a proper Unreachable opcode,
like Oops in B3 for example, which has a more nuanced meaning: you use it whenever you
emit code that *you* know will not return, and you need some way of terminating the basic
block. The DFG is not a proof-carrying compiler, and it never will be. So, when you have
proved that something is not reachable, you should be able to use Unreachable even if
there is no guarantee that the compiler will later be able to replicate your proof. This
means that the backend may find itself compiling Unreachable because AI did not prove that
it was unreachable.
Prior to this change, we would crash compiling Unreachable because we would rely on AI
preventing us from reaching Unreachable in the backend. But that's silly! We don't want
users of Unreachable to have to also convince AI that their Unreachable is really
Unreachable.
This fixes crashes on real websites. I couldn't work out how to turn them into a reduced
test.
- assembler/AbortReason.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitInvalidationPoint):
(JSC::DFG::SpeculativeJIT::unreachable):
(JSC::DFG::SpeculativeJIT::terminateSpeculativeExecution):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compilePutDynamicVar):
(JSC::FTL::DFG::LowerDFGToB3::compileUnreachable):
(JSC::FTL::DFG::LowerDFGToB3::compareEqObjectOrOtherToObject):
- 12:42 PM Changeset in webkit [201935] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION (r201538): Web Inspector: 1px gap above timeline progress view
https://bugs.webkit.org/show_bug.cgi?id=158626
Reviewed by Joseph Pecoraro.
Adjust progress view top position to account for grid border changes.
- UserInterface/Views/TimelineRecordingContentView.css:
(.content-view.timeline-recording > .content-browser .recording-progress):
- 12:41 PM Changeset in webkit [201934] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION (r201538): Web Inspector: Border under JS Call Trees content view is too thick
https://bugs.webkit.org/show_bug.cgi?id=158624
<rdar://problem/26743633>
Reviewed by Joseph Pecoraro.
Remove top border from <th> elements.
- UserInterface/Views/ProfileView.css:
(.profile > .data-grid th): Deleted.
- 11:49 AM Changeset in webkit [201933] by
-
- 2 edits2 deletes in trunk/Source/WebKit2
Remove CommandLine class
https://bugs.webkit.org/show_bug.cgi?id=158628
Reviewed by Tim Horton.
- Shared/CommandLine.h: Removed.
(WebKit::CommandLine::operator[]): Deleted.
- Shared/posix/CommandLinePOSIX.cpp: Removed.
(WebKit::CommandLine::parse): Deleted.
- WebKit2.xcodeproj/project.pbxproj:
- 11:49 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 11:49 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 11:43 AM Changeset in webkit [201932] by
-
- 2 edits in trunk/Tools
REGRESSION(r201928?) API test WTF.StringOperators failing
https://bugs.webkit.org/show_bug.cgi?id=158623
Unreviewed, but buddy coded with Alex Christensen.
- TestWebKitAPI/Tests/WTF/CrossThreadTask.cpp:
(TestWebKitAPI::LifetimeLogger::fullName): Only one file in all of TestWebKitAPI is allowed
to use string concatenation, otherwise the linker will mess up on the symbol related to
this bizarre WTF_STRINGTYPEADAPTER_COPIED_WTF_STRING macro expansion.
- 11:41 AM Changeset in webkit [201931] by
-
- 6 edits in trunk/LayoutTests
[GTK] Unreviewed gardening.
- TestExpectations: shadow-dom tests timeout on the GTK port.
Update the general expectations file to include also Timeout as
an expected failure.
- platform/gtk/TestExpectations: Since r200320 resource-timing feature is a runtime flag and this causes failures.
Remove also one test that has been removed.
- platform/gtk/fast/table/border-collapsing/cached-change-row-border-width-expected.txt: rebaseline after r201234
- platform/gtk/fast/table/border-collapsing/cached-change-tbody-border-width-expected.txt: rebaseline after r201234
- platform/gtk/fast/table/max-width-integer-overflow-expected.txt: rebaseline after r201234
- 11:17 AM Changeset in webkit [201930] by
-
- 8 edits3 adds in trunk
Origin header is not included in CORS requests for preloaded cross-origin resources
https://bugs.webkit.org/show_bug.cgi?id=155761
<rdar://problem/25351850>
Reviewed by Alex Christensen.
Source/WebCore:
Making HTML preloader fully aware of crossorigin attribute value.
Introducing CachedResourceRequest::setAsPotentiallyCrossOrigin as a helper routine to activate CORS mode.
Making HTMLLinkElement and HTMLResourcePreloader use that routine.
Making TokenPreloadScanner store the crossorigin attribute value in preload requests.
Making TokenPreloadScanner store the crossorigin attribute value for link elements.
Test: http/tests/security/cross-origin-css-9.html
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
- html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
- html/parser/HTMLResourcePreloader.cpp:
(WebCore::crossOriginModeAllowsCookies):
(WebCore::PreloadRequest::resourceRequest):
- html/parser/HTMLResourcePreloader.h:
(WebCore::PreloadRequest::setCrossOriginMode):
(WebCore::PreloadRequest::PreloadRequest): Deleted.
(WebCore::PreloadRequest::resourceType): Deleted.
- loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::setAsPotentiallyCrossOrigin):
- loader/cache/CachedResourceRequest.h:
LayoutTests:
- http/tests/security/cross-origin-css-9-expected.txt: Added.
- http/tests/security/cross-origin-css-9.html: Added.
- http/tests/security/resources/get-css-if-origin-header.php: Added.
- 11:01 AM Changeset in webkit [201929] by
-
- 3 edits in trunk/Source/WebKit2
[iOS WK2] Rare RELEASE_ASSERT under RemoteLayerTreeDrawingArea::flushLayers()
https://bugs.webkit.org/show_bug.cgi?id=158622
rdar://problem/26609452
Reviewed by Tim Horton.
It's possible for a CADisplayLink to fire after being paused sometimes, possibly
when an app is running another CADisplayLink whose callback takes some time. When
this happens, RemoteLayerTreeDrawingAreaProxy could erroneously send a second
didUpdate() to the web process between commits, which would clear the m_waitingForBackingStoreSwap
flag too early, and allow a subsequent RemoteLayerTreeDrawingArea::flushLayers()
to proceed when the m_pendingBackingStoreFlusher was still flushing.
Fix by preventing two didUpdates from being sent from the UI process between
commits.
Not easily testable.
- UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
- UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
- 10:04 AM Changeset in webkit [201928] by
-
- 2 edits in trunk/Tools
WTF_CrossThreadTask.Basic fails in all non mac ports.
https://bugs.webkit.org/show_bug.cgi?id=158612
Reviewed by Alex Christensen.
The test is very sensitive to argument evaluation order which is explicitly undefined in C++.
Instead, we should just count the appropriate events to forget their order.
- TestWebKitAPI/Tests/WTF/CrossThreadTask.cpp:
(TestWebKitAPI::LifetimeLogger::LifetimeLogger):
(TestWebKitAPI::LifetimeLogger::~LifetimeLogger):
(TestWebKitAPI::LifetimeLogger::isolatedCopy):
(TestWebKitAPI::LifetimeLogger::fullName):
(TestWebKitAPI::testFunction):
(TestWebKitAPI::TEST):
(TestWebKitAPI::LifetimeLogger::log): Deleted.
(TestWebKitAPI::LifetimeLogger::takeLogStr): Deleted.
- 9:45 AM Changeset in webkit [201927] by
-
- 2 edits in trunk/LayoutTests
Marking fast/hidpi/hidpi-3x-device-pixel-ratio.html as failing on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=158618
Unreviewed test gardening.
- platform/ios-simulator/TestExpectations:
- 9:19 AM Changeset in webkit [201926] by
-
- 5 edits in trunk
ErrorEvent / ProgressEvent should be exposed to workers
https://bugs.webkit.org/show_bug.cgi?id=158606
Reviewed by Brady Eidson.
Source/WebCore:
ErrorEvent / ProgressEvent should be exposed to workers:
- https://html.spec.whatwg.org/multipage/webappapis.html#errorevent
- https://xhr.spec.whatwg.org/#interface-progressevent
Firefox and Chrome both already expose those.
No new tests, rebaselined existing test.
- dom/ErrorEvent.idl:
- dom/ProgressEvent.idl:
LayoutTests:
Rebaseline test.
- js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
- 7:47 AM Changeset in webkit [201925] by
-
- 4 edits in trunk
MessagePort should be exposed to workers
https://bugs.webkit.org/show_bug.cgi?id=158607
Reviewed by Brady Eidson.
Source/WebCore:
MessagePort should be exposed to workers:
https://html.spec.whatwg.org/multipage/comms.html#messageport
Firefox and Chrome both already expose it.
No new tests, rebaselined existing test.
- dom/MessagePort.idl:
LayoutTests:
Rebaseline test.
- js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
- 6:26 AM Changeset in webkit [201924] by
-
- 5 edits2 adds in trunk/Source/WebCore
Move preflight check code outside of DocumentThreadableLoader
https://bugs.webkit.org/show_bug.cgi?id=158425
Reviewed by Darin Adler.
Moving preflight check code in its own class.
This allows code to be easier to read, use/reuse and update.
Behavior should be the same as before except in the case of a preflight response
being a 3XX redirect response.
Before this patch, the 3XX response was directly passed to the code processing regular responses.
To keep compatibility with existing tests, a didFailRedirectCheck callback is called.
This should be change to a preflight failure.
Covered by existing tests.
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- loader/CrossOriginPreflightChecker.cpp: Added.
(WebCore::CrossOriginPreflightChecker::CrossOriginPreflightChecker):
(WebCore::CrossOriginPreflightChecker::~CrossOriginPreflightChecker):
(WebCore::CrossOriginPreflightChecker::handleLoadingFailure):
(WebCore::CrossOriginPreflightChecker::validatePreflightResponse):
(WebCore::CrossOriginPreflightChecker::notifyFinished):
(WebCore::CrossOriginPreflightChecker::startPreflight):
(WebCore::CrossOriginPreflightChecker::doPreflight):
(WebCore::CrossOriginPreflightChecker::redirectReceived):
(WebCore::CrossOriginPreflightChecker::setDefersLoading):
(WebCore::CrossOriginPreflightChecker::isXMLHttpRequest):
- loader/CrossOriginPreflightChecker.h: Added.
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::create):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight):
(WebCore::DocumentThreadableLoader::setDefersLoading):
(WebCore::DocumentThreadableLoader::clearResource):
(WebCore::DocumentThreadableLoader::didReceiveResponse):
(WebCore::DocumentThreadableLoader::didReceiveData):
(WebCore::DocumentThreadableLoader::notifyFinished):
(WebCore::DocumentThreadableLoader::didFinishLoading):
(WebCore::DocumentThreadableLoader::didFail):
(WebCore::DocumentThreadableLoader::preflightSuccess):
(WebCore::DocumentThreadableLoader::preflightFailure):
(WebCore::DocumentThreadableLoader::loadRequest):
(WebCore::DocumentThreadableLoader::responseReceived): Deleted.
(WebCore::DocumentThreadableLoader::dataReceived): Deleted.
(WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy): Deleted.
- loader/DocumentThreadableLoader.h:
(WebCore::DocumentThreadableLoader::options):
(WebCore::DocumentThreadableLoader::isLoading):
(WebCore::DocumentThreadableLoader::document):
- 5:58 AM Changeset in webkit [201923] by
-
- 7 edits in trunk/Source/WebKit2
[Threaded Compositor] Content and viewport sizes are mixed
https://bugs.webkit.org/show_bug.cgi?id=158564
Reviewed by Žan Doberšek.
Make ThreadedCoordinatedLayerTreeHost::sizeDidChange() update the viewport size for consistency with all other
LayerTreeHost implementations and rename viewportSizeChanged() as contentsSizeChanged() and update the contents
size.
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::contentsSizeChanged): Remove ifdefed code here, the drawing area is notified two lines below.
- WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
(WebKit::CoordinatedDrawingArea::mainFrameContentSizeChanged): Update the viewport size to the contents size
only when using a fixed layout here instead of in cross-platform code.
- WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::contentsSizeChanged):
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange):
(WebKit::ThreadedCoordinatedLayerTreeHost::viewportSizeChanged): Deleted.
- WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
- WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::mainFrameContentSizeChanged): Call LayerTreeHost::contentsSizeChanged().
(WebKit::DrawingAreaImpl::updateBackingStoreState): Remove ifdefed code for the threadecd compositor since it's
now consistent with all other LayerTreeHost implementations.
- WebProcess/WebPage/LayerTreeHost.h:
- 5:52 AM Changeset in webkit [201922] by
-
- 5 edits in trunk/Source/WebKit2
[Threaded Compositor] Make it clear that compositing thread operations are always scheduled from the main thread
https://bugs.webkit.org/show_bug.cgi?id=158562
Reviewed by Žan Doberšek.
The code is written as if the compositor thread could also call callOnCompositingRunLoop() which makes the code
confusing. This patch no longer checks if the task was scheduled in the compositing thread, and instead it adds
an ASSERT to ensure it's always called from the main thread as expected. It also adds some more ASSERTS to ensure
and clarify the methods are called from the expected thread.
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:
(WebKit::CompositingRunLoop::performTask):
(WebKit::CompositingRunLoop::callOnCompositingRunLoop): Deleted.
- Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing):
(WebKit::ThreadedCompositor::setDeviceScaleFactor):
(WebKit::ThreadedCompositor::didChangeViewportSize):
(WebKit::ThreadedCompositor::didChangeViewportAttribute):
(WebKit::ThreadedCompositor::didChangeContentsSize):
(WebKit::ThreadedCompositor::scrollTo):
(WebKit::ThreadedCompositor::scrollBy):
(WebKit::ThreadedCompositor::glContext):
(WebKit::ThreadedCompositor::didChangeVisibleRect):
(WebKit::ThreadedCompositor::renderLayerTree):
(WebKit::ThreadedCompositor::updateSceneState):
(WebKit::ThreadedCompositor::callOnCompositingThread): Deleted.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
- 5:50 AM Changeset in webkit [201921] by
-
- 2 edits in trunk/Source/WebKit2
[GTK] Browser plugins crash under Wayland
https://bugs.webkit.org/show_bug.cgi?id=157605
Reviewed by Michael Catanzaro.
Fail the initialization of windowed plugins if we don't have a platform implementation.
- WebProcess/Plugins/Netscape/unix/NetscapePluginUnix.cpp:
(WebKit::NetscapePlugin::platformPostInitialize):
- 2:15 AM Changeset in webkit [201920] by
-
- 5 edits2 adds in trunk
WebRTC: Imlement MediaEndpointPeerConnection::createAnswer()
https://bugs.webkit.org/show_bug.cgi?id=158566
Reviewed by Eric Carlson.
Source/WebCore:
Add the MediaEndpointPeerConnection implementation of RTCPeerConnection.createAnswer [1].
createAnswer() creates a 'reply' to an remote offer set with setRemoteDescription(),
completes the offer/answer dialog and brings the RTCPeerConnection back to the 'stable'
signaling state.
[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#dom-rtcpeerconnection-createanswer
Test: fast/mediastream/RTCPeerConnection-inspect-answer.html
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::createOfferTask):
Align creation of RTCSessionDescription with createAnswerTask.
(WebCore::MediaEndpointPeerConnection::createAnswer):
(WebCore::MediaEndpointPeerConnection::createAnswerTask):
Add Implementation.
- Modules/mediastream/MediaEndpointPeerConnection.h:
LayoutTests:
Add test for RTCPeerConnection.createAnswer.
- fast/mediastream/RTCPeerConnection-inspect-answer-expected.txt: Added.
- fast/mediastream/RTCPeerConnection-inspect-answer.html: Added.
Generate two answers, one with audio only and a second with audio and video, and inspect
the result.
- platform/mac/TestExpectations:
Skip tests for mac that require building with WEB_RTC enabled.
- 12:41 AM Changeset in webkit [201919] by
-
- 5 edits2 adds in trunk
[css-grid] CRASH when getting the computed style of a grid with only absolutely positioned children
https://bugs.webkit.org/show_bug.cgi?id=158537
Reviewed by Darin Adler.
Source/WebCore:
Absolute positioning occurs after layout of the grid and its in-flow contents, and does not
contribute to the sizing of any grid tracks or affect the size/configuration of the grid in
any way. This means that we should treat as empty any grid whose only children are
absolutely positioned items.
Since r201510 empty grids are no longer internally represented by a 1x1 matrix. As we were
not considering grids-with-only-absolutely-positioned-children as empty, we were trying to
access some invalid position in the internal representation of the grid triggering an ASSERT
in debug builds and a crash in release.
Test: fast/css-grid-layout/grid-only-abspos-item-computed-style-crash.html
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackList):
LayoutTests:
- fast/css-grid-layout/grid-only-abspos-item-computed-style-crash-expected.txt: Added.
- fast/css-grid-layout/grid-only-abspos-item-computed-style-crash.html: Added.
- fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt: Adjusted, grid-template
does create explicit tracks so we should return 0px instead of none.
- fast/css-grid-layout/grid-template-shorthand-get-set.html: Ditto.
- 12:37 AM Changeset in webkit [201918] by
-
- 4 edits in trunk
DOMException should be exposed to workers
https://bugs.webkit.org/show_bug.cgi?id=158608
Reviewed by Alex Christensen.
Source/WebCore:
DOMException should be exposed to workers:
https://heycam.github.io/webidl/#es-DOMException-call
Both Firefox and Chrome expose DOMException to workers already.
No new tests, rebaselined existing test.
- dom/DOMCoreException.idl:
LayoutTests:
Rebaseline existing test.
- js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
Jun 9, 2016:
- 11:50 PM Changeset in webkit [201917] by
-
- 1 edit2 deletes in trunk/WebKitLibraries
Clean up Visual Studio properties files after switching to CMake.
- win/tools/WinTools.make: Removed.
- win/tools/vsprops: Removed.
- win/tools/vsprops/FeatureDefines.props: Removed.
- win/tools/vsprops/FeatureDefinesCairo.props: Removed.
- win/tools/vsprops/GStreamer32.props: Removed.
- win/tools/vsprops/GStreamer64.props: Removed.
- win/tools/vsprops/GStreamerCommon.props: Removed.
- win/tools/vsprops/WinCairo.props: Removed.
- win/tools/vsprops/cURL.props: Removed.
- win/tools/vsprops/common.props: Removed.
- win/tools/vsprops/debug.props: Removed.
- win/tools/vsprops/debug_wincairo.props: Removed.
- win/tools/vsprops/debugsuffix.props: Removed.
- win/tools/vsprops/production.props: Removed.
- win/tools/vsprops/release.props: Removed.
- 11:48 PM Changeset in webkit [201916] by
-
- 2 edits in trunk/Source/WebCore
Fix CMake build.
- PlatformMac.cmake:
- 11:36 PM Changeset in webkit [201915] by
-
- 3 edits in trunk/Source/WebCore
Fix AppleWin build after r201901.
https://bugs.webkit.org/show_bug.cgi?id=119839
- platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::backingStoreAttached):
(PlatformCALayerWin::userInteractionEnabled):
(PlatformCALayerWin::setUserInteractionEnabled):
(PlatformCALayerWin::geometryFlipped):
- platform/graphics/ca/win/PlatformCALayerWin.h:
- 11:11 PM Changeset in webkit [201914] by
-
- 3 edits9 copies5 deletes in trunk/Tools
Clean up Tools *.vcxproj after switching to CMake.
- DumpRenderTree/DumpRenderTree.sln: Removed.
- DumpRenderTree/DumpRenderTree.vcxproj: Removed.
- DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin: Removed.
- DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/TestNetscapePlugin.def: Removed.
- DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/TestNetscapePlugin.rc: Removed.
- DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/resource.h: Removed.
- DumpRenderTree/PlatformWin.cmake:
- DumpRenderTree/win/TestNetscapePlugin.def: Copied from DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/TestNetscapePlugin.def.
- DumpRenderTree/win/TestNetscapePlugin.rc: Copied from DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/TestNetscapePlugin.rc.
- DumpRenderTree/win/resource.h: Copied from DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/resource.h.
- MiniBrowser/MiniBrowser.vcxproj: Removed.
- MiniBrowser/MiniBrowser.vcxproj/MiniBrowser.ico: Removed.
- MiniBrowser/MiniBrowser.vcxproj/MiniBrowser.rc: Removed.
- MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLib.rc: Removed.
- MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLibResource.h: Removed.
- MiniBrowser/MiniBrowser.vcxproj/MiniBrowserResource.h: Removed.
- MiniBrowser/MiniBrowser.vcxproj/small.ico: Removed.
- MiniBrowser/win/CMakeLists.txt:
- MiniBrowser/win/MiniBrowser.ico: Copied from MiniBrowser/MiniBrowser.vcxproj/MiniBrowser.ico.
- MiniBrowser/win/MiniBrowser.rc: Copied from MiniBrowser/MiniBrowser.vcxproj/MiniBrowser.rc.
- MiniBrowser/win/MiniBrowserLib.rc: Copied from MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLib.rc.
- MiniBrowser/win/MiniBrowserLibResource.h: Copied from MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLibResource.h.
- MiniBrowser/win/MiniBrowserResource.h: Copied from MiniBrowser/MiniBrowser.vcxproj/MiniBrowserResource.h.
- MiniBrowser/win/small.ico: Copied from MiniBrowser/MiniBrowser.vcxproj/small.ico.
- WebKitTestRunner/WebKitTestRunner.sln: Removed.
- win/DLLLauncher/DLLLauncherWinCairo.props: Removed.
- 11:06 PM Changeset in webkit [201913] by
-
- 8 edits1 add in trunk
AX: VoiceOver Unable to View Download Progress or Completion Status for Mail Attachments
https://bugs.webkit.org/show_bug.cgi?id=158581
Reviewed by Darin Adler.
Source/WebCore:
Update attachment element accessibility so that:
1) the action name comes first to match UI
2) on iOS, it has the updates frequently trait
Make sure this test now runs on iOS as well.
Modified tests: accessibility/attachment-element.html
- accessibility/AccessibilityAttachment.cpp:
(WebCore::AccessibilityAttachment::accessibilityText):
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
(-[WebAccessibilityObjectWrapper accessibilityTraits]):
(-[WebAccessibilityObjectWrapper accessibilityValue]):
(-[WebAccessibilityObjectWrapper accessibilityIsAttachmentElement]):
(-[WebAccessibilityObjectWrapper accessibilityIsComboBox]):
LayoutTests:
- accessibility/attachment-element-expected.txt:
- accessibility/attachment-element.html:
- accessibility/ios-simulator/attributed-string-for-range-expected.txt:
- platform/ios-simulator/TestExpectations:
- platform/ios-simulator/accessibility/attachment-element-expected.txt: Added.
- 10:53 PM Changeset in webkit [201912] by
-
- 2 edits1 copy4 deletes in trunk/Source/JavaScriptCore
Clean up JavaScriptCore.vcxproj directory after switching to CMake.
- JavaScriptCore.vcxproj/LLInt: Removed.
- JavaScriptCore.vcxproj/LLInt/LLIntAssembly: Removed.
- JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.make: Removed.
- JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.vcxproj: Removed.
- JavaScriptCore.vcxproj/LLInt/LLIntAssembly/build-LLIntAssembly.pl: Removed.
- JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets: Removed.
- JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.make: Removed.
- JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.vcxproj: Removed.
- JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/build-LLIntDesiredOffsets.pl: Removed.
- JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor: Removed.
- JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractor.vcxproj: Removed.
- JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractorCommon.props: Removed.
- JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractorDebug.props: Removed.
- JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractorProduction.props: Removed.
- JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractorRelease.props: Removed.
- JavaScriptCore.vcxproj/jsc: Removed.
- JavaScriptCore.vcxproj/jsc/DLLLauncherMain.cpp: Removed.
- JavaScriptCore.vcxproj/jsc/DLLLauncherWinCairo.props: Removed.
- JavaScriptCore.vcxproj/jsc/jsc.vcxproj: Removed.
- JavaScriptCore.vcxproj/jsc/jsc.vcxproj.filters: Removed.
- JavaScriptCore.vcxproj/jsc/jscCommon.props: Removed.
- JavaScriptCore.vcxproj/jsc/jscDebug.props: Removed.
- JavaScriptCore.vcxproj/jsc/jscLauncher.vcxproj: Removed.
- JavaScriptCore.vcxproj/jsc/jscLauncherPostBuild.cmd: Removed.
- JavaScriptCore.vcxproj/jsc/jscLauncherPreBuild.cmd: Removed.
- JavaScriptCore.vcxproj/jsc/jscLauncherPreLink.cmd: Removed.
- JavaScriptCore.vcxproj/jsc/jscPostBuild.cmd: Removed.
- JavaScriptCore.vcxproj/jsc/jscPreBuild.cmd: Removed.
- JavaScriptCore.vcxproj/jsc/jscPreLink.cmd: Removed.
- JavaScriptCore.vcxproj/jsc/jscProduction.props: Removed.
- JavaScriptCore.vcxproj/jsc/jscRelease.props: Removed.
- JavaScriptCore.vcxproj/testRegExp: Removed.
- JavaScriptCore.vcxproj/testRegExp/testRegExp.vcxproj: Removed.
- JavaScriptCore.vcxproj/testRegExp/testRegExp.vcxproj.filters: Removed.
- JavaScriptCore.vcxproj/testRegExp/testRegExpCommon.props: Removed.
- JavaScriptCore.vcxproj/testRegExp/testRegExpDebug.props: Removed.
- JavaScriptCore.vcxproj/testRegExp/testRegExpLauncher.vcxproj: Removed.
- JavaScriptCore.vcxproj/testRegExp/testRegExpLauncherPostBuild.cmd: Removed.
- JavaScriptCore.vcxproj/testRegExp/testRegExpLauncherPreBuild.cmd: Removed.
- JavaScriptCore.vcxproj/testRegExp/testRegExpLauncherPreLink.cmd: Removed.
- JavaScriptCore.vcxproj/testRegExp/testRegExpPostBuild.cmd: Removed.
- JavaScriptCore.vcxproj/testRegExp/testRegExpPreBuild.cmd: Removed.
- JavaScriptCore.vcxproj/testRegExp/testRegExpPreLink.cmd: Removed.
- JavaScriptCore.vcxproj/testRegExp/testRegExpProduction.props: Removed.
- JavaScriptCore.vcxproj/testRegExp/testRegExpRelease.props: Removed.
- JavaScriptCore.vcxproj/testapi: Removed.
- JavaScriptCore.vcxproj/testapi/testapi.vcxproj: Removed.
- JavaScriptCore.vcxproj/testapi/testapi.vcxproj.filters: Removed.
- JavaScriptCore.vcxproj/testapi/testapiCommon.props: Removed.
- JavaScriptCore.vcxproj/testapi/testapiCommonCFLite.props: Removed.
- JavaScriptCore.vcxproj/testapi/testapiDebug.props: Removed.
- JavaScriptCore.vcxproj/testapi/testapiDebugCFLite.props: Removed.
- JavaScriptCore.vcxproj/testapi/testapiLauncher.vcxproj: Removed.
- JavaScriptCore.vcxproj/testapi/testapiLauncherPostBuild.cmd: Removed.
- JavaScriptCore.vcxproj/testapi/testapiLauncherPreBuild.cmd: Removed.
- JavaScriptCore.vcxproj/testapi/testapiLauncherPreLink.cmd: Removed.
- JavaScriptCore.vcxproj/testapi/testapiPostBuild.cmd: Removed.
- JavaScriptCore.vcxproj/testapi/testapiPreBuild.cmd: Removed.
- JavaScriptCore.vcxproj/testapi/testapiPreLink.cmd: Removed.
- JavaScriptCore.vcxproj/testapi/testapiProduction.props: Removed.
- JavaScriptCore.vcxproj/testapi/testapiRelease.props: Removed.
- JavaScriptCore.vcxproj/testapi/testapiReleaseCFLite.props: Removed.
- shell/DLLLauncherMain.cpp: Copied from JavaScriptCore.vcxproj/jsc/DLLLauncherMain.cpp.
- shell/PlatformWin.cmake:
- 10:42 PM Changeset in webkit [201911] by
-
- 1 edit2 deletes in trunk/Source/WebCore
Clean up WebCore.vcxproj after switching to CMake.
- WebCore.vcxproj/QTMovieWin: Removed.
- WebCore.vcxproj/QTMovieWin/QTMovieWinCairoDebug.props: Removed.
- WebCore.vcxproj/QTMovieWin/QTMovieWinCairoRelease.props: Removed.
- WebCore.vcxproj/QTMovieWin/QTMovieWinCommon.props: Removed.
- WebCore.vcxproj/QTMovieWin/QTMovieWinDebug.props: Removed.
- WebCore.vcxproj/QTMovieWin/QTMovieWinPostBuild.cmd: Removed.
- WebCore.vcxproj/QTMovieWin/QTMovieWinPreBuild.cmd: Removed.
- WebCore.vcxproj/QTMovieWin/QTMovieWinPreLink.cmd: Removed.
- WebCore.vcxproj/QTMovieWin/QTMovieWinProduction.props: Removed.
- WebCore.vcxproj/QTMovieWin/QTMovieWinRelease.props: Removed.
- WebCore.vcxproj/xcopy.excludes: Removed.
- 10:39 PM Changeset in webkit [201910] by
-
- 1 edit1 move in trunk/Source/WebKit/win
Fix Windows build.
- WebKit.resources/resource.h: Removed.
- resource.h: Copied from WebKit.resources/resource.h.
- 10:34 PM Changeset in webkit [201909] by
-
- 2 edits in trunk/Source/WebKit/win
Actually fix Windows build after r201894
https://bugs.webkit.org/show_bug.cgi?id=158588
- WebView.cpp:
(WebView::initWithFrame):
- 10:33 PM Changeset in webkit [201908] by
-
- 3 edits1 copy3 deletes in trunk/Source/WebKit
Clean up WebKit.vcxproj directory after switching to CMake.
Source/WebKit:
- PlatformWin.cmake:
- WebKit.vcxproj/Interfaces: Removed.
- WebKit.vcxproj/WebKit: Removed.
- WebKit.vcxproj/WebKit/resource.h: Removed.
- WebKit.vcxproj/WebKitGUID: Removed.
- WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj: Removed.
- WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj.filters: Removed.
- WebKit.vcxproj/WebKitGUID/WebKitGUIDCommon.props: Removed.
- WebKit.vcxproj/WebKitGUID/WebKitGUIDDebug.props: Removed.
- WebKit.vcxproj/WebKitGUID/WebKitGUIDDebugWinCairo.props: Removed.
- WebKit.vcxproj/WebKitGUID/WebKitGUIDPostBuild.cmd: Removed.
- WebKit.vcxproj/WebKitGUID/WebKitGUIDPreBuild.cmd: Removed.
- WebKit.vcxproj/WebKitGUID/WebKitGUIDProduction.props: Removed.
- WebKit.vcxproj/WebKitGUID/WebKitGUIDRelease.props: Removed.
- WebKit.vcxproj/WebKitGUID/WebKitGUIDReleaseWinCairo.props: Removed.
Source/WebKit/win:
- WebKit.resources/resource.h: Copied from WebKit.vcxproj/WebKit/resource.h.
- 10:27 PM Changeset in webkit [201907] by
-
- 4 edits2 adds in trunk
Hairline borders do not show up on 3x displays.
https://bugs.webkit.org/show_bug.cgi?id=158604
<rdar://problem/26511679>
Reviewed by Simon Fraser.
On a 3x display, when we convert a 1/3px hairline border from float
to LayoutUnit and pixel floor the result, we end up with a 0px width border.
It's because float to LayoutUnit is lossy and since the current kFixedPointDenominator % 3 != 0,
flooring LayoutUnit(1/3px) ends up being 0px. (float: 1/3 -> LayoutUnit: (1/3 - 1/kFixedPointDenominator) -> floor: 0)
This patch eliminates the (unnecessary) float -> LayoutUnit - float conversion on border width.
Source/WebCore:
Test: fast/borders/hidpi-3x-input-hairline-border.html
- rendering/BorderEdge.cpp:
(WebCore::BorderEdge::BorderEdge):
- rendering/BorderEdge.h:
LayoutTests:
- fast/borders/hidpi-3x-input-hairline-border-expected-mismatch.html: Added.
- fast/borders/hidpi-3x-input-hairline-border.html: Added.
- 10:24 PM Changeset in webkit [201906] by
-
- 10 edits2 deletes in trunk
Unreviewed, rolling out r201887.
https://bugs.webkit.org/show_bug.cgi?id=158610
This change caused LayoutTest crashes under GuardMalloc and
ASan (Requested by ryanhaddad on #webkit).
Reverted changeset:
"Deleting a CSSOM style rule invalidates any previously-added
FontFaces"
https://bugs.webkit.org/show_bug.cgi?id=158450
http://trac.webkit.org/changeset/201887
Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-09
- 10:17 PM Changeset in webkit [201905] by
-
- 4 edits in trunk/Source/WebKit/win
Unreviewed build fix after r201894
https://bugs.webkit.org/show_bug.cgi?id=158588
- WebCoreSupport/WebEditorClient.cpp:
(WebEditorClient::~WebEditorClient):
(WebEditorClient::isContinuousSpellCheckingEnabled):
(WebEditorClient::pageDestroyed): Deleted.
- WebCoreSupport/WebEditorClient.h:
- WebView.cpp:
(WebView::initWithFrame):
- 8:31 PM Changeset in webkit [201904] by
-
- 6 edits2 adds in trunk
Add testing support for 3x device scale factor.
https://bugs.webkit.org/show_bug.cgi?id=158597
Reviewed by Simon Fraser.
Set 3x device scale factor on the test canvas when the test url is prefixed with hidpi-3x-.
Tools:
- DumpRenderTree/mac/DumpRenderTree.mm:
(changeWindowScaleIfNeeded):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::updateWindowScaleForTest):
- WebKitTestRunner/TestOptions.cpp:
(WTR::deviceScaleFactorForTest):
(WTR::TestOptions::TestOptions):
(WTR::isHiDPITestPath): Deleted.
- WebKitTestRunner/TestOptions.h:
LayoutTests:
- fast/hidpi/hidpi-3x-device-pixel-ratio-expected.txt: Added.
- fast/hidpi/hidpi-3x-device-pixel-ratio.html: Added.
- 8:20 PM Changeset in webkit [201903] by
-
- 2 edits in trunk/Source/WebCore
Address Darin's review comment on r201898.
https://bugs.webkit.org/show_bug.cgi?id=158576
Reviewed by Darin Adler.
- page/Base64Utilities.h:
- 7:45 PM Changeset in webkit [201902] by
-
- 3 edits in trunk/LayoutTests
REGRESSION(r201823) editing/selection/selection-in-iframe-removed-crash.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=158569
Commit the test fix that was supposed to be landed as a part of r201823,
and remove the flaky test expectation.
- editing/selection/selection-in-iframe-removed-crash.html:
- platform/mac/TestExpectations:
- 7:06 PM Changeset in webkit [201901] by
-
- 16 edits2 adds in trunk
[iOS] -webkit-overflow-scrolling: touch; ignores pointer-events: none;
https://bugs.webkit.org/show_bug.cgi?id=119839
<rdar://problem/9671514>
Patch by Antoine Quint <Antoine Quint> on 2016-06-09
Reviewed by Simon Fraser.
Source/WebCore:
Propagate a "userInteractionEnabled" flag from the Web process which is used to turn off
user interaction on a UIScrollView created for -webkit-overflow-scrolling: touch.
Test: fast/scrolling/ios/touch-scroll-pointer-events-none.html
- platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::GraphicsLayer):
- platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::userInteractionEnabled):
(WebCore::GraphicsLayer::setUserInteractionEnabled):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setUserInteractionEnabled):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateUserInteractionEnabled):
- platform/graphics/ca/GraphicsLayerCA.h:
- platform/graphics/ca/PlatformCALayer.h:
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(PlatformCALayerCocoa::userInteractionEnabled):
(PlatformCALayerCocoa::setUserInteractionEnabled):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAfterDescendants):
Source/WebKit2:
Propagate a "userInteractionEnabled" flag from the Web process which is used to turn off
user interaction on a UIScrollView created for -webkit-overflow-scrolling: touch.
- Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
- Shared/mac/RemoteLayerTreeTransaction.h:
- Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpChangedLayers):
- WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::userInteractionEnabled):
(WebKit::PlatformCALayerRemote::setUserInteractionEnabled):
- WebProcess/WebPage/mac/PlatformCALayerRemote.h:
LayoutTests:
- fast/scrolling/ios/touch-scroll-pointer-events-none-expected.txt: Added.
- fast/scrolling/ios/touch-scroll-pointer-events-none.html: Added.
- 7:03 PM Changeset in webkit [201900] by
-
- 4 edits2 adds in trunk/Source/JavaScriptCore
Rare failure in stress/v8-deltablue-strict.js.ftl-eager
https://bugs.webkit.org/show_bug.cgi?id=158591
Reviewed by Saam Barati.
This is a simple and sensible fix to an amazing compiler bug that previously only
manifested rarely in the v8-deltablue-strict test. It required on average 1000 runs while
the system was under load for the bug to manifest. Fortunately, the bug is 100% repro with
concurrent JIT disabled in the new "constant-fold-multi-get-by-offset-to-get-by-offset-on-
prototype-and-sink-allocation.js" test.
The problem here is that we were allowing ourselves to be super sloppy with the meaning of
the two children of GetByOffset, and to a lesser extent, PutByOffset. The first two
children of these nodes have these meanings:
child1: the storage from which to load (or to which to store)
child2: the logical object base
Normally, child1 == child2, but child1 may point to a node that vends the storage pointer
in case we are using multiple indirections to get to the property. That's fairly common.
Where this gets nutty is that we don't validate the behavior of child1. Previously, the
DFG::Validate phase would accept code that had child1 point to one object and child2 point
to another object. That's bad because then, analyses will assume that we're loading from
one object while we are actually loading from another. One of the fixes is to make
Validate smarter about this, so that future problems with this get caught sooner.
The actual bug was in ConstantFoldingPhase. When we first wrote ConstantFoldingPhase's
logic for converting GetByIds and MultiGetByOffsets to GetByOffset, we assumed that this
was only for non-prototype loads. This was becuase the logic was originally written based
on a static GetByIdStatus analysis, which does not handle prototypes. So, as a shortcut,
we would convert the GetById (or MultiGetByOffset) to a GetByOffset by doing this
shuffling of children:
child1 got the storage pointer, which might be a new GetButterfly node that we created.
child2 got the old value of child1.
The bug was introduced when I later made it possible for a monomorphic prototype
MultiGetByOffset to be converted to a GetByOffset. Then this algorithm would mean that:
child1 got either a pointer to the prototype or a storage pointer derived from the
prototype.
child2 got the old value of child1, which was a pointer to the base object (i.e. not the
prototype).
This happens super rarely because most prototype loads that we can statically reason about
also happen to load constants, so we don't convert to GetByOffset at all. You need the
strange combination of a MultiGetByOffset (not GetById or GetByOffset) on some prototypes
and some static reasoning about the base so that we can convert it to a GetByOffset, but
not enough static reasoning that we can convert it to a constant.
Even if the bad thing happened, then this is not enough for it to cause symptons. If we
did nothing else - like none of the other optimizations succeeded - then this would
be OK because the backend will emit code based on child1, which is right. But disaster
strikes when the code otherwise looks sane enough for ObjectAllocationSinkingPhase to kick
in. This phase operates on child2, as any good phase should: child1 is only interesting
for knowing *how* to load, not *what* we are loading. The phase is right to ignore child1.
So the phase would assume that we are loading the prototype property ("f" in the new test
or "addToGraph" in deltablue) from the sunken base object allocation in the inlined
constructor. The base object has no such property, but the phase conservatively assumes
that it does indeed have such a property. That's just how the phase does things: it is
very abstract and general, so it assumes that the set of properties on an allocation is
the set of properties that accesses to the allocation speak of. Clearly, this GetByOffset
was speaking of the property as being on the allocation. When sinking completed, it would
convert the GetByOffset to the sunken (a.k.a. promoted) property. But nobody stored to
this property on the allocation, so we'd get the bottom value, which is 1927. Why 1927? I
don't remember anymore, but apparently I chose it. It helped here - when I started seeing
that value come up, it took a quick grep to realize that this was the object allocation
sinking phase's bottom value.
The real fix to the bug is to make Node::convertToGetByOffset() take an explicit new base
since its clients will use it to potentially create a load on a different object than the
base of the original operation, as in the relatively new
MultiGetByOffset(prototype)->GetByOffset optimization. As far as I know, the PutByOffset
code did not have the same bug because we don't have any optimizations that turn a PutById
or MultiPutByOffset into a PutByOffset on anything but the base object. But the logical
bug is definitely there: there's code in ConstantFoldingPhase that claims to be able to
convert any node to a PutByOffset on any base, but it actually silently reuses the
original node's child1 as the logical base (i.e. child2). This patch makes all of this
stuff explicit. You can't make this mistake anymore.
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::emitGetByOffset):
(JSC::DFG::ConstantFoldingPhase::emitPutByOffset):
- dfg/DFGNode.h:
(JSC::DFG::Node::convertToGetStack):
(JSC::DFG::Node::convertToGetByOffset):
(JSC::DFG::Node::convertToMultiGetByOffset):
(JSC::DFG::Node::convertToPutByOffset):
- dfg/DFGValidate.cpp:
- tests/stress/constant-fold-multi-get-by-offset-to-get-by-offset-on-prototype-and-sink-allocation.js: Added.
(ThingA):
(ThingB):
(foo):
(bar):
- tests/stress/sink-to-impossible-multi-get-by-offset-on-prototypes.js: Added.
(ThingA):
(ThingB):
(ThingC):
(bar):
(foo):
- 6:54 PM Changeset in webkit [201899] by
-
- 4 edits in trunk
WorkerNavigator property should exist on WorkerGlobalScope
https://bugs.webkit.org/show_bug.cgi?id=158574
<rdar://problem/26725108>
Reviewed by Darin Adler.
Source/WebCore:
WorkerNavigator property should exist on WorkerGlobalScope:
https://html.spec.whatwg.org/multipage/workers.html#the-workernavigator-object
Fixing this gets the number of failures on http://w3c-test.org/workers/interfaces.worker
from 34 to 23.
No new tests, rebaselined existing test.
- page/WorkerNavigator.idl:
LayoutTests:
Rebaseline existing test now that WorkerNavigator is exposed to workers.
- js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
- 6:42 PM Changeset in webkit [201898] by
-
- 12 edits1 move5 adds1 delete in trunk
atob() / btoa() API should be exposed to workers
https://bugs.webkit.org/show_bug.cgi?id=158576
<rdar://problem/26729340>
Reviewed by Sam Weinig.
Source/WebCore:
Expose atob() / btoa() API to workers as per:
https://html.spec.whatwg.org/multipage/webappapis.html#windoworworkerglobalscope
This aligns our behavior with Firefox and Chrome as well.
Test: fast/workers/atob-btoa.html
- CMakeLists.txt:
- DerivedSources.cpp:
- DerivedSources.make:
- PlatformMac.cmake:
- WebCore.xcodeproj/project.pbxproj:
- page/Base64Utilities.cpp: Added.
(WebCore::Base64Utilities::btoa):
(WebCore::Base64Utilities::atob):
- page/Base64Utilities.h: Added.
- page/DOMWindow.cpp:
(WebCore::DOMWindow::find): Deleted.
(WebCore::DOMWindow::offscreenBuffering): Deleted.
(WebCore::DOMWindow::outerHeight): Deleted.
(WebCore::DOMWindow::outerWidth): Deleted.
- page/DOMWindow.h:
- page/DOMWindow.idl:
- page/WindowBase64.idl: Removed.
- page/WindowOrWorkerGlobalScope.idl: Renamed from Source/WebCore/page/WindowTimers.idl.
- workers/WorkerGlobalScope.h:
- workers/WorkerGlobalScope.idl:
LayoutTests:
Add test for atob() / btoa() in workers.
- fast/workers/atob-btoa-expected.txt: Added.
- fast/workers/atob-btoa.html: Added.
- fast/workers/resources/worker-atob-btoa.js: Added.
- 6:11 PM Changeset in webkit [201897] by
-
- 3 edits2 deletes in trunk/Source/WebKit2
Remove OriginAndDatabases.cpp, it's unused
https://bugs.webkit.org/show_bug.cgi?id=158595
Reviewed by Sam Weinig.
- CMakeLists.txt:
- Shared/OriginAndDatabases.cpp: Removed.
(WebKit::OriginAndDatabases::encode): Deleted.
(WebKit::OriginAndDatabases::decode): Deleted.
- Shared/OriginAndDatabases.h: Removed.
- WebKit2.xcodeproj/project.pbxproj:
- 5:42 PM Changeset in webkit [201896] by
-
- 8 edits in trunk/Source/JavaScriptCore
Make some methods const.
https://bugs.webkit.org/show_bug.cgi?id=158594
Reviewed by Benjamin Poulain.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::columnNumberForBytecodeOffset):
(JSC::CodeBlock::expressionRangeForBytecodeOffset):
- bytecode/CodeBlock.h:
- bytecode/ExpressionRangeInfo.h:
(JSC::ExpressionRangeInfo::encodeFatColumnMode):
(JSC::ExpressionRangeInfo::decodeFatLineMode):
(JSC::ExpressionRangeInfo::decodeFatColumnMode):
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::lineNumberForBytecodeOffset):
(JSC::UnlinkedCodeBlock::getLineAndColumn):
(JSC::UnlinkedCodeBlock::expressionRangeForBytecodeOffset):
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::createRareDataIfNecessary):
- interpreter/Interpreter.cpp:
(JSC::Interpreter::isOpcode):
(JSC::StackFrame::computeLineAndColumn):
(JSC::StackFrame::toString):
- interpreter/Interpreter.h:
(JSC::StackFrame::isNative):
- 5:21 PM Changeset in webkit [201895] by
-
- 3 edits in trunk/Source/WebCore
Restrict HTTP/0.9 responses to default ports and cancel HTTP/0.9 resource loads if the document was loaded with another HTTP protocol
https://bugs.webkit.org/show_bug.cgi?id=158589
<rdar://problem/25757454>
Patch by John Wilander <wilander@apple.com> on 2016-06-09
Reviewed by Brent Fulgham.
No new tests. Our layout test environment does not allow for headerless responses
nor does it allow you to set an explicit HTTP/0.9 status header in PHP. I have
manually tested this change with a Python socket setup doing both headerless and
HTTP/0.9 header tests for positive and negative cases.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):
Cancel loads if the request was made to a non-default port.
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::didReceiveResponse):
Cancel loads if the request was made to a non-default port or if the document
was loaded with another protocol. Cancelation is handled as a fail so as to
fire the onerror event and allow sites to handle it gracefully.
- 4:53 PM Changeset in webkit [201894] by
-
- 19 edits in trunk/Source
Clean up EditorClient lifetime
https://bugs.webkit.org/show_bug.cgi?id=158588
Reviewed by Anders Carlsson.
Source/WebCore:
No new tests. This patch does two things, all of which do not change behavior:
- Use a std::unique_ptr<EditorClient> owned by the Page instead of allocating
with new in WebKit/WebKit2 and deleting in WebEditorClient::pageDestroyed.
- Give the Page a PageConfiguration&& instead of a PageConfiguration& in its constructor.
- inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::overlayPage):
- loader/EmptyClients.cpp:
(WebCore::fillWithEmptyClients):
- loader/EmptyClients.h:
(WebCore::EmptyEditorClient::EmptyEditorClient):
(WebCore::EmptyEditorClient::~EmptyEditorClient):
- page/EditorClient.h:
(WebCore::EditorClient::~EditorClient):
- page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::~Page):
(WebCore::Page::setViewMode):
(WebCore::Page::clearUndoRedoOperations):
(WebCore::Page::inLowQualityImageInterpolationMode):
(WebCore::Page::invalidateStylesForAllLinks):
(WebCore::Page::invalidateStylesForLink):
(WebCore::Page::invalidateInjectedStyleSheetCacheInAllFrames):
(WebCore::Page::setDebugger):
(WebCore::Page::setIsVisibleInternal):
(WebCore::Page::setAllowsMediaDocumentInlinePlayback):
- page/Page.h:
(WebCore::Page::canStartMedia):
(WebCore::Page::editorClient):
(WebCore::Page::plugInClient):
(WebCore::Page::mainFrame):
(WebCore::Page::group):
- page/PageConfiguration.cpp:
- page/PageConfiguration.h:
- page/mac/PageMac.mm:
(WebCore::Page::addSchedulePair):
(WebCore::Page::removeSchedulePair):
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
Source/WebKit/mac:
- WebCoreSupport/WebEditorClient.h:
- WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::WebEditorClient):
(WebEditorClient::pageDestroyed): Deleted.
- WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
Source/WebKit2:
- WebProcess/WebCoreSupport/WebEditorClient.cpp:
(WebKit::generateTextCheckingRequestID):
(WebKit::WebEditorClient::shouldDeleteRange):
(WebKit::WebEditorClient::pageDestroyed): Deleted.
- WebProcess/WebCoreSupport/WebEditorClient.h:
(WebKit::WebEditorClient::WebEditorClient):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_shouldDispatchFakeMouseMoveEvents):
- 4:48 PM Changeset in webkit [201893] by
-
- 5 edits in trunk/Source
REGRESSION: Web Inspector: IndexedDB does not show ObjectStore data
https://bugs.webkit.org/show_bug.cgi?id=158592
<rdar://problem/26730696>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-09
Reviewed by Timothy Hatcher.
Source/WebCore:
- inspector/InspectorIndexedDBAgent.cpp:
(WebCore::DataLoader::execute):
Ensure the IDBTransaction is active when attempting to open a cursor.
(WebCore::OpenCursorCallback::handleEvent):
End, when the cursor result is empty, like we do for script results.
Source/WebInspectorUI:
- UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype._noteRowRemoved):
(WebInspector.DataGridNode.prototype._detach):
When rows are removed in the non-Virtual DataGrids, we should
actually remove the row.
- UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
(WebInspector.IndexedDatabaseObjectStoreContentView):
(WebInspector.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData.processEntries):
(WebInspector.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData):
Don't use the delete operator. Use a boolean.
- 4:30 PM Changeset in webkit [201892] by
-
- 5 edits in trunk
ES6: Reusing function name as a parameter name shouldn't throw Syntax Error
https://bugs.webkit.org/show_bug.cgi?id=158575
Reviewed by Benjamin Poulain.
Source/JavaScriptCore:
The check for a parameter with a duplicate name doesn't take into account the
type of the prior variable. Added a check that the duplicate is also a
parameter.
See the relevant spec section at:
http://www.ecma-international.org/ecma-262/6.0/#sec-function-definitions-static-semantics-early-errors
- parser/Parser.h:
(JSC::Scope::declareParameter):
LayoutTests:
Added a new test case.
- js/basic-strict-mode-expected.txt:
- js/script-tests/basic-strict-mode.js:
- 3:55 PM Changeset in webkit [201891] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Support Command-P for quick open
https://bugs.webkit.org/show_bug.cgi?id=158579
<rdar://problem/26726751>
Reviewed by Timothy Hatcher.
- UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
- 3:49 PM Changeset in webkit [201890] by
-
- 4 edits in trunk/Source/WebInspectorUI
REGRESSION (r194717): Web Inspector: Elements tab: an element loses focus when selected by Up/Down key
https://bugs.webkit.org/show_bug.cgi?id=157768
<rdar://problem/26311155>
Reviewed by Timothy Hatcher.
Remove _previousFocusedSection and _newInspectorRuleSelector since it was used only
to focus on a newly created section (added by clicking on "+" button).
Introduce _inspectorSection and _isInspectorSectionPendingFocus.
- UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorBlurActiveEditor): Deleted.
(WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste): Deleted.
No longer needed, it was only used by _previousFocusedSection and _newInspectorRuleSelector.
- UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.): Deleted.
No londer needed, it was only used by _previousFocusedSection.
- UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection):
(WebInspector.RulesStyleDetailsPanel.prototype.newRuleButtonClicked):
(WebInspector.RulesStyleDetailsPanel.prototype.nodeStylesRefreshed):
(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorFocused): Deleted.
(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionBlurActiveEditor): Deleted.
(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionFocusNewInspectorRuleWithSelector): Deleted.
- 3:34 PM Changeset in webkit [201889] by
-
- 6 edits2 adds in trunk
Changing canvas height immediately after page load does not relayout canvas
https://bugs.webkit.org/show_bug.cgi?id=156097
Patch by Antoine Quint <Antoine Quint> on 2016-06-09
Reviewed by Zalan Bujtas.
Source/WebCore:
Promote the logic use to identify whether we should perform a layout after a change of
intrinsic size from RenderImage to RenderReplaced such that RenderCanvas may use it
in canvasSizeChanged() and correctly update its layout in the case where the width
or height attribute is updated and there are no explicit sizing performed with CSS.
Additionally, this will also account for the object-fix property to only perform
a layout if necessary.
Test: fast/canvas/canvas-css-size-after-height-change-with-display-flex.html
- rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::canvasSizeChanged):
- rendering/RenderImage.cpp:
(WebCore::RenderImage::repaintOrMarkForLayout):
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::setNeedsLayoutIfNeededAfterIntrinsicSizeChange):
- rendering/RenderReplaced.h:
LayoutTests:
- fast/canvas/canvas-css-size-after-height-change-with-display-flex-expected.html: Added.
- fast/canvas/canvas-css-size-after-height-change-with-display-flex.html: Added.
- 3:05 PM Changeset in webkit [201888] by
-
- 16 edits1 add in trunk/Source/WebKit2
WKWebView does not render PDF pages in AirPrint
https://bugs.webkit.org/show_bug.cgi?id=151386
rdar://problem/22499157
Reviewed by Tim Horton.
_WKWebViewPrintFormatter originally attempted to handle PDFs, but the code path was never
properly tested since Safari prints PDFs by setting a printingItem on the
UIPrintInteractionController instead of going through a print formatter. The existing code
almost worked, if it weren't for CGContextScaleCTM() scaling each page into oblivion due to
_totalScaleFactor equaling 0.
This patch properly implements -[_WKWebViewPrintFormatter drawInRect:forPageAtIndex:] to
handle drawing both PDFs generated by WebKit and PDFs loaded in the main frame. It also
takes the opportunity to clean up a number of issues in the existing code:
- Handling of -[_WKWebViewPrintFormatter startPage] is now correct. I had previously assumed this property represented the first page of output to print, but it actually represents the first page in the overall print job that the print formatter renders. In other words, regardless of -startPage, the print formatter should always print all its pages.
- Code specific to webpage and PDF printing was factored out into WKContentView and WKPDFView, respectively. Each conforms to @protocol(_WKWebViewPrintProvider), and _WKWebViewPrintFormatter accesses the provider via -[WKWebView _printProvider].
- Instead of piping the printed PDF data from WebPageProxy to WKWebView via PageClient, use the GenericCallback mechanism to have WebPageProxy call a lambda specified by WKContentView when the printed PDF is available.
- Removed _totalScaleFactor and used CGPDFPageGetDrawingTransform() to transform both webpages and PDFs. For webpages, _totalScaleFactor will always equal the ratio of the paper width to the PDF page width, so CGPDFPageGetDrawingTransform() will apply the same scaling as CGContextScaleCTM(_totalScaleFactor, _totalScaleFactor) would.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _printProvider]): Added. Returns _currentContentView if it conforms to
@protocol(_WKWebViewPrintProvider).
(-[WKWebView _computePageCountAndStartDrawingToPDFForFrame:printInfo:firstPage:computedTotalScaleFactor:]):
Moved code to _wk_pageCountForPrintFormatter in WKContentView and WKPDFView.
(-[WKWebView _endPrinting]): Deleted.
(-[WKWebView _printedDocument]): Deleted.
(-[WKWebView _setPrintedDocument:]): Deleted.
- UIProcess/API/Cocoa/WKWebViewInternal.h: Declared the _printProvider property.
- UIProcess/PageClient.h: Removed didFinishDrawingPagesToPDF().
- UIProcess/WebPageProxy.h: Declared computePagesForPrintingAndDrawToPDF() and
drawToPDFCallback().
- UIProcess/WebPageProxy.messages.in: Renamed DidFinishDrawingPagesToPDF to
DrawToPDFCallback.
- UIProcess/_WKWebViewPrintFormatter.mm: Backed the frameToPrint property with a RetainPtr
ivar so that it doesn't need to be released manually in -dealloc; removed _totalScaleFactor
and _printInfo ivars and added a _printedDocument ivar; removed the property declaration for
webView.
(-[_WKWebViewPrintFormatter frameToPrint]): Added a custom getter for the frameToPrint
property.
(-[_WKWebViewPrintFormatter setFrameToPrint:]): Added a custom setter for the frameToPrint
property.
(-[_WKWebViewPrintFormatter _webView]): Renamed from webView; added an underscore since this
is a private method.
(-[_WKWebViewPrintFormatter _recalcPageCount]): Retrieved the page count from the print
provider and clamped its value to NSIntegerMax.
(-[_WKWebViewPrintFormatter drawInRect:forPageAtIndex:]): Retrieved the printed document
from the print provider if needed; modified the CTM transformations to work for both
webpages and PDFs.
(-[_WKWebViewPrintFormatter dealloc]): Deleted.
(-[_WKWebViewPrintFormatter webView]): Renamed to _webView.
(-[_WKWebViewPrintFormatter rectForPageAtIndex:]): Deleted.
- UIProcess/_WKWebViewPrintFormatterInternal.h: Added. Moved a UIPrintFormatter internal
method declaration to here and defined the _WKWebViewPrintProvider protocol.
- UIProcess/ios/PageClientImplIOS.h: Removed didFinishDrawingPagesToPDF().
- UIProcess/ios/PageClientImplIOS.mm: Ditto.
(WebKit::PageClientImpl::didFinishDrawingPagesToPDF): Deleted.
- UIProcess/ios/WKContentView.mm: Conformed to @protocol(_WKWebViewPrintProvider).
(-[WKContentView _wk_pageCountForPrintFormatter:]): Moved the code to compute page count
from WKWebView to here.
(-[WKContentView _wk_printedDocument]): Moved the code to get the printed document from
WKWebView to here.
- UIProcess/ios/WKPDFView.mm:
(-[WKPDFView _wk_pageCountForPrintFormatter:]): Moved the code to compute the page count
from WKWebView to here; added a call to CGPDFDocumentAllowsPrinting(), returning 0 if
printing is not allowed.
(-[WKPDFView _wk_printedDocument]): Moved the code to get the printed document from
WKWebView to here.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::computePagesForPrintingAndDrawToPDF): Registered the callback with
m_callbacks and sent Messages::WebPage::ComputePagesForPrintingAndDrawToPDF; returned the
synchronously-returned page count.
(WebKit::WebPageProxy::drawToPDFCallback): Added to perform the callback when drawing to PDF
is complete.
(WebKit::WebPageProxy::didFinishDrawingPagesToPDF): Deleted.
- WebKit2.xcodeproj/project.pbxproj: Added _WKWebViewPrintFormatterInternal.h.
- WebProcess/WebPage/WebPage.h: Renamed computePagesForPrintingAndStartDrawingToPDF() to
computePagesForPrintingAndDrawToPDF().
- WebProcess/WebPage/WebPage.messages.in: Renamed
ComputePagesForPrintingAndStartDrawingToPDF to ComputePagesForPrintingAndDrawToPDF. Removed
the startPage parameter and added a callbackID.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::computePagesForPrintingAndDrawToPDF): Renamed from
computePagesForPrintingAndStartDrawingToPDF(). Added a call to endPrinting() after sending
Messages::WebPageProxy::DrawToPDFCallback.
(WebKit::WebPage::computePagesForPrintingAndStartDrawingToPDF): Renamed to
computePagesForPrintingAndDrawToPDF.
- 3:03 PM Changeset in webkit [201887] by
-
- 10 edits2 adds in trunk
Deleting a CSSOM style rule invalidates any previously-added FontFaces
https://bugs.webkit.org/show_bug.cgi?id=158450
Reviewed by Darin Adler.
Source/WebCore:
This patch has two pieces: updating the CSSOM when the FontFace changes, and
updating the FontFace when the CSSOM changes.
1: Updating the CSSOM when the FontFace changes: CSSFontFaces already have a RefPtr
to their StyleRuleFontFace which represents their CSS-connection. When changing a
property of the CSSFontFace, we simply reach into the StyleRule and update it to
match. Our existing infrastructure of invalidation due to the attribute changes
makes sure that all the necessary updates occur.
- Updating the FontFace when the CSSOM changes: If the CSSOM changes in a trivial
way (for example, a new @font-face is appended to the end of the last <style>
element), we can handle it directly. However, when something more invasive occurs,
we end up clearing the entire CSSFontSelector, and then adding all the style rules
from scratch. This involves three steps:
a) CSSFontSelector::buildStarted() is run, which means "we're about to start
building up all the @font-face rules from scratch." We take this opportunity
to purge as many fonts as possible. This is valuable because, for example,
this function gets run when the page gets put into the page cache, so we
want to destroy as much as possible. Not everything can be purged, however -
only CSS-connected fonts which have never been inspected by script are
purgeable. We don't allow fonts inspected by script to be purged because
purging might result in a font appearing from JavaScript to transition from
a success -> failure state, which we don't allow.
b) Upon style recalc (possibly asynchronously) CSSFontSelector::addFontFaceRule()
is called for each @font-face rule. We actually detect that we're in the
middle of a style rebuild, and defer this step.
c) When we're done adding all the font face rules, we call
CSSFontSelector::buildCompleted(). This is where we compare the newly built-
up list of font faces with what existed previously (as remembered in
CSSFontSelector::buildStarted()) in order to detect font faces which were
deleted from the document. Fonts which were newly added to the document
are handled naturally.
Fonts which have a property modified on them are created as if they were new.
However, instead of simply adding the CSSFontFace, we search for the existing
CSSFontFace (by CSS connection pointer) and tell the existing FontFace to
adopt this new CSSFontFace. This means that the JavaScript object will just
pick up any newly-written values in the CSSOM. It also means that the
"status" attribute of the JavaScript object is reset, but this is expected
and allowed by the spec. (For example, if you change the "src" attribute of
an @font-face block via the CSSOM, all bets are off when you inspect the
FontFace JS object representing that block.)
Test: fast/text/font-face-set-cssom.html
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::setFamilies):
(WebCore::CSSFontFace::setStyle):
(WebCore::CSSFontFace::setWeight):
(WebCore::CSSFontFace::setUnicodeRange):
(WebCore::CSSFontFace::setVariantLigatures):
(WebCore::CSSFontFace::setVariantPosition):
(WebCore::CSSFontFace::setVariantCaps):
(WebCore::CSSFontFace::setVariantNumeric):
(WebCore::CSSFontFace::setVariantAlternates):
(WebCore::CSSFontFace::setVariantEastAsian):
(WebCore::CSSFontFace::setFeatureSettings):
(WebCore::CSSFontFace::initializeWrapper):
(WebCore::CSSFontFace::wrapper):
(WebCore::CSSFontFace::setWrapper):
(WebCore::CSSFontFace::purgeable):
(WebCore::CSSFontFace::updateStyleIfNeeded):
- css/CSSFontFace.h:
- css/CSSFontFaceSet.cpp:
(WebCore::CSSFontFaceSet::remove):
(WebCore::CSSFontFaceSet::containsCSSConnection):
(WebCore::CSSFontFaceSet::purge):
- css/CSSFontFaceSet.h:
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::buildStarted):
(WebCore::CSSFontSelector::buildCompleted):
(WebCore::CSSFontSelector::addFontFaceRule):
- css/CSSFontSelector.h:
- css/FontFace.cpp:
(WebCore::FontFace::family):
(WebCore::FontFace::style):
(WebCore::FontFace::weight):
(WebCore::FontFace::unicodeRange):
(WebCore::FontFace::variant):
(WebCore::FontFace::featureSettings):
(WebCore::FontFace::adopt):
- css/FontFace.h:
LayoutTests:
- fast/text/font-face-set-cssom-expected.txt: Added.
- fast/text/font-face-set-cssom.html: Added.
- 2:41 PM Changeset in webkit [201886] by
-
- 2 edits in trunk/LayoutTests
Marking webgl/webgl-backing-store-size-update.html as a flaky timeout on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=158585
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 2:38 PM Changeset in webkit [201885] by
-
- 2 edits in trunk/LayoutTests
Removing Mavericks-specific TestExpectations from mac-wk1 TestExpectations file.
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 2:34 PM Changeset in webkit [201884] by
-
- 5 edits in trunk/Source
Define printing{Minimum,Maximum}ShrinkFactor in only one place
https://bugs.webkit.org/show_bug.cgi?id=158580
Reviewed by Tim Horton.
Source/WebCore:
- page/PrintContext.cpp: Removed printingMinimumShrinkFactor and printingMaximumShrinkFactor.
(WebCore::PrintContext::begin): Used minimumShrinkFactor() and maximumShrinkFactor() instead
of printingMinimumShrinkFactor and printingMaximumShrinkFactor.
(WebCore::PrintContext::computeAutomaticScaleFactor): Ditto.
- page/PrintContext.h:
(WebCore::PrintContext::minimumShrinkFactor): Added to return the same value as
printingMinimumShrinkFactor.
(WebCore::PrintContext::maximumShrinkFactor): Added to return the same value as
printingMaximumShrinkFactor.
Source/WebKit/mac:
- WebView/WebHTMLView.mm: Initialized _WebHTMLViewPrintingMinimumShrinkFactor and
_WebHTMLViewPrintingMaximumShrinkFactor with PrintContext::minimumShrinkFactor() and
PrintContext::maximumShrinkFactor() instead of with duplicated float literals.
- 2:30 PM Changeset in webkit [201883] by
-
- 4 edits2 adds in trunk
Don't show the caption menu if a video has only forced tracks
https://bugs.webkit.org/show_bug.cgi?id=158573
<rdar://problem/24632384>
Reviewed by Jer Noble.
Source/WebCore:
Test: media/controls/forced-tracks-only.html
- Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.updateCaptionButton): Don't show the button of there are no user-selectable
text or audio tracks.
- page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu): Return an empty Vector if
there are no user-selectable tracks.
LayoutTests:
- media/controls/forced-tracks-only-expected.txt: Added.
- media/controls/forced-tracks-only.html: Added.
- 2:01 PM Changeset in webkit [201882] by
-
- 4 edits in trunk/Source/WebCore
Pass through play state and toggle state to the WebPlaybackControlsManager
https://bugs.webkit.org/show_bug.cgi?id=158578
<rdar://problem/25045616>
Reviewed by Beth Dakin.
Pass through the isPlaying portion of setRate() and allow toggling when a model is present.
- platform/mac/WebPlaybackControlsManager.h:
- platform/mac/WebPlaybackControlsManager.mm:
- platform/mac/WebPlaybackSessionInterfaceMac.mm:
(WebCore::WebPlaybackSessionInterfaceMac::setRate):
(WebCore::WebPlaybackSessionInterfaceMac::setPlayBackControlsManager):
- 1:54 PM MathML/Early_2016_Refactoring edited by
- (diff)
- 1:50 PM Changeset in webkit [201881] by
-
- 4 edits in trunk/Source/WebCore
RenderMathOperator: Move calculation of preferred width into MathOperator
https://bugs.webkit.org/show_bug.cgi?id=157071
Reviewed by Brent Fulgham.
No new tests, behavior is not change.
- rendering/mathml/MathOperator.cpp:
(WebCore::MathOperator::setOperator): Introduce a style parameter and call reset.
(WebCore::MathOperator::reset): New helper function to reset the operator.
For now we only set the width of the base glyph and the preferred max width.
(WebCore::MathOperator::calculateDisplayStyleLargeOperator): Calculate the m_maxPreferredWidth.
(WebCore::MathOperator::calculateStretchyData): Change the signature of the function and directly set m_maxPreferredWidth.
- rendering/mathml/MathOperator.h: Add m_maxPreferredWidth member and update some declarations.
(WebCore::MathOperator::width): New helper function.
(WebCore::MathOperator::maxPreferredWidth): New helper function.
- rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): This function performs wrong
operations that will be fixed in bug 152244 when we update the tests.
For now, let's just use maxPreferredWidth() for non-horizontal operators.
(WebCore::RenderMathMLOperator::updateStyle): Use the new signature of the functions.
- 1:10 PM Changeset in webkit [201880] by
-
- 29 edits in trunk/Source
Clean up WebSocket code
https://bugs.webkit.org/show_bug.cgi?id=158551
Reviewed by Darin Adler.
Source/WebCore:
No new tests. There is no change in behavior.
There seems to be no reason why SocketStreamHandle should be an AuthenticationClient.
- Modules/websockets/ThreadableWebSocketChannel.h:
- Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
(WebCore::ThreadableWebSocketChannelClientWrapper::setSendRequestResult):
(WebCore::ThreadableWebSocketChannelClientWrapper::bufferedAmount):
(WebCore::ThreadableWebSocketChannelClientWrapper::setBufferedAmount):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
(WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
(WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
(WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
- Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
- Modules/websockets/WebSocket.cpp:
(WebCore::joinStrings):
(WebCore::saturateAdd):
(WebCore::WebSocket::send):
(WebCore::WebSocket::readyState):
(WebCore::WebSocket::bufferedAmount):
(WebCore::WebSocket::didReceiveBinaryData):
(WebCore::WebSocket::didReceiveMessageError):
(WebCore::WebSocket::didUpdateBufferedAmount):
(WebCore::WebSocket::didStartClosingHandshake):
(WebCore::WebSocket::didClose):
- Modules/websockets/WebSocket.h:
- Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::WebSocketChannel):
(WebCore::WebSocketChannel::~WebSocketChannel):
(WebCore::WebSocketChannel::send):
(WebCore::WebSocketChannel::bufferedAmount):
(WebCore::WebSocketChannel::resume):
(WebCore::WebSocketChannel::willOpenSocketStream):
(WebCore::WebSocketChannel::didOpenSocketStream):
(WebCore::WebSocketChannel::didCloseSocketStream):
(WebCore::WebSocketChannel::didReceiveSocketStreamData):
(WebCore::WebSocketChannel::didUpdateBufferedAmount):
(WebCore::WebSocketChannel::didFailSocketStream):
(WebCore::WebSocketChannel::didStartLoading):
(WebCore::WebSocketChannel::appendToBuffer):
(WebCore::WebSocketChannel::processBuffer):
(WebCore::WebSocketChannel::resumeTimerFired):
(WebCore::WebSocketChannel::startClosingHandshake):
(WebCore::WebSocketChannel::didReceiveAuthenticationChallenge): Deleted.
(WebCore::WebSocketChannel::didCancelAuthenticationChallenge): Deleted.
- Modules/websockets/WebSocketChannel.h:
- Modules/websockets/WebSocketChannelClient.h:
(WebCore::WebSocketChannelClient::~WebSocketChannelClient):
(WebCore::WebSocketChannelClient::didConnect):
(WebCore::WebSocketChannelClient::didReceiveMessage):
(WebCore::WebSocketChannelClient::didReceiveBinaryData):
(WebCore::WebSocketChannelClient::didReceiveMessageError):
(WebCore::WebSocketChannelClient::didUpdateBufferedAmount):
(WebCore::WebSocketChannelClient::didStartClosingHandshake):
(WebCore::WebSocketChannelClient::didClose):
(WebCore::WebSocketChannelClient::WebSocketChannelClient):
- Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::send):
(WebCore::WorkerThreadableWebSocketChannel::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount):
- Modules/websockets/WorkerThreadableWebSocketChannel.h:
- platform/network/BlobData.cpp:
(WebCore::BlobData::appendData):
(WebCore::BlobData::appendFile):
- platform/network/BlobData.h:
(WebCore::BlobDataItem::BlobDataItem):
- platform/network/BlobRegistry.h:
- platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::appendStorageItems):
(WebCore::BlobRegistryImpl::registerFileBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURLOptionallyFileBacked):
(WebCore::BlobRegistryImpl::registerBlobURLForSlice):
- platform/network/BlobRegistryImpl.h:
- platform/network/SocketStreamHandleBase.cpp:
(WebCore::SocketStreamHandleBase::send):
(WebCore::SocketStreamHandleBase::disconnect):
(WebCore::SocketStreamHandleBase::sendPendingData):
- platform/network/SocketStreamHandleBase.h:
- platform/network/SocketStreamHandleClient.h:
(WebCore::SocketStreamHandleClient::~SocketStreamHandleClient):
(WebCore::SocketStreamHandleClient::willOpenSocketStream):
(WebCore::SocketStreamHandleClient::didOpenSocketStream):
(WebCore::SocketStreamHandleClient::didCloseSocketStream):
(WebCore::SocketStreamHandleClient::didReceiveSocketStreamData):
(WebCore::SocketStreamHandleClient::didUpdateBufferedAmount):
(WebCore::SocketStreamHandleClient::didFailSocketStream):
(WebCore::SocketStreamHandleClient::didReceiveAuthenticationChallenge): Deleted.
(WebCore::SocketStreamHandleClient::didCancelAuthenticationChallenge): Deleted.
- platform/network/cf/SocketStreamHandle.h:
(WebCore::SocketStreamHandle::create):
(WebCore::SocketStreamHandle::refAuthenticationClient): Deleted.
(WebCore::SocketStreamHandle::derefAuthenticationClient): Deleted.
- platform/network/cf/SocketStreamHandleCFNet.cpp:
(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore::SocketStreamHandle::addCONNECTCredentials):
(WebCore::SocketStreamHandle::copyCFStreamDescription):
(WebCore::SocketStreamHandle::readStreamCallback):
(WebCore::SocketStreamHandle::writeStreamCallback):
(WebCore::SocketStreamHandle::reportErrorToClient):
(WebCore::SocketStreamHandle::~SocketStreamHandle):
(WebCore::SocketStreamHandle::platformClose):
(WebCore::SocketStreamHandle::port):
(WebCore::SocketStreamHandle::receivedCredential): Deleted.
(WebCore::SocketStreamHandle::receivedRequestToContinueWithoutCredential): Deleted.
(WebCore::SocketStreamHandle::receivedCancellation): Deleted.
(WebCore::SocketStreamHandle::receivedRequestToPerformDefaultHandling): Deleted.
(WebCore::SocketStreamHandle::receivedChallengeRejection): Deleted.
- platform/network/curl/ResourceHandleCurl.cpp:
- platform/network/curl/SocketStreamHandle.h:
(WebCore::SocketStreamHandle::SocketData::SocketData):
- platform/network/curl/SocketStreamHandleCurl.cpp:
(WebCore::SocketStreamHandle::platformClose):
(WebCore::SocketStreamHandle::readData):
(WebCore::SocketStreamHandle::didReceiveData):
(WebCore::SocketStreamHandle::didOpenSocket):
(WebCore::SocketStreamHandle::createCopy):
(WebCore::SocketStreamHandle::didReceiveAuthenticationChallenge): Deleted.
(WebCore::SocketStreamHandle::receivedCredential): Deleted.
(WebCore::SocketStreamHandle::receivedRequestToContinueWithoutCredential): Deleted.
(WebCore::SocketStreamHandle::receivedCancellation): Deleted.
(WebCore::SocketStreamHandle::receivedRequestToPerformDefaultHandling): Deleted.
(WebCore::SocketStreamHandle::receivedChallengeRejection): Deleted.
- platform/network/soup/SocketStreamHandle.h:
(WebCore::SocketStreamHandle::create):
- platform/network/soup/SocketStreamHandleSoup.cpp:
(WebCore::getHandleFromId):
(WebCore::deactivateHandle):
(WebCore::activateHandle):
(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore::SocketStreamHandle::~SocketStreamHandle):
(WebCore::SocketStreamHandle::connected):
(WebCore::SocketStreamHandle::readBytes):
(WebCore::SocketStreamHandle::platformSend):
(WebCore::SocketStreamHandle::platformClose):
(WebCore::SocketStreamHandle::beginWaitingForSocketWritability):
(WebCore::SocketStreamHandle::didReceiveAuthenticationChallenge): Deleted.
(WebCore::SocketStreamHandle::receivedCredential): Deleted.
(WebCore::SocketStreamHandle::receivedRequestToContinueWithoutCredential): Deleted.
(WebCore::SocketStreamHandle::receivedCancellation): Deleted.
(WebCore::SocketStreamHandle::receivedRequestToPerformDefaultHandling): Deleted.
(WebCore::SocketStreamHandle::receivedChallengeRejection): Deleted.
Source/WebKit2:
- WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::registerFileBlobURL):
- WebProcess/FileAPI/BlobRegistryProxy.h:
- 1:09 PM Changeset in webkit [201879] by
-
- 4 edits in trunk
Add comments to clarify feature enablement
https://bugs.webkit.org/show_bug.cgi?id=158567
Reviewed by Alex Christensen.
.:
- Source/cmake/WebKitFeatures.cmake:
Tools:
- Scripts/webkitperl/FeatureList.pm:
- 12:24 PM Changeset in webkit [201878] by
-
- 4 edits in trunk
PerformanceTests:
Unreviewed, teach the perf bots not to run JSAir.
- Skipped:
Tools:
Unreviewed, skip jsair tests while we figure out the debug timeouts.
- Scripts/run-javascriptcore-tests:
(runJSCStressTests):
- 11:52 AM Changeset in webkit [201877] by
-
- 5 edits in trunk
Unreviewed, rolling out r201815.
https://bugs.webkit.org/show_bug.cgi?id=158570
This broke the cmake build. (Requested by lforschler on
#webkit).
Reverted changeset:
"Teach cmake about libWebKitSystemInterfaceOSX10.12"
http://trac.webkit.org/changeset/201815
- 11:47 AM Changeset in webkit [201876] by
-
- 5 edits2 adds in trunk
WorkerGlobalScope attributes / operations should be on the prototype
https://bugs.webkit.org/show_bug.cgi?id=158568
<rdar://problem/26720079>
Reviewed by Geoffrey Garen.
Source/WebCore:
WorkerGlobalScope attributes / operations should be on the prototype
because WorkerGlobalScope is not marked as [Global] / [PrimaryGlobal]:
- https://html.spec.whatwg.org/multipage/workers.html#the-workerglobalscope-common-interface
- http://heycam.github.io/webidl/#es-attributes
- http://heycam.github.io/webidl/#es-operations
DedicatedWorkerGlobalScope is the interface that is marked as [Global]
and whose attributes / operations should be on the instance.
This brings the number of failures on http://w3c-test.org/workers/interfaces.worker
from 65 to 34. It also aligns our behavior with Firefox and Chrome.
Test: fast/workers/WorkerGlobalScope-properties-prototype.html
- bindings/scripts/CodeGeneratorJS.pm:
(InterfaceRequiresAttributesOnInstance):
(OperationShouldBeOnInstance):
LayoutTests:
- fast/workers/WorkerGlobalScope-properties-prototype-expected.txt: Added.
- fast/workers/WorkerGlobalScope-properties-prototype.html: Added.
Add layout test coverage.
- fast/workers/self-hasOwnProperty-expected.txt:
- fast/workers/self-hasOwnProperty.html:
Update test I added a couple of days ago because it wrongly expected
the 'navigator' property to be on the instance. This check was failing
in other browsers (Firefox and Chrome).
- 11:33 AM Changeset in webkit [201875] by
-
- 5 edits2 adds in trunk
Writing-mode-dependent properties don't apply if their value is a variable
https://bugs.webkit.org/show_bug.cgi?id=158449
<rdar://problem/26662478>
Reviewed by Simon Fraser.
Source/WebCore:
Test: fast/css/variables/direction-dependent-variable-properties.html
- css/CSSParser.cpp:
(WebCore::CSSParser::parseVariableDependentValue):
- css/CSSParser.h:
- css/StyleResolver.cpp:
(WebCore::StyleResolver::resolvedVariableValue):
CSSVariableDependentValue stores the unresolved (direction-dependent) property ID,
because the property that it resolves to cannot be determined until style resolution time.
Plumb the requisite direction and writing mode information into parseVariableDependentValue
at style resolution time so that the property can be resolved to the correct
non-direction-dependent property for each use of the value.
LayoutTests:
- fast/css/variables/direction-dependent-variable-properties-expected.html: Added.
- fast/css/variables/direction-dependent-variable-properties.html: Added.
Add a test ensuring that direction-dependent properties work correctly,
including flipping when the direction is flipped.
- 11:27 AM Changeset in webkit [201874] by
-
- 2 edits in trunk/LayoutTests
Marking editing/selection/selection-in-iframe-removed-crash.html as flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=158569
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 10:42 AM Changeset in webkit [201873] by
-
- 2 edits in trunk/Source/WTF
Unaddressed review feedback from r201872
- wtf/CrossThreadTask.h:
(WTF::callFunctionForCrossThreadTask): Fix typo.
- 10:34 AM Changeset in webkit [201872] by
-
- 4 edits in trunk
Greatly simplify CrossThreadTask.h.
https://bugs.webkit.org/show_bug.cgi?id=158542
Reviewed by Darin Adler.
Source/WTF:
- wtf/CrossThreadTask.h:
(WTF::crossThreadCopy):
(WTF::callFunctionForCrossThreadTaskImpl):
(WTF::callFunctionForCrossThreadTask):
(WTF::createCrossThreadTask):
(WTF::callMemberFunctionForCrossThreadTaskImpl):
(WTF::callMemberFunctionForCrossThreadTask):
Tools:
- TestWebKitAPI/Tests/WTF/CrossThreadTask.cpp:
(TestWebKitAPI::TEST):
- 10:31 AM Changeset in webkit [201871] by
-
- 3 edits in trunk/LayoutTests
LayoutTest storage/indexeddb/modern/handle-user-delete.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=158501
Reviewed by Darin Adler.
The order in which the transaction abort happens doesn't matter; It only matters that it happens.
Update the test to reflect this.
- storage/indexeddb/modern/handle-user-delete-expected.txt:
- storage/indexeddb/modern/resources/handle-user-delete.js:
- 10:12 AM Changeset in webkit [201870] by
-
- 2 edits in trunk/Source/WebCore
Attempt to fix the iOS build.
Unreviewed build fix.
- platform/network/mac/ResourceErrorMac.mm:
(WebCore::ResourceError::ResourceError):
- 10:07 AM Changeset in webkit [201869] by
-
- 2 edits in trunk/Source/WebKit2
Update properties for UIWKTextInteractionAssistant
<https://webkit.org/b/158559>
Reviewed by Darin Adler.
- Platform/spi/ios/UIKitSPI.h:
(UIWKTextInteractionAssistant.loupeGesture):
(UIWKTextInteractionAssistant.singleTapGesture):
Change from retain to assign since UIWKTextInteractionAssistant
is not responsible for their lifetime. Sort alphabetically.
- 9:59 AM Changeset in webkit [201868] by
-
- 4 edits7 adds in trunk
border-radius with different width and height rendered wrong
https://bugs.webkit.org/show_bug.cgi?id=158300
<rdar://problem/26672922>
Reviewed by Zalan Bujtas.
Source/WebCore:
Borders with border-radius close to 100% 100% got oddly clipped. This happened because
of the clipping we do to achieve the diagonal corner joins; RenderBoxModelObject::clipBorderSidePolygon()
created trapezoids for each side, but only extended them to the center of the inner border rect.
This clipped out parts of these borders.
Fix by computing the trapezoids by intersecting the corner diagonal line with a line that passes
through the adjacent corners of the inner rect, whose intersection is always going to be inside the
rounded border. Also fix the quads used to do the antialiased/non-antialiased clipping,
by adding a point rather than moving a corner point to ensure we don't mistakenly clip out any
parts of the border.
Finally, improve the rendering of non-renderable cases by actually doing the diagonal
corner joins rather than just giving up.
Tests: fast/borders/border-non-renderable-radius-inner-clip.html
fast/borders/border-radius-inner-clip-vertical.html
fast/borders/border-radius-inner-clip.html
- rendering/RenderBoxModelObject.cpp:
(WebCore::calculateAdjustedInnerBorder): Moved up.
(WebCore::RenderBoxModelObject::paintOneBorderSide):
(WebCore::RenderBoxModelObject::clipBorderSidePolygon):
(WebCore::findInnerVertex): Deleted.
(WebCore::calculateSideRectIncludingInner): Deleted.
(WebCore::RenderBoxModelObject::clipBorderSideForComplexInnerPath): Deleted.
- rendering/RenderBoxModelObject.h:
LayoutTests:
- fast/borders/border-non-renderable-radius-inner-clip-expected.html: Added.
- fast/borders/border-non-renderable-radius-inner-clip.html: Added.
- fast/borders/border-radius-inner-clip-expected-mismatch.html: Added.
- fast/borders/border-radius-inner-clip-vertical-expected-mismatch.html: Added.
- fast/borders/border-radius-inner-clip-vertical.html: Added.
- fast/borders/border-radius-inner-clip.html: Added.
- fast/borders/resources/border-radius-helpers.js: Added.
(createContainer):
(createReferenceContainer):
- 9:49 AM Changeset in webkit [201867] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening.
Unskip passing websocket tests.
- platform/win/TestExpectations:
- 9:31 AM Changeset in webkit [201866] by
-
- 5 edits in trunk
Unreviewed, rolling out r201836, r201845, and r201848.
Looks like a 1-2% PLT regression on iOS
Reverted changesets:
"[JSC] Change some parameters based on a random search"
https://bugs.webkit.org/show_bug.cgi?id=158514
http://trac.webkit.org/changeset/201836
"Tempory fix for the debug bots"
http://trac.webkit.org/changeset/201845
"Change thresholdForOptimizeSoon to match
thresholdForOptimizeAfterWarmUp"
http://trac.webkit.org/changeset/201848
- 8:56 AM Changeset in webkit [201865] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, rolling out r201842.
The change that prompted this rebaseline was rolled out.
Reverted changeset:
"Rebaseline js/dom/global-constructors-attributes.html for Mac
after r201810"
http://trac.webkit.org/changeset/201842
- 8:15 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 8:14 AM Changeset in webkit [201864] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fixing compilation issue with WebRTC
The code dependencies of the SDP processor were not right.
- PlatformGTK.cmake:
- 8:04 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 7:54 AM Changeset in webkit [201863] by
-
- 7 edits2 adds in trunk
WebKitTestRunner and DumpRenderTree do not handle dangling surrogate characters
https://bugs.webkit.org/show_bug.cgi?id=154863
Reviewed by Alexey Proskuryakov.
Source/WebKit2:
Added a non-strict verions of WKStringGetUTF8CString() that will handle dangling
surrogates called WKStringGetUTF8CStringNonStrict().
- Shared/API/c/WKString.cpp:
(WKStringGetUTF8CStringImpl):
(WKStringGetUTF8CString):
(WKStringGetUTF8CStringNonStrict):
- Shared/API/c/WKString.h:
Tools:
Added a non-strict verions of WKStringGetUTF8CString() that will handle dangling
surrogates. Changed the extraction of inner text from frames in DumpRenderTree
to use the new WKStringGetUTF8CStringNonStrict() function instead of NSString
conversion since NSString doesn't have a way to handle dangling surrogates.
The code added in DumpRenderTree matches what was changed in WebKitTestRunner.
- DumpRenderTree/mac/DumpRenderTree.mm:
(dumpFramesAsText):
- WebKitTestRunner/StringFunctions.h:
(WTR::toWTFString):
LayoutTests:
New tests.
- fast/text/dangling-surrogates-expected.txt: Added.
- fast/text/dangling-surrogates.html: Added.
- 7:50 AM Changeset in webkit [201862] by
-
- 4 edits in trunk/Source/WebCore
Introduce MathOperator::Type
https://bugs.webkit.org/show_bug.cgi?id=156950
Patch by Frederic Wang <fwang@igalia.com> on 2016-06-09
Reviewed by Sergio Villar Senin.
No new tests, behavior is not change.
An enum Type is introduced in MathOperator in order to indicate
which kind of stretching is requested. In follow-up work, this will
allow to just call setOperator and stretchTo without having to
explicitly call calculateDisplayStyleLargeOperator or calculateStretchyData.
- rendering/mathml/MathOperator.cpp:
(WebCore::MathOperator::setOperator): Use Type instead of a boolean.
(WebCore::MathOperator::setGlyphAssembly): Add an assert to ensure that the function is correctly used.
(WebCore::MathOperator::calculateDisplayStyleLargeOperator): Ditto, this makes the assert more accurate.
(WebCore::MathOperator::calculateStretchyData): Ditto and replace m_isVertical with a local isVertical variable.
(WebCore::MathOperator::fillWithVerticalExtensionGlyph): Ditto.
(WebCore::MathOperator::fillWithHorizontalExtensionGlyph): Ditto.
(WebCore::MathOperator::paintVerticalGlyphAssembly): Ditto.
(WebCore::MathOperator::paintHorizontalGlyphAssembly): Ditto.
- rendering/mathml/MathOperator.h: Add the Type enum.
(WebCore::MathOperator::stretchSize): Use Type instead of a boolean and add an
assert to ensure that the function is correctly used.
- rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Call setOperator with the correct value.
(WebCore::RenderMathMLOperator::updateStyle): Ditto.
- 5:59 AM Changeset in webkit [201861] by
-
- 28 edits11 deletes in trunk
Unreviewed, rolling out r201810.
https://bugs.webkit.org/show_bug.cgi?id=158563
breaks build without ENABLE_WEB_ANIMATION (Requested by
mcatanzaro on #webkit).
Reverted changeset:
"[web-animations] Add Animatable, AnimationEffect,
KeyframeEffect and Animation interface"
https://bugs.webkit.org/show_bug.cgi?id=156096
http://trac.webkit.org/changeset/201810
- 5:09 AM Changeset in webkit [201860] by
-
- 2 edits in trunk/Source/WebKit2
[Threaded Compositor] Many layout tests crash when threaded compositor is enabled
https://bugs.webkit.org/show_bug.cgi?id=158560
Reviewed by Žan Doberšek.
This is because CoordinatedGraphicsLayer::notifyFlushRequired() assumes it has a valid compositor when it's
called. But the compositor is only present when GraphicsLayer::create() is called with a
GraphicsLayerFactory. When running the layout tests, layers are created without a factory because DrawingAreaImpl
is not entering AC mode as expected and the layer tree host is not created, making
DrawingAreaImpl::graphicsLayerFactory() always return nullptr. This happens because DrawingAreaImpl is checking
acceleratedDrawingEnabled setting to decide whether to always use compositing mode or not, and WTR sets that
setting to false (changing its default value). The thing is that acceleratedDrawingEnabled setting doesn't have
any effect in non-Mac ports, what we really want to check there is whether acceleratedCompositingEnabled is true
or false.
- WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::updatePreferences):
- 5:07 AM Changeset in webkit [201859] by
-
- 3 edits in trunk/Source/WebKit2
[Threaded Compositor] Remove ThreadedCompositor::setNeedsDisplay()
https://bugs.webkit.org/show_bug.cgi?id=158523
Reviewed by Michael Catanzaro.
ThreadedCompositor::setNeedsDisplay() is always called from the main thread and schedules a task to the
compositing thread to schedule an immediate update. But RunLoop::Timer is thread-safe so we don't really need to
schedule a task to the update the timer in the compositing thread, we can do that directly in the main
thread. And that's exactly what scheduleDisplayImmediately() does, so we can use it instead of setNeedsDisplay().
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::setNeedsDisplay(): Deleted.
(WebKit::ThreadedCompositor::updateSceneState):
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
- 2:09 AM Changeset in webkit [201858] by
-
- 10 edits in trunk
slotchange event should be fired at the end of microtask
https://bugs.webkit.org/show_bug.cgi?id=157374
<rdar://problem/26154024>
Reviewed by Antti Koivisto.
Source/WebCore:
Dispatch slotchange event at the end of every microtask after delivering records to mutation observers
as specified in: https://dom.spec.whatwg.org/#notify-mutation-observers
Test: fast/shadow-dom/slotchange-event.html
- dom/Document.cpp:
(WebCore::Document::enqueueSlotchangeEvent): Deleted.
- dom/Document.h:
- dom/MutationObserver.cpp:
(WebCore::signalSlotList): Added.
(WebCore::MutationObserverMicrotask::run): mutationObserverCompoundMicrotaskQueuedFlag is now unset in
notifyMutationObservers to better match the concept to "notify mutation observers".
(WebCore::MutationObserver::enqueueSlotChangeEvent): Added.
(WebCore::MutationObserver::notifyMutationObservers): Renamed from deliverAllMutations. Added the code
to dispatch slotchange events as spec'ed, and also added comments for each step.
- dom/MutationObserver.h:
- html/HTMLSlotElement.cpp:
(WebCore::HTMLSlotElement::enqueueSlotChangeEvent): Use MutationObserver::enqueueSlotChangeEvent. Don't
create an event here since that is only needed when dispatching the event, and to keep track of whether
we've already scheduled an event or not. Use a boolean flag instead for the latter.
(WebCore::HTMLSlotElement::dispatchSlotChangeEvent): Added. Creates and dispatches an event.
(WebCore::HTMLSlotElement::dispatchEvent): Deleted.
- html/HTMLSlotElement.h:
(WebCore::HTMLSlotElement::didRemoveFromSignalSlotList): Added.
LayoutTests:
Added a test case to ensure slotchange event is dispatched at the end of a microtask.
- fast/shadow-dom/slotchange-event-expected.txt:
- fast/shadow-dom/slotchange-event.html:
- 2:07 AM MathML/Early_2016_Refactoring edited by
- (diff)
- 1:41 AM Changeset in webkit [201857] by
-
- 2 edits in trunk/Source/WebKit2
Increase disk cache capacity when there is lots of free space
https://bugs.webkit.org/show_bug.cgi?id=158526
Reviewed by Chris Dumez.
Our maximum disk cache capacity has been 175MB for a very long time. Meanwhile the average resource size has grown
massively. 175MB is now enough for cacheable resources of a few dozen sites at most. Using bigger caches when there is
room for it can reduce network traffic, reduce disk writes, save battery and speed up page loading.
This patch changes cache size for PrimaryWebBrowser cache model
=16GB free: 175MB -> 500MB
8-16GB free: 150MB -> 250MB
and modestly for DocumentBrowser
=16GB free: 50MB -> 75MB
Note that if system (on Cocoa platforms) really needs disk space it will wipe out caches so this doesn't reduce
available disk space in scenarios like software installation.
- Shared/CacheModel.cpp:
(WebKit::calculateCacheSizes):
Jun 8, 2016:
- 11:55 PM Changeset in webkit [201856] by
-
- 16 edits in trunk/Source
Introduce ResourceErrorBase::type
https://bugs.webkit.org/show_bug.cgi?id=158299
Reviewed by Alex Christensen.
Source/WebCore:
Introducing an enum type for ResourceErrorBase.
In most cases, the type is set at construction time.
By default, constructor with no parameters will set type to Null.
Constructor with parameters will set type to General.
Removed boolean state error fields.
Introduced a type setter. It should only be used to make the type
more precise (when type is Null or General).
Updating related calling code.
No change of behavior.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::stopLoadingForPolicyChange):
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::cancel):
- loader/EmptyClients.h:
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::cancelledError):
(WebCore::FrameLoader::blockedError):
- loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::cancel):
- platform/network/ResourceErrorBase.cpp:
(WebCore::ResourceErrorBase::isolatedCopy):
(WebCore::ResourceErrorBase::setType):
(WebCore::ResourceErrorBase::compare):
- platform/network/ResourceErrorBase.h:
(WebCore::ResourceErrorBase::isNull):
(WebCore::ResourceErrorBase::isCancellation):
(WebCore::ResourceErrorBase::isTimeout):
(WebCore::ResourceErrorBase::type):
(WebCore::ResourceErrorBase::ResourceErrorBase):
(WebCore::ResourceErrorBase::domain):
- platform/network/cf/ResourceError.h:
(WebCore::ResourceError::ResourceError):
- platform/network/cf/ResourceErrorCF.cpp:
(WebCore::ResourceError::ResourceError):
(WebCore::ResourceError::cfError):
- platform/network/curl/ResourceError.h:
(WebCore::ResourceError::ResourceError):
- platform/network/mac/ResourceErrorMac.mm:
(WebCore::m_platformError):
(WebCore::ResourceError::nsError):
(WebCore::ResourceError::ResourceError):
(WebCore::ResourceError::platformLazyInit):
- platform/network/soup/ResourceError.h:
(WebCore::ResourceError::ResourceError):
- platform/network/soup/ResourceErrorSoup.cpp:
(WebCore::ResourceError::timeoutError):
Source/WebKit2:
- Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<ResourceError>::encodePlatformData):
(IPC::ArgumentCoder<ResourceError>::decodePlatformData):
- 11:20 PM Changeset in webkit [201855] by
-
- 19 edits in trunk
REGRESSION: Web Inspector: Should be able to evaluate "{a:1, b:2}" in the console
https://bugs.webkit.org/show_bug.cgi?id=158548
<rdar://problem/26708513>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-08
Reviewed by Timothy Hatcher.
Source/WebInspectorUI:
- UserInterface/Controllers/RuntimeManager.js:
(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
Switch the many parameters to an options dictionary.
Include a new option for sourceURL appender, so that
Console evaluations can have its own append.
- UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
Use the appendWebInspectorConsoleEvaluationSourceURL appender.
- UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
(WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.evaluated):
- UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateWatchExpressionsSection.):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateWatchExpressionsSection):
Use the new options dictionary.
LayoutTests:
- inspector/console/addInspectedNode.html:
- inspector/console/command-line-api-copy.html:
- inspector/console/command-line-api.html:
- inspector/console/console-api.html:
- inspector/console/console-table.html:
- inspector/console/messagesCleared.html:
- inspector/controller/runtime-controller.html:
- inspector/debugger/command-line-api-exception-nested-catch.html:
- inspector/debugger/command-line-api-exception.html:
- inspector/model/remote-object-get-properties.html:
- inspector/model/remote-object-weak-collection.html:
- inspector/model/remote-object.html:
- inspector/timeline/exception-in-injected-script-while-recording.html:
Update evaluateInInspectedWindow callsites to use options dictionary.
- 11:17 PM Changeset in webkit [201854] by
-
- 5 edits2 adds in trunk/Source/WebCore
Move selection and drawing of stretchy operators into a separate MathOperator class
https://bugs.webkit.org/show_bug.cgi?id=156921
Patch by Frederic Wang <fwang@igalia.com> on 2016-06-08
Reviewed by Martin Robinson.
No new tests, behavior is not changed.
- CMakeLists.txt: Add the MathOperator files.
- WebCore.xcodeproj/project.pbxproj: Ditto.
- rendering/mathml/MathOperator.cpp: Added.
(WebCore::boundsForGlyph): Moved from RenderMathMLOperator.
(WebCore::heightForGlyph): Moved from RenderMathMLOperator.
(WebCore::advanceWidthForGlyph): Moved from RenderMathMLOperator.
(WebCore::MathOperator::MathOperator):
(WebCore::MathOperator::setOperator):
(WebCore::MathOperator::getBaseGlyph): Moved from RenderMathMLOperator.
(WebCore::MathOperator::setSizeVariant): Moved from RenderMathMLOperator.
(WebCore::MathOperator::setGlyphAssembly): Moved from RenderMathMLOperator.
(WebCore::MathOperator::calculateDisplayStyleLargeOperator): Moved from RenderMathMLOperator with additional style parameter.
(WebCore::MathOperator::calculateGlyphAssemblyFallBack): Ditto.
(WebCore::MathOperator::calculateStretchyData): Ditto.
(WebCore::MathOperator::paintGlyph): Ditto.
(WebCore::MathOperator::fillWithVerticalExtensionGlyph): Ditto.
(WebCore::MathOperator::fillWithHorizontalExtensionGlyph): Ditto.
(WebCore::MathOperator::paintVerticalGlyphAssembly): Ditto.
(WebCore::MathOperator::paintHorizontalGlyphAssembly): Ditto.
- rendering/mathml/MathOperator.h: Added.
(WebCore::MathOperator::italicCorrection):
(WebCore::MathOperator::isStretched):
(WebCore::MathOperator::unstretch):
(WebCore::MathOperator::GlyphAssemblyData::GlyphAssemblyData): Moved from RenderMathMLOperator.
(WebCore::MathOperator::stretchSize):
- rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Updated to use MathOperator members.
For now we call setOperator to transmit information to m_mathOperator.
(WebCore::RenderMathMLOperator::updateStyle): Updated to use MathOperator members.
For now we set some m_mathOperator members to transmit it some information.
(WebCore::RenderMathMLOperator::firstLineBaseline): Updated to use MathOperator members.
(WebCore::RenderMathMLOperator::computeLogicalHeight): Ditto.
(WebCore::RenderMathMLOperator::paint): Ditto.
For now we set some m_mathOperator members to transmit it some information.
(WebCore::RenderMathMLOperator::paintChildren): Updated to use MathOperator members.
(WebCore::RenderMathMLOperator::trailingSpaceError): Ditto.
(WebCore::RenderMathMLOperator::getBaseGlyph): Deleted.
(WebCore::RenderMathMLOperator::setSizeVariant): Deleted.
(WebCore::RenderMathMLOperator::setGlyphAssembly): Deleted.
(WebCore::RenderMathMLOperator::calculateGlyphAssemblyFallBack): Deleted.
(WebCore::RenderMathMLOperator::calculateDisplayStyleLargeOperator): Deleted.
(WebCore::RenderMathMLOperator::calculateStretchyData): Deleted.
(WebCore::RenderMathMLOperator::paintGlyph): Deleted.
(WebCore::RenderMathMLOperator::fillWithVerticalExtensionGlyph): Deleted.
(WebCore::RenderMathMLOperator::fillWithHorizontalExtensionGlyph): Deleted.
(WebCore::RenderMathMLOperator::paintVerticalGlyphAssembly): Deleted.
(WebCore::RenderMathMLOperator::paintHorizontalGlyphAssembly): Deleted.
- rendering/mathml/RenderMathMLOperator.h:
(WebCore::RenderMathMLOperator::italicCorrection): Updated to use MathOperator members.
(WebCore::RenderMathMLOperator::GlyphAssemblyData::GlyphAssemblyData): Deleted.
- 10:43 PM Changeset in webkit [201853] by
-
- 8 edits in trunk/Source/JavaScriptCore
JSObject::reifyAllStaticProperties cleanup
https://bugs.webkit.org/show_bug.cgi?id=158543
Reviewed by Mark Lam.
- JSObject & Structure contain fields labeled 'staticFunctionsReified', however reification now affects all properties, not just functions. Rename to 'staticPropertiesReified'.
- reifyAllStaticProperties relies on a 'hasStaticProperties' method on ClassInfo that walks the ClassInfo inheritance chain looking for static property tables. We can now more efficiently get this information from TypeInfo.
- reifyAllStaticProperties triggers a 'toUncacheableDictionaryTransition'; this is overzealous, cacheable dictionary is sufficient - this is what we do in the case of DOM prototype property reification (see 'reifyStaticProperties' in Lookup.h). (Changing this with an eye on switching
- DOM prototype property reification to use JSObject
- reifyAllStaticProperties, rather than having its own special purpose code path.)
- runtime/ClassInfo.h:
(JSC::ClassInfo::hasStaticProperties): Deleted.
- deprecated by TypeInfo::hasStaticPropertyTable.
- runtime/JSObject.cpp:
(JSC::JSObject::putInlineSlow):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::getOwnNonIndexPropertyNames):
- staticFunctionsReified -> staticPropertiesReified
(JSC::JSObject::reifyAllStaticProperties):
- hasStaticProperties -> TypeInfo::hasStaticPropertyTable
- toUncacheableDictionaryTransition -> toCacheableDictionaryTransition
- staticFunctionsReified -> staticPropertiesReified
- runtime/JSObject.h:
(JSC::JSObject::staticPropertiesReified):
(JSC::JSObject::staticFunctionsReified): Deleted.
- runtime/Lookup.cpp:
(JSC::setUpStaticFunctionSlot):
- runtime/Lookup.h:
(JSC::getStaticPropertySlotFromTable):
(JSC::replaceStaticPropertySlot):
- runtime/Structure.cpp:
(JSC::Structure::Structure):
- runtime/Structure.h:
- staticFunctionsReified -> staticPropertiesReified
- 10:18 PM Changeset in webkit [201852] by
-
- 4 edits2 adds in trunk
DedicatedWorkerGlobalScope prototype chain is incorrect
https://bugs.webkit.org/show_bug.cgi?id=158544
Reviewed by Brady Eidson.
Source/WebCore:
There were several issues with the prototype chain of DedicatedWorkerGlobalScope:
- Object.getPrototypeOf(DedicatedWorkerGlobalScope.prototype) was not WorkerGlobalScope.prototype.
- WorkerGlobalScope.prototype was a DedicatedWorkerGlobalScopePrototype object and was equal to DedicatedWorkerGlobalScope.prototype.
- Object.getPrototypeOf(WorkerGlobalScope.prototype) was not EventTarget.prototype.
Those issues were identified by the following W3C web-platform-test:
http://w3c-test.org/workers/interfaces.worker
This patch fixes the issue so that the prototype chain is now as per the
specification.
Test: fast/workers/DedicatedWorkerGlobalScope-prototype-chain.html
- bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::initScript):
- Stop creating the WorkerGlobalScopePrototype and let JSWorkerGlobalScope create it.
- Set DedicatedWorkerGlobalScopePrototype's prototype to JSWorkerGlobalScope's prototype after creating the JSDedicatedWorkerGlobalScope object.
- bindings/scripts/CodeGeneratorJS.pm:
(ShouldUseGlobalObjectPrototype):
(GenerateHeader):
(GenerateImplementation):
(GenerateConstructorHelperMethods):
- Do not use globalObject.getPrototypeDirect() as 'prototype' property for WorkerGlobalScope. The globalObject is a DedicatedWorkerGlobalScope, not a WorkerGlobalScope.
- Generate the code to create / get a prototype object for WorkerGlobalScope.
LayoutTests:
Add test coverage for the DedicatedWorkerGlobalScope prototype chain.
- fast/workers/DedicatedWorkerGlobalScope-prototype-chain-expected.txt: Added.
- fast/workers/DedicatedWorkerGlobalScope-prototype-chain.html: Added.
- 10:09 PM Changeset in webkit [201851] by
-
- 17 edits4 adds in trunk
WebRTC: Imlement MediaEndpointPeerConnection::setRemoteDescription()
https://bugs.webkit.org/show_bug.cgi?id=158467
Reviewed by Eric Carlson.
Source/WebCore:
Implement MediaEndpointPeerConnection::setRemoteDescription() which verifies a
remote offer or answer, configures the WebRTC backend and dispatches the 'track' events
that represent the incoming media [1].
This change also updates the RTCTrackEvent [2] with a streams and a transceiver attribute.
[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#dom-rtcpeerconnection-setremotedescription
[2] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#rtctrackevent
Tests: fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html
fast/mediastream/RTCTrackEvent-constructor.html
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::createSourceMap):
(WebCore::MediaEndpointPeerConnection::setLocalDescriptionTask):
(WebCore::MediaEndpointPeerConnection::setRemoteDescription):
(WebCore::MediaEndpointPeerConnection::setRemoteDescriptionTask):
Implemented.
(WebCore::MediaEndpointPeerConnection::remoteDescription):
(WebCore::MediaEndpointPeerConnection::currentRemoteDescription):
(WebCore::MediaEndpointPeerConnection::pendingRemoteDescription):
(WebCore::MediaEndpointPeerConnection::remoteDescriptionTypeValidForState):
(WebCore::MediaEndpointPeerConnection::internalRemoteDescription):
- Modules/mediastream/MediaEndpointPeerConnection.h:
- Modules/mediastream/PeerConnectionBackend.h:
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::addTransceiver):
- Modules/mediastream/RTCPeerConnection.h:
- Modules/mediastream/RTCRtpReceiver.h:
(WebCore::RTCRtpReceiver::isDispatched):
(WebCore::RTCRtpReceiver::setDispatched):
- Modules/mediastream/RTCTrackEvent.cpp:
(WebCore::RTCTrackEvent::create):
(WebCore::RTCTrackEvent::RTCTrackEvent):
- Modules/mediastream/RTCTrackEvent.h:
(WebCore::RTCTrackEvent::streams):
(WebCore::RTCTrackEvent::transceiver):
- Modules/mediastream/RTCTrackEvent.idl:
Add streams and transceiver attributes.
- bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::convertValue):
- bindings/js/JSDictionary.h:
- platform/mediastream/MediaEndpoint.h:
- platform/mock/MockMediaEndpoint.cpp:
(WebCore::MockMediaEndpoint::filterPayloads):
(WebCore::MockMediaEndpoint::updateSendConfiguration):
- platform/mock/MockMediaEndpoint.h:
LayoutTests:
Add tests for RTCPeerConnection.setRemoteDescription() and the RTCTrackEvent constructor.
- fast/mediastream/RTCPeerConnection-setRemoteDescription-offer-expected.txt: Added.
- fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html: Added.
Verify the description set, the expected RTCPeerConnection state changes and that the
'track' event is fired before the setRemoteDescription() promise fulfills.
- fast/mediastream/RTCTrackEvent-constructor-expected.txt: Added.
- fast/mediastream/RTCTrackEvent-constructor.html: Added.
This test has some expected failures since the bindings generator don't support 'required'
dictionary members for event init dictionaries.
- platform/mac/TestExpectations:
Skip tests for mac that require building with WEB_RTC enabled.
- 10:07 PM Changeset in webkit [201850] by
-
- 3 edits10 adds in trunk
Perform IDNA encoding on parameters for setHostAndPort and setHost
https://bugs.webkit.org/show_bug.cgi?id=158371
<rdar://problem/16869342>
Patch by John Wilander <wilander@apple.com> on 2016-06-08
Reviewed by Brent Fulgham.
Source/WebCore:
Tests: fast/dom/set-document-location-host-to-unaccepted-values.html
fast/dom/set-document-location-hostname-to-unaccepted-values.html
http/tests/dom/set-document-location-host-to-accepted-values.html
http/tests/dom/set-document-location-hostname-to-accepted-values.html
- platform/URL.cpp:
(WebCore::containsOnlyASCII):
Moved up to enable usage in URL::setHost and URL::setHostAndPort.
(WebCore::appendEncodedHostname):
Moved up to enable usage in URL::setHost and URL::setHostAndPort.
(WebCore::URL::setHost):
Now disallows the colon character, does IDNA encoding, and uses StringBuilder.
(WebCore::URL::setHostAndPort):
Now disallows multiple colons, disallows non-numeric ports, disallows the empty
string, does IDNA encoding, and uses StringBuilder.
LayoutTests:
- fast/dom/resources/set-document-location-iframe.html: Added.
- fast/dom/set-document-location-host-to-unaccepted-values-expected.txt: Added.
- fast/dom/set-document-location-host-to-unaccepted-values.html: Added.
- fast/dom/set-document-location-hostname-to-unaccepted-values-expected.txt: Added.
- fast/dom/set-document-location-hostname-to-unaccepted-values.html: Added.
- http/tests/dom/resources/set-document-location-iframe.html: Added.
- http/tests/dom/set-document-location-host-to-accepted-values-expected.txt: Added.
- http/tests/dom/set-document-location-host-to-accepted-values.html: Added.
- http/tests/dom/set-document-location-hostname-to-accepted-values-expected.txt: Added.
- http/tests/dom/set-document-location-hostname-to-accepted-values.html: Added.
- 7:41 PM Changeset in webkit [201849] by
-
- 2 edits in trunk/Tools
Try to fix the EFL build.
Unreviewed.
- TestWebKitAPI/CMakeLists.txt:
- 7:05 PM Changeset in webkit [201848] by
-
- 3 edits in trunk/Source/JavaScriptCore
Change thresholdForOptimizeSoon to match thresholdForOptimizeAfterWarmUp
Unreviewed.
This adds back the assertion removed in r201845.
Making those threshold equal is completely perf neutral
(on Haswell rMBP with 20 runs).
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-08
- runtime/Options.cpp:
(JSC::Options::initialize):
- runtime/Options.h:
- 6:00 PM Changeset in webkit [201847] by
-
- 2 edits in trunk/Tools
Fix WinCairo build
- DumpRenderTree/cairo/PixelDumpSupportCairo.h:
- 5:49 PM Changeset in webkit [201846] by
-
- 2 edits in trunk/Source/WebCore
Fix WinCairo build.
- platform/network/curl/MultipartHandle.cpp:
(WebCore::MultipartHandle::didReceiveResponse):
- 5:41 PM Changeset in webkit [201845] by
-
- 2 edits in trunk/Source/JavaScriptCore
Tempory fix for the debug bots
Unreviewed.
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-08
- runtime/Options.cpp:
(JSC::Options::initialize):
Weaken an assertion while I test values for thresholdForOptimizeSoon.
- 4:19 PM Changeset in webkit [201844] by
-
- 4 edits in trunk
Source/WebCore:
Fix WinCairo build.
- platform/network/curl/MultipartHandle.cpp:
(WebCore::MultipartHandle::didReceiveResponse):
Tools:
Fix WinCairo build
- DumpRenderTree/cairo/PixelDumpSupportCairo.h:
(BitmapContext::createByAdoptingBitmapAndContext):
(BitmapContext::~BitmapContext):
- 4:17 PM Changeset in webkit [201843] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: an error is encountered when trying to delete nodes that have children
https://bugs.webkit.org/show_bug.cgi?id=158541
<rdar://problem/26705901>
Reviewed by Timothy Hatcher.
- UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.adjustCollapsedRange):
Offset into the array variable instead of a variable holding its length.
- 4:11 PM Changeset in webkit [201842] by
-
- 2 edits in trunk/LayoutTests
Rebaseline js/dom/global-constructors-attributes.html for Mac after r201810
Unreviewed test gardening.
- platform/mac/js/dom/global-constructors-attributes-expected.txt:
- 4:09 PM Changeset in webkit [201841] by
-
- 3 edits2 adds in trunk
With audio user gesture restriction in place, video.src = 'file', video.play() succeeds where it should fail.
https://bugs.webkit.org/show_bug.cgi?id=158546
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/video-playback-restriction-play-before-load.html
Don't check that the media element isPlaying(); that will only return true if playback has begun.
Instead, check !paused(), as that will be true as soon as the play() method returns.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged):
(WebCore::HTMLMediaElement::updateShouldPlay):
- rendering/RenderLayer.h:
LayoutTests:
- media/video-playback-restriction-play-before-load-expected.txt: Added.
- media/video-playback-restriction-play-before-load.html: Added.
- 4:04 PM Changeset in webkit [201840] by
-
- 5 edits in trunk/Source/WebInspectorUI
Web Inspector: DOMTreeOutline selection areas should be created and updated lazily
https://bugs.webkit.org/show_bug.cgi?id=158513
<rdar://problem/26689646>
Reviewed by Timothy Hatcher.
Selection areas for DOMTreeElements are used for several things: drag markers,
element hover styles, element selection styles, and showing forced pseudo states
for an element. Fortunately it's easy to tell when any of these things is necessary.
Change DOMTreeOutline and DOMTreeElement so they don't create selection areas
unless they are needed for one of these tasks. This significantly reduces
forced layouts that are required to update the selection area height in case the
element has new attributes that cause the tag to become more or less wrapped.
- UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype.set hovered):
Modernize this method a bit.
(WebInspector.DOMTreeElement.prototype.updateSelectionArea):
If a selection area is not necessary, don't create one.
If one exists and it's not needed, then remove it.
(WebInspector.DOMTreeElement.prototype.onattach):
Remove redundant calls to updateSelection(). This is already called in
updateTitle().
(WebInspector.DOMTreeElement.prototype.onselect):
Ask the DOMTreeOutline to update the selection rather than forcing the
element to do it. This is consistent with other updates to user selection.
(WebInspector.DOMTreeElement.prototype._insertInLastAttributePosition):
(WebInspector.DOMTreeElement.prototype._startEditingAsHTML.dispose):
(WebInspector.DOMTreeElement.prototype._startEditingAsHTML):
Use renamed method.
(WebInspector.DOMTreeElement.prototype.updateTitle):
Add a comment to explain why the selection area is nulled out here.
(WebInspector.DOMTreeElement.prototype.get pseudoClassesEnabled):
(WebInspector.DOMTreeElement.prototype._nodePseudoClassesDidChange):
Update the selection area in case one does not exist for this tree element.
The indicator for forced pseudo classes is a pseudo element of the selection area.
(WebInspector.DOMTreeElement.prototype.updateSelection): Renamed.
(WebInspector.DOMTreeElement.prototype.onexpand):
(WebInspector.DOMTreeElement.prototype.oncollapse):
Remove redundant calls to updateSelection(). This is already called in
updateTitle().
- UserInterface/Views/DOMTreeOutline.css:
(.tree-outline.dom):
(.tree-outline.dom li.hovered:not(.selected) .selection-area):
(.tree-outline.dom li .selection-area):
(.tree-outline.dom li.selected .selection-area):
(.tree-outline.dom li.elements-drag-over .selection-area):
(.tree-outline.dom:focus li.selected .selection-area):
(.tree-outline.dom li.pseudo-class-enabled > .selection-area::before):
(.tree-outline.dom:focus li.selected.pseudo-class-enabled > .selection-area::before):
(.tree-outline.dom li.hovered:not(.selected) .selection): Deleted.
(.tree-outline.dom li .selection): Deleted.
(.tree-outline.dom li.selected .selection): Deleted.
(.tree-outline.dom li.elements-drag-over .selection): Deleted.
(.tree-outline.dom:focus li.selected .selection): Deleted.
(.tree-outline.dom li.pseudo-class-enabled > .selection::before): Deleted.
(.tree-outline.dom:focus li.selected.pseudo-class-enabled > .selection::before): Deleted.
Rename the selector to be less ambiguous.
- UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype.updateSelection): Simplify. The call
to update the selection area will bail out if there is nothing to be done.
(WebInspector.DOMTreeOutline.prototype.findTreeElement):
(WebInspector.DOMTreeOutline.prototype._onmousemove):
(WebInspector.DOMTreeOutline.prototype._onmouseout):
Clean up and use let and arrow functions.
(WebInspector.DOMTreeOutline.prototype._ondragover):
(WebInspector.DOMTreeOutline.prototype._clearDragOverTreeElementMarker):
Clear the dragging element before updating the selection area since it looks at
the dragging element to determine whether anything needs to be done.
- UserInterface/Views/FormattedValue.css:
(.formatted-node > .tree-outline.dom li.hovered:not(.selected) .selection-area):
(.formatted-node > .tree-outline.dom li.hovered:not(.selected) .selection): Deleted.
Rename the selector to be less ambiguous.
- 4:02 PM Changeset in webkit [201839] by
-
- 2 edits in trunk/Source/WebInspectorUI
Uncaught Exception in TimelineDataGrid._updatePopoverForSelectedNode()
https://bugs.webkit.org/show_bug.cgi?id=158502
<rdar://problem/26687038>
Reviewed by Joseph Pecoraro.
- UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype._updatePopoverForSelectedNode):
It appears that this expression was moved around since it accesses
targetFrame before it's initialized. Check rect.size.height directly.
- 3:35 PM Changeset in webkit [201838] by
-
- 2 edits in trunk/Source/WebKit2
_web_didAddMediaControlsManager should take a controlsManager as a parameter
https://bugs.webkit.org/show_bug.cgi?id=158545
Reviewed by Tim Horton.
- UIProcess/Cocoa/WebViewImpl.h:
- 3:27 PM Changeset in webkit [201837] by
-
- 10 edits in trunk/Source/WebCore
Modernize WebSocket code
https://bugs.webkit.org/show_bug.cgi?id=158539
Reviewed by Brady Eidson.
No new tests, no change in behavior.
- Modules/websockets/ThreadableWebSocketChannel.cpp:
(WebCore::ThreadableWebSocketChannel::create):
- Modules/websockets/ThreadableWebSocketChannel.h:
(WebCore::ThreadableWebSocketChannel::ThreadableWebSocketChannel):
- Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
(WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
(WebCore::ThreadableWebSocketChannelClientWrapper::create):
(WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
- Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
- Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
- Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::WebSocketChannel):
- Modules/websockets/WebSocketChannel.h:
(WebCore::WebSocketChannel::create):
- Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::WorkerThreadableWebSocketChannel):
(WebCore::WorkerThreadableWebSocketChannel::subprotocol):
(WebCore::WorkerThreadableWebSocketChannel::extensions):
(WebCore::WorkerThreadableWebSocketChannel::resume):
(WebCore::WorkerThreadableWebSocketChannel::Peer::Peer):
(WebCore::WorkerThreadableWebSocketChannel::Peer::send):
(WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::Bridge):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::~Bridge):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::close):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::setMethodNotCompleted):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::waitForMethodCompletion):
- Modules/websockets/WorkerThreadableWebSocketChannel.h:
(WebCore::WorkerThreadableWebSocketChannel::create):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::create):
- 3:22 PM Changeset in webkit [201836] by
-
- 5 edits in trunk
[JSC] Change some parameters based on a random search
https://bugs.webkit.org/show_bug.cgi?id=158514
Source/JavaScriptCore:
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-08
Reviewed by Filip Pizlo.
Over the weekend, I left an iMac running the JSC benchmarks
while changing a bunch of parameters.
The parameters were changed randomly, with a random deviation
from the original value.
To converge toward good values, the range was subject
to exponential annealing over time.
The values in this patch is the best outcome my iMac could
find over the weekend. It is about 1% better on the Haswell
machines I tested.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::optimizationThresholdScalingFactor):
- runtime/Options.h:
Tools:
Patch by Benjamin Poulain <benjamin@webkit.org> on 2016-06-08
Reviewed by Filip Pizlo.
- Scripts/run-jsc-stress-tests:
- 3:14 PM Changeset in webkit [201835] by
-
- 6 edits2 adds in trunk
First parameter to MessagePort / DedicatedWorkerGlobalScope.postMessage() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=158540
Reviewed by Geoffrey Garen.
Source/WebCore:
First parameter to MessagePort / DedicatedWorkerGlobalScope.postMessage() should be mandatory:
- https://html.spec.whatwg.org/multipage/comms.html#messageport
- https://html.spec.whatwg.org/multipage/workers.html#dedicated-workers-and-the-dedicatedworkerglobalscope-interface
Previously, WebKit send a bogus MessageEvent whose data attribute is undefined. This would
cause a testharness error when running the following W3C test:
Firefox and Chrome already correctly throw in this case. Our Window.postMessage() API is also
already throwing in this case.
Test: fast/workers/postMessage-missing-parameter.html
- bindings/js/JSMessagePortCustom.h:
(WebCore::handlePostMessage):
LayoutTests:
Add test coverage.
- fast/files/workers/inline-worker-via-blob-url.html:
- fast/workers/postMessage-missing-parameter-expected.txt: Added.
- fast/workers/postMessage-missing-parameter.html: Added.
- fast/workers/worker-messageport-expected.txt:
- fast/workers/worker-messageport.html:
- 2:49 PM Changeset in webkit [201834] by
-
- 6 edits in trunk/Source
Remove removeDirect
https://bugs.webkit.org/show_bug.cgi?id=158516
Reviewed by Ryosuke Niwa.
removeDirect is typically used as a subroutine of deleteProperty, but is also available to
call directly. Having this functionality factored out to a separate routine is a bad idea
on a couple of fronts:
- for the main use within deleteProperty there is redundancy (presence of the property was being checked twice) and inconsistency (the two functions returned different results in the case of a nonexistent property; the result from removeDirect was never observed).
- all uses of removeDirect are in practical terms incorrect. removeDirect had the advantage of ignoring the configurable (DontDelete) attributes, but this is achievable using the DeletePropertyMode setting - and the disadvantage of failing delete static table properties. Last uses were one that was removed in bug #158295 (where failure to delete static properties was a problem), and as addressed in this patch removeDirect is being used to implement runtime enabled features. This only works because we currently force reification of all properties on the DOM prototype objects, so in effect there are no static properties. In order to make the code robust such that runtime enabled features would still work even if we were not reifying static properties (a change we may want to make) we should be calling deleteProperty in this case too.
Source/JavaScriptCore:
- runtime/JSObject.cpp:
(JSC::JSObject::deleteProperty):
- incorporated removeDirect functionality, added comments & ASSERT.
(JSC::JSObject::removeDirect): Deleted.
- removed.
- runtime/JSObject.h:
- removed removeDirect.
Source/WebCore:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- changed to call deleteProperty instead of removeDirect.
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjPrototype::finishCreation):
- updated bindings test results.
- 2:17 PM Changeset in webkit [201833] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: reduce redundant attribute modification updates in DOMTreeUpdater and DOMTreeElement
https://bugs.webkit.org/show_bug.cgi?id=158504
<rdar://problem/25561452>
Reviewed by Timothy Hatcher.
When the frontend gets lots of DOM.attributeModified events, it forwards these on to
DOMTreeUpdater, which pushes a record for every single modification. It then updates
the DOM elements with the attibute changes on an animation frame. However, since it
doesn't do any deduplication of the modification records, a lot of time is wasted
on updating DOMTreeElements with intermediate (non-final) attribute values.
This patch rewrites DOMTreeUpdater to precisely track which nodes and attributes
of each node need to be updated on the next animation frame. This is done using
Sets and Maps that only hold onto the most recent attribute values rather than
pushing a record object for every single mutation.
This improves the performance of the Elements tab on an SVG particle simulator
dramatically so that the Inspector will not immediately hang. It still only achieves
a few updates per second in this case, so there is still optimization to be done on
the frontend and throttling to be done on the backend.
- UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement):
(WebInspector.DOMTreeElement.prototype.attributeDidChange):
(WebInspector.DOMTreeElement.prototype._buildAttributeDOM):
(WebInspector.DOMTreeElement.prototype._markNodeChanged):
(WebInspector.DOMTreeElement.prototype._nodeChangedAnimationEnd):
(WebInspector.DOMTreeElement.prototype._fireDidChange):
(WebInspector.DOMTreeElement.prototype.nodeStateChanged): Deleted.
Simplify the list of modified attributes a little bit. This still uses a worklist
approach, so it's possible that duplicate updates for the same attribute could accumulate
if DOMTreeUpdater pushes updates faster than DOMTreeElement can render them.
- UserInterface/Views/DOMTreeUpdater.js:
(WebInspector.DOMTreeUpdater):
(WebInspector.DOMTreeUpdater.prototype._attributesUpdated):
(WebInspector.DOMTreeUpdater.prototype._characterDataModified):
(WebInspector.DOMTreeUpdater.prototype._nodeAttributeModified):
(WebInspector.DOMTreeUpdater.prototype._nodeInserted):
(WebInspector.DOMTreeUpdater.prototype._nodeRemoved):
(WebInspector.DOMTreeUpdater.prototype._childNodeCountUpdated):
(WebInspector.DOMTreeUpdater.prototype._updateModifiedNodes):
(WebInspector.DOMTreeUpdater.prototype._reset):
Rewrite this class to separately track insertions, deletions, and modifications. Use
Sets and Maps so redundant entries are not kept around. Split the main work loop
and use fewer enum-like properties to control how each DOM element change is handled.
Attempt to update all inserted children before modifying their attributes. This
wasn't done previously, but enough duplicate attribute modifications occurred that
usually some of them would be processed after being added to the tree. There is only
one chance to do this now.
- 2:15 PM Changeset in webkit [201832] by
-
- 10 edits2 adds in trunk
For keyboard users, activating a fragment URL should transfer focus and caret to the destination
https://bugs.webkit.org/show_bug.cgi?id=116046
Reviewed by Ryosuke Niwa.
Source/WebCore:
Added a sequential focus navigation starting node to document. When TAB or SHIFT-TAB is pressed
and there is no focused element, we start searching for next focus candidates at the sequential
focus navigation node.
Spec: https://html.spec.whatwg.org/multipage/interaction.html#sequential-focus-navigation-starting-point
Test: fast/events/sequential-focus-navigation-starting-point.html
- dom/Document.cpp:
(WebCore::Document::removedLastRef):
(WebCore::Document::destroyRenderTree):
(WebCore::Document::styleResolverChanged):
(WebCore::isNodeInSubtree):
(WebCore::Document::removeFocusedNodeOfSubtree):
(WebCore::Document::hoveredElementDidDetach):
(WebCore::Document::setFocusedElement):
(WebCore::shouldResetFocusNavigationStartingNode):
(WebCore::Document::setFocusNavigationStartingNode):
(WebCore::Document::focusNavigationStartingNode):
(WebCore::Document::setCSSTarget):
(WebCore::Document::nodeChildrenWillBeRemoved):
(WebCore::Document::nodeWillBeRemoved):
(WebCore::fallbackFocusNavigationStartingNodeAfterRemoval):
(WebCore::Document::removeFocusNavigationNodeOfSubtree):
(WebCore::Document::textInserted):
- dom/Document.h:
(WebCore::Document::userActionElements):
- page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
- page/FocusController.cpp:
(WebCore::FocusController::advanceFocusInDocumentOrder):
- page/FrameView.cpp:
(WebCore::FrameView::scrollToAnchor):
LayoutTests:
Added a layout test to check that mouse pressing, fragment navigation, focusing an element and removing
the focused element will give us the expected focus navigation starting point.
Also updated the fragment activation test because now that navigating to an unfocusable fragment will
unfocus the current focused element.
- fast/dom/fragment-activation-focuses-target-expected.txt:
- fast/dom/fragment-activation-focuses-target.html:
- fast/events/sequential-focus-navigation-starting-point-expected.txt: Added.
- fast/events/sequential-focus-navigation-starting-point.html: Added.
- platform/ios-simulator/TestExpectations:
- 2:07 PM Changeset in webkit [201831] by
-
- 4 edits2 adds in trunk/Source/WebCore
HTMLMediaElement.prototype.canPlayType accounting for 250-750ms first loading theverge.com
https://bugs.webkit.org/show_bug.cgi?id=158335
<rdar://problem/26615416>
Reviewed by Brent Fulgham.
- WebCore.xcodeproj/project.pbxproj: Add AVFoundationMIMETypeCache.
- platform/graphics/avfoundation/objc/AVFoundationMIMETypeCache.h: Added.
- platform/graphics/avfoundation/objc/AVFoundationMIMETypeCache.mm: Added.
(WebCore::AVFoundationMIMETypeCache::AVFoundationMIMETypeCache):
(WebCore::AVFoundationMIMETypeCache::loadTypes):
(WebCore::AVFoundationMIMETypeCache::types):
(WebCore::AVFoundationMIMETypeCache::singleton):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine): Start MIME type loading.
(WebCore::MediaPlayerPrivateAVFoundationObjC::getSupportedTypes): Use AVFoundationMIMETypeCache.
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsKeySystem): Ditto.
(WebCore::avfMIMETypes): Deleted.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine): Start MIME type loading.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isAvailable): Use AVFoundationMIMETypeCache.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::getSupportedTypes): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType): Ditto.
(WebCore::mimeTypeCache): Deleted.
- 1:59 PM Changeset in webkit [201830] by
-
- 7 edits in trunk/Source/JavaScriptCore
Simplify Interpreter::StackFrame.
https://bugs.webkit.org/show_bug.cgi?id=158498
Reviewed by Saam Barati.
Previously, Interpreter::StackFrame (which is used to capture info for
Error.stack) eagerly extracts info out of CodeBlock and duplicates the work that
CodeBlock does to compute line and column numbers (amongst other things).
This patch does away with the eager extraction and only stashes the CodeBlock
pointer in the Interpreter::StackFrame. Instead, Interpreter::StackFrame will
provide methods for computing the desired values on request later.
One difference in implementation: the old StackFrame offers a sourceURL and a
friendlySourceURL(). The only difference between the 2 is that for native
functions, sourceURL returns an empty string, and friendlySourceURL() returns
"[native code]". This is how it affects the clients of StackFrame:
- In the old code, the Error object's addErrorInfoAndGetBytecodeOffset() and the inspector's createScriptCallStackFromException() would check if sourceURL is empty. If so, they will use this as an indicator to use alternate source info in the Error object e.g. url and line numbers from the parser that produced a SyntaxError.
- In the new implementation, StackFrame only has a sourceURL() function that behaves like the old friendlySourceURL(). The client code which were relying on sourceURL being empty, will now explicitly check if the StackFrame is for native code using a new isNative() query in addition to the sourceURL being empty. This achieve functional parity with the old behavior.
Also fix Error.cpp's addErrorInfoAndGetBytecodeOffset() to take a bytecodeOffset
pointer instead of a reference. The bytecodeOffset arg is supposed to be
optional, but was implemented in a unclear way. This change clarifies it.
- inspector/ScriptCallStackFactory.cpp:
(Inspector::createScriptCallStackFromException):
- interpreter/Interpreter.cpp:
(JSC::StackFrame::sourceID):
(JSC::StackFrame::sourceURL):
(JSC::StackFrame::functionName):
(JSC::eval):
(JSC::Interpreter::isOpcode):
(JSC::StackFrame::computeLineAndColumn):
(JSC::StackFrame::toString):
(JSC::GetStackTraceFunctor::operator()):
(JSC::StackFrame::friendlySourceURL): Deleted.
(JSC::StackFrame::friendlyFunctionName): Deleted.
(JSC::getStackFrameCodeType): Deleted.
(JSC::StackFrame::expressionInfo): Deleted.
- interpreter/Interpreter.h:
(JSC::StackFrame::isNative):
- runtime/Error.cpp:
(JSC::addErrorInfoAndGetBytecodeOffset):
(JSC::addErrorInfo):
- runtime/Error.h:
- runtime/ErrorInstance.cpp:
(JSC::ErrorInstance::finishCreation):
- 1:56 PM Changeset in webkit [201829] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION (r158219): Web Inspector: Border under the default Timeline content view is too thick
https://bugs.webkit.org/show_bug.cgi?id=158533
Reviewed by Timothy Hatcher.
- UserInterface/Views/OverviewTimelineView.css:
(.timeline-view.overview > .data-grid th): Deleted.
- 1:43 PM Changeset in webkit [201828] by
-
- 1 edit2 adds in trunk/Websites/perf.webkit.org
sync-buildbot.js should update the list of tests and platforms associated with a triggerable
https://bugs.webkit.org/show_bug.cgi?id=158406
Reviewed by Chris Dumez.
Add /api/update-triggerable and a test for it, which were supposed to be added in r201718
but for which I forgot to run svn add.
- public/api/update-triggerable.php: Added.
(main):
- server-tests/api-update-triggerable.js: Added.
- 1:21 PM Changeset in webkit [201827] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Command-W should not close Web Inspector tabs; it should close the window
https://bugs.webkit.org/show_bug.cgi?id=158538
rdar://problem/26699215
Reviewed by Brian Burg.
- UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser): Change shortcut to Command-Shift-W.
- 12:50 PM Changeset in webkit [201826] by
-
- 2 edits2 adds in trunk/LayoutTests/imported/w3c
Import new AddEventListenerOptions test from W3C web-platform-tests
https://bugs.webkit.org/show_bug.cgi?id=158535
Reviewed by Ryosuke Niwa.
Import new AddEventListenerOptions test from W3C web-platform-tests.
- web-platform-tests/dom/events/AddEventListenerOptions-passive-expected.txt: Added.
- web-platform-tests/dom/events/AddEventListenerOptions-passive.html: Added.
- web-platform-tests/dom/events/EventListenerOptions-capture.html:
- 12:40 PM Changeset in webkit [201825] by
-
- 13 edits in trunk/Source/JavaScriptCore
We should be able to lookup symbols by identifier in builtins
https://bugs.webkit.org/show_bug.cgi?id=158530
Reviewed by Mark Lam.
This patch allows us to lookup the value of a symbol property on a
object by identifier in builtins. Before, it was only possible to
do so if we were directly emitting the bytecodes, such as in a
for-of loop looking for Symbol.iterator. As we tier up we convert
the builtin's get_by_val symbol lookups into get_by_id
lookups. However, there is still a significant performance
difference between get_by_id and get_by_val in the LLInt, where
this transformation does not take place.
In order to make this work we hijack BuiltinNames'
m_publicToPrivateMap so that it points the @<symbol>Symbol to the
appropriate vm symbol. This way when we lex the identifier it will
become the appropriate symbol's identifier. Currently, if the
symbol is used to name a property in an object literal we will not
keep a cache of the Symbol objects we have already seen. We could
add a map for symbols but since we can only load symbols by
identifier in builtins its likely not worth it. Additionally, even
in builtins it is extremely rare to use Symbols in object
literals.
- builtins/ArrayConstructor.js:
(from):
- builtins/ArrayPrototype.js:
(filter):
(map):
- builtins/BuiltinNames.h:
(JSC::BuiltinNames::BuiltinNames):
- builtins/BuiltinUtils.h:
- builtins/GlobalObject.js:
(speciesConstructor):
- builtins/StringPrototype.js:
(match):
(intrinsic.StringPrototypeReplaceIntrinsic.replace):
(search):
(split):
- builtins/TypedArrayConstructor.js:
(from):
- builtins/TypedArrayPrototype.js:
(map):
(filter):
- bytecode/BytecodeIntrinsicRegistry.cpp:
(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry): Deleted.
- bytecode/BytecodeIntrinsicRegistry.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitLoad):
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
- 12:20 PM Changeset in webkit [201824] by
-
- 5 edits in trunk/Source
Versioning.
- 12:19 PM Changeset in webkit [201823] by
-
- 16 edits in trunk
REGRESSION (r201667): ASSERTION FAILED: !m_anchorNode !editingIgnoresContent(*m_anchorNode) https://bugs.webkit.org/show_bug.cgi?id=158373
Source/WebCore:
<rdar://problem/26690795>
Reviewed by Brent Fulgham.
The bug was caused by VisibleSelection::toNormalizedRange calling parentAnchoredEquivalent on an orphaned Position.
Fixed it by checking that condition and exiting early since we can't create a Range with a detached node anyway.
Also renamed isNonOrphanedCaretOrRange to isNoneOrOrphaned after negating the semantics for clarity.
Test: editing/selection/selection-in-iframe-removed-crash.html
- editing/EditorCommand.cpp:
(WebCore::valueFormatBlock):
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
- editing/InsertLineBreakCommand.cpp:
(WebCore::InsertLineBreakCommand::doApply):
- editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApply):
- editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
- editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::doApply):
- editing/RemoveFormatCommand.cpp:
(WebCore::RemoveFormatCommand::doApply):
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply):
- editing/SetSelectionCommand.cpp:
(WebCore::SetSelectionCommand::doApply):
(WebCore::SetSelectionCommand::doUnapply):
- editing/TypingCommand.cpp:
(WebCore::TypingCommand::doApply):
- editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::firstRange): Also added a check for isNoneOrOrphaned since this function can hit the same
assertion when the selection end points are orphaned.
(WebCore::VisibleSelection::toNormalizedRange): Fixed the bug.
- editing/VisibleSelection.h:
(WebCore::VisibleSelection::isNoneOrOrphaned): Renamed from isNonOrphanedCaretOrRange and negated the semantics.
LayoutTests:
Reviewed by Brent Fulgham.
Fixed a test so that the assertion failure happens within the test instead of affecting the subsequent test.
- editing/selection/selection-in-iframe-removed-crash-expected.txt:
- editing/selection/selection-in-iframe-removed-crash.html:
- 12:18 PM Changeset in webkit [201822] by
-
- 1 copy in tags/Safari-602.1.36
New tag.
- 12:17 PM Changeset in webkit [201821] by
-
- 2 edits in trunk/Tools
tests fail if display sleeps while run-webkit-tests is running
https://bugs.webkit.org/show_bug.cgi?id=153919
Reviewed by Alexey Proskuryakov.
- DumpRenderTree/mac/LayoutTestHelper.m:
(releaseSleepAssertions): Release both Display sleep and System sleep assertions.
(addSleepAssertions): Add sleep assertion for both Display sleep and System sleep.
- 11:52 AM Changeset in webkit [201820] by
-
- 2 edits in trunk/LayoutTests
Marking css3/filters/backdrop/dynamic-backdrop-filter-change.html as flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=158534
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 11:47 AM Changeset in webkit [201819] by
-
- 2 edits in trunk/Tools
Reverted changeset 201814.
- Scripts/copy-webkitlibraries-to-product-directory:
- 11:46 AM Changeset in webkit [201818] by
-
- 5 edits2 adds in trunk
Multiple selectors break keyframes animation
https://bugs.webkit.org/show_bug.cgi?id=158199
<rdar://problem/26652591>
Reviewed by Simon Fraser.
Source/WebCore:
If we came across a duplicate key entry in a keyframe, we
were replacing the existing entry, instead of merging.
Test: animations/duplicate-keys.html
- css/CSSKeyframeRule.h:
(WebCore::StyleKeyframe::setKey): Add a way to set the key of a rule
as a number, rather than going through a string and the CSS parser.
- css/StyleResolver.cpp:
(WebCore::StyleResolver::keyframeStylesForAnimation): Check if the rule
has duplicates, and if it does, merge all the common entries.
- rendering/style/KeyframeList.cpp:
(WebCore::KeyframeList::insert): Now that we've removed duplicates at
the processing time, we should never come across a duplicate while
building this list.
LayoutTests:
- animations/duplicate-keys-expected.html: Added.
- animations/duplicate-keys.html: Added.
- 11:45 AM Changeset in webkit [201817] by
-
- 12 edits in trunk
[Win] Shadow DOM tests are failing.
https://bugs.webkit.org/show_bug.cgi?id=158524
Reviewed by Brent Fulgham.
.:
Enable Shadow DOM.
- Source/cmake/OptionsWin.cmake:
Source/WebKit/win:
Add preference for enabling Shadow DOM.
- Interfaces/IWebPreferencesPrivate.idl:
- WebPreferenceKeysPrivate.h:
- WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
(WebPreferences::shadowDOMEnabled):
(WebPreferences::setShadowDOMEnabled):
- WebPreferences.h:
- WebView.cpp:
(WebView::notifyPreferencesChanged):
Tools:
Enable Shadow DOM when running tests.
- DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebPreferencesToConsistentValues):
LayoutTests:
Update test expectations for Shadow DOM.
- platform/win/TestExpectations:
- 11:45 AM Changeset in webkit [201816] by
-
- 3 edits in trunk/Source/WebCore
Rebaseline bindings tests after r201808
Unreviewed test gardening.
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::JSTestGlobalObject::finishCreation):
- bindings/scripts/test/JS/JSTestGlobalObject.h:
- 11:37 AM Changeset in webkit [201815] by
-
- 5 edits in trunk
Teach cmake about libWebKitSystemInterfaceOSX10.12
Source/WebCore:
Rubber-stamped by Matt Hanson and Alex Christensen.
- PlatformMac.cmake:
Tools:
This patch also removes duplicated logic inside DumpRenderTree/PlatformMac.cmake
Rubber-stamped by Alex Christensen.
- DumpRenderTree/PlatformMac.cmake:
- WebKitTestRunner/PlatformMac.cmake:
- 11:25 AM Changeset in webkit [201814] by
-
- 2 edits in trunk/Tools
<rdar://problem/26685782>
Teach the copy-webkitlibraries-to-product-directory script about WebKitSystemInterfaceOSX10.12
Rubber-stamped by Jessie Berlin.
- Scripts/copy-webkitlibraries-to-product-directory:
- 11:13 AM Changeset in webkit [201813] by
-
- 10 edits in trunk/PerformanceTests
Use more ES6 features in JSAir
https://bugs.webkit.org/show_bug.cgi?id=158497
Reviewed by Keith Miller.
This improves JSAir with the following ES6 features suggested by JoePeck:
- String interpolation.
- Destructuring inside PatchCustom.
- Default arguments.
All of these things are on hot paths.
Note that I didn't use string interpolation everywhere that I could, only in those places
where it made the code more readable. In Ruby, I used the style that if the interpolation
expression has any non-trivial stuff (like a ternary operator, a chain of calls, or embedded
strings) then it's better to use regular strcat. I think that's what I carried over to here.
Note that the previous change (Add result validation to JSAir) also made the Proxy code not
dead, though it's not necessarily on the hot path. The Proxy isn't called into frequently
but it's used from a function that is otherwise hot, so if calling into the Proxy prevents
that function from being optimized then it will hurt so good.
I also reenabled tail calls in a few places.
This change doesn't seem to change the performance of the benchmark for us. That's expected
since these ES6 features are cheap. Note that this claim doesn't include Proxy, which was
added in a separate change and that change did make the benchmark overall more expensive.
- JSAir/allocate_stack.js:
(allocateStack):
- JSAir/arg.js:
(Arg.createBitImm64):
(Arg.createAddr):
(Arg.createStack):
(Arg.logScale):
(Arg.createIndex):
- JSAir/basic_block.js:
(BasicBlock.get headerString):
(BasicBlock.prototype.get if):
(BasicBlock):
- JSAir/benchmark.js:
(benchmark):
- JSAir/code.js:
(Code):
(Code.prototype.addBlock):
(Code.prototype.addStackSlot):
(Code.prototype.newTmp):
(Code.prototype.get size):
(Code.prototype.get blocks):
(Code.prototype.get stackSlots):
(Code.prototype.tmps):
(Code.prototype.get callArgAreaSize):
(Code.prototype.toString):
- JSAir/custom.js:
(const.PatchCustom.forEachArg):
- JSAir/inst.js:
(Inst):
- JSAir/reg.js:
(Reg.prototype.toString):
- JSAir/util.js:
(symbolName):
(lowerSymbolName):
- 11:03 AM Changeset in webkit [201812] by
-
- 2 edits in trunk/Tools
Don't try to cleanup non-existing ios Simulators
https://bugs.webkit.org/show_bug.cgi?id=158510
Reviewed by Alexey Proskuryakov.
- Scripts/webkitpy/port/ios.py:
(IOSSimulatorPort.clean_up_test_run):
Check if simulator exists before trying to clean it up.
- 10:46 AM Changeset in webkit [201811] by
-
- 2 edits in trunk/Tools
Try to fix the Windows build.
Unreviewed.
- TestWebKitAPI/Tests/WTF/CrossThreadTask.cpp:
(TestWebKitAPI::LifetimeLogger::log):
(TestWebKitAPI::LifetimeLogger::takeLogStr):
(TestWebKitAPI::testFunction):
(TestWebKitAPI::TEST):
(TestWebKitAPI::log): Deleted. (VS was seeing it as a dupe symbol)
(TestWebKitAPI::takeLogStr): Deleted. (VS was seeing it as a dupe symbol)
- 10:32 AM Changeset in webkit [201810] by
-
- 28 edits10 copies5 adds in trunk
[web-animations] Add Animatable, AnimationEffect, KeyframeEffect and Animation interface
https://bugs.webkit.org/show_bug.cgi?id=156096
Patch by Rawinder Singh <rawinder.singh-webkit@cisra.canon.com.au> on 2016-06-08
Reviewed by Dean Jackson.
Adds:
Source/JavaScriptCore:
- Animatable interface and implementation of getAnimations in Element
- Interface and implementation for Document getAnimations method.
- AnimationEffect interface and class stub.
- KeyframeEffect interface and constructor implementation.
- 'Animation' interface, constructor and query methods for effect and timeline.
- Remove runtime condition on Web animation interfaces (compile time flag is specified).
- runtime/CommonIdentifiers.h:
Source/WebCore:
- Animatable interface and implementation of getAnimations in Element
- Interface and implementation for Document getAnimations method.
- AnimationEffect interface and class stub.
- KeyframeEffect interface and constructor implementation.
- 'Animation' interface, constructor and query methods for effect and timeline.
- Remove runtime condition on Web animation interfaces (compile time flag is specified).
Test: webanimations/Document.html
- CMakeLists.txt:
- DerivedSources.make:
- PlatformGTK.cmake:
- WebCore.xcodeproj/project.pbxproj:
- animation/Animatable.idl: Copied from Source/WebCore/animation/DocumentAnimation.idl.
- animation/AnimationEffect.cpp: Copied from Source/WebCore/animation/AnimationTimeline.cpp.
(WebCore::AnimationEffect::AnimationEffect):
(WebCore::AnimationEffect::~AnimationEffect):
(WebCore::AnimationEffect::setAnimation):
(WebCore::AnimationEffect::isCurrent):
(WebCore::AnimationEffect::isInEffect):
- animation/AnimationEffect.h: Copied from Source/WebCore/animation/DocumentTimeline.cpp.
- animation/AnimationEffect.idl: Copied from Source/WebCore/animation/AnimationTimeline.idl.
- animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::destroy):
(WebCore::AnimationTimeline::attachAnimation):
(WebCore::AnimationTimeline::detachAnimation):
- animation/AnimationTimeline.h:
- animation/AnimationTimeline.idl:
- animation/DocumentAnimation.cpp:
(WebCore::DocumentAnimation::timeline):
(WebCore::DocumentAnimation::getAnimations):
(WebCore::DocumentAnimation::addAnimation):
(WebCore::DocumentAnimation::removeAnimation):
- animation/DocumentAnimation.h:
(WebCore::DocumentAnimation::getAnimations):
- animation/DocumentAnimation.idl:
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::create):
(WebCore::DocumentTimeline::DocumentTimeline):
(WebCore::DocumentTimeline::attach):
(WebCore::DocumentTimeline::detach):
- animation/DocumentTimeline.h:
- animation/DocumentTimeline.idl:
- animation/KeyframeEffect.cpp: Copied from Source/WebCore/animation/DocumentTimeline.cpp.
(WebCore::KeyframeEffect::create):
(WebCore::KeyframeEffect::KeyframeEffect):
(WebCore::KeyframeEffect::~KeyframeEffect):
- animation/KeyframeEffect.h: Copied from Source/WebCore/animation/DocumentTimeline.h.
- animation/KeyframeEffect.idl: Copied from Source/WebCore/animation/AnimationTimeline.idl.
- animation/WebAnimation.cpp: Copied from Source/WebCore/animation/DocumentAnimation.cpp.
(WebCore::WebAnimation::create):
(WebCore::WebAnimation::WebAnimation):
(WebCore::WebAnimation::~WebAnimation):
- animation/WebAnimation.h: Copied from Source/WebCore/animation/DocumentAnimation.h.
- animation/WebAnimation.idl: Copied from Source/WebCore/animation/DocumentTimeline.idl.
- bindings/scripts/CodeGeneratorGObject.pm:
- dom/Element.cpp:
(WebCore::Element::getAnimations):
- dom/Element.h:
- dom/Element.idl:
Source/WebKit/mac:
- Setup interface for enabling runtime flag for Web animations through preferences.
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences webAnimationsEnabled]):
(-[WebPreferences setWebAnimationsEnabled:]):
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
LayoutTests:
- Animatable interface and implementation of getAnimations in Element
- Interface and implementation for Document getAnimations method.
- AnimationEffect interface and class stub.
- KeyframeEffect interface and constructor implementation.
- 'Animation' interface, constructor and query methods for effect and timeline.
- Remove runtime condition on Web animation interfaces (compile time flag is specified).
- platform/gtk/js/dom/global-constructors-attributes-expected.txt:
- platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
- webanimations/Document-expected.txt: Added.
- webanimations/Document.html: Added.
- webanimations/script-tests/Document.js: Added.
- 10:31 AM Changeset in webkit [201809] by
-
- 4 edits in trunk
Make CrossThreadCopier more efficient (fewer copies!).
https://bugs.webkit.org/show_bug.cgi?id=158456
Reviewed by Alex Christensen.
Source/WTF:
Previously, we'd run all arguments through CrossThreadCopier, then immediately make
an unnecessary copy of the result during lambda capture.
Instead, we should just put the CrossThreadCopier generated objects directly in lambdas,
which are then captured by NoncopyableFunctions.
This reduces the number of constructor calls per argument from 2 copies to 1 move.
- wtf/CrossThreadTask.h:
(WTF::CrossThreadTask::CrossThreadTask):
(WTF::createCrossThreadTask):
Tools:
- TestWebKitAPI/Tests/WTF/CrossThreadTask.cpp:
(TestWebKitAPI::TEST):
- 10:31 AM Changeset in webkit [201808] by
-
- 8 edits4 adds in trunk
self.hasOwnProperty() does not work inside Web workers
https://bugs.webkit.org/show_bug.cgi?id=158446
<rdar://problem/26638397>
Reviewed by Geoffrey Garen.
Source/JavaScriptCore:
Add a factory function to JSProxy to create a JSProxy without a target.
Also make the setTarget() method public so that the target can now be
set after creation. This is needed so that we can create a proxy for
JSWorkerGlobalScope, then create the JSWorkerGlobalScope object,
passing it the proxy and finally set the target on the proxy.
- runtime/JSProxy.h:
(JSC::JSProxy::create):
Source/WebCore:
W3C tests for workers were severely broken on WebKit because
self.hasOwnProperty() did not work inside workers. The reason is that
hasOwnProperty() (and other methods like toString()) call toThis() in
StrictMode on thisValue. However, in the case of 'self' in workers,
self was a DedicatedWorkerGlobalScope, which is a JSGlobalObject.
JSGlobalObject::toThis() returns jsUndefined() when called in strict
mode. As a result, we would end up with exceptions such as "undefined
is not an object" when calling self.hasOwnProperty() in workers.
To address the problem, this patch introduces a JSProxy whose proxy
type is PureForwardingProxyType and whose target is the
WorkerGlobalScope. This JSProxy is what we expose to the JavaScript,
instead of the JSWorkerGlobalScope itself. As a result, toThis() now
behaves as expected and self.hasOwnProperty() works inside workers.
This patch greatly improves our pass rate on several W3C tests:
http://w3c-test.org/workers/interfaces.worker: 20 passes -> 50 passes (out of 128)
http://w3c-test.org/IndexedDB/interfaces.worker 0 passes -> 145 passes (out of 156)
Tests: fast/workers/self-hasOwnProperty.html
fast/workers/self-toString.html
- bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::JSWorkerGlobalScopeBase::finishCreation):
(WebCore::JSWorkerGlobalScopeBase::visitChildren):
(WebCore::toJS):
- bindings/js/JSWorkerGlobalScopeBase.h:
(WebCore::JSWorkerGlobalScopeBase::proxy):
- bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::initScript):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
LayoutTests:
Add tests to make sure that self.toString() and self.hasOwnProperty()
now work in workers.
- fast/workers/self-hasOwnProperty-expected.txt: Added.
- fast/workers/self-hasOwnProperty.html: Added.
- fast/workers/self-toString-expected.txt: Added.
- fast/workers/self-toString.html: Added.
- 10:21 AM Changeset in webkit [201807] by
-
- 31 edits2 adds in trunk
Add result validation to JSAir
https://bugs.webkit.org/show_bug.cgi?id=158493
Reviewed by Saam Barati.
PerformanceTests:
This adds the ability to hash a Code in a way that matches the C++ code's hashing of Code.
This allows us to check if the Code that JSAir sees is the code that C++ saw. We use this to
check the Code before and after allocateStack, and compare against hashes we got from C++.
Doing this uncovered bugs. roundUpToMultipleOf wasn't doing anything. allocateStack was not
allocating things correctly because I was concatting a Set to an Array, which doesn't really
work. Now these bugs are fixed.
The checking step adds to the running time so I reduced the number of iterations. The
benchmark spends a decent amount of its time computing Code hashes; I think it's around 1/3
total. This is probably OK. It's better to verify the results even if the running time is
not all in the "core" of the algorithm.
Also add a run-jsc-stress-tests yaml file to allow this to run as a test.
- JSAir/allocate_stack.js:
- JSAir/arg.js:
(Arg.createImm):
(Arg.createBigImm):
(Arg.createBitImm):
(Arg.createBitImm64):
(Arg.createWidth):
(Arg.createSpecial):
(Arg.prototype.get kind):
(Arg.prototype.get isTmp):
(Arg.prototype.get isImm):
(Arg.prototype.get isSomeImm):
(Arg.prototype.get isSomeBigImm):
(Arg.prototype.get isCondition):
(Arg.prototype.get isWidth):
(Arg.prototype.get isSpecial):
(Arg.prototype.get isAlive):
(Arg.prototype.get tmp):
(Arg.prototype.get value):
(Arg.prototype.get lowValue):
(Arg.prototype.get highValue):
(Arg.prototype.get base):
(Arg.prototype.get isGP):
(Arg.prototype.get isFP):
(Arg.prototype.isValidForm):
(Arg.prototype.get isInvertible):
(Arg.kindCode):
(Arg.prototype.hash):
(Arg.prototype.toString):
(Arg):
- JSAir/basic_block.js:
(BasicBlock.get successorBlocks):
- JSAir/benchmark.js:
(benchmark):
- JSAir/code.js:
(Code.prototype.setFrameSize):
(Code.prototype.hash):
(Code.prototype.toString):
(Code):
- JSAir/inst.js:
(Inst.prototype.get hasNonArgEffects):
(Inst.prototype.hash):
(Inst.prototype.toString):
(Inst):
- JSAir/jsair-tests.yaml: Added.
- JSAir/opcode.js:
(Inst_forEachArg):
(Inst_hasNonArgEffects):
(opcodeCode):
- JSAir/payload-gbemu-executeIteration.js:
(createPayloadGbemuExecuteIteration):
- JSAir/payload-imaging-gaussian-blur-gaussianBlur.js:
(createPayloadImagingGaussianBlurGaussianBlur):
- JSAir/payload-jsair-ACLj8C.js:
(createPayloadJSAirACLj8C):
- JSAir/payload-typescript-scanIdentifier.js:
(createPayloadTypescriptScanIdentifier):
- JSAir/reg.js:
(Reg.prototype.get isReg):
(Reg.prototype.hash):
(Reg.prototype.toString):
- JSAir/stack_slot.js:
(StackSlot.prototype.setOffsetFromFP):
(StackSlot.prototype.hash):
(StackSlot.prototype.toString):
- JSAir/symbols.js:
(relCondCode):
(resCondCode):
(doubleCondCode):
- JSAir/test.html:
- JSAir/tmp.js:
(Tmp.prototype.get isReg):
(Tmp.prototype.hash):
(Tmp.prototype.toString):
- JSAir/util.js:
(roundUpToMultipleOf):
(symbolName):
Source/JavaScriptCore:
Add a ::jsHash() method to some things, to compute a hash code that is suitable for
comparing a C++ Code to a JSAir Code. This is different from existing hashing functionality
because it errs on the side of easy reproducibility from JS rather than speed.
- b3/air/AirArg.cpp:
(JSC::B3::Air::Arg::isCompatibleType):
(JSC::B3::Air::Arg::jsHash):
(JSC::B3::Air::Arg::dump):
- b3/air/AirArg.h:
(JSC::B3::Air::Arg::asDoubleCondition):
(JSC::B3::Air::Arg::isInvertible):
(JSC::B3::Air::Arg::isUnsignedCond):
(JSC::B3::Air::Arg::Arg):
- b3/air/AirCode.cpp:
(JSC::B3::Air::Code::addFastTmp):
(JSC::B3::Air::Code::jsHash):
- b3/air/AirCode.h:
(JSC::B3::Air::Code::lastPhaseName):
- b3/air/AirDumpAsJS.cpp:
(JSC::B3::Air::dumpAsJS):
- b3/air/AirGenerate.cpp:
(JSC::B3::Air::prepareForGeneration):
- b3/air/AirInst.cpp:
(JSC::B3::Air::Inst::hasArgEffects):
(JSC::B3::Air::Inst::jsHash):
(JSC::B3::Air::Inst::dump):
- b3/air/AirInst.h:
- b3/air/AirStackSlot.cpp:
(JSC::B3::Air::StackSlot::setOffsetFromFP):
(JSC::B3::Air::StackSlot::jsHash):
(JSC::B3::Air::StackSlot::dump):
- b3/air/AirStackSlot.h:
- b3/air/opcode_generator.rb:
Tools:
Run JSAir.
- Scripts/run-javascriptcore-tests:
(runJSCStressTests):
- 9:48 AM Changeset in webkit [201806] by
-
- 3 edits1 add in trunk/Tools
Add an API test that confirms object constructor/destructor calls during creation of a CrossThreadTask.
https://bugs.webkit.org/show_bug.cgi?id=158528
Reviewed by Alex Christensen.
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/CrossThreadTask.cpp: Added.
(TestWebKitAPI::log):
(TestWebKitAPI::takeLogStr):
(TestWebKitAPI::LifetimeLogger::LifetimeLogger):
(TestWebKitAPI::LifetimeLogger::~LifetimeLogger):
(TestWebKitAPI::LifetimeLogger::isolatedCopy):
(TestWebKitAPI::testFunction):
(TestWebKitAPI::TEST):
- 8:20 AM WebKitGTK/2.12.x edited by
- (diff)
- 6:37 AM Changeset in webkit [201805] by
-
- 11 edits in trunk
WebKit memory cache doesn't respect Vary header
https://bugs.webkit.org/show_bug.cgi?id=71509
<rdar://problem/26651033>
Reviewed by Sam Weinig.
Source/WebCore:
Implement Vary header support in WebCore memory cache.
The patch moves Vary header code from WebKit2 Network Cache to WebCore and uses it to
verify the headers for CachedResources.
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::failBeforeStarting):
(WebCore::addAdditionalRequestHeadersToRequest):
Factor into standalone function so we can use it from varyHeaderValuesMatch.
(WebCore::CachedResource::addAdditionalRequestHeaders):
(WebCore::CachedResource::load):
(WebCore::CachedResource::setResponse):
Collect the Vary header values when we receive a response.
(WebCore::CachedResource::responseReceived):
(WebCore::CachedResource::redirectChainAllowsReuse):
(WebCore::CachedResource::varyHeaderValuesMatch):
Test for Vary match.
(WebCore::CachedResource::overheadSize):
- loader/cache/CachedResource.h:
(WebCore::CachedResource::isCacheValidator):
(WebCore::CachedResource::resourceToRevalidate):
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::determineRevalidationPolicy):
Reload on Vary mismatch.
- platform/network/CacheValidation.cpp:
(WebCore::parseCacheControlDirectives):
(WebCore::headerValueForVary):
(WebCore::collectVaryingRequestHeaders):
(WebCore::verifyVaryingRequestHeaders):
Vary header collection and validation code moves here.
- platform/network/CacheValidation.h:
Source/WebKit2:
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::makeCacheKey):
(WebKit::NetworkCache::cachePolicyAllowsExpired):
(WebKit::NetworkCache::makeUseDecision):
(WebKit::NetworkCache::Cache::retrieve):
(WebKit::NetworkCache::Cache::store):
(WebKit::NetworkCache::Cache::storeRedirect):
(WebKit::NetworkCache::Cache::update):
(WebKit::NetworkCache::headerValueForVary): Deleted.
(WebKit::NetworkCache::collectVaryingRequestHeaders): Deleted.
(WebKit::NetworkCache::verifyVaryingRequestHeaders): Deleted.
These move to WebCore.
LayoutTests:
- http/tests/cache/disk-cache/disk-cache-vary-expected.txt:
- http/tests/cache/disk-cache/disk-cache-vary-no-body-expected.txt:
- 5:56 AM Changeset in webkit [201804] by
-
- 2 edits in trunk/Tools
TestWebKitAPI: Removed redunandant check PLATFORM(GTK) && !defined(BUILDING_WEBKIT2)
https://bugs.webkit.org/show_bug.cgi?id=158521
Reviewed by Carlos Garcia Campos.
- TestWebKitAPI/config.h:
- 5:48 AM Changeset in webkit [201803] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed. Fix GTK+ build with threaded compositor enabled after r201802.
- WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::create):
- 5:13 AM Changeset in webkit [201802] by
-
- 11 edits in trunk/Source/WebKit2
LayerTreeHost should be created with a WebPage reference instead of a pointer
https://bugs.webkit.org/show_bug.cgi?id=158520
Reviewed by Žan Doberšek.
We are indeed creating the LayerTreeHost always from a WebPage reference but getting its address to pass it to
the LayerTreeHost create() function.
- WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:
(WebKit::CoordinatedDrawingArea::enterAcceleratedCompositingMode):
- WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
(WebKit::CoordinatedLayerTreeHost::create):
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
(WebKit::CoordinatedLayerTreeHost::didFlushRootLayer):
(WebKit::CoordinatedLayerTreeHost::performScheduledLayerFlush):
(WebKit::CoordinatedLayerTreeHost::commitSceneState):
(WebKit::CoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
- WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
- WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::create):
(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost):
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
(WebKit::ThreadedCoordinatedLayerTreeHost::compositorDidFlushLayers):
(WebKit::ThreadedCoordinatedLayerTreeHost::didScaleFactorChanged):
(WebKit::ThreadedCoordinatedLayerTreeHost::setVisibleContentsRect):
- WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
- WebProcess/WebPage/DrawingAreaImpl.cpp:
(WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode):
- WebProcess/WebPage/LayerTreeHost.cpp:
(WebKit::LayerTreeHost::create):
(WebKit::LayerTreeHost::LayerTreeHost):
- WebProcess/WebPage/LayerTreeHost.h:
- WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:
(WebKit::LayerTreeHostGtk::create):
(WebKit::LayerTreeHostGtk::LayerTreeHostGtk):
(WebKit::LayerTreeHostGtk::makeContextCurrent):
(WebKit::LayerTreeHostGtk::deviceOrPageScaleFactorChanged):
(WebKit::LayerTreeHostGtk::paintContents):
(WebKit::LayerTreeHostGtk::deviceScaleFactor):
(WebKit::LayerTreeHostGtk::pageScaleFactor):
(WebKit::LayerTreeHostGtk::flushPendingLayerChanges):
(WebKit::LayerTreeHostGtk::flushAndRenderLayers):
(WebKit::LayerTreeHostGtk::pageBackgroundTransparencyChanged):
(WebKit::LayerTreeHostGtk::initialize): Deleted.
- WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
- 2:06 AM Changeset in webkit [201801] by
-
- 6 edits in trunk/Source/WebCore
Unreviewed, rolling out r201800.
https://bugs.webkit.org/show_bug.cgi?id=158518
Missing WebKit2 pieces (Requested by anttik on #webkit).
Reverted changeset:
"WebKit memory cache doesn't respect Vary header"
https://bugs.webkit.org/show_bug.cgi?id=71509
http://trac.webkit.org/changeset/201800
- 2:01 AM Changeset in webkit [201800] by
-
- 6 edits in trunk/Source/WebCore
WebKit memory cache doesn't respect Vary header
https://bugs.webkit.org/show_bug.cgi?id=71509
<rdar://problem/26651033>
Reviewed by Sam Weinig.
Implement Vary header support in WebCore memory cache.
The patch moves Vary header code from WebKit2 Network Cache to WebCore and uses it to
verify the headers for CachedResources.
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::failBeforeStarting):
(WebCore::addAdditionalRequestHeadersToRequest):
Factor into standalone function so we can use it from varyHeaderValuesMatch.
(WebCore::CachedResource::addAdditionalRequestHeaders):
(WebCore::CachedResource::load):
(WebCore::CachedResource::setResponse):
Collect the Vary header values when we receive a response.
(WebCore::CachedResource::responseReceived):
(WebCore::CachedResource::redirectChainAllowsReuse):
(WebCore::CachedResource::varyHeaderValuesMatch):
Test for Vary match.
(WebCore::CachedResource::overheadSize):
- loader/cache/CachedResource.h:
(WebCore::CachedResource::isCacheValidator):
(WebCore::CachedResource::resourceToRevalidate):
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::determineRevalidationPolicy):
Reload on Vary mismatch.
- platform/network/CacheValidation.cpp:
(WebCore::parseCacheControlDirectives):
(WebCore::headerValueForVary):
(WebCore::collectVaryingRequestHeaders):
(WebCore::verifyVaryingRequestHeaders):
Vary header collection and validation code moves here.
- platform/network/CacheValidation.h:
- 1:00 AM Changeset in webkit [201799] by
-
- 9 edits in trunk/Source/WebCore
Extend CSSFontSelector's lifetime to be longer than the Document's lifetime
https://bugs.webkit.org/show_bug.cgi?id=154101
Reviewed by Darin Adler.
Rather than destroying the Document's CSSFontSelector, instead, the object should
live for the lifetime of the document, and it should instead be asked to clear its
contents.
This is important for the CSS Font Loading API, where the identity of objects the
CSSFontSelector references needs to persist throughout the lifetime of the
Document. This patch represents the first step to implementing this correctly.
The second step is for the CSSFontSelector to perform a diff instead of a
wholesale clear of its contents. Once this is done, font loading objects can
survive through a call to Document::clearStyleResolver().
This patch gives the CSSFontSelector two states: building underway and building not
underway. The state is building underway in between calls to clearStyleResolver()
and when the style resolver gets built back up. Otherwise, the state is building
not underway. Because of this new design, creation of all FontFace objects can be
postponed until a state transition from building underway to building not underway.
A subsequent patch will perform the diff at this point. An ASSERT() makes sure that
we never service a font lookup request while Building.
No new tests because there is no behavior change.
- css/CSSFontFaceSet.cpp:
(WebCore::CSSFontFaceSet::clear):
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::buildStarted):
(WebCore::CSSFontSelector::buildCompleted):
(WebCore::CSSFontSelector::addFontFaceRule):
(WebCore::CSSFontSelector::fontRangesForFamily):
(WebCore::CSSFontSelector::CSSFontSelector): Deleted.
(WebCore::CSSFontSelector::clearDocument): Deleted.
- css/CSSFontSelector.h:
- css/StyleResolver.cpp:
(WebCore::StyleResolver::appendAuthorStyleSheets):
- dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::Document::clearStyleResolver):
(WebCore::Document::fontSelector): Deleted.
- dom/Document.h:
(WebCore::Document::fontSelector):
- 12:37 AM Changeset in webkit [201798] by
-
- 7 edits4 adds in trunk
WebRTC: Imlement MediaEndpointPeerConnection::setLocalDescription()
https://bugs.webkit.org/show_bug.cgi?id=158190
Reviewed by Eric Carlson.
Source/WebCore:
Add implementation for MediaEndpointPeerConnection::setLocalDescription. This function
parses the input SDP, configures the media backend and updates the
RTCPeerConnection state.
This change adds MediaEndpointSessionDescription which is an object representation
of an RTCSessionDescription (which contains an SDP string).
Test: fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html
- CMakeLists.txt:
Add MediaEndpointSessionDescription.
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::hasUnassociatedTransceivers):
(WebCore::MediaEndpointPeerConnection::createOfferTask):
(WebCore::MediaEndpointPeerConnection::setLocalDescription):
(WebCore::MediaEndpointPeerConnection::setLocalDescriptionTask):
Add implementation.
(WebCore::MediaEndpointPeerConnection::localDescription):
(WebCore::MediaEndpointPeerConnection::currentLocalDescription):
(WebCore::MediaEndpointPeerConnection::pendingLocalDescription):
(WebCore::MediaEndpointPeerConnection::localDescriptionTypeValidForState):
(WebCore::MediaEndpointPeerConnection::internalLocalDescription):
(WebCore::MediaEndpointPeerConnection::createRTCSessionDescription):
- Modules/mediastream/MediaEndpointPeerConnection.h:
- Modules/mediastream/MediaEndpointSessionDescription.cpp: Added.
(WebCore::MediaEndpointSessionDescription::create):
(WebCore::MediaEndpointSessionDescription::toRTCSessionDescription):
(WebCore::MediaEndpointSessionDescription::typeString):
(WebCore::MediaEndpointSessionDescription::isLaterThan):
- Modules/mediastream/MediaEndpointSessionDescription.h: Added.
(WebCore::MediaEndpointSessionDescription::~MediaEndpointSessionDescription):
(WebCore::MediaEndpointSessionDescription::type):
(WebCore::MediaEndpointSessionDescription::configuration):
(WebCore::MediaEndpointSessionDescription::MediaEndpointSessionDescription):
- WebCore.xcodeproj/project.pbxproj:
Add MediaEndpointSessionDescription.
LayoutTests:
Add new test for RTCPeerConnection.setLocalDescription.
- fast/mediastream/RTCPeerConnection-setLocalDescription-offer-expected.txt: Added.
- fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html: Added.
Set two local offers as local descriptions and inspect the state changes. Also set some
descriptions with bad types.
- platform/mac/TestExpectations:
Skip the above test for mac (not building with WEB_RTC)
Jun 7, 2016:
- 11:54 PM Changeset in webkit [201797] by
-
- 2 edits in trunk
[GTK] Enable IndexedDB in workers
https://bugs.webkit.org/show_bug.cgi?id=158475
Reviewed by Antonio Gomes.
This is working now and many tests are failing only because we don't enable it.
- Source/cmake/OptionsGTK.cmake:
- 11:51 PM Changeset in webkit [201796] by
-
- 2 edits in trunk/Source/WebCore
[GLIB] Implement hardLinkOrCopyFile() in FileSystemGlib
https://bugs.webkit.org/show_bug.cgi?id=158473
Reviewed by Michael Catanzaro.
It was added in r199230 to be used by IndexedDB blob support, but never implemented for GLib.
- platform/glib/FileSystemGlib.cpp:
(WebCore::hardLinkOrCopyFile):
- 11:49 PM Changeset in webkit [201795] by
-
- 2 edits in trunk/Tools
[GTK] Use a longer timeout for glib unit tests
https://bugs.webkit.org/show_bug.cgi?id=158476
Reviewed by Darin Adler.
The timeout is supposed to be per test case, but in the case of GLib tests it affects all the tests cases of the
same test program. Some test programs like TestLoaderClient, that have a lot of test cases, often time out in
the bots because the timeout is not enough to run all the tests cases. So, we should use a longer timeout for
GLib tests.
- Scripts/run-gtk-tests:
(TestRunner._run_test_glib):
- 11:30 PM Changeset in webkit [201794] by
-
- 2 edits in trunk/Source/WebCore
WebRTC: Refactor: Use captures with initializers in MediaEndpointPeerConnection::createOffer()
https://bugs.webkit.org/show_bug.cgi?id=158486
Reviewed by Eric Carlson.
Use initializers for the capture list when scheduling the "create offer task".
No change in behavior.
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::createOffer):
(WebCore::WrappedSessionDescriptionPromise::create): Deleted.
(WebCore::WrappedSessionDescriptionPromise::promise): Deleted.
(WebCore::WrappedSessionDescriptionPromise::WrappedSessionDescriptionPromise): Deleted.
Not needed anymore.
- 11:11 PM Changeset in webkit [201793] by
-
- 4 edits in trunk/Source/WebCore
TouchList::append() should take a Ref instead of RefPtr
https://bugs.webkit.org/show_bug.cgi?id=158469
Reviewed by Chris Dumez.
RefPtr<Touch> items handled in TouchList cannot be null. Thus
RefPtr<Touch> is replaced by Ref<Touch> objects.
- bindings/js/JSDocumentCustom.cpp:
(WebCore::JSDocument::createTouchList):
- dom/TouchList.cpp:
(WebCore::TouchList::item):
- dom/TouchList.h:
(WebCore::TouchList::append):
- 10:42 PM Changeset in webkit [201792] by
-
- 2 edits in trunk/Source/WebCore
EFL build has been broken since r201761
https://bugs.webkit.org/show_bug.cgi?id=158512
Unreviewed build fix.
- platform/posix/SharedBufferPOSIX.cpp:
(WebCore::SharedBuffer::createFromReadingFile):
Do not use ? operand in return line. Additionally return nullptr instead of 0.
- 10:28 PM Changeset in webkit [201791] by
-
- 5 edits in trunk
Expose Event / EventTarget properties on WorkerGlobalScope
https://bugs.webkit.org/show_bug.cgi?id=158511
Reviewed by Sam Weinig.
Source/WebCore:
Expose Event / EventTarget properties on WorkerGlobalScope, as per the
latest DOM specification:
No new tests, rebaselined existing test.
- dom/Event.idl:
- dom/EventTarget.idl:
LayoutTests:
Rebaseline existing test.
- js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
- 9:27 PM Changeset in webkit [201790] by
-
- 2 edits in trunk/Source/WebCore
[EFL] Build fix related with SharedBuffer::createFromReadingFile in SharedBufferPosix.cpp
https://bugs.webkit.org/show_bug.cgi?id=158515
- platform/posix/SharedBufferPOSIX.cpp:
(WebCore::SharedBuffer::createFromReadingFile):
- 8:39 PM Changeset in webkit [201789] by
-
- 2 edits in tags/Safari-602.1.35.0.1/Source/WebCore
Merged r201687. rdar://problem/26628125
- 8:38 PM Changeset in webkit [201788] by
-
- 5 edits in tags/Safari-602.1.35.0.1/Source
Versioning.
- 7:53 PM Changeset in webkit [201787] by
-
- 22 edits1 add in trunk/Source
Need an exception check after constructEmptyArray().
https://bugs.webkit.org/show_bug.cgi?id=158411
Reviewed by Saam Barati.
Source/JavaScriptCore:
Added an exception check after each call to constructEmptyArray().
- inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::getInternalProperties):
(Inspector::JSInjectedScriptHost::weakMapEntries):
(Inspector::JSInjectedScriptHost::weakSetEntries):
(Inspector::JSInjectedScriptHost::iteratorEntries):
- interpreter/ShadowChicken.cpp:
(JSC::ShadowChicken::functionsOnStack):
- profiler/ProfilerBytecodeSequence.cpp:
(JSC::Profiler::BytecodeSequence::addSequenceProperties):
- profiler/ProfilerCompilation.cpp:
(JSC::Profiler::Compilation::toJS):
- profiler/ProfilerDatabase.cpp:
(JSC::Profiler::Database::toJS):
- profiler/ProfilerOSRExitSite.cpp:
(JSC::Profiler::OSRExitSite::toJS):
- profiler/ProfilerOriginStack.cpp:
(JSC::Profiler::OriginStack::toJS):
- runtime/ArrayPrototype.cpp:
(JSC::arrayProtoFuncConcat):
(JSC::arrayProtoFuncSlice):
(JSC::arrayProtoFuncSplice):
- runtime/LiteralParser.cpp:
(JSC::LiteralParser<CharType>::parse):
- runtime/ModuleLoaderObject.cpp:
(JSC::moduleLoaderObjectRequestedModules):
- runtime/ObjectConstructor.cpp:
(JSC::ownPropertyKeys):
- runtime/RegExpObject.cpp:
(JSC::collectMatches):
- runtime/RegExpPrototype.cpp:
(JSC::regExpProtoFuncSplitFast):
- runtime/StringPrototype.cpp:
(JSC::stringProtoFuncSplitFast):
- runtime/TemplateRegistry.cpp:
(JSC::TemplateRegistry::getTemplateObject):
- tests/stress/regress-158411.js: Added.
Source/WebCore:
A stress test for this was added in JavaScriptCore.
- bindings/js/IDBBindingUtilities.cpp:
(WebCore::toJS):
- bindings/js/JSCommandLineAPIHostCustom.cpp:
(WebCore::getJSListenerFunctions):
- bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::buildJSONForRSAComponents):
(WebCore::addBoolToJSON):
(WebCore::addUsagesToJSON):
(WebCore::JSCryptoKeySerializationJWK::serialize):
- bindings/js/JSDOMBinding.h:
(WebCore::toJS):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::deserialize):
- 7:47 PM Changeset in webkit [201786] by
-
- 1 copy in tags/Safari-602.1.35.0.1
New tag.
- 7:07 PM Changeset in webkit [201785] by
-
- 6 edits12 adds in trunk
The backdrop-filter property does not respect border-radius
https://bugs.webkit.org/show_bug.cgi?id=158483
<rdar://problem/24210257>
Patch by Antoine Quint <Antoine Quint> on 2016-06-07
Reviewed by Simon Fraser.
Source/WebCore:
In order to correctly support border-radius and backdrop-filter together, we change
the value set as the m_backdropFiltersRect from a FloatRect to FloatRoundedRect so
that it accounts for values set by the border-radius property. Then we add a new
m_backdropClippingLayer PlatformCALayer member to clip the backdrop layer in the
event that the border-radius is non-zero in updateBackdropFiltersRect(). Finally,
we follow the same pattern used for other PlatformCALayers owned by a GraphicsLayerCA
to support cloning of the new m_backdropClippingLayer.
Tests: css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection-add.html
css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection-remove.html
css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection.html
css3/filters/backdrop/backdrop-filter-with-border-radius-value-change.html
css3/filters/backdrop/backdrop-filter-with-border-radius-value-remove.html
css3/filters/backdrop/backdrop-filter-with-border-radius.html
- platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setBackdropFiltersRect):
(WebCore::GraphicsLayer::backdropFiltersRect):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::willBeDestroyed):
(WebCore::GraphicsLayerCA::setBackdropFiltersRect):
(WebCore::GraphicsLayerCA::updateBackdropFiltersRect):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties):
- platform/graphics/ca/GraphicsLayerCA.h:
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateBackdropFiltersGeometry):
Use a rounded rect if there is no clip and we have non-zero border-radius set on the renderer.
LayoutTests:
Adding new tests checking that border-radius correctly affects clipping of the backdrop layer
in a basic scenario, when we change border-radius to a different value, when we set border-radius
back to 0 and when we add a reflection.
- css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection-add-expected.html: Added.
- css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection-add.html: Added.
- css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection-expected.html: Added.
- css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection-remove-expected.html: Added.
- css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection-remove.html: Added.
- css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection.html: Added.
- css3/filters/backdrop/backdrop-filter-with-border-radius-expected.html: Added.
- css3/filters/backdrop/backdrop-filter-with-border-radius-value-change-expected.html: Added.
- css3/filters/backdrop/backdrop-filter-with-border-radius-value-change.html: Added.
- css3/filters/backdrop/backdrop-filter-with-border-radius-value-remove-expected.html: Added.
- css3/filters/backdrop/backdrop-filter-with-border-radius-value-remove.html: Added.
- css3/filters/backdrop/backdrop-filter-with-border-radius.html: Added.
- 6:53 PM Changeset in webkit [201784] by
-
- 2 edits in trunk/Source/WebCore
CachedScript should avoid recomputing its hash multiple times.
<https://webkit.org/b/158506>
Reviewed by Saam Barati.
JSBench was hitting CachedScript::script() hard and spending lots of time hashing scripts.
Since we're already caching the hash in a member variable, don't bother rehashing if we've
already done it before.
This takes total time spent in StringImpl::hashSlowCase() from 1600ms to 77ms on my MBP.
- loader/cache/CachedScript.cpp:
(WebCore::CachedScript::script):
- 6:43 PM Changeset in webkit [201783] by
-
- 23 edits27 adds in trunk
Implement Air::allocateStack() in ES6 to see how much of a bad idea that is
https://bugs.webkit.org/show_bug.cgi?id=158318
Reviewed by Saam Barati.
PerformanceTests:
This adds a new benchmark for us to play with called JSAir. It's a complete ES6
implementation of Air's allocateStack() phase along with all of Air needed to run that
phase. This includes things like stack slots, registers, temporaries, basic blocks,
instructions, and all of the code for iterating over, inspecting, and modifying those
things.
To make this work, JSC can now dump Air just before allocateStack() in the form of JS code
that creates a Code object that matches exactly what C++ Air saw. This benchmark comprises
four Air IRs:
- Octane/gbemu's largest function, executeIteration.
- Kraken/imaging-gaussian-blur's largest function in OSR entry mode, gaussuanBlur.
- Octane/typescript's largest function that is actually hot, scanIdentifier.
- JSAir's largest hot function, which is anonymous, so we call it by its hash (ACLj8C).
This runs in about 2 seconds on my machine in JSC trunk. It includes both a commandline
harness and a web harness. JSAir is almost exactly 100x slower in ES6 in WebKit than the
C++ Air::allocateStack() phase on which it is based.
JSAir uses the following ES6 features:
- Symbol.
- for-of.
- arrow functions.
- Map/Set.
- let/const.
- classes.
All of these things are used in anger and should end up on the hot path. There is also code
that uses Proxies, but it ends up being dead.
We can improve this even more:
I still need to add result validation: https://bugs.webkit.org/show_bug.cgi?id=158493
I want to make it use more ES6 features: https://bugs.webkit.org/show_bug.cgi?id=158497
- JSAir: Added.
- JSAir/all.js: Added.
- JSAir/allocate_stack.js: Added.
(allocateStack.attemptAssignment):
(allocateStack.assign):
(allocateStack.interfere):
(allocateStack.):
(allocateStack):
- JSAir/arg.js: Added.
(Arg):
(Arg.isAnyUse):
(Arg.isColdUse):
(Arg.isWarmUse):
(Arg.cooled):
(Arg.isEarlyUse):
(Arg.isLateUse):
(Arg.isAnyDef):
(Arg.isEarlyDef):
(Arg.isLateDef):
(Arg.isZDef):
(Arg.typeForB3Type):
(Arg.widthForB3Type):
(Arg.conservativeWidth):
(Arg.minimumWidth):
(Arg.bytes):
(Arg.widthForBytes):
(Arg.createTmp):
(Arg.fromReg):
(Arg.createImm):
(Arg.createBigImm):
(Arg.createBitImm):
(Arg.createBitImm64):
(Arg.createAddr):
(Arg.createStack):
(Arg.createCallArg):
(Arg.createStackAddr):
(Arg.isValidScale):
(Arg.logScale):
(Arg.createIndex):
(Arg.createRelCond):
(Arg.createResCond):
(Arg.createDoubleCond):
(Arg.createWidth):
(Arg.prototype.get kind):
(Arg.prototype.get isTmp):
(Arg.prototype.get isImm):
(Arg.prototype.get isBigImm):
(Arg.prototype.get isBitImm):
(Arg.prototype.get isBitImm64):
(Arg.prototype.get isSomeImm):
(Arg.prototype.get isAddr):
(Arg.prototype.get isStack):
(Arg.prototype.get isCallArg):
(Arg.prototype.get isIndex):
(Arg.prototype.get isMemory):
(Arg.prototype.get isStackMemory):
(Arg.prototype.get isRelCond):
(Arg.prototype.get isResCond):
(Arg.prototype.get isDoubleCond):
(Arg.prototype.get isCondition):
(Arg.prototype.get isWidth):
(Arg.prototype.get isAlive):
(Arg.prototype.get tmp):
(Arg.prototype.get value):
(Arg.prototype.get base):
(Arg.prototype.get hasOffset):
(Arg.prototype.get offset):
(Arg.prototype.get stackSlot):
(Arg.prototype.get index):
(Arg.prototype.get scale):
(Arg.prototype.get logScale):
(Arg.prototype.get width):
(Arg.prototype.get isGPTmp):
(Arg.prototype.get isFPTmp):
(Arg.prototype.get isGP):
(Arg.prototype.get isFP):
(Arg.prototype.get hasType):
(Arg.prototype.get type):
(Arg.prototype.isType):
(Arg.prototype.isCompatibleType):
(Arg.prototype.get isGPR):
(Arg.prototype.get gpr):
(Arg.prototype.get isFPR):
(Arg.prototype.get fpr):
(Arg.prototype.get isReg):
(Arg.prototype.get reg):
(Arg.isValidImmForm):
(Arg.isValidBitImmForm):
(Arg.isValidBitImm64Form):
(Arg.isValidAddrForm):
(Arg.isValidIndexForm):
(Arg.prototype.isValidForm):
(Arg.prototype.forEachTmpFast):
(Arg.prototype.usesTmp):
(Arg.prototype.forEachTmp):
(Arg.prototype.is):
(Arg.prototype.as):
(Arg.prototype.forEachFast):
(Arg.prototype.forEach):
(Arg.extract):
(Arg.forEachFast):
(Arg.forEach):
(Arg.prototype.get condition):
(Arg.prototype.get isInvertible):
(Arg.prototype.toString):
- JSAir/basic_block.js: Added.
(BasicBlock):
(BasicBlock.prototype.get index):
(BasicBlock.prototype.get size):
(BasicBlock.prototype.Symbol.iterator):
(BasicBlock.prototype.at):
(BasicBlock.get last):
(BasicBlock.get insts):
(BasicBlock.get numSuccessors):
(BasicBlock.get successors):
(BasicBlock.get successorBlocks.):
(BasicBlock.get successorBlocks):
(BasicBlock.set get numPredecessors):
(BasicBlock.get predecessors):
(BasicBlock.get frequency):
(BasicBlock.get headerString):
(BasicBlock.get footerString):
- JSAir/benchmark.js: Added.
(benchmark):
- JSAir/code.js: Added.
(Code):
(Code.prototype.addBlock):
(Code.prototype.addStackSlot):
(Code.prototype.newTmp):
(Code.prototype.get size):
(Code.prototype.at):
(Code.prototype.Symbol.iterator):
(Code.prototype.get blocks):
(Code.prototype.get stackSlots):
(Code.prototype.tmps):
(Code.prototype.get callArgAreaSize):
(Code.prototype.requestCallArgAreaSize):
(Code.prototype.get frameSize):
(Code.prototype.setFrameSize):
(Code.prototype.toString):
- JSAir/custom.js: Added.
(const.ShuffleCustom.forEachArg):
(const.ShuffleCustom.hasNonArgNonControlEffects):
(const.PatchCustom.forEachArg):
(const.PatchCustom.hasNonArgNonControlEffects):
(const.CCallCustom.forEachArg):
(const.CCallCustom.hasNonArgNonControlEffects):
(const.ColdCCallCustom.forEachArg):
(const.ColdCCallCustom.hasNonArgNonControlEffects):
- JSAir/frequented_block.js: Added.
(FrequentedBlock):
(FrequentedBlock.prototype.toString):
- JSAir/insertion_set.js: Added.
(Insertion):
(Insertion.prototype.get index):
(Insertion.prototype.get element):
(Insertion.prototype.lessThan):
(InsertionSet):
(InsertionSet.prototype.appendInsertion):
(InsertionSet.prototype.append):
(InsertionSet.prototype.execute):
- JSAir/inst.js: Added.
(Inst):
(Inst.prototype.append):
(Inst.prototype.clear):
(Inst.prototype.get opcode):
(Inst.prototype.get args):
(Inst.prototype.visitArg):
(Inst.prototype.forEachTmpFast):
(Inst.prototype.forEachArg):
(Inst.prototype.forEachTmp):
(Inst.prototype.forEach):
(Inst.forEachDef):
(Inst.forEachDefWithExtraClobberedRegs):
(Inst.prototype.get hasNonArgEffects):
(Inst.prototype.toString):
- JSAir/liveness.js: Added.
(Liveness):
(Liveness.prototype.get thing):
(Liveness.prototype.get code):
(Liveness.prototype.get liveAtHead):
(Liveness.prototype.get liveAtTail):
(Liveness.prototype.localCalc.LocalCalc):
(Liveness.prototype.localCalc.LocalCalc.prototype.get liveSet):
(Liveness.prototype.localCalc.LocalCalc.prototype.execute):
(Liveness.prototype.localCalc):
- JSAir/opcode.js: Added.
(Inst_forEachArg):
(Inst_hasNonArgEffects):
- JSAir/payload-gbemu-executeIteration.js: Added.
(createPayloadGbemuExecuteIteration):
- JSAir/payload-imaging-gaussian-blur-gaussianBlur.js: Added.
(createPayloadImagingGaussianBlurGaussianBlur):
- JSAir/payload-jsair-ACLj8C.js: Added.
(createPayloadJSAirACLj8C):
- JSAir/payload-typescript-scanIdentifier.js: Added.
(createPayloadTypescriptScanIdentifier):
- JSAir/reg.js: Added.
(Reg):
(Reg.fromReg):
(Reg.prototype.get index):
(Reg.prototype.get type):
(Reg.prototype.get name):
(Reg.prototype.get isCalleeSave):
(Reg.prototype.get isReg):
(Reg.prototype.toString):
(Reg.extract):
(Reg.forEachFast):
(Reg.forEach):
(newGPR):
(Reg.gprs.Reg.fprs.Reg.calleeSaveGPRs.Reg.calleeSaveFPRs.Reg.calleeSaves):
- JSAir/stack_slot.js: Added.
(StackSlot):
(StackSlot.prototype.get byteSize):
(StackSlot.prototype.get kind):
(StackSlot.prototype.get isLocked):
(StackSlot.prototype.get isSpill):
(StackSlot.prototype.get index):
(StackSlot.prototype.ensureSize):
(StackSlot.prototype.get alignment):
(StackSlot.prototype.get offsetFromFP):
(StackSlot.prototype.setOffsetFromFP):
(StackSlot.prototype.toString):
(StackSlot.extract):
(StackSlot.forEachFast):
(StackSlot.forEach):
- JSAir/symbols.js: Added.
- JSAir/test.html: Added.
- JSAir/test.js: Added.
- JSAir/tmp.js: Added.
(Tmp):
(Tmp.fromReg):
(Tmp.prototype.get index):
(Tmp.prototype.get type):
(Tmp.prototype.get isReg):
(Tmp.prototype.toString):
(Tmp.extract):
(Tmp.forEachFast):
(Tmp.forEach):
- JSAir/tmp_base.js: Added.
(TmpBase.prototype.get isGP):
(TmpBase.prototype.get isFP):
(TmpBase.prototype.get isGPR):
(TmpBase.prototype.get isFPR):
(TmpBase.prototype.get reg):
(TmpBase.prototype.get gpr):
(TmpBase.prototype.get fpr):
(TmpBase):
- JSAir/util.js: Added.
(isRepresentableAsInt32):
(addIndexed):
(roundUpToMultipleOf):
(symbolName):
(mergeIntoSet):
(nonEmptyRangesOverlap):
(rangesOverlap):
(removeAllMatching):
(swap):
(bubble):
(bubbleSort):
(currentTime):
(else.currentTime):
Source/JavaScriptCore:
Most of these changes are to support dumpAsJS(). But I also found some duplicate and dead
code while rewriting it to JS.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- b3/air/AirAllocateStack.cpp:
- b3/air/AirArg.h:
(JSC::B3::Air::Arg::isSomeImm):
(JSC::B3::Air::Arg::isAddr):
(JSC::B3::Air::Arg::tmpIndex):
(JSC::B3::Air::Arg::isValidImmForm):
(JSC::B3::Air::Arg::withOffset): Deleted. This was dead code.
- b3/air/AirArgInlines.h: It turns out that Inst has a ForEach thing that duplicated some of the logic of ArgThingHelper, so I just made ArgThingHelper more powerful.
(JSC::B3::Air::ArgThingHelper<Arg>::forEach):
(JSC::B3::Air::ArgThingHelper<Reg>::is):
(JSC::B3::Air::ArgThingHelper<Reg>::as):
(JSC::B3::Air::ArgThingHelper<Reg>::forEachFast):
(JSC::B3::Air::ArgThingHelper<Reg>::forEach):
(JSC::B3::Air::Arg::is):
- b3/air/AirDumpAsJS.cpp: Added.
(JSC::B3::Air::dumpAsJS):
- b3/air/AirDumpAsJS.h: Added.
- b3/air/AirFixObviousSpills.cpp:
- b3/air/AirGenerate.cpp:
(JSC::B3::Air::prepareForGeneration):
- b3/air/AirInstInlines.h:
(JSC::B3::Air::Inst::forEach):
(JSC::B3::Air::Inst::extraClobberedRegs):
(JSC::B3::Air::ForEach<Tmp>::forEach): Deleted. This was doing what ArgThingHelper would have done but not as well.
(JSC::B3::Air::ForEach<Arg>::forEach): Deleted.
(JSC::B3::Air::ForEach<Reg>::forEach): Deleted.
- b3/air/AirLogRegisterPressure.cpp:
- b3/air/AirReportUsedRegisters.cpp:
- b3/air/AirSpillEverything.cpp:
- b3/air/opcode_generator.rb: Make this dump opcode.js, which is like what it dumps for C++.
- jit/Reg.cpp:
(JSC::Reg::debugName):
(JSC::Reg::dump):
- jit/Reg.h:
(JSC::Reg::hash):
- jsc.cpp: Fix jsc so that it reports the filename and line number of parser errors.
(dumpException):
- parser/ParserError.h: Make it easier to debug this code.
(WTF::printInternal):
- runtime/Options.h:
Source/WTF:
- wtf/Insertion.h:
(WTF::executeInsertions): I found a bug while rewriting this code in JS.
- wtf/PrintStream.h:
(WTF::PrintStream::print):
(WTF::PrintStream::println): This is useful to have.
- 6:31 PM Changeset in webkit [201782] by
-
- 34 edits in trunk
Remove all uses of PassRefPtr in WTF
https://bugs.webkit.org/show_bug.cgi?id=157596
<rdar://problem/26234391>
Reviewed by Chris Dumez.
Source/JavaScriptCore:
Update calls to interfaces that no longer take or return PassRefPtrs.
- runtime/JSString.cpp:
(JSC::JSRopeString::resolveRope):
- runtime/JSString.h:
(JSC::JSString::JSString):
(JSC::jsSubstring):
- runtime/PrivateName.h:
(JSC::PrivateName::PrivateName):
- runtime/SmallStrings.cpp:
(JSC::SmallStringsStorage::SmallStringsStorage):
- runtime/StringConstructor.cpp:
(JSC::stringFromCharCodeSlowCase):
- runtime/StringPrototype.cpp:
(JSC::jsSpliceSubstrings):
(JSC::jsSpliceSubstringsWithSeparators):
(JSC::replaceUsingStringSearch):
(JSC::repeatCharacter):
(JSC::stringProtoFuncFontsize):
(JSC::stringProtoFuncLink):
(JSC::normalize):
Source/WebCore:
Update calls to interfaces that no longer take or return PassRefPtrs.
No new tests: no new functionality so changes are covered by existing
tests.
- css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::formatNumberValue):
- dom/Document.cpp:
(WebCore::Document::displayStringModifiedByEncoding):
- xml/XPathGrammar.y:
Source/WTF:
Remove/update most interfaces that take or return PassRefPtrs.
Remaining references include those in non-Cocoa implementations and
those required for continued compatibility with modules that still use
PassRefPtrs (specifically: Forward.h, RefPtr interoperability,
SizeLimits.h, WorkQueue (Windows) DispatchQueueEfl,
DispatchWorkItemEfl, and PassRefPtr itself).
Update calls to interfaces that no longer take or return PassRefPtrs.
Update adoptRef(T*) to return a RefPtr instead of a PassRefPtr and
move it to RefPtr.h from PassRefPtr.h.
- wtf/MetaAllocator.cpp:
(WTF::MetaAllocator::allocate):
- wtf/MetaAllocator.h:
- wtf/ParallelJobsGeneric.h:
(WTF::ParallelEnvironment::ThreadPrivate::create):
- wtf/text/AtomicStringImpl.cpp:
(WTF::HashAndUTF8CharactersTranslator::translate):
(WTF::SubstringTranslator::translate):
- wtf/text/CString.cpp:
(WTF::CStringBuffer::createUninitialized):
- wtf/text/CString.h:
- wtf/text/StringBuilder.cpp:
(WTF::StringBuilder::reifyString):
(WTF::StringBuilder::resize):
(WTF::StringBuilder::reallocateBuffer<LChar>):
(WTF::StringBuilder::reallocateBuffer<UChar>):
- wtf/text/StringImpl.cpp:
(WTF::StringImpl::reallocateInternal):
(WTF::StringImpl::reallocate):
(WTF::StringImpl::create8BitIfPossible):
(WTF::StringImpl::createSymbol):
(WTF::StringImpl::createNullSymbol):
(WTF::StringImpl::convertToLowercaseWithoutLocale):
(WTF::StringImpl::convertToUppercaseWithoutLocale):
(WTF::StringImpl::convertToLowercaseWithLocale):
(WTF::StringImpl::convertToUppercaseWithLocale):
(WTF::StringImpl::convertASCIICase):
- wtf/text/StringImpl.h:
(WTF::StringImpl::StringImpl):
(WTF::StringImpl::createSubstringSharingImpl):
(WTF::StringImpl::tryCreateUninitialized):
(WTF::StringImpl::extractFoldedStringInSymbol):
- wtf/text/SymbolRegistry.cpp:
(WTF::SymbolRegistry::symbolForKey):
- wtf/text/WTFString.cpp:
(WTF::String::substringSharingImpl):
- wtf/text/WTFString.h:
(WTF::String::String): Deleted.
- wtf/text/cf/StringImplCF.cpp:
Tools:
Update calls to interfaces that no longer take or return PassRefPtrs.
- TestWebKitAPI/Tests/WTF/StringImpl.cpp:
(TestWebKitAPI::stringFromUTF8):
(TestWebKitAPI::TEST):
- 6:30 PM Changeset in webkit [201781] by
-
- 4 edits in trunk/LayoutTests
Update tests to work around https://bugs.webkit.org/show_bug.cgi?id=158507.
Re-enable now passing test.
- animations/script-tests/spring-computed-style.js:
- animations/script-tests/spring-parsing.js:
Use a non-body element to do the testing.
- 5:44 PM Changeset in webkit [201780] by
-
- 2 edits in trunk/LayoutTests
Mark animations/spring-computed-style.html as failing temporarily.
- 5:36 PM Changeset in webkit [201779] by
-
- 2 edits in trunk/LayoutTests
Rebaseline fast/events/touch/document-create-touch-list-ios.html
Unreviewed test gardening.
- fast/events/touch/document-create-touch-list-ios-expected.txt:
- 5:32 PM Changeset in webkit [201778] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: reduce timer churn when processing many DOM.attributeModified messages
https://bugs.webkit.org/show_bug.cgi?id=158491
<rdar://problem/25561452>
Reviewed by Timothy Hatcher.
When the backend sends thousands of DOM.attributeModified events to the frontend, it
slows to a crawl. This is partly because redundant messages are being sent, and
because the frontend is taking too long to render attribute updates in the elements tab.
This patch is a first step to improve performance by reducing unnecessary work. It
coalesces all attribute state updates to only happen once per animation frame. This
reduces timer churn because we previously used a debouncing timer with interval of 0ms,
and that had to be cleared and restarted on every call. This change also eliminates
forced layouts when updating the selection highlights, since the DOM tree outline has
been reflowed by the time we start updating selections in a requestAnimationFrame callback.
There is still a lot of optimization to be done here, but this reduces the problem
considerably by keeping the event loop clear and making it obvious which selection
update operations are still too expensive.
- UserInterface/Base/Utilities.js:
Add a 'onNextFrame' proxy to Object. It works like debounce, except it coalesces calls
up until the next animation frame rather than a fixed timeout. It also does not extend
the timeout interval for each call.
- UserInterface/Views/DOMTreeUpdater.js:
(WebInspector.DOMTreeUpdater.prototype._attributesUpdated):
(WebInspector.DOMTreeUpdater.prototype._characterDataModified):
(WebInspector.DOMTreeUpdater.prototype._nodeInserted):
(WebInspector.DOMTreeUpdater.prototype._nodeRemoved):
(WebInspector.DOMTreeUpdater.prototype._updateModifiedNodes):
Update on the next frame rather than on a zero delay timeout.
- UserInterface/Views/TreeOutline.js:
(WebInspector.TreeOutline.WebInspector.TreeElement.prototype.didChange):
(WebInspector.TreeOutline.WebInspector.TreeElement.prototype._fireDidChange):
Update on the next frame rather than on a zero delay timeout.
- 5:06 PM Changeset in webkit [201777] by
-
- 6 edits6 adds in trunk
Text-decoration-style: dashed / dotted rendered as solid
https://bugs.webkit.org/show_bug.cgi?id=134336
Reviewed by Dean Jackson.
Source/WebCore:
We already had most of the infrastructure for dotted / dashed underlines.
Previously, we were setting the stroke style for the underlines, but then
filling the underlines (which means the stroke styles is irrelevant).
Instead, we should just compute the individual dots / dashes to fill.
The implementation of this is done inside GraphicsContext because
GraphicsContext is already responsible for handling the single / double
underline distinction. Extending it to be responsible for dotted / dashed
is the natural thing to do.
Tests: fast/css3-text/css3-text-decoration/text-decoration-dashed.html
fast/css3-text/css3-text-decoration/text-decoration-dotted-dashed.html
fast/css3-text/css3-text-decoration/text-decoration-dotted.html
- platform/graphics/GraphicsContext.h:
- platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawLineForText):
(WebCore::GraphicsContext::drawLinesForText):
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawLineForText):
(WebCore::GraphicsContext::drawLinesForText):
- rendering/TextDecorationPainter.cpp:
(WebCore::drawSkipInkUnderline):
(WebCore::TextDecorationPainter::paintTextDecoration):
LayoutTests:
Make sure that the dotted / dashed / solid renderings are all distinct.
- fast/css3-text/css3-text-decoration/text-decoration-dashed-expected-mismatch.html: Added.
- fast/css3-text/css3-text-decoration/text-decoration-dashed.html: Added.
- fast/css3-text/css3-text-decoration/text-decoration-dotted-dashed-expected-mismatch.html: Added.
- fast/css3-text/css3-text-decoration/text-decoration-dotted-dashed.html: Added.
- fast/css3-text/css3-text-decoration/text-decoration-dotted-expected-mismatch.html: Added.
- fast/css3-text/css3-text-decoration/text-decoration-dotted.html: Added.
- 4:45 PM Changeset in webkit [201776] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
InvalidationPointInjectionPhase creates bogus InvalidationPoints that may even be inserted when it's not OK to exit
https://bugs.webkit.org/show_bug.cgi?id=158499
<rdar://problem/26647473>
Reviewed by Mark Lam and Benjamin Poulain.
InvalidationPointInjectionPhase forgot to clear m_originThatHadFire
before analyzing the current block it's analyzing. This meant that
the phase allowed a residual m_originThatHadFire that was set from the
previous block to effect a completely unrelated block. This is usually
harmless, but sometimes we would insert an InvalidationPoint at a point
in the graph when exiting is invalid. This would cause a crash.
- dfg/DFGInvalidationPointInjectionPhase.cpp:
(JSC::DFG::InvalidationPointInjectionPhase::run):
- tests/stress/dont-crash-on-bad-invalidation-point.js: Added.
(dontCrash):
- 4:40 PM Changeset in webkit [201775] by
-
- 2 edits in trunk/Websites/perf.webkit.org
Build fix after r201739. attachShadow was throwing an exception on this component.
- public/v3/pages/analysis-category-toolbar.js:
(AnalysisCategoryToolbar):
- 3:45 PM Changeset in webkit [201774] by
-
- 2 edits in trunk/Source/WebCore
AX: iOS: Need to expose whether object is a dialog element
https://bugs.webkit.org/show_bug.cgi?id=158487
<rdar://problem/26678218>
Reviewed by Joanmarie Diggs.
Expose whether an object is a dialog type. This will allow decisions higher up the stack to be made in regards to where to move VoiceOver focus.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityIsDialog]):
- 3:32 PM Changeset in webkit [201773] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION (r158219): Web Inspector: Border under Memory content view is too thick
https://bugs.webkit.org/show_bug.cgi?id=158495
<rdar://problem/26683428>
Reviewed by Timothy Hatcher.
- UserInterface/Views/MemoryTimelineView.css:
(.timeline-view.memory): Deleted.
- 2:09 PM Changeset in webkit [201772] by
-
- 2 edits in trunk/Source/bmalloc
Prevents integer overflow in Vector.h
https://bugs.webkit.org/show_bug.cgi?id=158455
<rdar://problem/20235469>
Patch by Pranjal Jumde <pjumde@apple.com> on 2016-06-07
Reviewed by Mark Lam.
- bmalloc/Vector.h:
(bmalloc::Vector<T>::reallocateBuffer):
- 1:46 PM Changeset in webkit [201771] by
-
- 2 edits in trunk/Source/WebCore
Fix Yosemite build.
https://bugs.webkit.org/show_bug.cgi?id=158403
- platform/spi/cocoa/QuartzCoreSPI.h:
- 1:32 PM Changeset in webkit [201770] by
-
- 2 edits in trunk/Source/WebKit2
Fix 10.10 build.
- WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
(WebKit::addAnimationToLayer):
- 1:24 PM Changeset in webkit [201769] by
-
- 2 edits in trunk/Source/WebCore
Fix WinCairo build.
- platform/network/curl/MultipartHandle.cpp:
(WebCore::MultipartHandle::didReceiveResponse):
- 1:07 PM Changeset in webkit [201768] by
-
- 2 edits in trunk/Source/JavaScriptCore
operationProcessTypeProfilerLogDFG doesn't update topCallFrame
https://bugs.webkit.org/show_bug.cgi?id=158428
<rdar://problem/26571493>
Reviewed by Mark Lam.
- dfg/DFGOperations.cpp:
- 1:05 PM Changeset in webkit [201767] by
-
- 5 edits in trunk/Source/WebCore
Build fix non-cocoa platforms.
https://bugs.webkit.org/show_bug.cgi?id=158332
- loader/cache/CachedFont.cpp:
(WebCore::CachedFont::createCustomFontData):
- platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::continueWillSendRequest):
- platform/network/curl/MultipartHandle.cpp:
(WebCore::MultipartHandle::didReceiveResponse):
- platform/network/curl/ResourceHandleManager.cpp:
(WebCore::headerCallback):
- 12:51 PM Changeset in webkit [201766] by
-
- 13 edits in trunk/Source/JavaScriptCore
calculatedDisplayName() and friends actually need a VM& and not a ExecState/CallFrame.
https://bugs.webkit.org/show_bug.cgi?id=158488
Reviewed by Geoffrey Garen.
calculatedDisplayName() (and some of its friends) actually just need a VM&.
Their work has nothing to do with an ExecState at all. This patch will make that
clear by changing these functions to take a VM& arg instead of an ExecState* or
CallFrame*.
Also removed the JS_EXPORT_PRIVATE attribute from Interpreter::StackFrame::toString().
The JS_EXPORT_PRIVATE attribute was a holdover from the days when WebInspector
was entirely in WebCore. It is no longer needed.
- debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::functionName):
- inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::functionDetails):
- inspector/ScriptCallStackFactory.cpp:
(Inspector::createScriptCallStackFromException):
- interpreter/CallFrame.cpp:
(JSC::CallFrame::friendlyFunctionName):
- interpreter/Interpreter.cpp:
(JSC::StackFrame::friendlySourceURL):
(JSC::StackFrame::friendlyFunctionName):
(JSC::StackFrame::expressionInfo):
(JSC::StackFrame::toString):
(JSC::Interpreter::stackTraceAsString):
- interpreter/Interpreter.h:
- interpreter/StackVisitor.cpp:
(JSC::StackVisitor::Frame::functionName):
- runtime/InternalFunction.cpp:
(JSC::InternalFunction::name):
(JSC::InternalFunction::displayName):
(JSC::InternalFunction::getCallData):
(JSC::InternalFunction::calculatedDisplayName):
- runtime/InternalFunction.h:
(JSC::InternalFunction::createStructure):
- runtime/JSFunction.cpp:
(JSC::JSFunction::name):
(JSC::JSFunction::displayName):
(JSC::JSFunction::calculatedDisplayName):
(JSC::JSFunction::getConstructData):
(JSC::getCalculatedDisplayName):
- runtime/JSFunction.h:
(JSC::JSFunction::executable):
- runtime/JSObject.cpp:
(JSC::JSObject::calculatedClassName):
- 12:31 PM Changeset in webkit [201765] by
-
- 2 edits in trunk/LayoutTests
Skipping http/tests/websocket/tests/hybi/upgrade-simple-ws.html
https://bugs.webkit.org/show_bug.cgi?id=158480
Unreviewed test gardening.
- 12:22 PM Changeset in webkit [201764] by
-
- 2 edits in trunk/Source/WebCore
Try to fix the 10.10 build.
- platform/spi/cocoa/QuartzCoreSPI.h:
- 11:56 AM Changeset in webkit [201763] by
-
- 3 edits in trunk/Source/WebKit/mac
[iOS WK1] Remove unused -_webkit_unescapedQueryValue and -_webkit_queryKeysAndValues NSString category methods
<https://webkit.org/b/158485>
<rdar://problem/16960445>
Reviewed by Dan Bernstein.
- Misc/WebNSURLExtras.h:
(-[NSString _webkit_unescapedQueryValue]): Deleted declaration.
(-[NSString _webkit_queryKeysAndValues]): Deleted declaration.
- Misc/WebNSURLExtras.mm:
(-[NSString _webkit_unescapedQueryValue]): Deleted.
(-[NSString _webkit_queryKeysAndValues]): Deleted.
- 11:55 AM Changeset in webkit [201762] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: add a keyboard shortcut to open the new tab tab
https://bugs.webkit.org/show_bug.cgi?id=158365
<rdar://problem/26631897>
Unreviewed, fix a typo introduced in r201692.
This caused the new tab button to stop working.
- UserInterface/Base/Main.js:
(WebInspector._updateNewTabButtonState):
- 11:52 AM Changeset in webkit [201761] by
-
- 46 edits in trunk/Source
Modernize loading code
https://bugs.webkit.org/show_bug.cgi?id=158332
Reviewed by Darin Adler.
Source/WebCore:
No new tests, no change in behavior.
- inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::cachedResourceContent):
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::continueAfterContentPolicy):
- loader/FrameLoader.h:
- loader/NetscapePlugInStreamLoader.cpp:
(WebCore::NetscapePlugInStreamLoader::didReceiveData):
(WebCore::NetscapePlugInStreamLoader::didReceiveBuffer):
(WebCore::NetscapePlugInStreamLoader::didReceiveDataOrBuffer):
(WebCore::NetscapePlugInStreamLoader::didFinishLoading):
- loader/NetscapePlugInStreamLoader.h:
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::deliverResponseAndData):
(WebCore::ResourceLoader::loadDataURL):
(WebCore::ResourceLoader::addDataOrBuffer):
(WebCore::ResourceLoader::clearResourceData):
(WebCore::ResourceLoader::didReceiveData):
(WebCore::ResourceLoader::didReceiveBuffer):
(WebCore::ResourceLoader::didReceiveDataOrBuffer):
(WebCore::ResourceLoader::didFinishLoading):
- loader/ResourceLoader.h:
(WebCore::ResourceLoader::wasCancelled):
(WebCore::ResourceLoader::options):
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveData):
(WebCore::SubresourceLoader::didReceiveBuffer):
(WebCore::SubresourceLoader::didReceiveDataOrBuffer):
- loader/SubresourceLoader.h:
- loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::abort):
(WebCore::ApplicationCacheGroup::createResourceHandle):
- loader/appcache/ApplicationCacheGroup.h:
- loader/cache/CachedImage.cpp:
(WebCore::CachedImage::addData):
- loader/cache/CachedRawResourceClient.h:
- platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::createWithContentsOfFile):
(WebCore::SharedBuffer::adoptVector):
(WebCore::SharedBuffer::duplicateDataBufferIfNecessary):
(WebCore::SharedBuffer::appendToDataBuffer):
(WebCore::SharedBuffer::clearDataBuffer):
- platform/SharedBuffer.h:
(WebCore::SharedBuffer::create):
- platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::maybeAppendPlatformData):
(WebCore::SharedBuffer::wrapCFDataArray):
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(ResourceHandleStreamingClient::didReceiveData):
(ResourceHandleStreamingClient::didReceiveBuffer):
- platform/mac/SharedBufferMac.mm:
(WebCore::SharedBuffer::createCFData):
(WebCore::SharedBuffer::createFromReadingFile):
- platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::~BlobRegistryImpl):
(WebCore::createBlobResourceHandle):
(WebCore::loadBlobResourceSynchronously):
(WebCore::registerBlobResourceHandleConstructor):
(WebCore::BlobRegistryImpl::createResourceHandle):
(WebCore::BlobRegistryImpl::appendStorageItems):
(WebCore::createResourceHandle): Deleted.
(WebCore::loadResourceSynchronously): Deleted.
- platform/network/BlobRegistryImpl.h:
- platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::createAsync):
(WebCore::BlobResourceHandle::loadResourceSynchronously):
Removed the overridden didReceiveData and didFinishLoading,
which did nothing and were identical to the function they overwrote.
- platform/network/BlobResourceHandle.h:
- platform/network/PingHandle.h:
- platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::ResourceHandle):
(WebCore::ResourceHandle::create):
(WebCore::ResourceHandle::scheduleFailure):
- platform/network/ResourceHandle.h:
- platform/network/ResourceHandleClient.cpp:
(WebCore::ResourceHandleClient::willCacheResponseAsync):
(WebCore::ResourceHandleClient::didReceiveBuffer):
- platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::didReceiveResponse):
(WebCore::ResourceHandleClient::didReceiveData):
(WebCore::ResourceHandleClient::didFinishLoading):
(WebCore::ResourceHandleClient::didFail):
- platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSessionDataTask resource:receivedData:length:]):
This data must be copied in order to put it in a refcounted NSData because it comes
from IPC from the Network Process and is an IPC::DataReference which will be deallocated
when the message handling is done.
- platform/soup/SharedBufferSoup.cpp:
(WebCore::SharedBuffer::SharedBuffer):
- testing/MockContentFilter.cpp:
(WebCore::MockContentFilter::replacementData):
(WebCore::MockContentFilter::unblockHandler):
Source/WebKit2:
- NetworkProcess/Downloads/PendingDownload.h:
- NetworkProcess/NetworkDataTask.h:
(WebKit::NetworkDataTask::client):
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::didReceiveData):
(WebKit::NetworkLoad::didReceiveBuffer):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/NetworkLoadClient.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveBuffer):
(WebKit::NetworkResourceLoader::didFinishLoading):
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/PingLoad.h:
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::didReceiveBuffer):
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::didReceiveResponse):
(WebKit::NetworkDataTask::didReceiveData):
- Shared/WebHitTestResultData.cpp:
- WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResource):
- 11:22 AM WebInspector edited by
- (diff)
- 11:21 AM WebInspector edited by
- (diff)
- 11:20 AM Changeset in webkit [201760] by
-
- 2 edits in trunk/Tools
[Win] Imported markup insertion test is failing.
https://bugs.webkit.org/show_bug.cgi?id=158477
Reviewed by Darin Adler.
Make sure the empty synchronous request is loaded after each test.
- DumpRenderTree/win/DumpRenderTree.cpp:
(runTest):
- 11:15 AM Changeset in webkit [201759] by
-
- 29 edits9 adds in trunk
Add experimental support for spring based CSS animations
https://bugs.webkit.org/show_bug.cgi?id=158403
Reviewed by Dean Jackson.
Source/WebCore:
Adds experimental support for a new CSS animation timing function that uses
spring to model the time function. To use it you replace your normal timing
function, be it cubic-bezier or steps, with a new function called spring().
For instance, for a transition you would write:
transition-timing-function: spring(1 100 10 0);
The parameters are, in order:
- Mass
- Stiffness
- Damping
- Initial Velocity
Tests: animations/spring-computed-style.html
animations/spring-function.html
animations/spring-parsing.html
- WebCore.xcodeproj/project.pbxproj:
Add new file.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::createTimingFunctionValue):
Modernize and add support for the spring function.
- css/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
(WebCore::CSSParser::CSSParser):
(WebCore::CSSParser::parseTransformOriginShorthand):
(WebCore::CSSParser::isSpringTimingFunctionEnabled):
(WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
(WebCore::CSSParser::parseSpringTimingFunctionValue):
(WebCore::CSSParser::parseAnimationTimingFunction):
- css/CSSParser.h:
- css/CSSParserMode.h:
Add parsing support for the spring() function.
- css/CSSTimingFunctionValue.cpp:
(WebCore::CSSCubicBezierTimingFunctionValue::customCSSText):
(WebCore::CSSCubicBezierTimingFunctionValue::equals):
(WebCore::CSSStepsTimingFunctionValue::customCSSText):
(WebCore::CSSStepsTimingFunctionValue::equals):
(WebCore::CSSSpringTimingFunctionValue::customCSSText):
(WebCore::CSSSpringTimingFunctionValue::equals):
- css/CSSTimingFunctionValue.h:
(WebCore::CSSSpringTimingFunctionValue::create):
(WebCore::CSSSpringTimingFunctionValue::mass):
(WebCore::CSSSpringTimingFunctionValue::stiffness):
(WebCore::CSSSpringTimingFunctionValue::damping):
(WebCore::CSSSpringTimingFunctionValue::initialVelocity):
(WebCore::CSSSpringTimingFunctionValue::CSSSpringTimingFunctionValue):
Modernize and add support for the spring function.
- css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::mapAnimationTimingFunction):
Pipe the spring function into the animation.
- css/CSSValue.cpp:
(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
- css/CSSValue.h:
(WebCore::CSSValue::isSpringTimingFunctionValue):
Add support for the spring function.
- page/Settings.in:
Add a setting to control if the spring function is enabled.
- page/animation/AnimationBase.cpp:
(WebCore::solveSpringFunction):
(WebCore::AnimationBase::progress):
Add support for solving the spring function. Since the spring requires time to be absolute,
get the real time by multiplying the ratio t, to the total duration.
- platform/animation/TimingFunction.cpp:
(WebCore::operator<<):
- platform/animation/TimingFunction.h:
(WebCore::TimingFunction::~TimingFunction):
(WebCore::TimingFunction::isSpringTimingFunction):
Add support for the spring timing function.
- platform/graphics/SpringSolver.h: Added.
(WebCore::SpringSolver::SpringSolver):
(WebCore::SpringSolver::solve):
Add a Spring solver that matches the one in CoreAnimation.
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::createBasicAnimation):
(WebCore::GraphicsLayerCA::createSpringAnimation):
(WebCore::GraphicsLayerCA::setupAnimation):
- platform/graphics/ca/GraphicsLayerCA.h:
Map animations with spring timing functions to CASpringAnimations.
- platform/graphics/ca/PlatformCAAnimation.cpp:
(WebCore::operator<<):
(WebCore::PlatformCAAnimation::isBasicAnimation):
- platform/graphics/ca/PlatformCAAnimation.h:
(WebCore::PlatformCAAnimation::setActualStartTimeIfNeeded):
(WebCore::PlatformCAAnimation::PlatformCAAnimation):
- platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:
(WebCore::toCAMediaTimingFunction):
(PlatformCAAnimationCocoa::PlatformCAAnimationCocoa):
(PlatformCAAnimationCocoa::setTimingFunction):
(PlatformCAAnimationCocoa::copyTimingFunctionFrom):
(PlatformCAAnimationCocoa::setFromValue):
(PlatformCAAnimationCocoa::copyFromValueFrom):
(PlatformCAAnimationCocoa::setToValue):
(PlatformCAAnimationCocoa::copyToValueFrom):
Add a new type of PlatformCAAnimation, Spring, which is a sub-type of Basic.
Source/WebKit2:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<StepsTimingFunction>::decode):
(IPC::ArgumentCoder<SpringTimingFunction>::encode):
(IPC::ArgumentCoder<SpringTimingFunction>::decode):
(IPC::ArgumentCoder<FloatPoint>::encode):
- Shared/WebCoreArgumentCoders.h:
- Shared/WebPreferencesDefinitions.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
- WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
(WebKit::PlatformCAAnimationRemote::Properties::encode):
(WebKit::PlatformCAAnimationRemote::Properties::decode):
(WebKit::addAnimationToLayer):
Pipe through support for the Spring animation.
LayoutTests:
- animations/script-tests/spring-computed-style.js: Added.
- animations/script-tests/spring-parsing.js: Added.
- animations/spring-computed-style-expected.txt: Added.
- animations/spring-computed-style.html: Added.
- animations/spring-function-expected.txt: Added.
- animations/spring-function.html: Added.
- animations/spring-parsing-expected.txt: Added.
- animations/spring-parsing.html: Added.
Add tests for the spring timing function.
- 11:13 AM Changeset in webkit [201758] by
-
- 2 edits1 add in trunk/Source/WebKit/mac
Adopt [PDFView documentScrollView]
https://bugs.webkit.org/show_bug.cgi?id=158454
rdar://problem/25875390
Reviewed by Tim Horton.
- WebView/PDFViewSPI.h: Added.
- WebView/WebPDFView.mm:
(-[WebPDFView _clipViewForPDFDocumentView]):
- 11:12 AM WebInspector edited by
- (diff)
- 11:10 AM EnvironmentVariables edited by
- (diff)
- 11:01 AM EnvironmentVariables edited by
- (diff)
- 10:53 AM Changeset in webkit [201757] by
-
- 25 edits23 adds in trunk
Implement EventListenerOptions argument to addEventListener
https://bugs.webkit.org/show_bug.cgi?id=149466
<rdar://problem/22802031>
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Import new test from W3C that covers EventListenerOptions.
- web-platform-tests/dom/events/EventListenerOptions-capture-expected.txt: Added.
- web-platform-tests/dom/events/EventListenerOptions-capture.html: Added.
Source/WebCore:
Implement AddEventListenerOptions dictionary argument to addEventListener()
and EventListenerOptions dictionary argument to removeEventListener(), as
per the latest DOM specification:
Firefox and Chrome already support this.
Support for AddEventListenerOptions in this patch is as follows:
- 'capture': fully supported.
- 'once': fully supported.
- 'passive': supported in the sense that preventDefault() will be ignored
for passive event listeners. There are however currently no
performance benefits from passing this flag. Those optimizations
will be implemented in follow-up patches (in particular for
Touch and Scroll events).
Tests: fast/events/AddEventListenerOptions-once-recursive.html
fast/events/AddEventListenerOptions-once.html
fast/events/AddEventListenerOptions-passive.html
fast/events/removeEventListener-EventListenerOptions-capture.html
imported/w3c/web-platform-tests/dom/events/EventListenerOptions-capture.html
- Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::addEventListener):
(WebCore::AudioScheduledSourceNode::removeEventListener):
- Modules/webaudio/AudioScheduledSourceNode.h:
- Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::addEventListener):
(WebCore::ScriptProcessorNode::removeEventListener):
- Modules/webaudio/ScriptProcessorNode.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheckExpression):
- dom/Event.h:
(WebCore::Event::preventDefault):
(WebCore::Event::setInPassiveListener):
- dom/EventListenerMap.cpp:
(WebCore::addListenerToVector):
(WebCore::EventListenerMap::add):
- dom/EventListenerMap.h:
- dom/EventTarget.cpp:
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::addEventListenerForBindings):
(WebCore::EventTarget::removeEventListenerForBindings):
(WebCore::EventTarget::removeEventListener):
(WebCore::EventTarget::setAttributeEventListener):
(WebCore::EventTarget::fireEventListeners):
- dom/EventTarget.h:
(WebCore::EventTarget::ListenerOptions::ListenerOptions):
(WebCore::EventTarget::AddEventListenerOptions::AddEventListenerOptions):
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::addEventListenerForBindings):
(WebCore::EventTarget::removeEventListenerForBindings):
- dom/EventTarget.idl:
- dom/MessagePort.cpp:
(WebCore::MessagePort::addEventListener):
- dom/MessagePort.h:
- dom/Node.cpp:
(WebCore::tryAddEventListener):
(WebCore::Node::addEventListener):
(WebCore::tryRemoveEventListener):
(WebCore::Node::removeEventListener):
- dom/Node.h:
- dom/RegisteredEventListener.h:
(WebCore::RegisteredEventListener::Options::Options):
(WebCore::RegisteredEventListener::RegisteredEventListener):
(WebCore::operator==):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::addEventListener):
(WebCore::HTMLMediaElement::removeEventListener):
- html/HTMLMediaElement.h:
- page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
- page/DOMWindow.h:
- svg/SVGElement.cpp:
(WebCore::SVGElement::addEventListener):
(WebCore::SVGElement::removeEventListener):
- svg/SVGElement.h:
LayoutTests:
- fast/events/AddEventListenerOptions-once-expected.txt: Added.
- fast/events/AddEventListenerOptions-once-recursive-expected.txt: Added.
- fast/events/AddEventListenerOptions-once-recursive.html: Added.
- fast/events/AddEventListenerOptions-once.html: Added.
- fast/events/AddEventListenerOptions-passive-expected.txt: Added.
- fast/events/AddEventListenerOptions-passive.html: Added.
- fast/events/removeEventListener-EventListenerOptions-capture-expected.txt: Added.
- fast/events/removeEventListener-EventListenerOptions-capture.html: Added.
Add layout testing coverage for various aspects of the functionality.
- imported/blink/fast/events/eventlisteneroptions/capture_default-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_default.html: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_equality-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_equality.html: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_query-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_query.html: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_dispatch-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_dispatch.html: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_inequality-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_inequality.html: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_query-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_query.html: Added.
Import blink tests for this functionality.
- 10:23 AM Changeset in webkit [201756] by
-
- 4 edits6 adds in trunk/Source
[JSC] Do not allocate unnecessary UTF-8 string for encodeXXX functions
https://bugs.webkit.org/show_bug.cgi?id=158416
Reviewed by Darin Adler and Geoffrey Garen.
Source/JavaScriptCore:
Previously, encodeXXX functions first allocate new UTF-8 string, and generate (& allocate) the results from this UTF-8 string.
It is costly since this UTF-8 string is always wasted. In this patch, we generate the results without this UTF-8 string.
We precisely implement ECMA262's Encode abstract operation[1].
This optimized encodeXXX functions provide great improvement in kraken stanford-crypto-sha256-iterative since it frequently calls
these functions. We can see 6 - 7% improvements.
baseline patched
stanford-crypto-sha256-iterative 37.952+-0.155 35.484+-0.265 definitely 1.0695x faster
[1]: https://tc39.github.io/ecma262/#sec-encode
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::toSafeView):
Use this helper function to retrieve JSString::SafeView.
(JSC::makeCharacterBitmap):
(JSC::encode):
In encode, we reserve N length buffer at first. This is important when the length of the given string is long enough,
preventing frequent unnecessary buffer reallocations. This reserving contributes to 1% kraken stanford-crypto-sha256-iterative progression.
(JSC::decode):
Previously, Bitmap accidentally includes \0. And instead of removing this \0, we checked character != 0.
This patch fixes it for the Bitmap not to include \0.
(JSC::globalFuncParseInt):
(JSC::globalFuncEscape):
(JSC::globalFuncUnescape):
- tests/stress/encode-decode-ascii.js: Added.
(shouldBe):
- tests/stress/encode-decode-unicode.js: Added.
(shouldBe):
(isLowSurrogate):
(isHighSurrogate):
(isSurrogate):
- tests/stress/encode-decode-uri-component-surrogates.js: Added.
(shouldBe):
(toHighSurrogate):
(toLowSurrogate):
- tests/stress/encode-decode-uri-surrogates.js: Added.
(shouldBe):
(toHighSurrogate):
(toLowSurrogate):
- tests/stress/encode-decode-zero.js: Added.
(shouldBe):
- tests/stress/escape-unescape-surrogates.js: Added.
(shouldBe):
(toHighSurrogate):
(toLowSurrogate):
Source/WTF:
- wtf/Bitmap.h:
(WTF::Bitmap::size):
(WTF::WordType>::Bitmap):
(WTF::WordType>::get):
(WTF::WordType>::set):
(WTF::WordType>::testAndSet):
(WTF::WordType>::testAndClear):
(WTF::WordType>::concurrentTestAndSet):
(WTF::WordType>::concurrentTestAndClear):
(WTF::WordType>::clear):
(WTF::WordType>::clearAll):
(WTF::WordType>::nextPossiblyUnset):
(WTF::WordType>::findRunOfZeros):
(WTF::WordType>::count):
(WTF::WordType>::isEmpty):
(WTF::WordType>::isFull):
- 9:37 AM Changeset in webkit [201755] by
-
- 2 edits in trunk/Source/JavaScriptCore
[GTK] Include locale.h before using LC_ALL
https://bugs.webkit.org/show_bug.cgi?id=158470
Patch by Ting-Wei Lan <Ting-Wei Lan> on 2016-06-07
Reviewed by Darin Adler.
- jsc.cpp:
- 9:19 AM Changeset in webkit [201754] by
-
- 8 edits in trunk/Source/JavaScriptCore
Unskip generator related stress tests
https://bugs.webkit.org/show_bug.cgi?id=158461
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-07
Reviewed by Darin Adler.
- tests/stress/generator-methods.js:
- tests/stress/generator-syntax.js:
- tests/stress/yield-and-line-terminator.js:
- tests/stress/yield-label-generator.js:
- tests/stress/yield-named-accessors-generator.js:
- tests/stress/yield-named-variable-generator.js:
- tests/stress/yield-out-of-generator.js:
- 8:47 AM Changeset in webkit [201753] by
-
- 23 edits64 adds in trunk
CSP: Content Security Policy directive, upgrade-insecure-requests (UIR)
https://bugs.webkit.org/show_bug.cgi?id=143653
<rdar://problem/23032067>
Reviewed by Andy Estes.
Source/WebCore:
Modify our loading logic so that we recognize and upgrade insecure requests to secure
requests if the Content Security Policy directive 'upgrade-insecure-requests' is
present.
Add a static helper function to ContentSecurityPolicy to upgrade insecure URLs so
that we don't have to sprinkle the same code all over the loader system.
Tests: http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure.php
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-cors.https.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade.https.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-auxiliary.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-nested.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-subresource.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-top-level.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-open-window-upgrades.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-image-in-main-frame.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-simple-ws.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrades-mixed-content.html
http/tests/ssl/iframe-upgrade.https.html
http/tests/ssl/upgrade-origin-usage.html
http/tests/websocket/tests/hybi/upgrade-simple-ws.html
- Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect): Upgrade insecure requests if the CSP
indicates we should.
- dom/Document.cpp:
(WebCore::Document::initSecurityContext): Populate new document CSP with sets of upgrade host and port combinations.
- dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestScript): Upgrade insecure requests if
the CSP indicates we should.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::loadResource): Ditto.
- loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::begin): Ditto.
- loader/FormSubmission.cpp:
(WebCore::FormSubmission::create): Ditto.
(WebCore::FormSubmission::populateFrameLoadRequest): Add "Upgrade-Insecure-Requests"
header to frame load requests.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::addExtraFieldsToMainResourceRequest): Add the
'Update-Insecure-Requests' header field if necessary.
(WebCore::FrameLoader::addHTTPUpgradeInsecureRequestsIfNeeded): Added helper function.
(WebCore::FrameLoader::loadPostRequest): Upgrade insecure requests if the CSP
indicates we should.
(WebCore::FrameLoader::loadResourceSynchronously): Ditto.
(WebCore::FrameLoader::loadDifferentDocumentItem): If loading a form, add the
'Update-Insecure-Requests' header field if necessary.
(WebCore::createWindow): Upgrade insecure requests if the CSP
indicates we should.
- loader/FrameLoader.h:
- loader/PingLoader.cpp:
(WebCore::PingLoader::loadImage): Upgrade insecure requests if the CSP
indicates we should.
(WebCore::PingLoader::sendPing): Ditto.
(WebCore::PingLoader::sendViolationReport): Ditto.
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::willSendRequestInternal): Ditto.
- loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::requestFrame): Ditto.
(WebCore::SubframeLoader::requestObject): Ditto.
- loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::shouldLoadResourceFromApplicationCache): Ditto.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestImage): Ditto.
(WebCore::CachedResourceLoader::requestResource): Ditto.
- page/DOMWindow.cpp:
(WebCore::DOMWindow::createWindow): Add the 'Update-Insecure-Requests' header
field if necessary.
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::copyStateFrom): Populate upgraded resource set
from other context.
(WebCore::ContentSecurityPolicy::upgradeInsecureRequestIfNeeded): Added helper function
to upgrade requests when the upgrade-insecure-requests CSP policy is present, or if
the host and port combination have previously been upgraded.
(WebCore::ContentSecurityPolicy::upgradeInsecureNavigationRequestIfNeeded): Added
helper function to upgrade requests that have been previously upgraded. Cross-site
navigations only get upgraded when they have been previously upgraded.
(WebCore::ContentSecurityPolicy::addInsecureNavigationRequestsToUpgrade): Added.
(WebCore::ContentSecurityPolicy::populateInsecureNavigationRequestsToUpgradeFromOther): Added.
- page/csp/ContentSecurityPolicy.h:
(WebCore::ContentSecurityPolicy::setUpgradeInsecureRequests): Added.
(WebCore::ContentSecurityPolicy::upgradeInsecureRequests): Added.
- page/csp/ContentSecurityPolicyDirectiveList.cpp:
(WebCore::ContentSecurityPolicyDirectiveList::ContentSecurityPolicyDirectiveList): Use
more C++11 initializations.
(WebCore::ContentSecurityPolicyDirectiveList::setUpgradeInsecureRequests): Added.
(WebCore::ContentSecurityPolicyDirectiveList::addDirective): Teach this function to
recognize the new directive.
- page/csp/ContentSecurityPolicyDirectiveList.h:
- page/csp/ContentSecurityPolicyDirectiveNames.cpp:
- page/csp/ContentSecurityPolicyDirectiveNames.h:
- platform/network/HTTPHeaderNames.in: Add new 'Upgrade-Insecure-Requests' header field.
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::open): Upgrade insecure requests if the CSP if needed.
LayoutTests:
Some of these tests are based on a set of Blink patches by Mike West <mkwst@chromium.org>.
<https://src.chromium.org/viewvc/blink?revision=192607&view=revision>,
<https://codereview.chromium.org/1178093002>, <https://codereview.chromium.org/1964303003>
The rest of them are based on our own mixedContent tests, revised for upgraded requests.
Note that WebSockets are not part of this testing at present due to https://bugs.webkit.org/show_bug.cgi?id=157884.
- http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure.php: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-cors.https-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-cors.https.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade.https-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade.https.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-auxiliary-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-auxiliary.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-nested-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-nested.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-subresource-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-subresource.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-top-level-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-top-level.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-open-window-upgrades-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-open-window-upgrades.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/basic-upgrade-cors.https.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/check-https-header.pl: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/echo-https-header.pl: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-insecure-audio-video.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-insecure-css.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-insecure-image.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-redirect-http-to-https-script.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-redirect-https-to-http-script.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/insecure-xhr-in-main-frame-window.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/mixed-content-with-upgrade.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/post-https-header.pl: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-image-in-main-frame-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-image-in-main-frame.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrades-mixed-content-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrades-mixed-content.html: Added.
- http/tests/security/resources/post-origin-to-parent.html: Added.
- http/tests/ssl/iframe-upgrade.https-expected.txt: Added.
- http/tests/ssl/iframe-upgrade.https.html: Added.
- http/tests/ssl/upgrade-origin-usage-expected.txt: Added.
- http/tests/ssl/upgrade-origin-usage.html: Added.
- http/tests/ssl/resources/origin-usage-iframe-1.html: Added.
- http/tests/ssl/resources/origin-usage-iframe-1.manifest: Added.
- http/tests/ssl/resources/origin-usage-iframe-2.html: Added.
- http/tests/ssl/resources/origin-usage-iframe-2.manifest: Added.
- http/tests/websocket/tests/hybi/upgrade-simple-ws-expected.txt: Added.
- http/tests/websocket/tests/hybi/upgrade-simple-ws.html: Added.
- TestExpectations: Skip http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-simple-ws.html since the
WebSocket server does not currently support wss sockets.
- 8:03 AM Changeset in webkit [201752] by
-
- 3 edits2 adds in trunk
Video elements are painted twice, in PaintPhaseForeground and PaintPhaseSelfOutline
https://bugs.webkit.org/show_bug.cgi?id=158247
Patch by Fujii Hironori <Fujii Hironori> on 2016-06-07
Reviewed by Simon Fraser.
Source/WebCore:
Test: fast/replaced/outline-replaced-elements-offset.html
In <http://trac.webkit.org/changeset/105247>,
RenderReplaced::paint was changed to call
RenderReplaced::paintReplaced in PaintPhaseOutline and
PaintPhaseSelfOutline to paint outline of SVG.
As the result, RenderVideo::paintReplaced paints twice,
in forground and outline phase.
It was changed to paint outline of SVG in PaintPhaseForeground
since <http://trac.webkit.org/changeset/168645>. No need to call
RenderReplaced::paintReplaced in outline phases anymore.
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::paint): Return early if
PaintPhaseOutline or PaintPhaseSelfOutline.
Return early unless PaintPhaseForeground nor PaintPhaseSelection,
even if canHaveChildren().
LayoutTests:
- fast/replaced/outline-replaced-elements-offset-expected.html: Added.
- fast/replaced/outline-replaced-elements-offset.html: Added.
- 7:32 AM Changeset in webkit [201751] by
-
- 2 edits in trunk/LayoutTests
[GTK] Mark fast/text/international/system-language/han-quotes.html as flaky
Unreviewed gardening
- platform/gtk/TestExpectations:
- 7:22 AM Changeset in webkit [201750] by
-
- 2 edits in trunk/Source/WebKit
[Mac][cmake] Unreviewed trivial buildfix after r201689. Just for fun.
- PlatformMac.cmake:
- 7:12 AM Changeset in webkit [201749] by
-
- 3 edits in trunk/Source/WebKit2
[GTK] Hide GTK+ 2 plugins if GTK+ 2 plugin process was built but is not installed
https://bugs.webkit.org/show_bug.cgi?id=158419
Reviewed by Carlos Garcia Campos.
- UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:
(WebKit::PluginInfoStore::getPluginInfo):
- UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
(WebKit::PluginProcessProxy::scanPlugin):
- 5:43 AM Changeset in webkit [201748] by
-
- 2 edits in trunk/Source/WebKit/win
[Win][IndexedDB] Crash when running worker test.
https://bugs.webkit.org/show_bug.cgi?id=158434
Reviewed by Alex Christensen.
Initialize main runloop, otherwise RunLoop::main() will return nullptr.
- WebView.cpp:
(WebView::WebView):
- 3:06 AM Changeset in webkit [201747] by
-
- 8 edits in trunk
Creating a TouchList with non Touch items should throw an exception
https://bugs.webkit.org/show_bug.cgi?id=158302
Reviewed by Youenn Fablet.
Source/WebCore:
Only Touch items should be passed to CreateTouchList function as per specification
(https://w3c.github.io/touch-events/#extensions-to-the-document-interface).
CreateTouchList function behavior is modified. An exception is thrown when non Touch items
are passed as parameters instead of adding null items in the TouchList.
Tests have been modified to check whether behavior of CreateTouchList is correct.
- bindings/js/JSDocumentCustom.cpp:
(WebCore::JSDocument::createTouchList):
- dom/Document.idl:
LayoutTests:
Only Touch items should be passed to CreateTouchList function as
per specification (https://w3c.github.io/touch-events/#extensions-to-the-document-interface).
Tests have been modified to check whether behavior of CreateTouchList is correct.
- fast/events/touch/document-create-touch-list-crash-expected.txt:
- fast/events/touch/document-create-touch-list-expected.txt:
- fast/events/touch/script-tests/document-create-touch-list-crash.js:
- fast/events/touch/script-tests/document-create-touch-list.js:
- 1:33 AM Changeset in webkit [201746] by
-
- 2 edits in trunk/LayoutTests
Unskip js/script-tests/class-syntax-scoping.js
https://bugs.webkit.org/show_bug.cgi?id=158458
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-07
Reviewed by Ryosuke Niwa.
- js/script-tests/class-syntax-scoping.js:
Jun 6, 2016:
- 11:33 PM Changeset in webkit [201745] by
-
- 1 edit1 move in trunk/Source/JavaScriptCore
Fix typo in test name trailing-comma-in-function-paramters.js
https://bugs.webkit.org/show_bug.cgi?id=158462
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-06
Reviewed by Mark Lam.
- tests/stress/trailing-comma-in-function-parameters.js: Renamed from Source/JavaScriptCore/tests/stress/trailing-comma-in-function-paramters.js.
- 11:32 PM Changeset in webkit [201744] by
-
- 2 edits in trunk/LayoutTests
ASSERTION failed in get-by-pname.js when run with JSC_useLLINT=false and 2 other configurations
https://bugs.webkit.org/show_bug.cgi?id=138497
<rdar://problem/18909792>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-06
Reviewed by Mark Lam.
- js/script-tests/get-by-pname.js:
Test is no longer failing. Lets unskip.
- 11:06 PM Changeset in webkit [201743] by
-
- 25 edits11 deletes in trunk
Unreviewed, rolling out r201735.
https://bugs.webkit.org/show_bug.cgi?id=158465
fast/events/AddEventListenerOptions-once-recursive.html fails
on all bots (Requested by ap on #webkit).
Reverted changeset:
"Implement EventListenerOptions argument to addEventListener"
https://bugs.webkit.org/show_bug.cgi?id=149466
http://trac.webkit.org/changeset/201735
- 11:05 PM Changeset in webkit [201742] by
-
- 22 edits14 deletes in trunk
Unreviewed, rolling out r201679.
https://bugs.webkit.org/show_bug.cgi?id=158464
http/tests/websocket/tests/hybi/upgrade-simple-ws.html is
flaky (Requested by ap on #webkit).
Reverted changeset:
"CSP: Content Security Policy directive, upgrade-insecure-
requests (UIR)"
https://bugs.webkit.org/show_bug.cgi?id=143653
http://trac.webkit.org/changeset/201679
- 10:54 PM Changeset in webkit [201741] by
-
- 6 edits in trunk/Source
REGRESSION(r197595): 2% JSBench regression on iPhone 5.
<https://webkit.org/b/158459>
Unreviewed rollout.
- runtime/VM.cpp:
(JSC::VM::deleteAllRegExpCode): Deleted.
- runtime/VM.h:
- 10:46 PM Changeset in webkit [201740] by
-
- 25 edits2 adds in trunk
URLs containing tabs or newlines are parsed incorrectly
https://bugs.webkit.org/show_bug.cgi?id=143381
<rdar://problem/26567214>
Reviewed by Brent Fulgham.
Source/WebCore:
- Strip any tabs and newlines in the URL input.
- Replace the original stripping URL leading and trailing white spaces logic with WTFString's
builtin, and move this logic to the very begining of the URL parser.
- Enhance the protocolIs method to ignore any leading whitespace/control characters, and
tabs/newlines of the examining url.
Test: fast/url/tab-and-newline-stripping.html
- platform/URL.cpp:
(WebCore::isTabNewline):
(WebCore::shouldTrimFromURL):
(WebCore::URL::init):
(WebCore::protocolIs):
LayoutTests:
- fast/dom/DOMURL/set-href-attribute-host-expected.txt:
- fast/dom/DOMURL/set-href-attribute-host.html:
- fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-host.js:
- fast/dom/HTMLAnchorElement/set-href-attribute-host-expected.txt:
- fast/url/segments-expected.txt:
- fast/url/segments-from-data-url-expected.txt:
- fast/url/segments-from-data-url.html:
- fast/url/segments.html:
- fast/url/tab-and-newline-stripping-expected.txt: Added.
- fast/url/tab-and-newline-stripping.html: Added.
- http/tests/security/javascriptURL/javascriptURL-execution-context-frame-location-htmldom-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-getAttribute-value-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-htmldom-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttribute-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNS-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNode-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-frame-src-setAttributeNodeNS-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-getAttribute-value-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-htmldom-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttribute-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNS-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNode-expected.txt:
- http/tests/security/javascriptURL/javascriptURL-execution-context-iframe-src-setAttributeNodeNS-expected.txt:
- http/tests/security/xssAuditor/javascript-link-control-char2-expected.txt:
- 9:02 PM Changeset in webkit [201739] by
-
- 27 edits in trunk
Update the list of elements attachShadow is allowed
https://bugs.webkit.org/show_bug.cgi?id=157706
Reviewed by Darin Adler.
Source/WebCore:
Update the list of elements on which attachShadow is allowed per the latest shadow DOM spec:
http://www.w3.org/TR/shadow-dom/#widl-Element-attachShadow-ShadowRoot-ShadowRootInit-shadowRootInitDict
which now only allows attachShadow on the following elements and custom elements:
button, details, input, marquee, meter, progress, select, textarea, keygen
In order to check that a given HTML element's local name is a valid custom element name,
this patch moves CustomElementDefinitions::checkName to Document::validateCustomElementName so that
it could be used when either SHADOW_DOM or CUSTOM_ELEMENTS build flag is turned on.
Also removed Element::canHaveUserAgentShadowRoot since it was only used in Element::attachShadow.
Test: fast/shadow-dom/Element-interface-attachShadow.html
- bindings/js/JSDocumentCustom.cpp:
(WebCore::JSDocument::defineElement):
- dom/CustomElementDefinitions.cpp:
(WebCore::CustomElementDefinitions::checkName): Moved to Document::validateCustomElementName.
- dom/CustomElementDefinitions.h:
- dom/Document.cpp:
(WebCore::createHTMLElementWithNameValidation):
(WebCore::createFallbackHTMLElement):
(WebCore::Document::validateCustomElementName): Moved from CustomElementDefinitions::checkName.
- dom/Document.h:
- dom/Element.cpp:
(WebCore::canAttachAuthorShadowRoot): Added.
(WebCore::Element::attachShadow):
- dom/Element.h:
- html/HTMLButtonElement.h:
- html/HTMLDetailsElement.h:
- html/HTMLInputElement.h:
- html/HTMLKeygenElement.h:
- html/HTMLMarqueeElement.h:
- html/HTMLMediaElement.h:
- html/HTMLMeterElement.h:
- html/HTMLPlugInElement.h:
- html/HTMLProgressElement.h:
- html/HTMLQuoteElement.h:
- html/HTMLSelectElement.h:
- html/HTMLSummaryElement.h:
- html/HTMLTagNames.in:
- html/HTMLTextAreaElement.h:
- html/HTMLUnknownElement.h:
- html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::createHTMLElementOrFindCustomElementInterface):
LayoutTests:
Added more test cases for validating elements on which attachShadow is allowed and disallowed.
- fast/shadow-dom/Element-interface-attachShadow-expected.txt:
- fast/shadow-dom/Element-interface-attachShadow.html:
- 8:24 PM Changeset in webkit [201738] by
-
- 2 edits in trunk/Source/WTF
equal(StringView, StringView) for strings should have a fast path for pointer equality
https://bugs.webkit.org/show_bug.cgi?id=158452
Reviewed by Andreas Kling.
JSBench does a lot of StringView::operator== on StringViews that have
the same underlying characters pointer. This becomes hot inside JSBench
because JSBench heavily stresses JSC's UnlinkedCodeCache with a high
hit rate. This means that when we get a hit in the cache, we used to
do the long form of string compare. However, we were often comparing
two StringViews that had the same underlying buffer and length.
This patch speeds this case up to run in constant time instead of
linear time.
- wtf/text/StringCommon.h:
(WTF::equalCommon):
- wtf/text/StringImpl.h:
(WTF::StringImpl::StringImpl):
(WTF::StringImpl::data):
- wtf/text/StringView.h:
(WTF::StringView::data):
- 8:02 PM Changeset in webkit [201737] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
octal and binary parsing is wrong for some programs
https://bugs.webkit.org/show_bug.cgi?id=158437
Reviewed by Saam Barati.
When there is an error parsing an binary or octal literal, we need to clear the returnValue
of any residual value. This is because the processing of returnValue happens before the
syntax check for the extra character. Without clearing returnValue, we end trying to
categorize the value as an INTEGER or DOUBLE token. If the value happens to be an
impure NaN, we ASSERT.
- parser/Lexer.cpp:
(JSC::Lexer<T>::parseBinary):
(JSC::Lexer<T>::parseOctal):
- tests/stress/regress-158437.js: New test.
- 7:40 PM Changeset in webkit [201736] by
-
- 5 edits2 adds in trunk
Crash inside moveOutOfAllShadowRoots
https://bugs.webkit.org/show_bug.cgi?id=158378
Reviewed by Antti Koivisto.
Source/WebCore:
The bug was caused by InShadowTreeFlag not being cleared when a shadow host or its ancestor was removed
due to addChildNodesToDeletionQueue not invoking notifyChildNodeRemoved when a node was in a shadow tree
but not in a document.
Fixed the bug by invoking notifyChildNodeRemoved when the removed node is either in a shadow tree
or it's in a shadow tree. Also fixed a bug in VTTCue::~VTTCue that it was trying to remove the display
tree even when the owner document was being destroyed. This results in various assertions to be hit.
Test: fast/shadow-dom/shadow-host-removal-crash.html
- dom/ContainerNodeAlgorithms.cpp:
(WebCore::addChildNodesToDeletionQueue):
- html/track/VTTCue.cpp:
(WebCore::VTTCue::~VTTCue):
LayoutTests:
Added a regression test that reproduced the crash reliably at least on my machine.
- fast/shadow-dom/shadow-host-removal-crash-expected.txt: Added.
- fast/shadow-dom/shadow-host-removal-crash.html: Added.
- platform/ios-simulator/TestExpectations:
- 7:35 PM Changeset in webkit [201735] by
-
- 25 edits23 adds in trunk
Implement EventListenerOptions argument to addEventListener
https://bugs.webkit.org/show_bug.cgi?id=149466
<rdar://problem/22802031>
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Import new test from W3C that covers EventListenerOptions.
- web-platform-tests/dom/events/EventListenerOptions-capture-expected.txt: Added.
- web-platform-tests/dom/events/EventListenerOptions-capture.html: Added.
Source/WebCore:
Implement AddEventListenerOptions dictionary argument to addEventListener()
and EventListenerOptions dictionary argument to removeEventListener(), as
per the latest DOM specification:
Firefox and Chrome already support this.
Support for AddEventListenerOptions in this patch is as follows:
- 'capture': fully supported.
- 'once': fully supported.
- 'passive': supported in the sense that preventDefault() will be ignored
for passive event listeners. There are however currently no
performance benefits from passing this flag. Those optimizations
will be implemented in follow-up patches (in particular for
Touch and Scroll events).
Tests: fast/events/AddEventListenerOptions-once-recursive.html
fast/events/AddEventListenerOptions-once.html
fast/events/AddEventListenerOptions-passive.html
fast/events/removeEventListener-EventListenerOptions-capture.html
imported/w3c/web-platform-tests/dom/events/EventListenerOptions-capture.html
- Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::addEventListener):
(WebCore::AudioScheduledSourceNode::removeEventListener):
- Modules/webaudio/AudioScheduledSourceNode.h:
- Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::addEventListener):
(WebCore::ScriptProcessorNode::removeEventListener):
- Modules/webaudio/ScriptProcessorNode.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheckExpression):
- dom/Event.h:
(WebCore::Event::preventDefault):
(WebCore::Event::setInPassiveListener):
- dom/EventListenerMap.cpp:
(WebCore::addListenerToVector):
(WebCore::EventListenerMap::add):
- dom/EventListenerMap.h:
- dom/EventTarget.cpp:
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::addEventListenerForBindings):
(WebCore::EventTarget::removeEventListenerForBindings):
(WebCore::EventTarget::removeEventListener):
(WebCore::EventTarget::setAttributeEventListener):
(WebCore::EventTarget::fireEventListeners):
- dom/EventTarget.h:
(WebCore::EventTarget::ListenerOptions::ListenerOptions):
(WebCore::EventTarget::AddEventListenerOptions::AddEventListenerOptions):
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::addEventListenerForBindings):
(WebCore::EventTarget::removeEventListenerForBindings):
- dom/EventTarget.idl:
- dom/MessagePort.cpp:
(WebCore::MessagePort::addEventListener):
- dom/MessagePort.h:
- dom/Node.cpp:
(WebCore::tryAddEventListener):
(WebCore::Node::addEventListener):
(WebCore::tryRemoveEventListener):
(WebCore::Node::removeEventListener):
- dom/Node.h:
- dom/RegisteredEventListener.h:
(WebCore::RegisteredEventListener::Options::Options):
(WebCore::RegisteredEventListener::RegisteredEventListener):
(WebCore::operator==):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::addEventListener):
(WebCore::HTMLMediaElement::removeEventListener):
- html/HTMLMediaElement.h:
- page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
- page/DOMWindow.h:
- svg/SVGElement.cpp:
(WebCore::SVGElement::addEventListener):
(WebCore::SVGElement::removeEventListener):
- svg/SVGElement.h:
LayoutTests:
- fast/events/AddEventListenerOptions-once-expected.txt: Added.
- fast/events/AddEventListenerOptions-once-recursive-expected.txt: Added.
- fast/events/AddEventListenerOptions-once-recursive.html: Added.
- fast/events/AddEventListenerOptions-once.html: Added.
- fast/events/AddEventListenerOptions-passive-expected.txt: Added.
- fast/events/AddEventListenerOptions-passive.html: Added.
- fast/events/removeEventListener-EventListenerOptions-capture-expected.txt: Added.
- fast/events/removeEventListener-EventListenerOptions-capture.html: Added.
Add layout testing coverage for various aspects of the functionality.
- imported/blink/fast/events/eventlisteneroptions/capture_default-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_default.html: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_equality-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_equality.html: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_query-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_query.html: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_dispatch-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_dispatch.html: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_inequality-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_inequality.html: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_query-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_query.html: Added.
Import blink tests for this functionality.
- 5:36 PM Changeset in webkit [201734] by
-
- 25 edits11 deletes in trunk
Unreviewed, rolling out r201730.
https://bugs.webkit.org/show_bug.cgi?id=158453
This change caused existing LayoutTests to crash (Requested by
ryanhaddad on #webkit).
Reverted changeset:
"Implement EventListenerOptions argument to addEventListener"
https://bugs.webkit.org/show_bug.cgi?id=149466
http://trac.webkit.org/changeset/201730
Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-06
- 5:00 PM Changeset in webkit [201733] by
-
- 2 edits in trunk/Source/JavaScriptCore
32-bit JSC stress test failing: stress/recursive-try-catch.js.ftl-no-cjit-validate-sampling-profiler
https://bugs.webkit.org/show_bug.cgi?id=158362
Reviewed by Michael Saboff.
The test does infinite recursion until it overflows the stack. That means the
sampling profiler will have to capture excessively large samples, which in turn
makes it run very slowly. This is what causes the test time out.
The fix is to not run the test with the sampling profiler.
- tests/stress/recursive-try-catch.js:
- 4:38 PM Changeset in webkit [201732] by
-
- 2 edits in trunk/Source/JavaScriptCore
Don't reportAbandonedObjectGraph() after throwing out linked code or RegExps.
<https://webkit.org/b/158444>
Unreviewed.
This is a speculative change for iOS performance bots. The calls to reportAbandonedObjectGraph
were basically redundant, since mainframe navigation will cause GC acceleration anyway via
ScriptController.
This appears successful at recovering the ~0.7% regression I could reproduce locally on newer
hardware but it's a bit too noisy to say for sure.
- runtime/VM.cpp:
(JSC::VM::deleteAllLinkedCode):
(JSC::VM::deleteAllRegExpCode):
- 3:33 PM Changeset in webkit [201731] by
-
- 2 edits in trunk/LayoutTests
Marking http/tests/misc/slow-loading-animated-image.html as flaky on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=157916
Unreviewed test gardening.
- platform/ios-simulator/TestExpectations:
- 3:28 PM Changeset in webkit [201730] by
-
- 25 edits23 adds in trunk
Implement EventListenerOptions argument to addEventListener
https://bugs.webkit.org/show_bug.cgi?id=149466
<rdar://problem/22802031>
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Import new test from W3C that covers EventListenerOptions.
- web-platform-tests/dom/events/EventListenerOptions-capture-expected.txt: Added.
- web-platform-tests/dom/events/EventListenerOptions-capture.html: Added.
Source/WebCore:
Implement AddEventListenerOptions dictionary argument to addEventListener()
and EventListenerOptions dictionary argument to removeEventListener(), as
per the latest DOM specification:
Firefox and Chrome already support this.
Support for AddEventListenerOptions in this patch is as follows:
- 'capture': fully supported.
- 'once': fully supported.
- 'passive': supported in the sense that preventDefault() will be ignored
for passive event listeners. There are however currently no
performance benefits from passing this flag. Those optimizations
will be implemented in follow-up patches (in particular for
Touch and Scroll events).
Tests: fast/events/AddEventListenerOptions-once-recursive.html
fast/events/AddEventListenerOptions-once.html
fast/events/AddEventListenerOptions-passive.html
fast/events/removeEventListener-EventListenerOptions-capture.html
imported/w3c/web-platform-tests/dom/events/EventListenerOptions-capture.html
- Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::addEventListener):
(WebCore::AudioScheduledSourceNode::removeEventListener):
- Modules/webaudio/AudioScheduledSourceNode.h:
- Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::addEventListener):
(WebCore::ScriptProcessorNode::removeEventListener):
- Modules/webaudio/ScriptProcessorNode.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheckExpression):
- dom/Event.h:
(WebCore::Event::preventDefault):
(WebCore::Event::setInPassiveListener):
- dom/EventListenerMap.cpp:
(WebCore::addListenerToVector):
(WebCore::EventListenerMap::add):
- dom/EventListenerMap.h:
- dom/EventTarget.cpp:
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::addEventListenerForBindings):
(WebCore::EventTarget::removeEventListenerForBindings):
(WebCore::EventTarget::removeEventListener):
(WebCore::EventTarget::setAttributeEventListener):
(WebCore::EventTarget::fireEventListeners):
- dom/EventTarget.h:
(WebCore::EventTarget::ListenerOptions::ListenerOptions):
(WebCore::EventTarget::AddEventListenerOptions::AddEventListenerOptions):
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::addEventListenerForBindings):
(WebCore::EventTarget::removeEventListenerForBindings):
- dom/EventTarget.idl:
- dom/MessagePort.cpp:
(WebCore::MessagePort::addEventListener):
- dom/MessagePort.h:
- dom/Node.cpp:
(WebCore::tryAddEventListener):
(WebCore::Node::addEventListener):
(WebCore::tryRemoveEventListener):
(WebCore::Node::removeEventListener):
- dom/Node.h:
- dom/RegisteredEventListener.h:
(WebCore::RegisteredEventListener::Options::Options):
(WebCore::RegisteredEventListener::RegisteredEventListener):
(WebCore::operator==):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::addEventListener):
(WebCore::HTMLMediaElement::removeEventListener):
- html/HTMLMediaElement.h:
- page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
- page/DOMWindow.h:
- svg/SVGElement.cpp:
(WebCore::SVGElement::addEventListener):
(WebCore::SVGElement::removeEventListener):
- svg/SVGElement.h:
LayoutTests:
- fast/events/AddEventListenerOptions-once-expected.txt: Added.
- fast/events/AddEventListenerOptions-once-recursive-expected.txt: Added.
- fast/events/AddEventListenerOptions-once-recursive.html: Added.
- fast/events/AddEventListenerOptions-once.html: Added.
- fast/events/AddEventListenerOptions-passive-expected.txt: Added.
- fast/events/AddEventListenerOptions-passive.html: Added.
- fast/events/removeEventListener-EventListenerOptions-capture-expected.txt: Added.
- fast/events/removeEventListener-EventListenerOptions-capture.html: Added.
Add layout testing coverage for various aspects of the functionality.
- imported/blink/fast/events/eventlisteneroptions/capture_default-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_default.html: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_equality-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_equality.html: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_query-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/capture_query.html: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_dispatch-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_dispatch.html: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_inequality-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_inequality.html: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_query-expected.txt: Added.
- imported/blink/fast/events/eventlisteneroptions/passive_query.html: Added.
Import blink tests for this functionality.
- 2:47 PM Changeset in webkit [201729] by
-
- 5 edits in trunk/Source/WebCore
Media elements should only be allowed to control controls manager during a user gesture.
https://bugs.webkit.org/show_bug.cgi?id=158432
Reviewed by Eric Carlson.
Add a new MediaElementSession behavior restriction for the controls manager
which is cleared on the first user gesture. Since canControlControlsManager()
may be called before the first layout, call updatePlaybackControlsManager()
since the main content check requires the laid-out size of the media element.
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::layoutSizeChanged):
(WebCore::HTMLMediaElement::removeBehaviorsRestrictionsAfterFirstUserGesture):
- html/HTMLMediaElement.h:
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::canControlControlsManager):
- html/MediaElementSession.h:
- 2:40 PM Changeset in webkit [201728] by
-
- 11 edits1 add in trunk
WebRTC: Update MediaEndpointPeerConnection::createOffer() to use the transceiver set
https://bugs.webkit.org/show_bug.cgi?id=158203
Reviewed by Eric Carlson.
Source/WebCore:
Create an SDP offer based on the RTCPeerConnection object's set of RTCRtpTransceiver objects
(instead of RTCRtpSender objects).
Updated existing test: fast/mediastream/RTCPeerConnection-inspect-offer.html
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::matchTransceiver):
(WebCore::matchTransceiverByMid):
(WebCore::MediaEndpointPeerConnection::createOfferTask):
- Modules/mediastream/MediaEndpointPeerConnection.h:
- Modules/mediastream/PeerConnectionBackend.h:
Remove getSenders() which is replaced by getTransceivers().
- Modules/mediastream/RTCPeerConnection.h:
- Modules/mediastream/SDPProcessor.cpp:
(WebCore::configurationFromJSON):
(WebCore::configurationToJSON):
- Modules/mediastream/sdp.js:
(SDP.parse):
(SDP.generate):
Add support for mid attribute.
- platform/mediastream/PeerMediaDescription.h:
(WebCore::PeerMediaDescription::mid):
(WebCore::PeerMediaDescription::setMid):
(WebCore::PeerMediaDescription::clone):
LayoutTests:
Updated existing test.
- fast/mediastream/RTCPeerConnection-inspect-offer-expected.txt:
- fast/mediastream/RTCPeerConnection-inspect-offer.html:
Add verification of mid attribute [1] (corresponds to the RTCRtpTransceiver mid attribute).
[1] https://tools.ietf.org/html/rfc5888
- fast/mediastream/resources/sdp-utils.js: Added.
(printComparableSessionDescription):
(verified):
(match):
Move the printComparableSessionDescription function to a separate file
to make it usable in other (future) tests.
- 1:58 PM Changeset in webkit [201727] by
-
- 4 edits6 adds in trunk
Position of WebGL <canvas> on iOS is incorrect with CSS borders
https://bugs.webkit.org/show_bug.cgi?id=156790
Patch by Antoine Quint <Antoine Quint> on 2016-06-06
Reviewed by Simon Fraser.
Source/WebKit2:
WebGL layers on iOS are hosted by a WKRemoteView, which applies a transform scaling
its content by the inverse of the device pixel ratio, which affects how positions are
applied to the WebGL layer. The container layer of the layer hosted by a WKRemoteView
then has an inverse transform applied to it in the PlatformCALayerRemoteCustom
constructor. However, the position of a CALayer is not affected by its transform.
The fix for <rdar://problem/18316542> should be specific to video, so we only apply the
scaling in the case of a LayerTypeAVPlayerLayer.
- UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(-[WKRemoteView initWithFrame:contextID:]):
(WebKit::RemoteLayerTreeHost::createLayer):
(-[WKRemoteView initWithFrame:contextID:hostingDeviceScaleFactor:]): Deleted.
- WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
(WebKit::PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):
LayoutTests:
Adding new tests checking that CSS border, box-shadow and padding properties used on a
WebGL <canvas> element correctly affect the position of the WebGL content.
- webgl/webgl-border-expected.html: Added.
- webgl/webgl-border.html: Added.
- webgl/webgl-box-shadow-expected.html: Added.
- webgl/webgl-box-shadow.html: Added.
- webgl/webgl-padding-expected.html: Added.
- webgl/webgl-padding.html: Added.
- 1:34 PM Changeset in webkit [201726] by
-
- 2 edits1 add in trunk/Tools
REGRESSION(r201449) [GTK] ARMv7 build fails with libicudata.so.55: cannot open shared object file on gtkdoc-scangobj step.
https://bugs.webkit.org/show_bug.cgi?id=158417
Reviewed by Michael Catanzaro.
The toolchain on armhf (ARMv7) seems unable to properly handle
a shared library that doesn't link with anything.
And libicudata is built by default in this way because it only
contains static data.
That makes icu unusable on armhf because the linker will be
unable to resolve the libicudata dependencies.
Most (if not all) distributions workaround this by linking
libicudata with libc6, which is already a needed dependency for
any of the other icu shared libraries.
So import here the Debian patch fixing this issue. For further
details check https://bugs.debian.org/653457
- gtk/jhbuild.modules:
- gtk/patches/icudata-stdlibs.patch: Added.
- 1:33 PM Changeset in webkit [201725] by
-
- 6 edits1 add in trunk
Source/JavaScriptCore:
[ESNext] Trailing commas in function parameters.
https://bugs.webkit.org/show_bug.cgi?id=158020
Reviewed by Keith Miller.
ESNext allow to add trailing commas in function parameters and function arguments.
Link to spec - https://jeffmo.github.io/es-trailing-function-commas
Example of using - (function (a, b,) { return a + b; })(1,2,);
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseFormalParameters):
(JSC::Parser<LexerType>::parseArguments):
- tests/stress/trailing-comma-in-function-paramters.js: Added.
LayoutTests:
[ESNext] Support trailing commas in function param lists
https://bugs.webkit.org/show_bug.cgi?id=158020
Reviewed by Keith Miller.
- js/parser-syntax-check-expected.txt:
- js/script-tests/parser-syntax-check.js:
- sputnik/Conformance/13_Function_Definition/S13_A5.html:
- 1:30 PM Changeset in webkit [201724] by
-
- 16 edits21 adds in trunk
Support createPattern(HTMLVideoElement, const String& repetitionType)
https://bugs.webkit.org/show_bug.cgi?id=149984
<rdar://problem/23058823>
Patch by George Ruan <gruan@apple.com> on 2016-06-06
Reviewed by Dean Jackson.
Source/WebCore:
Support functionality for HTMLVideoElement argument for
CanvasRenderingContext2D::createPattern*()
Tests: fast/canvas/canvas-createPattern-video-invalid.html
fast/canvas/canvas-createPattern-video-loading.html
fast/canvas/canvas-createPattern-video-modify.html
http/tests/security/canvas-remote-read-remote-video-allowed-anonymous.html
http/tests/security/canvas-remote-read-remote-video-allowed-with-credentials.html
http/tests/security/canvas-remote-read-remote-video-blocked-no-crossorigin.html
http/tests/security/canvas-remote-read-remote-video-localhost.html
http/tests/security/canvas-remote-read-remote-video-redirect.html
media/video-canvas-createPattern.html
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::createPattern): Implement
functionality of description
- html/canvas/CanvasRenderingContext2D.h:
- html/canvas/CanvasRenderingContext2D.idl:
LayoutTests:
- fast/canvas/canvas-createPattern-video-invalid-expected.txt: Added.
- fast/canvas/canvas-createPattern-video-invalid.html: Added. Test
behavior when given invalid arguments.
- fast/canvas/canvas-createPattern-video-loading-expected.txt: Added.
- fast/canvas/canvas-createPattern-video-loading.html: Added. Tests
behavior before video loaded, right after it's loaded, and after being
played.
- fast/canvas/canvas-createPattern-video-modify-expected.txt: Added.
- fast/canvas/canvas-createPattern-video-modify.html: Added. Tests
that modifying the video after calling the createPattern() function
does not affect the pattern rendered or to be rendered.
*
http/tests/security/canvas-remote-read-remote-image-allowed-expected.txt:
Fix typo.
*
http/tests/security/canvas-remote-read-remote-image-allowed-with-credentials-expected.txt:
Fix typo.
*
http/tests/security/canvas-remote-read-remote-image-allowed-with-credentials.html:
Fix typo.
- http/tests/security/canvas-remote-read-remote-image-allowed.html:
Fix typo.
*
http/tests/security/canvas-remote-read-remote-image-blocked-no-crossorigin-expected.txt:
Fix typo.
*
http/tests/security/canvas-remote-read-remote-image-blocked-no-crossorigin.html:
Fix typo.
- http/tests/security/canvas-remote-read-remote-video-allowed-anonymous-expected.txt: Added.
*
http/tests/security/canvas-remote-read-remote-video-allowed-anonymous.html:
Added. This test will fail as CORS is not implemented for media yet.
Tests that data can be retrieved from canvas even when tainted if CORS
is enabled with anonymous.
- http/tests/security/canvas-remote-read-remote-video-allowed-with-credentials-expected.txt: Added.
*
http/tests/security/canvas-remote-read-remote-video-allowed-with-credentials.html:
Added. This test will fail as CORS is not implemented for media yet.
Tests that data can be retrieved from canvas even when tainted if CORS
is enabled with credentials.
- http/tests/security/canvas-remote-read-remote-video-blocked-no-crossorigin-expected.txt: Added.
*
http/tests/security/canvas-remote-read-remote-video-blocked-no-crossorigin.html:
Added. Ensures that data cannot be retrieved from a tainted canvas if
no cross origin is enabled.
- http/tests/security/canvas-remote-read-remote-video-localhost-expected.txt: Added.
- http/tests/security/canvas-remote-read-remote-video-localhost.html:
Added. Ensures that localhost is blocked like http.
- http/tests/security/canvas-remote-read-remote-video-redirect-expected.txt: Added.
- http/tests/security/canvas-remote-read-remote-video-redirect.html:
Added. Ensures that redirects are blocked.
- http/tests/security/resources/canvas-video-crossorigin.js: Added.
Includes common functions used to test the CORS of canvas for video.
*
http/tests/security/resources/video-cross-origin-allow-credentials.php:
Added. Script that serves test video for
canvas-remote-read-remote-video-allowed-with-credentials.html.
- media/video-canvas-createPattern-expected.txt: Added.
- media/video-canvas-createPattern.html: Added. Naive test that
ensures functionality of createPattern() with HTMLVideoElement
argument.
- platform/ios-simulator-wk1/TestExpectations: Added
canvas-remote-read-remote-video-allowed-anonymous.html and
canvas-remote-read-remote-video-allowed-with-credentials.html.
- platform/ios-simulator-wk2/TestExpectations: Same as wk1.
- platform/mac/TestExpectations: Same as wk1.
- platform/mac/media/video-canvas-createPattern-expected.png: Added.
- platform/win/TestExpectations: Same as wk1.
- platform/wk2/TestExpectations: Same as wk1.
- 1:19 PM Changeset in webkit [201723] by
-
- 2 edits in trunk/Source/WebCore
Fix the !ENABLE(SHADOW_DOM) && !ENABLE(DETAILS_ELEMENT) build
https://bugs.webkit.org/show_bug.cgi?id=158347
Reviewed by Chris Dumez.
- dom/ContainerNode.cpp:
(WebCore::destroyRenderTreeIfNeeded):
- 1:11 PM Changeset in webkit [201722] by
-
- 4 edits in trunk/Source/WebKit2
Fix build after r201717
Unreviewed.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::grantSandboxExtensionsToDatabaseProcessForBlobs):
- NetworkProcess/NetworkProcess.h:
- 12:23 PM Changeset in webkit [201721] by
-
- 5 edits in trunk/Source/WebCore
Remove unused ResourceResponse::platformResponseIsUpToDate
https://bugs.webkit.org/show_bug.cgi?id=158424
Reviewed by Brady Eidson.
No change in behavior, just removing unused code that was introduced in r145007.
- platform/network/cf/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::platformResponseIsUpToDate): Deleted.
- platform/network/cocoa/ResourceResponseCocoa.mm:
(WebCore::ResourceResponse::ResourceResponse):
- platform/network/curl/ResourceResponse.h:
(WebCore::ResourceResponse::cfURLResponse):
(WebCore::ResourceResponse::platformResponseIsUpToDate): Deleted.
- platform/network/soup/ResourceResponse.h:
(WebCore::ResourceResponse::soupMessageTLSErrors):
(WebCore::ResourceResponse::setSoupMessageTLSErrors):
(WebCore::ResourceResponse::decode):
(WebCore::ResourceResponse::platformResponseIsUpToDate): Deleted.
- 12:16 PM Changeset in webkit [201720] by
-
- 2 edits in trunk/Tools
REGRESSION (r104174): 500+ tests failing on Windows
https://bugs.webkit.org/show_bug.cgi?id=75965
Reviewed by Michael Catanzaro.
Reset WebView scale factors before running next test.
- DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebViewToConsistentStateBeforeTesting):
- 12:11 PM Changeset in webkit [201719] by
-
- 17 edits in trunk/Source
Deprecate remaining uses of Lookup getStatic*, use HasStaticPropertyTable instead.
https://bugs.webkit.org/show_bug.cgi?id=158178
Reviewed by Darin Adler.
As of bug #158059 most JSC static table property access no longer requires getOwnPropertySlot to be
overridden. Port remaining calls to the getStatic* functions in Lookup.h over to the new mechanism.
Source/JavaScriptCore:
Deprecate getStatic* functions in Lookup.h
- runtime/Lookup.h:
(JSC::getStaticPropertySlot): Deleted.
(JSC::getStaticFunctionSlot): Deleted.
(JSC::getStaticValueSlot): Deleted.
- No longer required. Static table access now via JSObject.
Source/WebCore:
Switch WebCore DOM instance bindings to use HasStaticPropertyTable.
- bindings/js/JSPluginElementFunctions.h:
(WebCore::pluginElementCustomGetOwnPropertySlot):
- Switch call from getStaticValueSlot to Type::getOwnPropertySlot. For any element where Type::hasStaticPropertyTable is true the HasStaticPropertyTable structure flag will also be set, so Type::getOwnPropertySlot will do the same thing.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
- If we override getOwnPropertySlot, Base::getOwnPropertySlot will handle property storage & static property lookup.
(InstanceOverridesGetOwnPropertySlot):
- Instances only override getOwnPropertySlot if the really need to, not just for static property lookup.
(GenerateHeader):
- Set HasStaticPropertyTable in instance structureFlags, where appropriate.
(GenerateImplementation):
- GenerateGetOwnPropertySlotBody no longer needs to know if there are static properties.
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
- bindings/scripts/test/JS/JSTestActiveDOMObject.h:
- bindings/scripts/test/JS/JSTestException.cpp:
- bindings/scripts/test/JS/JSTestException.h:
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/JS/JSTestObj.h:
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
- bindings/scripts/test/JS/JSTestTypedefs.h:
- bindings/scripts/test/JS/JSattribute.cpp:
- bindings/scripts/test/JS/JSattribute.h:
- Updating bindings test results.
- 11:51 AM Changeset in webkit [201718] by
-
- 9 edits in trunk/Websites/perf.webkit.org
sync-buildbot.js should update the list of tests and platforms associated with a triggerable
https://bugs.webkit.org/show_bug.cgi?id=158406
<rdar://problem/26185737>
Reviewed by Darin Adler.
Added /api/update-triggerable to update the list of configurations (platform and test pairs)
associated with a given triggerable, and make sync-buildbot.js use this JSON API before each
syncing cycle so that the association gets updated automatically by simply updating the JSON.
- server-tests/api-manifest.js: Use const for imported modules.
- server-tests/api-report-commits-tests.js: Removed unnecessary importing of crypto.
- server-tests/resources/mock-data.js:
(MockData.someTestId): Added.
(MockData.somePlatformId): Added.
(MockData.addMockData):
- server-tests/tools-buildbot-triggerable-tests.js: Use const for imported modules. Also added
a test for BuildbotTriggerable's updateTriggerable.
- tools/js/buildbot-triggerable.js:
(BuildbotTriggerable.prototype.updateTriggerable): Added. Find the list of all configurations
associated with this triggeerable and post it to /api/update-triggerable.
- tools/js/database.js: Added triggerable_configurations to the list of tables.
- tools/js/remote.js:
(RemoteAPI.prototype.postJSON): Print the whole response when JSON parsing fails for debugging.
- tools/sync-buildbot.js:
(syncLoop): Call BuildbotTriggerable's updateTriggerable before syncing.
- 11:38 AM Changeset in webkit [201717] by
-
- 17 edits in trunk/Source
Modern IDB: Crash seen in IDBConnectionProxy::putOrAdd on GuardMalloc bot
https://bugs.webkit.org/show_bug.cgi?id=158124
Reviewed by Darin Adler.
Source/WebCore:
No new tests (Covered by existing test configurations).
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::putOrAddOnServer):
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::putOrAdd):
- Modules/indexeddb/client/IDBConnectionProxy.h:
(WebCore::IDBClient::IDBConnectionProxy::callConnectionOnMainThread):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):
- bindings/js/SerializedScriptValue.h:
- platform/network/BlobRegistry.h:
- platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::writeBlobsToTemporaryFiles):
- platform/network/BlobRegistryImpl.h:
Source/WebKit2:
- NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::writeBlobsToTemporaryFiles):
- NetworkProcess/FileAPI/NetworkBlobRegistry.h:
- WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles):
- WebProcess/FileAPI/BlobRegistryProxy.h:
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles):
- WebProcess/Network/NetworkProcessConnection.h:
- 11:09 AM Changeset in webkit [201716] by
-
- 3 edits in trunk/Source/JavaScriptCore
[jsc][mips] Implement absDouble()
https://bugs.webkit.org/show_bug.cgi?id=158206
Patch by Guillaume Emont <guijemont@igalia.com> on 2016-06-06
Reviewed by Mark Lam.
Implement absDouble() for MIPS. This is needed because Math.pow() uses
it since r200208.
- assembler/MIPSAssembler.h:
(JSC::MIPSAssembler::absd):
- assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::absDouble):
- 10:56 AM Changeset in webkit [201715] by
-
- 28 edits9 deletes in trunk
Unreviewed, rolling out r201706.
https://bugs.webkit.org/show_bug.cgi?id=158427
This change broke the Yosemite build and its LayoutTest is
failing on Mac and iOS testers (Requested by ryanhaddad on
#webkit).
Reverted changeset:
"Add experimental support for spring based CSS animations"
https://bugs.webkit.org/show_bug.cgi?id=158403
http://trac.webkit.org/changeset/201706
Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-06
- 10:31 AM Changeset in webkit [201714] by
-
- 5 edits in trunk
RegExp unicode parsing reads an extra character before failing
https://bugs.webkit.org/show_bug.cgi?id=158376
Reviewed by Saam Barati.
Source/JavaScriptCore:
This was a probably harmless bug, but keeps triggering assertions
for me locally. Essentially we'd see a parse error, set the error
type, but then carry on parsing. In debug builds this asserts, in
release builds you are pretty safe unless you're exceptionally
unlucky with where the error occurs.
- yarr/YarrParser.h:
(JSC::Yarr::Parser::parseEscape):
LayoutTests:
Add a couple of tests.
- js/script-tests/regexp-unicode.js:
- 10:22 AM Changeset in webkit [201713] by
-
- 2 edits in trunk/Source/JavaScriptCore
[jsc][mips] fix JIT::emit_op_log_shadow_chicken_prologue/_tail
https://bugs.webkit.org/show_bug.cgi?id=158209
Patch by Guillaume Emont <guijemont@igalia.com> on 2016-06-06
Reviewed by Mark Lam.
On MIPS, changes GPRInfo::nonArgGPR0 to be regT4 instead of regT0,
since the code of JIT::emit_op_log_shadow_chicken_prologue/_tail()
expects nonArgGPR0 to be a different register from regT0 and regT2.
- jit/GPRInfo.h:
- 9:40 AM Changeset in webkit [201712] by
-
- 3 edits2 adds in trunk
Crash under JSObject::getOwnPropertyDescriptor()
https://bugs.webkit.org/show_bug.cgi?id=158382
<rdar://problem/26605004>
Reviewed by Mark Lam.
Source/JavaScriptCore:
- runtime/JSObject.h:
(JSC::JSObject::putDirectInternal):
We were crashing under getOwnPropertyDescriptor() because the
CustomAccessor was not properly reset on window.statusbar when
setting it to false (which is allowed because the property is
marked as [Replaceable] in the IDL). We now property reset the
CustomAccessor flag in putDirectInternal() when needed. This
fixes the crash.
LayoutTests:
Add layout test to cover the crash in JSObject::getOwnPropertyDescriptor().
- js/dom/getOwnPropertyDescriptor-crash-expected.txt: Added.
- js/dom/getOwnPropertyDescriptor-crash.html: Added.
- 7:31 AM Changeset in webkit [201711] by
-
- 2 edits in trunk/Source/JavaScriptCore
[EFL] Move efl include paths to JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES
https://bugs.webkit.org/show_bug.cgi?id=158418
Reviewed by Csaba Osztrogonác.
In Source/JavaScriptCore/PlatformEfl.cmake, we don't use JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES
for efl include paths.
- PlatformEfl.cmake:
- 6:00 AM Changeset in webkit [201710] by
-
- 2 edits in trunk
[EFL] Update ewebkit minor version
https://bugs.webkit.org/show_bug.cgi?id=158409
Reviewed by Csaba Osztrogonác.
EWebKit has used efl 1.17 version though, it still is stopped at version 1.14.
- Source/cmake/OptionsEfl.cmake: Bump minor version to 1.17.
- 5:11 AM Changeset in webkit [201709] by
-
- 3 edits2 adds in trunk
[css-grid] Horizontal scroll must account for grid container's height
https://bugs.webkit.org/show_bug.cgi?id=157971
Reviewed by Darin Adler.
Source/WebCore:
We don't consider the scrollbar when computing the grid container's
logical height at the beginning of the 'layoutBlock' logic. We must
do it because otherwise, contentLogicalHeight may return a negative
value.
Test: fast/css-grid-layout/grid-container-scroll-accounts-for-sizing.html
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock):
LayoutTests:
Test to verify we account horizontal scrollbar's size for grid container's
height computation.
- fast/css-grid-layout/grid-container-scroll-accounts-for-sizing-expected.html: Added.
- fast/css-grid-layout/grid-container-scroll-accounts-for-sizing.html: Added.
- 1:25 AM Changeset in webkit [201708] by
-
- 35 edits in trunk/Source
Reduce ResourceRequest copying in loading code
https://bugs.webkit.org/show_bug.cgi?id=158251
Patch by Alex Christensen <achristensen@webkit.org> on 2016-06-06
Reviewed by Darin Adler.
Source/WebCore:
No new tests. There should be no change in behavior except fewer unnecessary copies.
Before, we would pass a const ResourceRequest& around, and if we needed to modify it
we would copy the whole thing, modify the copy, and pass the copy along. This can be
accomplished with move semantics without the now-unnecessary copy.
The biggest conceptual change is that the synchronous ResourceHandleClient::willSendRequest
used to take a non-const ResourceRequest& and modify it, but now it returns a modified
ResourceRequest instead.
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::cannotShowURLError):
(WebCore::ResourceLoader::willSendRequest):
(WebCore::ResourceLoader::didSendData):
- loader/ResourceLoader.h:
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(ResourceHandleStreamingClient::getOrCreateReadBuffer):
(ResourceHandleStreamingClient::willSendRequest):
(ResourceHandleStreamingClient::didReceiveResponse):
- platform/network/ResourceHandle.h:
- platform/network/ResourceHandleClient.cpp:
(WebCore::ResourceHandleClient::~ResourceHandleClient):
(WebCore::ResourceHandleClient::willSendRequest):
(WebCore::ResourceHandleClient::willSendRequestAsync):
(WebCore::ResourceHandleClient::didReceiveResponseAsync):
- platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::didSendData):
(WebCore::ResourceHandleClient::didReceiveResponse):
(WebCore::ResourceHandleClient::loadingSynchronousXHR):
(WebCore::ResourceHandleClient::willSendRequest): Deleted.
- platform/network/SynchronousLoaderClient.cpp:
(WebCore::SynchronousLoaderClient::~SynchronousLoaderClient):
(WebCore::SynchronousLoaderClient::willSendRequest):
(WebCore::SynchronousLoaderClient::shouldUseCredentialStorage):
- platform/network/SynchronousLoaderClient.h:
- platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::cancel):
(WebCore::ResourceHandle::willSendRequest):
- platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
- platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::willSendRequest):
- platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
(WebCore::ResourceHandle::willSendRequest):
(WebCore::ResourceHandle::continueWillSendRequest):
- platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
(-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
(-[WebCoreResourceHandleAsDelegate connectionShouldUseCredentialStorage:]):
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
- platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::shouldRedirectAsGET):
(WebCore::continueAfterWillSendRequest):
(WebCore::readCallback):
(WebCore::ResourceHandle::continueWillSendRequest):
(WebCore::ResourceHandle::continueDidReceiveResponse):
Source/WebKit2:
- NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::continueCanAuthenticateAgainstProtectionSpace):
(WebKit::DownloadManager::continueWillSendRequest):
(WebKit::DownloadManager::willDecidePendingDownloadDestination):
- NetworkProcess/Downloads/DownloadManager.h:
- NetworkProcess/Downloads/PendingDownload.cpp:
(WebKit::PendingDownload::PendingDownload):
(WebKit::PendingDownload::willSendRedirectedRequest):
(WebKit::PendingDownload::continueWillSendRequest):
(WebKit::PendingDownload::canAuthenticateAgainstProtectionSpaceAsync):
- NetworkProcess/Downloads/PendingDownload.h:
- NetworkProcess/NetworkDataTask.h:
(WebKit::NetworkDataTask::firstRequest):
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::cancel):
(WebKit::NetworkLoad::continueWillSendRequest):
(WebKit::NetworkLoad::sharedDidReceiveResponse):
(WebKit::NetworkLoad::sharedWillSendRedirectedRequest):
(WebKit::NetworkLoad::setPendingDownload):
(WebKit::NetworkLoad::willPerformHTTPRedirection):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didFail):
(WebKit::NetworkLoad::willSendRequestAsync):
- NetworkProcess/NetworkLoad.h:
(WebKit::NetworkLoad::currentRequest):
(WebKit::NetworkLoad::clearCurrentRequest):
(WebKit::NetworkLoad::pendingDownloadID):
- NetworkProcess/NetworkLoadClient.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace):
(WebKit::NetworkProcess::continueWillSendRequest):
(WebKit::NetworkProcess::pendingDownloadCanceled):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::continueDidReceiveResponse):
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/PingLoad.h:
(WebKit::PingLoad::PingLoad):
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::~SpeculativeLoad):
(WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::didBecomeDownload):
(WebKit::NetworkDataTask::willPerformHTTPRedirection):
- WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::detachFromCoreLoader):
(WebKit::WebResourceLoader::willSendRequest):
- WebProcess/Network/WebResourceLoader.h:
Jun 5, 2016:
- 10:09 PM Changeset in webkit [201707] by
-
- 2 edits in trunk
[EFL] Sync EFL features with featureList.pm
https://bugs.webkit.org/show_bug.cgi?id=158410
Reviewed by Antonio Gomes.
In OptionsEfl, some features on/off status are different with
featureList.pm definitions. Sync with it.
- Source/cmake/OptionsEfl.cmake:
- 9:56 PM Changeset in webkit [201706] by
-
- 28 edits9 adds in trunk
Add experimental support for spring based CSS animations
https://bugs.webkit.org/show_bug.cgi?id=158403
Patch by Sam Weinig <sam@webkit.org> on 2016-06-05
Reviewed by Dean Jackson.
Source/WebCore:
Adds experimental support for a new CSS animation timing function that uses
spring to model the time function. To use it you replace your normal timing
function, be it cubic-bezier or steps, with a new function called spring().
For instance, for a transition you would write:
transition-timing-function: spring(1 100 10 0);
The parameters are, in order:
- Mass
- Stiffness
- Damping
- Initial Velocity
Tests: animations/spring-computed-style.html
animations/spring-function.html
animations/spring-parsing.html
- WebCore.xcodeproj/project.pbxproj:
Add new file.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::createTimingFunctionValue):
Modernize and add support for the spring function.
- css/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
(WebCore::CSSParser::CSSParser):
(WebCore::CSSParser::parseTransformOriginShorthand):
(WebCore::CSSParser::isSpringTimingFunctionEnabled):
(WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
(WebCore::CSSParser::parseSpringTimingFunctionValue):
(WebCore::CSSParser::parseAnimationTimingFunction):
- css/CSSParser.h:
- css/CSSParserMode.h:
Add parsing support for the spring() function.
- css/CSSTimingFunctionValue.cpp:
(WebCore::CSSCubicBezierTimingFunctionValue::customCSSText):
(WebCore::CSSCubicBezierTimingFunctionValue::equals):
(WebCore::CSSStepsTimingFunctionValue::customCSSText):
(WebCore::CSSStepsTimingFunctionValue::equals):
(WebCore::CSSSpringTimingFunctionValue::customCSSText):
(WebCore::CSSSpringTimingFunctionValue::equals):
- css/CSSTimingFunctionValue.h:
(WebCore::CSSSpringTimingFunctionValue::create):
(WebCore::CSSSpringTimingFunctionValue::mass):
(WebCore::CSSSpringTimingFunctionValue::stiffness):
(WebCore::CSSSpringTimingFunctionValue::damping):
(WebCore::CSSSpringTimingFunctionValue::initialVelocity):
(WebCore::CSSSpringTimingFunctionValue::CSSSpringTimingFunctionValue):
Modernize and add support for the spring function.
- css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::mapAnimationTimingFunction):
Pipe the spring function into the animation.
- css/CSSValue.cpp:
(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
- css/CSSValue.h:
(WebCore::CSSValue::isSpringTimingFunctionValue):
Add support for the spring function.
- page/Settings.in:
Add a setting to control if the spring function is enabled.
- page/animation/AnimationBase.cpp:
(WebCore::solveSpringFunction):
(WebCore::AnimationBase::progress):
Add support for solving the spring function. Since the spring requires time to be absolute,
get the real time by multiplying the ratio t, to the total duration.
- platform/animation/TimingFunction.cpp:
(WebCore::operator<<):
- platform/animation/TimingFunction.h:
(WebCore::TimingFunction::~TimingFunction):
(WebCore::TimingFunction::isSpringTimingFunction):
Add support for the spring timing function.
- platform/graphics/SpringSolver.h: Added.
(WebCore::SpringSolver::SpringSolver):
(WebCore::SpringSolver::solve):
Add a Spring solver that matches the one in CoreAnimation.
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::createBasicAnimation):
(WebCore::GraphicsLayerCA::createSpringAnimation):
(WebCore::GraphicsLayerCA::setupAnimation):
- platform/graphics/ca/GraphicsLayerCA.h:
Map animations with spring timing functions to CASpringAnimations.
- platform/graphics/ca/PlatformCAAnimation.cpp:
(WebCore::operator<<):
(WebCore::PlatformCAAnimation::isBasicAnimation):
- platform/graphics/ca/PlatformCAAnimation.h:
(WebCore::PlatformCAAnimation::setActualStartTimeIfNeeded):
(WebCore::PlatformCAAnimation::PlatformCAAnimation):
- platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:
(WebCore::toCAMediaTimingFunction):
(PlatformCAAnimationCocoa::PlatformCAAnimationCocoa):
(PlatformCAAnimationCocoa::setTimingFunction):
(PlatformCAAnimationCocoa::copyTimingFunctionFrom):
(PlatformCAAnimationCocoa::setFromValue):
(PlatformCAAnimationCocoa::copyFromValueFrom):
(PlatformCAAnimationCocoa::setToValue):
(PlatformCAAnimationCocoa::copyToValueFrom):
Add a new type of PlatformCAAnimation, Spring, which is a sub-type of Basic.
Source/WebKit2:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<StepsTimingFunction>::decode):
(IPC::ArgumentCoder<SpringTimingFunction>::encode):
(IPC::ArgumentCoder<SpringTimingFunction>::decode):
(IPC::ArgumentCoder<FloatPoint>::encode):
- Shared/WebCoreArgumentCoders.h:
- Shared/WebPreferencesDefinitions.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
- WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
(WebKit::PlatformCAAnimationRemote::Properties::encode):
(WebKit::PlatformCAAnimationRemote::Properties::decode):
(WebKit::addAnimationToLayer):
Pipe through support for the Spring animation.
LayoutTests:
- animations/script-tests/spring-computed-style.js: Added.
- animations/script-tests/spring-parsing.js: Added.
- animations/spring-computed-style-expected.txt: Added.
- animations/spring-computed-style.html: Added.
- animations/spring-function-expected.txt: Added.
- animations/spring-function.html: Added.
- animations/spring-parsing-expected.txt: Added.
- animations/spring-parsing.html: Added.
Add tests for the spring timing function.
- 8:59 PM Changeset in webkit [201705] by
-
- 2 edits in trunk/LayoutTests
Unreviewed EFL gardening on June 6. Unskip passing tests and mark failing tests.
New bug is filed for new failing tests.
- platform/efl/TestExpectations:
- 8:19 PM Changeset in webkit [201704] by
-
- 7 edits in trunk/Source/WebCore
Addressing post-review comments on r201635.
Reviewed by Chris Dumez.
- rendering/RenderInline.h:
(WebCore::RenderInline::computeRectForRepaint):
- rendering/RenderObject.h:
(WebCore::RenderObject::RepaintContext::RepaintContext):
(WebCore::RenderObject::computeRectForRepaint):
- rendering/RenderTableCell.h:
- rendering/RenderView.h:
- rendering/svg/RenderSVGForeignObject.h:
- rendering/svg/RenderSVGText.h:
- 6:56 PM Changeset in webkit [201703] by
-
- 66 edits6 adds in trunk/Source
Change ProxyObject.Get not to use custom accessor
https://bugs.webkit.org/show_bug.cgi?id=157080
Reviewed by Darin Adler.
Source/JavaScriptCore:
This patch focuses on introducing the second part of the followings.
But to do so, first and third parts are necessary.
- Insert missing exception checks for getPropertySlot.
While getPropertySlot can perform user-observable behavior if the slot is not VMInquiry,
several places miss exeption checks. For example, ProxyObject's hasProperty already can
throw any errors. Looking through the code, we found several missing error checks after
hasProperty, but this will be fixed in the separated patch[1].
- Do not use custom accessor to implement ProxyObject's Get.
The caller already allows getOwnPropertySlot to throw an exception if the type
is not VMInquiry. So instead of using custom accessor, we simply implement it
directly in the ProxyObject's method.
- Strip slotBase from custom accessor.
The custom accessor should not be bound to the specific slot base[2], since it
is just an accessor. There is an alternative design: makeing this custom accessor
to custom value accessor and accept both the slot base and the receiver instead
of allowing throwing an error from getOwnPropertySlot. But we take the first design
that allows getPropertySlot to throw an error, since hasProperty (that does not call
getValue of the custom getters) can already throw any errors.
To query the property with the non-user-observable way, we already provided the way for that:
use VMInquiry and isTaintedByProxy() instead.
Tests just ensure that the current semantics works correctly after this patch.
And this patch is performance neutral.
Later, we will attempt to rename "thisValue" to "receiver"[3].
[1]: https://bugs.webkit.org/show_bug.cgi?id=158398
[2]: https://bugs.webkit.org/show_bug.cgi?id=157978
[3]: https://bugs.webkit.org/show_bug.cgi?id=158397
- API/JSCallbackObject.h:
- API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject<Parent>::staticFunctionGetter):
(JSC::JSCallbackObject<Parent>::callbackGetter):
- bytecode/PolymorphicAccess.cpp:
(JSC::AccessCase::generateImpl):
- dfg/DFGOperations.cpp:
- interpreter/Interpreter.cpp:
(JSC::Interpreter::execute):
- jit/JITOperations.cpp:
- jsc.cpp:
(WTF::ImpureGetter::getOwnPropertySlot):
(WTF::CustomGetter::customGetter):
(WTF::RuntimeArray::lengthGetter):
(GlobalObject::finishCreation):
(GlobalObject::moduleLoaderFetch):
(functionGetGetterSetter):
(functionRun):
(functionLoad):
(functionLoadString):
(functionReadFile):
(functionCheckSyntax):
(functionLoadWebAssembly):
(functionLoadModule):
(functionCreateBuiltin):
(functionCheckModuleSyntax):
(dumpException):
(runWithScripts):
(runInteractive):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/JSBoundSlotBaseFunction.cpp:
(JSC::boundSlotBaseFunctionCall):
- runtime/JSCJSValue.h:
- runtime/JSCJSValueInlines.h:
(JSC::JSValue::getPropertySlot):
- runtime/JSCellInlines.h:
(JSC::ExecState::vm):
This change is super important for performance. We add severalexec->hadException()calls into the super hot path, like JSC::operationGetByIdOptimize.
Without this change, we call ExecState::vm() and it is not inlined. This causes 1 - 2% performance regression in Octane PDFJS.
- runtime/JSFunction.cpp:
(JSC::JSFunction::argumentsGetter):
(JSC::JSFunction::callerGetter):
- runtime/JSFunction.h:
- runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::constructGenericTypedArrayViewWithArguments):
- runtime/JSModuleNamespaceObject.cpp:
(JSC::callbackGetter):
- runtime/JSONObject.cpp:
(JSC::Stringifier::Holder::appendNextProperty):
Here's UNLIKELY is important for Kraken's json-stringify-tinderbox. Without it, we can observe 0.5% regression.
(JSC::Walker::walk):
- runtime/JSObject.h:
(JSC::JSObject::getPropertySlot):
- runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncToString):
- runtime/PropertySlot.cpp:
(JSC::PropertySlot::customGetter):
- runtime/PropertySlot.h:
(JSC::PropertySlot::thisValue):
- runtime/ProxyObject.cpp:
(JSC::performProxyGet):
(JSC::ProxyObject::performGet):
(JSC::ProxyObject::getOwnPropertySlotCommon):
- runtime/ProxyObject.h:
- runtime/RegExpConstructor.cpp:
(JSC::regExpConstructorDollar):
(JSC::regExpConstructorInput):
(JSC::regExpConstructorMultiline):
(JSC::regExpConstructorLastMatch):
(JSC::regExpConstructorLastParen):
(JSC::regExpConstructorLeftContext):
(JSC::regExpConstructorRightContext):
- tests/stress/get-from-scope-dynamic-onto-proxy.js: Added.
(shouldBe):
(shouldThrow.handler.has):
(handler.has):
(try.handler.has):
- tests/stress/operation-in-throw-error.js: Added.
(testCase.handler.has):
(testCase):
- tests/stress/proxy-and-json-stringify.js: Added.
(shouldThrow):
- tests/stress/proxy-and-typed-array.js: Added.
- tests/stress/proxy-json-path.js: Added.
- tests/stress/proxy-with-statement.js: Added.
Source/WebCore:
- bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::getProperty):
- bindings/js/JSDOMBinding.h:
(WebCore::nonCachingStaticFunctionGetter):
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowWebKit):
- bindings/js/JSDictionary.cpp:
(WebCore::JSDictionary::tryGetProperty):
- bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginElementPropertyGetter):
- bindings/js/JSPluginElementFunctions.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
- bindings/scripts/test/JS/JSInterfaceName.cpp:
(WebCore::jsInterfaceNameConstructor):
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectExcitingAttr):
(WebCore::jsTestActiveDOMObjectConstructor):
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::jsTestClassWithJSBuiltinConstructorConstructor):
- bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
(WebCore::jsTestCustomConstructorWithNoInterfaceObjectConstructor):
- bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::jsTestCustomNamedGetterConstructor):
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::jsTestEventConstructorAttr1):
(WebCore::jsTestEventConstructorAttr2):
(WebCore::jsTestEventConstructorAttr3):
(WebCore::jsTestEventConstructorConstructor):
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetConstructor):
- bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::jsTestExceptionName):
(WebCore::jsTestExceptionConstructor):
- bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::jsTestGenerateIsReachableConstructor):
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
(WebCore::jsTestGlobalObjectRegularAttribute):
(WebCore::jsTestGlobalObjectEnabledAtRuntimeAttribute):
(WebCore::jsTestGlobalObjectConstructor):
- bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfaceConstructorImplementsStaticReadOnlyAttr):
(WebCore::jsTestInterfaceConstructorImplementsStaticAttr):
(WebCore::jsTestInterfaceImplementsStr1):
(WebCore::jsTestInterfaceImplementsStr2):
(WebCore::jsTestInterfaceImplementsStr3):
(WebCore::jsTestInterfaceImplementsNode):
(WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
(WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
(WebCore::jsTestInterfaceSupplementalStr1):
(WebCore::jsTestInterfaceSupplementalStr2):
(WebCore::jsTestInterfaceSupplementalStr3):
(WebCore::jsTestInterfaceSupplementalNode):
(WebCore::jsTestInterfaceConstructor):
- bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
(WebCore::jsTestJSBuiltinConstructorTestAttributeCustom):
(WebCore::jsTestJSBuiltinConstructorTestAttributeRWCustom):
(WebCore::jsTestJSBuiltinConstructorConstructor):
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::jsTestMediaQueryListListenerConstructor):
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
(WebCore::jsTestNamedConstructorConstructor):
- bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::jsTestNodeName):
(WebCore::jsTestNodeConstructor):
- bindings/scripts/test/JS/JSTestNondeterministic.cpp:
(WebCore::jsTestNondeterministicNondeterministicReadonlyAttr):
(WebCore::jsTestNondeterministicNondeterministicWriteableAttr):
(WebCore::jsTestNondeterministicNondeterministicExceptionAttr):
(WebCore::jsTestNondeterministicNondeterministicGetterExceptionAttr):
(WebCore::jsTestNondeterministicNondeterministicSetterExceptionAttr):
(WebCore::jsTestNondeterministicConstructor):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjReadOnlyLongAttr):
(WebCore::jsTestObjReadOnlyStringAttr):
(WebCore::jsTestObjReadOnlyTestObjAttr):
(WebCore::jsTestObjConstructorStaticReadOnlyLongAttr):
(WebCore::jsTestObjConstructorStaticStringAttr):
(WebCore::jsTestObjConstructorTestSubObj):
(WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
(WebCore::jsTestObjEnumAttr):
(WebCore::jsTestObjByteAttr):
(WebCore::jsTestObjOctetAttr):
(WebCore::jsTestObjShortAttr):
(WebCore::jsTestObjClampedShortAttr):
(WebCore::jsTestObjEnforceRangeShortAttr):
(WebCore::jsTestObjUnsignedShortAttr):
(WebCore::jsTestObjLongAttr):
(WebCore::jsTestObjLongLongAttr):
(WebCore::jsTestObjUnsignedLongLongAttr):
(WebCore::jsTestObjStringAttr):
(WebCore::jsTestObjTestObjAttr):
(WebCore::jsTestObjTestNullableObjAttr):
(WebCore::jsTestObjLenientTestObjAttr):
(WebCore::jsTestObjUnforgeableAttr):
(WebCore::jsTestObjStringAttrTreatingNullAsEmptyString):
(WebCore::jsTestObjXMLObjAttr):
(WebCore::jsTestObjCreate):
(WebCore::jsTestObjReflectedStringAttr):
(WebCore::jsTestObjReflectedIntegralAttr):
(WebCore::jsTestObjReflectedUnsignedIntegralAttr):
(WebCore::jsTestObjReflectedBooleanAttr):
(WebCore::jsTestObjReflectedURLAttr):
(WebCore::jsTestObjReflectedCustomIntegralAttr):
(WebCore::jsTestObjReflectedCustomBooleanAttr):
(WebCore::jsTestObjReflectedCustomURLAttr):
(WebCore::jsTestObjEnabledAtRuntimeAttribute):
(WebCore::jsTestObjTypedArrayAttr):
(WebCore::jsTestObjAttrWithGetterException):
(WebCore::jsTestObjAttrWithGetterExceptionWithMessage):
(WebCore::jsTestObjAttrWithSetterException):
(WebCore::jsTestObjAttrWithSetterExceptionWithMessage):
(WebCore::jsTestObjStringAttrWithGetterException):
(WebCore::jsTestObjStringAttrWithSetterException):
(WebCore::jsTestObjStrictTypeCheckingAttribute):
(WebCore::jsTestObjCustomAttr):
(WebCore::jsTestObjOnfoo):
(WebCore::jsTestObjOnwebkitfoo):
(WebCore::jsTestObjWithScriptStateAttribute):
(WebCore::jsTestObjWithCallWithAndSetterCallWithAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAttribute):
(WebCore::jsTestObjWithScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::jsTestObjConditionalAttr1):
(WebCore::jsTestObjConditionalAttr2):
(WebCore::jsTestObjConditionalAttr3):
(WebCore::jsTestObjConditionalAttr4Constructor):
(WebCore::jsTestObjConditionalAttr5Constructor):
(WebCore::jsTestObjConditionalAttr6Constructor):
(WebCore::jsTestObjCachedAttribute1):
(WebCore::jsTestObjCachedAttribute2):
(WebCore::jsTestObjAnyAttribute):
(WebCore::jsTestObjContentDocument):
(WebCore::jsTestObjMutablePoint):
(WebCore::jsTestObjImmutablePoint):
(WebCore::jsTestObjStrawberry):
(WebCore::jsTestObjStrictFloat):
(WebCore::jsTestObjDescription):
(WebCore::jsTestObjId):
(WebCore::jsTestObjHash):
(WebCore::jsTestObjReplaceableAttribute):
(WebCore::jsTestObjNullableDoubleAttribute):
(WebCore::jsTestObjNullableLongAttribute):
(WebCore::jsTestObjNullableBooleanAttribute):
(WebCore::jsTestObjNullableStringAttribute):
(WebCore::jsTestObjNullableLongSettableAttribute):
(WebCore::jsTestObjNullableStringSettableAttribute):
(WebCore::jsTestObjNullableStringValue):
(WebCore::jsTestObjAttribute):
(WebCore::jsTestObjAttributeWithReservedEnumType):
(WebCore::jsTestObjPutForwardsAttribute):
(WebCore::jsTestObjPutForwardsNullableAttribute):
(WebCore::jsTestObjConstructor):
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::jsTestOverloadedConstructorsConstructor):
- bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
(WebCore::jsTestOverrideBuiltinsConstructor):
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::jsTestSerializedScriptValueInterfaceValue):
(WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
(WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
(WebCore::jsTestSerializedScriptValueInterfacePorts):
(WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
(WebCore::jsTestSerializedScriptValueInterfaceConstructor):
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsUnsignedLongLongAttr):
(WebCore::jsTestTypedefsImmutableSerializedScriptValue):
(WebCore::jsTestTypedefsConstructorTestSubObj):
(WebCore::jsTestTypedefsAttrWithGetterException):
(WebCore::jsTestTypedefsAttrWithSetterException):
(WebCore::jsTestTypedefsStringAttrWithGetterException):
(WebCore::jsTestTypedefsStringAttrWithSetterException):
(WebCore::jsTestTypedefsConstructor):
- bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::jsattributeReadonly):
(WebCore::jsattributeConstructor):
- bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::jsreadonlyConstructor):
- bridge/runtime_array.cpp:
(JSC::RuntimeArray::lengthGetter):
- bridge/runtime_array.h:
- bridge/runtime_method.cpp:
(JSC::RuntimeMethod::lengthGetter):
- bridge/runtime_method.h:
- bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::fallbackObjectGetter):
(JSC::Bindings::RuntimeObject::fieldGetter):
(JSC::Bindings::RuntimeObject::methodGetter):
- bridge/runtime_object.h:
Source/WebKit2:
- WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::propertyGetter):
(WebKit::JSNPObject::methodGetter):
- WebProcess/Plugins/Netscape/JSNPObject.h:
- 5:59 PM Changeset in webkit [201702] by
-
- 13 edits in trunk
Deprecate remaining uses of Lookup getStatic*, use HasStaticPropertyTable instead.
https://bugs.webkit.org/show_bug.cgi?id=158178
Reviewed by Darin Adler.
As of bug #158059 most JSC static table property access no longer requires getOwnPropertySlot to be
overridden. Port remaining calls to the getStatic* functions in Lookup.h over to the new mechanism.
Source/JavaScriptCore:
Part 1: Switch JSGlobalObject & JSDOMWindow to use HasStaticPropertyTable.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::getOwnPropertySlot):
- Override is still required for symbol table, but regular property access is now via Base::getOwnPropertySlot.
- runtime/JSGlobalObject.h:
- add HasStaticPropertyTable to structureFlags.
Source/WebCore:
Part 1: Switch JSGlobalObject & JSDOMWindow to use HasStaticPropertyTable.
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot):
- getStaticPropertySlot -> Base::getOwnPropertySlot.
- bindings/js/JSPluginElementFunctions.h:
(WebCore::pluginElementCustomGetOwnPropertySlot):
- Switch call from getStaticValueSlot to Type::getOwnPropertySlot. For any element where Type::hasStaticPropertyTable is true the HasStaticPropertyTable structure flag will also be set, so Type::getOwnPropertySlot will do the same thing.
- bindings/scripts/CodeGeneratorJS.pm:
(PrototypeHasStaticPropertyTable):
- Was PrototypeOverridesGetOwnPropertySlot; prototypes now never need override getOwnPropertySlot so renaming accordingly.
(GenerateImplementation):
- Removed generation of getOwnPropertySlot body for DOMGlobalObjects.
(GeneratePrototypeDeclaration):
- For DOMGlobalObjects, set HasStaticPropertyTable instead of OverridesGetOwnPropertySlot & removed getOwnPropertySlot declaration.
(PrototypeOverridesGetOwnPropertySlot): Deleted.
Renamed to PrototypeHasStaticPropertyTable.
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
- bindings/scripts/test/JS/JSTestGlobalObject.h:
- Updating bindings test results.
LayoutTests:
Switch JSGlobalObject & WebCore DOM instance bindings to use HasStaticPropertyTable.
- fast/dom/unforgeable-attributes-expected.txt:
- Progression, similar to the getOwnPropertyDescriptor test below. Previously we were reporting an error with a message appropriate to a disallowed value->value redefinition. This is actually a disallowed accessor->value reconfiguration, now reporting the correct error message for this.
- http/tests/security/cross-origin-window-property-access-expected.txt:
- Newly reporting previously missing CORS error.
- js/dom/getOwnPropertyDescriptor-expected.txt:
- js/resources/getOwnPropertyDescriptor.js:
- This test was previously incorrect - was expecting window.window property to reflect as a value decriptor. This now reflect as an accesor descriptor. New behaviour is correct per spec & matches Firefox.
- 12:48 PM Changeset in webkit [201701] by
-
- 9 edits2 adds in trunk
Source/WebCore:
Find on page finds too many matches
https://bugs.webkit.org/show_bug.cgi?id=158395
rdar://problem/7440637
Reviewed by Dan Bernstein and Darin Adler.
There is a long standing bug where in some cases WebKit may find non-visible text matches when doing find on page.
For example searching patch review view in bugs.webkit.org returns twice as many matches as there actually are
on the page. This happens because the text content is replicated in an invisible subframe.
Fix by making TextIterator ignore content in non-visible subframes in findPlainText.
Test: editing/text-iterator/count-matches-in-frames.html
- editing/TextIterator.cpp:
(WebCore::nextInPreOrderCrossingShadowBoundaries):
Remove support for an uninteresting assertion.
(WebCore::fullyClipsContents):
Elements without renderer clip their content (except for display:contents).
Test the content rect instead of the size rect for emptiness.
(WebCore::ignoresContainerClip):
(WebCore::pushFullyClippedState):
(WebCore::setUpFullyClippedStack):
(WebCore::isClippedByFrameAncestor):
Test if the frame owner element is clipped in any of the parent frames.
(WebCore::TextIterator::TextIterator):
If the frame is clipped by its ancestors the iterator is initialized to end state.
Clipped frame never renders anything so there is no need to maintain clip stack and traverse.
(WebCore::findPlainText):
Use TextIteratorClipsToFrameAncestors behavior. There might be other places where
this behavior should be used (or perhaps it should be used always?) but limit this to
text search for now.
(WebCore::depthCrossingShadowBoundaries): Deleted.
- editing/TextIterator.h:
- editing/TextIteratorBehavior.h:
Add TextIteratorClipsToFrameAncestors behavior.
- testing/Internals.cpp:
(WebCore::Internals::countMatchesForText):
(WebCore::Internals::countFindMatches):
(WebCore::Internals::numberOfLiveNodes):
- testing/Internals.h:
- testing/Internals.idl:
Testing support
LayoutTests:
TextIterator should ignore non-visible frames in findPlainText
https://bugs.webkit.org/show_bug.cgi?id=158395
Reviewed by Dan Bernstein and Darin Adler.
- editing/text-iterator/count-matches-in-frames-expected.txt: Added.
- editing/text-iterator/count-matches-in-frames.html: Added.
- imported/blink/fast/shapes/shape-outside-floats/shape-outside-negative-height-crash-width.html: Non-rendered whitespace change.
- 12:38 PM Changeset in webkit [201700] by
-
- 2 edits in trunk/Source/WebCore
Do not construct temporary copy of String from AtomicString.
https://bugs.webkit.org/show_bug.cgi?id=158400
Reviewed by Darin Adler.
No new tests needed.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::ariaReadOnlyValue):
- 9:35 AM Changeset in webkit [201699] by
-
- 3 edits in trunk/Source/WebKit/mac
Attempt to fix plug-in hangs by adding back empty slots for the removed messages.
- Plugins/Hosted/WebKitPluginClient.defs:
- Plugins/Hosted/WebKitPluginHost.defs:
- 8:23 AM Changeset in webkit [201698] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION (r201686): Web Inspector: Fix typo causing an internal error
https://bugs.webkit.org/show_bug.cgi?id=158392
<rdar://problem/26640467>
Reviewed by Joseph Pecoraro.
- UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js:
Fixed typo.
- 8:20 AM Changeset in webkit [201697] by
-
- 2 edits in trunk/Source/WebCore
Give RuleFeatures::classesMatchingAncestors some inline capacity.
<https://webkit.org/b/158356>
Reviewed by Darin Adler.
Avoid 362'000 heap allocations on PLUM (1.3% of all transient fastMallocs) by giving
RuleFeatures::classesMatchingAncestors some inline capacity (32).
This class is only ever allocated on the stack anyway.
- css/RuleFeature.h:
- 7:54 AM Changeset in webkit [201696] by
-
- 9 edits in trunk/Source/WebCore
Unreviewed, rolling out r201693.
Can't fix right now
Reverted changeset:
"Modern IDB: Crash seen in IDBConnectionProxy::putOrAdd on
GuardMalloc bot"
https://bugs.webkit.org/show_bug.cgi?id=158124
http://trac.webkit.org/changeset/201693
- 7:53 AM Changeset in webkit [201695] by
-
- 7 edits in trunk/Source/WebKit2
Unreviewed, rolling out r201694.
201693
Reverted changeset:
"Fix the build after r201693."
https://bugs.webkit.org/show_bug.cgi?id=158394
http://trac.webkit.org/changeset/201694
- 7:45 AM Changeset in webkit [201694] by
-
- 7 edits in trunk/Source/WebKit2
Fix the build after r201693.
https://bugs.webkit.org/show_bug.cgi?id=158394
Reviewed by NOBODY (Build fix).
r201693 landed without the Source/WebKit2 changes, and I didn't have EWS/CQ available to check myself. *sigh*
- NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::writeBlobsToTemporaryFiles):
- NetworkProcess/FileAPI/NetworkBlobRegistry.h:
- WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles):
- WebProcess/FileAPI/BlobRegistryProxy.h:
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles):
- WebProcess/Network/NetworkProcessConnection.h:
Jun 4, 2016:
- 8:46 PM Changeset in webkit [201693] by
-
- 9 edits in trunk/Source/WebCore
Modern IDB: Crash seen in IDBConnectionProxy::putOrAdd on GuardMalloc bot
https://bugs.webkit.org/show_bug.cgi?id=158124
Reviewed by Darin Adler.
No new tests (Covered by existing test configurations).
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::putOrAddOnServer):
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::putOrAdd):
- Modules/indexeddb/client/IDBConnectionProxy.h:
(WebCore::IDBClient::IDBConnectionProxy::callConnectionOnMainThread):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):
- bindings/js/SerializedScriptValue.h:
- platform/network/BlobRegistry.h:
- platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::writeBlobsToTemporaryFiles):
- platform/network/BlobRegistryImpl.h:
- 5:59 PM Changeset in webkit [201692] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: add a keyboard shortcut to open the new tab tab
https://bugs.webkit.org/show_bug.cgi?id=158365
<rdar://problem/26631897>
Reviewed by Timothy Hatcher.
Make Cmd-t show the new tab tab if it's not already open and
there is at least one tab type that's not currently in the tab bar.
- UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector._updateNewTabButtonState):
(WebInspector.showNewTabTab):
(WebInspector.isNewTabWithTypeAllowed):
Clean up the code that decides whether we can show the new tab tab.
It is now a special case inside WebInspector.isNewTabWithTypeAllowed.
- UserInterface/Views/NewTabContentView.js:
(WebInspector.NewTabContentView.prototype._updateShownTabs):
Use Array.from.
- 5:36 PM Changeset in webkit [201691] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r201474): Should set overflow: hidden on -webkit-media-controls when placeholder is showing
https://bugs.webkit.org/show_bug.cgi?id=158377
Reviewed by Darin Adler.
In r201474, we defer removing the hidden class from inlinePlaybackPlaceholder until
showInlinePlaybackPlaceholderWhenSafe(). We also need to move the code that adds the
placeholder-showing class to -webkit-media-controls to that method.
- Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.showInlinePlaybackPlaceholderWhenSafe):
Add the "placeholder-showing" class to -webkit-media-controls when we show the placeholder.
(Controller.prototype.handlePresentationModeChange):
Remove the "placeholder-showing" class from -webkit-media-controls when we hide the
placeholder. Remove the old code that adds and removes that class.
- 4:02 PM Changeset in webkit [201690] by
-
- 3 edits in trunk/Source/WebCore
leaks seen in fast/css/variables tests
https://bugs.webkit.org/show_bug.cgi?id=150728
Reviewed by Anders Carlsson.
Fixes leaks seen running fast/css/variables tests with leak checking turned on.
- css/CSSPrimitiveValue.cpp:
(WebCore::isStringType): Added. For debugging purposes so we catch cases where we
are not treating strings consistently between construction and destruction.
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Assert isStringType returns true.
(WebCore::CSSPrimitiveValue::cleanup): Added CSS_DIMENSION and CSS_PARSER_IDENTIFIER
to the list of types that have to decrement the reference count of the string we own.
Both types are passed to the string constructor above.
- css/CSSValueList.cpp:
(WebCore::CSSValueList::buildParserValueListSubstitutingVariables): Restructured the
code so we destroy any CSSParserValue that we don't use. This is needed because of the
peculiar requirements of CSSParserValue: it has a be a struct without a destructor so
it can be used in the CSS grammar, so we have to destroy it explicitly. Ideally we would
minimize any use of it outside the CSSParser itself, but as long as we are using it, we
need to do this explicit destruction.
- 3:48 PM Changeset in webkit [201689] by
-
- 15 edits4 deletes in trunk/Source/WebKit
Remove NPSPI that is no longer used
https://bugs.webkit.org/show_bug.cgi?id=158384
Reviewed by Sam Weinig.
Source/WebKit:
- WebKit.xcodeproj/project.pbxproj:
Source/WebKit/mac:
- Configurations/WebKitLegacy.xcconfig:
- Plugins/Hosted/NetscapePluginHostProxy.mm:
(WKPCCheckIfAllowedToLoadURL): Deleted.
(WKPCCancelCheckIfAllowedToLoadURL): Deleted.
(WKPCResolveURL): Deleted.
- Plugins/Hosted/NetscapePluginInstanceProxy.h:
- Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::NetscapePluginInstanceProxy): Deleted.
(WebKit::NetscapePluginInstanceProxy::checkIfAllowedToLoadURL): Deleted.
(WebKit::NetscapePluginInstanceProxy::cancelCheckIfAllowedToLoadURL): Deleted.
(WebKit::NetscapePluginInstanceProxy::checkIfAllowedToLoadURLResult): Deleted.
(WebKit::NetscapePluginInstanceProxy::resolveURL): Deleted.
- Plugins/Hosted/WebHostedNetscapePluginView.h:
- Plugins/Hosted/WebHostedNetscapePluginView.mm:
(-[WebHostedNetscapePluginView _webPluginContainerCancelCheckIfAllowedToLoadRequest:]): Deleted.
(-[WebHostedNetscapePluginView _containerCheckResult:contextInfo:]): Deleted.
- Plugins/Hosted/WebKitPluginClient.defs:
- Plugins/WebBaseNetscapePluginView.h:
- Plugins/WebBaseNetscapePluginView.mm:
(-[WebBaseNetscapePluginView resolvedURLStringForURL:target:]): Deleted.
- Plugins/WebNetscapeContainerCheckContextInfo.h: Removed.
- Plugins/WebNetscapeContainerCheckContextInfo.mm: Removed.
(-[WebNetscapeContainerCheckContextInfo initWithCheckRequestID:callbackFunc:context:]): Deleted.
(-[WebNetscapeContainerCheckContextInfo checkRequestID]): Deleted.
(-[WebNetscapeContainerCheckContextInfo callback]): Deleted.
(-[WebNetscapeContainerCheckContextInfo context]): Deleted.
- Plugins/WebNetscapeContainerCheckPrivate.h: Removed.
- Plugins/WebNetscapeContainerCheckPrivate.mm: Removed.
(browserContainerCheckFuncs): Deleted.
- Plugins/WebNetscapePluginView.h:
- Plugins/WebNetscapePluginView.mm:
(-[WebNetscapePluginView checkIfAllowedToLoadURL:frame:callbackFunc:context:]): Deleted.
(-[WebNetscapePluginView _containerCheckResult:contextInfo:]): Deleted.
(-[WebNetscapePluginView cancelCheckIfAllowedToLoadURL:]): Deleted.
(-[WebNetscapePluginView _webPluginContainerCancelCheckIfAllowedToLoadRequest:]): Deleted.
(-[WebNetscapePluginView fini]): Deleted.
(-[WebNetscapePluginView getVariable:value:]): Deleted.
(-[WebNetscapePluginView resolveURL:forTarget:]): Deleted.
- Plugins/npapi.mm:
(WKN_CheckIfAllowedToLoadURL): Deleted.
(WKN_CancelCheckIfAllowedToLoadURL): Deleted.
(WKN_ResolveURL): Deleted.
- 3:34 PM Changeset in webkit [201688] by
-
- 3 edits in trunk/Source/WebKit/mac
Temporary build fix. (This function is going away).
- Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::checkIfAllowedToLoadURLResult): Deleted.
- Plugins/Hosted/WebKitPluginHost.defs:
- 2:28 PM Changeset in webkit [201687] by
-
- 2 edits in trunk/Source/WebCore
32-bit build fix
https://bugs.webkit.org/show_bug.cgi?id=158383
rdar://problem/26628125
Reviewed by Dan Bernstein.
Synthesize the webPlaybackSessionInterfaceMac property.
- platform/mac/WebPlaybackControlsManager.mm:
- 2:09 PM Changeset in webkit [201686] by
-
- 8 edits in trunk/Source/WebInspectorUI
Web Inspector: discontinuous recordings should have discontinuities in the timeline memory graph
https://bugs.webkit.org/show_bug.cgi?id=158052
<rdar://problem/26516695>
Reviewed by Joseph Pecoraro.
Add gaps to the overview and category line charts where discontinuities
exist in the timeline recording.
- UserInterface/Models/Timeline.js:
(WebInspector.Timeline.prototype.recordsInTimeRange):
Replaces_visibleRecordsmethods found in various views.
- UserInterface/Models/TimelineRecording.js:
(WebInspector.TimelineRecording.prototype.reset):
(WebInspector.TimelineRecording.prototype.addDiscontinuity):
(WebInspector.TimelineRecording.prototype.discontinuitiesInTimeRange):
Allow discontinuities to be added to the recording, and have a means to
look up gaps within a time range.
- UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js:
(WebInspector.HeapAllocationsTimelineOverviewGraph.prototype._visibleRecords): Deleted.
Replaced by Timeline helper method.
- UserInterface/Views/MemoryTimelineOverviewGraph.js:
(WebInspector.MemoryTimelineOverviewGraph.prototype.layout.insertDiscontinuity):
(WebInspector.MemoryTimelineOverviewGraph.prototype.layout):
Insert zero-points into the chart at discontinuity boundaries to create
gaps. Data points for records immediately before or after a gap are extended
to the edge of the discontinuity.
(WebInspector.MemoryTimelineOverviewGraph.prototype._visibleRecords): Deleted.
Replaced by Timeline helper method.
- UserInterface/Views/MemoryTimelineView.js:
(WebInspector.MemoryTimelineView.prototype.layout):
Insert zero-points into each category chart at discontinuity boundaries
to create gaps.
Insert zero-points into the chart to create gaps.
(WebInspector.MemoryTimelineView.prototype._visibleRecords): Deleted.
Replaced by Timeline helper method.
- UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype.discontinuitiesInTimeRange):
Forward to the TimelineRecording, which isn't exposed to clients.
- UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
(WebInspector.TimelineRecordingContentView.prototype._capturingStopped):
(WebInspector.TimelineRecordingContentView.prototype._recordingReset):
Track discontinuities (recording stop followed by a start) and add them
to the current recording.
- 1:59 PM Changeset in webkit [201685] by
-
- 3 edits2 copies4 adds in trunk/LayoutTests
Modern IDB: Add -private.html variants of crypto/subtle IndexedDB tests.
https://bugs.webkit.org/show_bug.cgi?id=153323
Reviewed by Darin Adler.
- crypto/subtle/resources/rsa-indexeddb-non-exportable.js: Copied from LayoutTests/crypto/subtle/rsa-indexeddb-non-exportable.html.
- crypto/subtle/resources/rsa-indexeddb.js: Copied from LayoutTests/crypto/subtle/rsa-indexeddb.html.
- crypto/subtle/rsa-indexeddb-non-exportable-private-expected.txt: Added.
- crypto/subtle/rsa-indexeddb-non-exportable-private.html: Added.
- crypto/subtle/rsa-indexeddb-non-exportable.html:
- crypto/subtle/rsa-indexeddb-private-expected.txt: Added.
- crypto/subtle/rsa-indexeddb-private.html: Added.
- crypto/subtle/rsa-indexeddb.html:
- 1:53 PM Changeset in webkit [201684] by
-
- 4 edits2 deletes in trunk/Source/WTF
Get rid of WorkItemWin
https://bugs.webkit.org/show_bug.cgi?id=158381
Reviewed by Sam Weinig.
- wtf/PlatformWin.cmake:
- wtf/WorkQueue.h:
- wtf/win/WorkItemWin.cpp: Removed.
(WTF::WorkItemWin::WorkItemWin): Deleted.
(WTF::WorkItemWin::create): Deleted.
(WTF::WorkItemWin::~WorkItemWin): Deleted.
- wtf/win/WorkItemWin.h: Removed.
(WTF::WorkItemWin::function): Deleted.
(WTF::WorkItemWin::queue): Deleted.
- wtf/win/WorkQueueWin.cpp:
(WTF::WorkQueue::performWorkOnRegisteredWorkThread):
(WTF::WorkQueue::dispatch):
- 12:26 PM Changeset in webkit [201683] by
-
- 5 edits in trunk/Source/WTF
Get rid of HANDLE registration code in WorkQueueWin
https://bugs.webkit.org/show_bug.cgi?id=158375
Reviewed by Darin Adler.
- wtf/WorkQueue.h:
- wtf/win/WorkItemWin.cpp:
(WTF::HandleWorkItem::HandleWorkItem): Deleted.
(WTF::HandleWorkItem::createByAdoptingHandle): Deleted.
(WTF::HandleWorkItem::~HandleWorkItem): Deleted.
- wtf/win/WorkItemWin.h:
(WTF::HandleWorkItem::setWaitHandle): Deleted.
(WTF::HandleWorkItem::waitHandle): Deleted.
- wtf/win/WorkQueueWin.cpp:
(WTF::WorkQueue::handleCallback): Deleted.
(WTF::WorkQueue::platformInvalidate): Deleted.
(WTF::WorkQueue::unregisterWaitAndDestroyItemSoon): Deleted.
(WTF::WorkQueue::unregisterWaitAndDestroyItemCallback): Deleted.
- 12:11 PM Changeset in webkit [201682] by
-
- 5 edits in trunk
REGRESSION (r201263): Some tests have become flaky timeouts.
https://bugs.webkit.org/show_bug.cgi?id=157990
Reviewed by Darin Adler.
Tools:
- WebKitTestRunner/TestInvocation.cpp: (WTR::TestInvocation::invoke):
It is somewhat legitimate for WebContent to not respond to messages after the test
is done; it can be e.g. re-doing a costly repaint. So, we should restart is silently,
without making the current test fail.
LayoutTests:
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 12:10 PM Changeset in webkit [201681] by
-
- 3 edits in trunk/Source/WebCore
Avoid redundant isUndefined() check for parameters that are both optional and nullable in overloads
https://bugs.webkit.org/show_bug.cgi?id=158380
Reviewed by Brady Eidson.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheckExpression):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter):
- 11:58 AM Changeset in webkit [201680] by
-
- 3 edits6 adds in trunk
Add better basic isNaN test coverage
https://bugs.webkit.org/show_bug.cgi?id=158379
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-04
Reviewed by Benjamin Poulain.
- js/Number-isNaN-expected.txt: Added.
- js/Number-isNaN.html: Added.
- js/global-isNaN-expected.txt: Added.
- js/global-isNaN.html: Added.
- js/script-tests/Number-isNaN.js: Added.
(objectWithNumberValueOf.valueOf):
(objectWithNaNValueOf.valueOf):
(objectRecordConversionCalls.toString):
(objectRecordConversionCalls.valueOf):
- js/script-tests/global-isNaN.js: Added.
(objectConvertToString.toString):
(objectRecordToStringCall.toString):
(objectThrowOnToString.toString):
(objectWithValueOf.valueOf):
(objectThrowOnValueOf.valueOf):
(objectThrowOnValueOf.toString):
(objectRecordValueOfCall.valueOf):
(objectRecordConversionCalls.toString):
(objectRecordConversionCalls.valueOf):
- js/script-tests/math-clz32.js:
- 12:20 AM Changeset in webkit [201679] by
-
- 22 edits64 adds in trunk
CSP: Content Security Policy directive, upgrade-insecure-requests (UIR)
https://bugs.webkit.org/show_bug.cgi?id=143653
<rdar://problem/23032067>
Reviewed by Andy Estes.
Source/WebCore:
Modify our loading logic so that we recognize and upgrade insecure requests to secure
requests if the Content Security Policy directive 'upgrade-insecure-requests' is
present.
Add a static helper function to ContentSecurityPolicy to upgrade insecure URLs so
that we don't have to sprinkle the same code all over the loader system.
Tests: http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure.php
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-cors.https.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade.https.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-auxiliary.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-nested.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-subresource.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-top-level.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-open-window-upgrades.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-image-in-main-frame.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-simple-ws.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrades-mixed-content.html
http/tests/ssl/iframe-upgrade.https.html
http/tests/ssl/upgrade-origin-usage.html
http/tests/websocket/tests/hybi/upgrade-simple-ws.html
- Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect): Upgrade insecure requests if the CSP
indicates we should.
- dom/Document.cpp:
(WebCore::Document::initSecurityContext): Populate new document CSP with sets of upgrade host and port combinations.
- dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestScript): Upgrade insecure requests if
the CSP indicates we should.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::loadResource): Ditto.
- loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::begin): Ditto.
- loader/FormSubmission.cpp:
(WebCore::FormSubmission::create): Ditto.
(WebCore::FormSubmission::populateFrameLoadRequest): Add "Upgrade-Insecure-Requests"
header to frame load requests.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::addExtraFieldsToMainResourceRequest): Add the
'Update-Insecure-Requests' header field if necessary.
(WebCore::FrameLoader::addHTTPUpgradeInsecureRequestsIfNeeded): Added helper function.
(WebCore::FrameLoader::loadPostRequest): Upgrade insecure requests if the CSP
indicates we should.
(WebCore::FrameLoader::loadResourceSynchronously): Ditto.
(WebCore::FrameLoader::loadDifferentDocumentItem): If loading a form, add the
'Update-Insecure-Requests' header field if necessary.
(WebCore::createWindow): Upgrade insecure requests if the CSP
indicates we should.
- loader/FrameLoader.h:
- loader/PingLoader.cpp:
(WebCore::PingLoader::loadImage): Upgrade insecure requests if the CSP
indicates we should.
(WebCore::PingLoader::sendPing): Ditto.
(WebCore::PingLoader::sendViolationReport): Ditto.
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::willSendRequestInternal): Ditto.
- loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::requestFrame): Ditto.
(WebCore::SubframeLoader::requestObject): Ditto.
- loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::shouldLoadResourceFromApplicationCache): Ditto.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestImage): Ditto.
(WebCore::CachedResourceLoader::requestResource): Ditto.
- page/DOMWindow.cpp:
(WebCore::DOMWindow::createWindow): Add the 'Update-Insecure-Requests' header
field if necessary.
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::copyStateFrom): Populate upgraded resource set
from other context.
(WebCore::ContentSecurityPolicy::upgradeInsecureRequestIfNeeded): Added helper function
to upgrade requests when the upgrade-insecure-requests CSP policy is present, or if
the host and port combination have previously been upgraded.
(WebCore::ContentSecurityPolicy::upgradeInsecureNavigationRequestIfNeeded): Added
helper function to upgrade requests that have been previously upgraded. Cross-site
navigations only get upgraded when they have been previously upgraded.
(WebCore::ContentSecurityPolicy::addInsecureNavigationRequestsToUpgrade): Added.
(WebCore::ContentSecurityPolicy::populateInsecureNavigationRequestsToUpgradeFromOther): Added.
- page/csp/ContentSecurityPolicy.h:
(WebCore::ContentSecurityPolicy::setUpgradeInsecureRequests): Added.
(WebCore::ContentSecurityPolicy::upgradeInsecureRequests): Added.
- page/csp/ContentSecurityPolicyDirectiveList.cpp:
(WebCore::ContentSecurityPolicyDirectiveList::ContentSecurityPolicyDirectiveList): Use
more C++11 initializations.
(WebCore::ContentSecurityPolicyDirectiveList::setUpgradeInsecureRequests): Added.
(WebCore::ContentSecurityPolicyDirectiveList::addDirective): Teach this function to
recognize the new directive.
- page/csp/ContentSecurityPolicyDirectiveList.h:
- page/csp/ContentSecurityPolicyDirectiveNames.cpp:
- page/csp/ContentSecurityPolicyDirectiveNames.h:
- platform/network/HTTPHeaderNames.in: Add new 'Upgrade-Insecure-Requests' header field.
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::open): Upgrade insecure requests if the CSP if needed.
LayoutTests:
Some of these tests are based on a set of Blink patches by Mike West <mkwst@chromium.org>.
<https://src.chromium.org/viewvc/blink?revision=192607&view=revision>,
<https://codereview.chromium.org/1178093002>, <https://codereview.chromium.org/1964303003>
The rest of them are based on our own mixedContent tests, revised for upgraded requests.
Note that WebSockets are not part of this testing at present due to https://bugs.webkit.org/show_bug.cgi?id=157884.
- http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure.php: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-cors.https-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-cors.https.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade.https-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade.https.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-auxiliary-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-auxiliary.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-nested-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-nested.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-subresource-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-subresource.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-top-level-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-top-level.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-open-window-upgrades-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-open-window-upgrades.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/basic-upgrade-cors.https.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/check-https-header.pl: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/echo-https-header.pl: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-insecure-audio-video.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-insecure-css.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-insecure-image.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-redirect-http-to-https-script.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-redirect-https-to-http-script.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/insecure-xhr-in-main-frame-window.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/mixed-content-with-upgrade.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/post-https-header.pl: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-image-in-main-frame-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-image-in-main-frame.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe.html: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrades-mixed-content-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrades-mixed-content.html: Added.
- http/tests/security/resources/post-origin-to-parent.html: Added.
- http/tests/ssl/iframe-upgrade.https-expected.txt: Added.
- http/tests/ssl/iframe-upgrade.https.html: Added.
- http/tests/ssl/upgrade-origin-usage-expected.txt: Added.
- http/tests/ssl/upgrade-origin-usage.html: Added.
- http/tests/ssl/resources/origin-usage-iframe-1.html: Added.
- http/tests/ssl/resources/origin-usage-iframe-1.manifest: Added.
- http/tests/ssl/resources/origin-usage-iframe-2.html: Added.
- http/tests/ssl/resources/origin-usage-iframe-2.manifest: Added.
- http/tests/websocket/tests/hybi/upgrade-simple-ws-expected.txt: Added.
- http/tests/websocket/tests/hybi/upgrade-simple-ws.html: Added.
- TestExpectations: Skip http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-simple-ws.html since the
WebSocket server does not currently support wss sockets.
Jun 3, 2016:
- 8:28 PM Changeset in webkit [201678] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
Eager FTL failure for strict comparison of NaN with number check
https://bugs.webkit.org/show_bug.cgi?id=158368
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-03
Reviewed by Darin Adler.
DoupleRep with a RealNumberUse starts by handling double
then falls back to Int32 if the unboxed double is NaN.
Before handling integers, the code is checking if the input
is indeed an int32. The problem was that this check failed
to account for NaN as an original input of the DoubleRep.
The call to isNotInt32() filter the doubles checks because
that was handled by the previous block.
The problem is the previous block handles any double except NaN.
If the original input was NaN, the masking by "~SpecFullDouble"
filter that possibility and isNotInt32() fails to test that case.
This patch fixes the issue by changing the filter to SpecDoubleReal.
The type SpecDoubleReal does not include the NaN types.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileDoubleRep):
- tests/stress/double-rep-real-number-use-on-nan.js: Added.
To ensure the isNotInt32() does not test anything, we want
proven numbers as input. The (+value) are there to enforce
a ToNumber() which in turn give us a proven Number type.
- 7:04 PM Changeset in webkit [201677] by
-
- 5 edits2 adds in trunk
Bopomofo ruby in Dictionary.app is written horizontally (when it should be written vertically)
https://bugs.webkit.org/show_bug.cgi?id=158245
<rdar://problem/25675318>
Reviewed by Darin Adler.
Source/WebCore:
With orthogonal flows, the inner element gets a logical width that is computed from two values:
- The containing block's available logical height
- The FrameView's visibleHeight
In Dictionary.app, the FrameView's height changes, but this element doesn't get relaid out.
This is because of our optimization where normal-flow elements don't get relaid out if their
parent's width doesn't change (which is the case here).
Therefore, this orthogonal writing mode element should be relaid out when the FrameView changes
size. Luckily, we already have machinery for doing this: percentage heights. In quirks mode, a
div with a percentage height may walk arbitrarily far up the DOM tree in order to determine which
element the percentage should be resolved against. Therefore, we have a map of percentage-sizing-
ancestors to percentage-sizing-descendants which speeds up this search. If a percentage-sizing-
ancestor gets relaid out, all the relevant percentage-sizing-descendants get relaid out too.
Therefore, we can simply mark the FrameView as a percentage-sizing-ancestor and the orthogonal
flow element as a percentage-sizing-descendant. The lifetime of this relationship is already
managed correctly - it gets reset when style changes and when the renderer is destroyed, and
is created during layout.
Unfortunately, this same treatment should also be done to the element which dictates the
containing block's logical height (which caused https://bugs.webkit.org/show_bug.cgi?id=158286).
Implementing this would require giving RenderBox::availableLogicalHeight() a second result
of the necessary element which dictates the return. In an effort to keep this patch small and
focused, I'll do this secondary (much larger) work in a patch on that bug. This patch,
therefore, is kept small and focused.
Test: fast/text/orthogonal-writing-mode-containing-block-frameView-resize-relayout.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
LayoutTests:
Rebaselined fast/table/border-collapsing/004-vertical.html to show a progression.
- fast/text/orthogonal-writing-mode-containing-block-frameView-resize-relayout-expected.html: Added.
- fast/text/orthogonal-writing-mode-containing-block-frameView-resize-relayout.html: Added.
- platform/mac/fast/table/border-collapsing/004-vertical-expected.png: Rebased
- platform/mac/fast/table/border-collapsing/004-vertical-expected.txt: Rebased
- 7:00 PM Changeset in webkit [201676] by
-
- 11 edits4 adds in trunk
Text not visible while external font downloading
https://bugs.webkit.org/show_bug.cgi?id=25207
<rdar://problem/15167413>
Reviewed by Dean Jackson.
Source/WebCore:
I already laid the groundwork for this when implementing the CSS Font Loading API.
We only have to create a timer and correctly respond to it timing out (by setting
state).
This patch also adds a new internal setting which puts us in a mode where font
loads never complete and the timeout occurs immediately. This is so we can test
the fallback behavior.
Test: fast/text/web-font-load-fallback-during-loading.html
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::fontLoadEventOccurred):
(WebCore::CSSFontFace::timeoutFired):
(WebCore::CSSFontFace::setStatus):
(WebCore::CSSFontFace::fontLoaded):
(WebCore::CSSFontFace::webFontsShouldAlwaysFallBack):
(WebCore::CSSFontFace::pump):
(WebCore::CSSFontFace::font):
- css/CSSFontFace.h:
- css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::fontLoaded):
- css/FontFace.cpp:
(WebCore::FontFace::fontStateChanged):
- page/Settings.cpp:
(WebCore::Settings::Settings):
(WebCore::Settings::setWebFontsAlwaysFallBack):
- page/Settings.h:
(WebCore::Settings::webFontsAlwaysFallBack):
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setWebFontsAlwaysFallBack):
- testing/InternalSettings.h:
- testing/InternalSettings.idl:
LayoutTests:
- fast/text/web-font-load-fallback-during-loading-no-multiple-expected.txt: Added.
- fast/text/web-font-load-fallback-during-loading-no-multiple.html: Added.
- fast/text/web-font-load-fallback-during-loading-expected.html: Added.
- fast/text/web-font-load-fallback-during-loading.html: Added.
- 6:31 PM Changeset in webkit [201675] by
-
- 12 edits in trunk/Source
Modernize a few more lambda captures
https://bugs.webkit.org/show_bug.cgi?id=158370
Reviewed by Brady Eidson.
Source/WebCore:
- workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::postMessage):
- workers/DedicatedWorkerGlobalScope.h:
- workers/Worker.cpp:
(WebCore::Worker::postMessage):
- workers/Worker.h:
- workers/WorkerEventQueue.cpp:
(WebCore::WorkerEventQueue::enqueueEvent):
- workers/WorkerGlobalScopeProxy.h:
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
(WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
- workers/WorkerMessagingProxy.h:
- workers/WorkerObjectProxy.h:
Source/WebKit:
- Storage/StorageTracker.cpp:
(WebCore::StorageTracker::deleteOrigin):
- 6:08 PM Changeset in webkit [201674] by
-
- 5 edits3 adds in trunk
JSON.stringify replacer function calls with numeric array indices
https://bugs.webkit.org/show_bug.cgi?id=158262
Source/JavaScriptCore:
rdar://problem/26613876
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-03
Reviewed by Saam Barati.
The spec of SerializeJSONArray is pretty clear that the index
should be transformed into a string before calling SerializeJSONProperty.
See http://www.ecma-international.org/ecma-262/6.0/#sec-serializejsonarray
- runtime/JSONObject.cpp:
(JSC::PropertyNameForFunctionCall::value):
LayoutTests:
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-03
Reviewed by Saam Barati.
- js/JSON-stringify-exposes-array-indices-as-strings-expected.txt: Added.
- js/JSON-stringify-exposes-array-indices-as-strings.html: Added.
- js/script-tests/JSON-stringify-exposes-array-indices-as-strings.js: Added.
(replacer):
(testObject.toJSON):
(toJSONArrayHelper):
- js/resources/JSON-stringify.js:
- js/dom/JSON-stringify-expected.txt:
Update the test results for the native implementation.
- 5:56 PM Changeset in webkit [201673] by
-
- 55 edits1 move in trunk/Source
Unreviewed, rolling out r201663.
https://bugs.webkit.org/show_bug.cgi?id=158374
Broke the Windows build (Requested by andersca on #webkit).
Reverted changeset:
"Rename NoncopyableFunction to Function"
https://bugs.webkit.org/show_bug.cgi?id=158354
http://trac.webkit.org/changeset/201663
- 5:34 PM Changeset in webkit [201672] by
-
- 3 edits in trunk/Source/JavaScriptCore
Proxy.ownKeys should no longer throw an exception when duplicate keys are returned and the target is non-extensible
https://bugs.webkit.org/show_bug.cgi?id=158350
<rdar://problem/26626211>
Reviewed by Michael Saboff.
The spec was recently changes in Proxy OwnPropertyKeys
to allow for duplicate property names under certain circumstances.
This patch fixes our implementation to match the spec.
See: https://github.com/tc39/ecma262/pull/594
- runtime/ProxyObject.cpp:
(JSC::ProxyObject::performGetOwnPropertyNames):
- tests/stress/proxy-own-keys.js:
(i.catch):
(ownKeys):
(assert):
- 5:04 PM Changeset in webkit [201671] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: add a keyboard shortcut to close the current tab bar item
https://bugs.webkit.org/show_bug.cgi?id=158363
<rdar://problem/22677254>
Reviewed by Timothy Hatcher.
Make Cmd-w close the current tab. This matches Safari's keyboard shortcut.
- UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
Don't do anything if the New Tab tab is the only tab bar item besides the
pinned "new tab" button.
- 4:51 PM Changeset in webkit [201670] by
-
- 2 edits in trunk/Source/JavaScriptCore
Some shadow chicken code is wrong when run on a big endian CPU
https://bugs.webkit.org/show_bug.cgi?id=158361
Reviewed by Mark Lam.
This code was wrong on a big endian CPU, and it was
also an anti-pattern in the file. The code was harmless
on a little endian CPU, but it's better to remove it.
- llint/LowLevelInterpreter64.asm:
- 4:27 PM Changeset in webkit [201669] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: setter for debugging flag InspectorBackend.dumpInspectorTimeStats does not work
https://bugs.webkit.org/show_bug.cgi?id=158366
Reviewed by Timothy Hatcher.
- UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass.prototype.set dumpInspectorTimeStats):
Actually update the backing member when the setter is called.
- 4:06 PM Changeset in webkit [201668] by
-
- 26 edits1 add in trunk/Source/JavaScriptCore
Add argument_count bytecode for concat
https://bugs.webkit.org/show_bug.cgi?id=158358
Reviewed by Geoffrey Garen.
This patch adds a new argument count bytecode. Normally, we would
just make sure that the argument.length bytecode was fast enough
that we shouldn't need such an bytecode. However, for the case of
Array.prototype.concat the overhead of the arguments object
allocation in the LLInt was too high and caused regressions.
- bytecode/BytecodeIntrinsicRegistry.h:
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
- bytecompiler/NodesCodegen.cpp:
(JSC::BytecodeIntrinsicNode::emit_intrinsic_argumentCount):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::getArgumentCount):
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
- jit/JIT.h:
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_argument_count):
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- tests/stress/argument-count-bytecode.js: Added.
(inlineCount):
(inlineCount1):
(inlineCount2):
(inlineCountVarArgs):
(assert):
- 4:01 PM Changeset in webkit [201667] by
-
- 7 edits2 adds in trunk
Crash under VisibleSelection::firstRange()
https://bugs.webkit.org/show_bug.cgi?id=158241
Reviewed by Enrica Casucci.
Source/WebCore:
The crash was commonly caused by parentAnchoredEquivalent returning null when the anchored node was a shadow root.
Fixed it by returning a shadow root in parentAnchoredEquivalent.
Also guard against other kinds of crashes by adding a null check in VisibleSelection::firstRange() since we've seen
a crash in the same code path outside of a shadow tree.
This patch also fixes other Position methods to stop using nonShadowBoundaryParentNode in place of parentNode as
that would cause a similar crash and/or a bug elsewhere.
Test: fast/shadow-dom/selection-at-shadow-root-crash.html
- accessibility/AXObjectCache.cpp:
(AXObjectCache::startCharacterOffsetOfParagraph): Fixed a bug uncovered by the assertion fix in Position::Position.
This code was sometimes creating a position inside a BR, which is wrong.
(AXObjectCache::endCharacterOffsetOfParagraph): Ditto.
- dom/Position.cpp:
(WebCore::Position::Position): Fixed an assertion which was checking that this constructor wasn't being called
with m_anchorNode set to an element editing ignores content of. ing it with isShadowRoot() made this assertion useless because it's true whenever m_anchorNode is not a shadow root.
(WebCore::Position::containerNode): Use parentNode() instead of findParent() which calls nonShadowBoundaryParentNode
since Position should
(WebCore::Position::parentAnchoredEquivalent): Fixed the bug by letting this function return a shadow root.
(WebCore::Position::previous): Use parentNode() instead of findParent().
(WebCore::Position::next): Ditto.
(WebCore::Position::atStartOfTree): Ditto.
(WebCore::Position::atEndOfTree): Ditto.
(WebCore::Position::findParent): Deleted.
- dom/Position.h:
- editing/VisibleSelection.cpp:
(VisibleSelection::firstRange): Added a null check.
LayoutTests:
Added a regression test.
- fast/shadow-dom/selection-at-shadow-root-crash-expected.txt: Added.
- fast/shadow-dom/selection-at-shadow-root-crash.html: Added.
- 3:47 PM Changeset in webkit [201666] by
-
- 3 edits2 adds in trunk
Incorrect rendering on boostmobile FAQ page
https://bugs.webkit.org/show_bug.cgi?id=158303
<rdar://problem/26603462>
Reviewed by Chris Dumez.
Initial value for background-color is 'transparent'. see https://drafts.csswg.org/css-backgrounds-3/#background-color
Source/WebCore:
Test: fast/selectors/non-visited-link-backround-color.html
- css/CSSPropertyNames.in:
LayoutTests:
- fast/selectors/non-visited-link-backround-color-expected.html: Added.
- fast/selectors/non-visited-link-backround-color.html: Added.
- 3:31 PM Changeset in webkit [201665] by
-
- 8 edits in trunk/Source/WebCore
More miscellaneous IDBBindingUtilities cleanup.
https://bugs.webkit.org/show_bug.cgi?id=158359
Reviewed by Tim Horton.
No new tests (Straight refactor, yo).
Replace more ScriptExecutionContext&s with ExecState&s.
Combine more unnecessarily separate functions.
Remove some cruft.
- Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::setGetResult):
- Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::setResult):
(WebCore::IDBRequest::setResultToStructuredClone):
- Modules/indexeddb/server/MemoryObjectStore.cpp:
(WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord):
(WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords):
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::updateOneIndexForAddRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::updateAllIndexesForAddRecord):
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):
- bindings/js/IDBBindingUtilities.cpp:
(WebCore::deserializeIDBValueToJSValue):
(WebCore::idbKeyDataToScriptValue):
(WebCore::deserializeIDBValueDataToJSValue): Deleted.
- bindings/js/IDBBindingUtilities.h:
- 3:26 PM Changeset in webkit [201664] by
-
- 10 edits in trunk
CanvasRenderingContext2D.createPattern() / putImageData() throw wrong exception type
https://bugs.webkit.org/show_bug.cgi?id=158322
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline test now that it is passing.
- canvas/2d.pattern.image.undefined-expected.txt:
Source/WebCore:
CanvasRenderingContext2D.createPattern() / putImageData() were throwing the wrong
exception type when the first parameter was null. It should throw a TypeError
but it was throwing a legacy TYPE_MISMATCH_ERR:
- http://www.w3.org/TR/2dcontext/#canvasrenderingcontext2d
- http://www.w3.org/TR/2dcontext/#canvasimagesource
This patch aligns our behavior with the specification.
No new tests, covered by existing tests.
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::createPattern):
(WebCore::CanvasRenderingContext2D::putImageData):
(WebCore::CanvasRenderingContext2D::webkitPutImageDataHD):
(WebCore::CanvasRenderingContext2D::didDraw): Deleted.
(WebCore::CanvasRenderingContext2D::drawFocusIfNeeded): Deleted.
(WebCore::CanvasRenderingContext2D::drawFocusIfNeededInternal): Deleted.
(WebCore::CanvasRenderingContext2D::font): Deleted.
- html/canvas/CanvasRenderingContext2D.h:
- html/canvas/CanvasRenderingContext2D.idl:
LayoutTests:
Update several outdated layout tests.
- canvas/philip/tests/2d.imageData.put.null.html:
- canvas/philip/tests/2d.pattern.image.null.html:
- canvas/philip/tests/2d.pattern.image.undefined.html:
- 3:24 PM Changeset in webkit [201663] by
-
- 55 edits1 move in trunk/Source
Rename NoncopyableFunction to Function
https://bugs.webkit.org/show_bug.cgi?id=158354
Reviewed by Chris Dumez.
Source/WebCore:
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::runTask):
- Modules/mediastream/MediaEndpointPeerConnection.h:
- Modules/webaudio/AudioDestinationNode.h:
(WebCore::AudioDestinationNode::resume):
(WebCore::AudioDestinationNode::suspend):
(WebCore::AudioDestinationNode::close):
- Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::resume):
(WebCore::DefaultAudioDestinationNode::suspend):
(WebCore::DefaultAudioDestinationNode::close):
- Modules/webaudio/DefaultAudioDestinationNode.h:
- dom/ActiveDOMCallbackMicrotask.cpp:
(WebCore::ActiveDOMCallbackMicrotask::ActiveDOMCallbackMicrotask):
- dom/ActiveDOMCallbackMicrotask.h:
- dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::Task::Task):
- fileapi/AsyncFileStream.cpp:
(WebCore::callOnFileThread):
(WebCore::AsyncFileStream::perform):
- fileapi/AsyncFileStream.h:
- page/FrameView.cpp:
(WebCore::FrameView::queuePostLayoutCallback):
(WebCore::FrameView::flushPostLayoutTasksQueue):
- page/FrameView.h:
- page/scrolling/ScrollingThread.cpp:
(WebCore::ScrollingThread::dispatch):
(WebCore::ScrollingThread::dispatchBarrier):
(WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread):
- page/scrolling/ScrollingThread.h:
- platform/GenericTaskQueue.cpp:
(WebCore::TaskDispatcher<Timer>::postTask):
- platform/GenericTaskQueue.h:
(WebCore::TaskDispatcher::postTask):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::scheduleDeferredTask):
- platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::scheduleDeferredTask):
- platform/mediastream/MediaStreamPrivate.h:
- platform/mediastream/mac/AVMediaCaptureSource.h:
- platform/mediastream/mac/AVMediaCaptureSource.mm:
(WebCore::AVMediaCaptureSource::scheduleDeferredTask):
- style/StyleTreeResolver.cpp:
(WebCore::Style::postResolutionCallbackQueue):
(WebCore::Style::queuePostResolutionCallback):
- style/StyleTreeResolver.h:
Source/WebKit:
- Storage/StorageSyncManager.cpp:
(WebCore::StorageSyncManager::dispatch):
- Storage/StorageSyncManager.h:
- Storage/StorageThread.cpp:
(WebCore::StorageThread::dispatch):
(WebCore::StorageThread::terminate):
- Storage/StorageThread.h:
Source/WebKit2:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::clearDiskCacheEntries):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::traverse):
- NetworkProcess/cache/NetworkCache.h:
- NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::runTaskInQueue):
- NetworkProcess/cache/NetworkCacheStorage.h:
Source/WTF:
- WTF.xcodeproj/project.pbxproj:
- wtf/CrossThreadTask.h:
(WTF::CrossThreadTask::CrossThreadTask):
- wtf/Function.h: Renamed from Source/WTF/wtf/NoncopyableFunction.h.
- wtf/FunctionDispatcher.h:
- wtf/MainThread.cpp:
(WTF::functionQueue):
(WTF::dispatchFunctionsFromMainThread):
(WTF::callOnMainThread):
- wtf/MainThread.h:
- wtf/RunLoop.cpp:
(WTF::RunLoop::performWork):
(WTF::RunLoop::dispatch):
- wtf/RunLoop.h:
- wtf/WorkQueue.h:
- wtf/cocoa/WorkQueueCocoa.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
- wtf/efl/DispatchQueueWorkItemEfl.h:
(WorkItem::WorkItem):
(TimerWorkItem::create):
(TimerWorkItem::TimerWorkItem):
- wtf/efl/WorkQueueEfl.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
- wtf/generic/RunLoopGeneric.cpp:
(WTF::RunLoop::TimerBase::ScheduledTask::create):
(WTF::RunLoop::TimerBase::ScheduledTask::ScheduledTask):
(WTF::RunLoop::dispatchAfter):
- wtf/generic/WorkQueueGeneric.cpp:
(WorkQueue::dispatch):
(WorkQueue::dispatchAfter):
- wtf/glib/RunLoopGLib.cpp:
(WTF::DispatchAfterContext::DispatchAfterContext):
(WTF::RunLoop::dispatchAfter):
- wtf/win/WorkItemWin.cpp:
(WTF::WorkItemWin::WorkItemWin):
(WTF::WorkItemWin::create):
(WTF::HandleWorkItem::HandleWorkItem):
(WTF::HandleWorkItem::createByAdoptingHandle):
- wtf/win/WorkItemWin.h:
(WTF::WorkItemWin::function):
- wtf/win/WorkQueueWin.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
- 3:05 PM Changeset in webkit [201662] by
-
- 3 edits in trunk/LayoutTests
Marking fast/scrolling/scroll-container-horizontally.html as flaky on mac-wk2 and ios-simulator-wk1
https://bugs.webkit.org/show_bug.cgi?id=158237
Unreviewed test gardening.
- platform/ios-simulator-wk1/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 2:59 PM Changeset in webkit [201661] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r201474): Subtitles are not resizing in other fullscreen modes
https://bugs.webkit.org/show_bug.cgi?id=158355
Reviewed by Eric Carlson.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::syncTextTrackBounds):
Set the text track representation layer's frame based on the active video layer.
- 2:42 PM Changeset in webkit [201660] by
-
- 10 edits in trunk/Source/WebCore
Miscellaneous IDBBindingUtilities cleanup.
https://bugs.webkit.org/show_bug.cgi?id=158353
Reviewed by Tim Horton.
No new tests (Straight refactor, yo).
Starting with removing a single form of scriptValueToIDBKey(), and making the return value be
Ref<IDBKey> instead of RefPtr<IDBKey>, update a whole bunch of code to understand that the ExecState
is non-null and the resulting key is non-null.
- Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::continueFunction):
- Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::cmp):
- Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::count):
(WebCore::IDBIndex::get):
(WebCore::IDBIndex::getKey):
- Modules/indexeddb/IDBKey.cpp:
(WebCore::IDBKey::compare):
(WebCore::IDBKey::isLessThan):
(WebCore::IDBKey::isEqual):
- Modules/indexeddb/IDBKey.h:
(WebCore::IDBKey::createMultiEntryArray):
- Modules/indexeddb/IDBKeyRange.cpp:
(WebCore::IDBKeyRange::only):
(WebCore::IDBKeyRange::lowerBound):
(WebCore::IDBKeyRange::upperBound):
(WebCore::IDBKeyRange::bound):
(WebCore::IDBKeyRange::isOnlyKey):
- Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::modernDelete):
(WebCore::IDBObjectStore::count):
- bindings/js/IDBBindingUtilities.cpp:
(WebCore::get):
(WebCore::set):
(WebCore::createIDBKeyFromValue):
(WebCore::getNthValueOnKeyPath):
(WebCore::internalCreateIDBKeyFromScriptValueAndKeyPath):
(WebCore::ensureNthValueOnKeyPath):
(WebCore::canInjectNthValueOnKeyPath):
(WebCore::injectIDBKeyIntoScriptValue):
(WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath):
(WebCore::canInjectIDBKeyIntoScriptValue):
(WebCore::deserializeIDBValueToJSValue):
(WebCore::scriptValueToIDBKey):
(WebCore::createKeyPathArray):
- bindings/js/IDBBindingUtilities.h:
- 2:36 PM Changeset in webkit [201659] by
-
- 8 edits2 moves in trunk/Source/WebCore
Rename CheckedRadioButtons into RadioButtonGroups
https://bugs.webkit.org/show_bug.cgi?id=158326
Reviewed by Alex Christensen.
CheckedRadioButtons handles the set of all the Radio Button Groups
for a particular form or document.
The name is wrong and apparently comes from former uses of this class
(see the comment above the class declaration).
This patch renames "CheckedRadioButtons" to "RadioButtonGroups" to reflect that it handles
all the Radio Button Group from a given context (form or document).
Internally it has a set of RadioButtonGroup but that is never explicitely
exposed.
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/CheckedRadioButtons.cpp:
(WebCore::RadioButtonGroup::isEmpty): Deleted.
(WebCore::RadioButtonGroup::isRequired): Deleted.
(WebCore::RadioButtonGroup::checkedButton): Deleted.
(WebCore::RadioButtonGroup::RadioButtonGroup): Deleted.
(WebCore::RadioButtonGroup::isValid): Deleted.
(WebCore::RadioButtonGroup::members): Deleted.
(WebCore::RadioButtonGroup::setCheckedButton): Deleted.
(WebCore::RadioButtonGroup::add): Deleted.
(WebCore::RadioButtonGroup::updateCheckedState): Deleted.
(WebCore::RadioButtonGroup::requiredAttributeChanged): Deleted.
(WebCore::RadioButtonGroup::remove): Deleted.
(WebCore::RadioButtonGroup::updateValidityForAllButtons): Deleted.
(WebCore::RadioButtonGroup::contains): Deleted.
(WebCore::CheckedRadioButtons::CheckedRadioButtons): Deleted.
(WebCore::CheckedRadioButtons::~CheckedRadioButtons): Deleted.
(WebCore::CheckedRadioButtons::addButton): Deleted.
(WebCore::CheckedRadioButtons::groupMembers): Deleted.
(WebCore::CheckedRadioButtons::updateCheckedState): Deleted.
(WebCore::CheckedRadioButtons::requiredAttributeChanged): Deleted.
(WebCore::CheckedRadioButtons::checkedButtonForGroup): Deleted.
(WebCore::CheckedRadioButtons::isInRequiredGroup): Deleted.
(WebCore::CheckedRadioButtons::removeButton): Deleted.
- dom/RadioButtonGroups.cpp: Renamed from Source/WebCore/dom/CheckedRadioButtons.cpp.
(WebCore::RadioButtonGroup::isEmpty):
(WebCore::RadioButtonGroup::isRequired):
(WebCore::RadioButtonGroup::checkedButton):
(WebCore::RadioButtonGroup::RadioButtonGroup):
(WebCore::RadioButtonGroup::isValid):
(WebCore::RadioButtonGroup::members):
(WebCore::RadioButtonGroup::setCheckedButton):
(WebCore::RadioButtonGroup::add):
(WebCore::RadioButtonGroup::updateCheckedState):
(WebCore::RadioButtonGroup::requiredAttributeChanged):
(WebCore::RadioButtonGroup::remove):
(WebCore::RadioButtonGroup::updateValidityForAllButtons):
(WebCore::RadioButtonGroup::contains):
(WebCore::RadioButtonGroups::RadioButtonGroups):
(WebCore::RadioButtonGroups::~RadioButtonGroups):
(WebCore::RadioButtonGroups::addButton):
(WebCore::RadioButtonGroups::groupMembers):
(WebCore::RadioButtonGroups::updateCheckedState):
(WebCore::RadioButtonGroups::requiredAttributeChanged):
(WebCore::RadioButtonGroups::checkedButtonForGroup):
(WebCore::RadioButtonGroups::isInRequiredGroup):
(WebCore::RadioButtonGroups::removeButton):
- dom/RadioButtonGroups.h: Renamed from Source/WebCore/dom/CheckedRadioButtons.h.
- html/FormController.h:
(WebCore::FormController::radioButtonGroups):
(WebCore::FormController::checkedRadioButtons): Deleted.
- html/HTMLFormElement.h:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::~HTMLInputElement):
(WebCore::HTMLInputElement::setChecked):
(WebCore::HTMLInputElement::didMoveToNewDocument):
(WebCore::HTMLInputElement::requiredAttributeChanged):
(WebCore::HTMLInputElement::isInRequiredRadioButtonGroup):
(WebCore::HTMLInputElement::radioButtonGroup):
(WebCore::HTMLInputElement::checkedRadioButtonForGroup):
(WebCore::HTMLInputElement::radioButtonGroups):
(WebCore::HTMLInputElement::addToRadioButtonGroup):
(WebCore::HTMLInputElement::removeFromRadioButtonGroup):
(WebCore::HTMLInputElement::checkedRadioButtons): Deleted.
- html/HTMLInputElement.h:
- 2:35 PM Changeset in webkit [201658] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Remove unused WebInspector.CSSCompletions methods
https://bugs.webkit.org/show_bug.cgi?id=158352
Reviewed by Joseph Pecoraro.
- UserInterface/Models/CSSCompletions.js:
(WebInspector.CSSCompletions.prototype.firstStartsWith): Deleted.
(WebInspector.CSSCompletions.prototype.isLonghandPropertyName): Deleted.
(WebInspector.CSSCompletions.prototype.longhandsForShorthand): Deleted.
- 2:26 PM Changeset in webkit [201657] by
-
- 4 edits in trunk/Source/JavaScriptCore
Clients of PolymorphicAccess::addCases shouldn't have to malloc
https://bugs.webkit.org/show_bug.cgi?id=158357
Reviewed by Keith Miller.
We only ever have 1 or 2 cases, so we can use inline Vector capacity.
This shows up a little in the JSBench profile.
- bytecode/PolymorphicAccess.cpp:
(JSC::PolymorphicAccess::addCases):
(JSC::PolymorphicAccess::addCase):
- bytecode/PolymorphicAccess.h:
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::addAccessCase):
- 2:13 PM Changeset in webkit [201656] by
-
- 6 edits in trunk/Source/JavaScriptCore
Fix some more INFINITI->INFINITY typos
Unreviewed.
The tests were not covering the edge cases they were supposed to test.
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-03
- tests/stress/math-ceil-basics.js:
(testMathCeilOnConstants):
- tests/stress/math-clz32-basics.js:
(testMathClz32OnDoubles):
(testMathClz32OnConstants):
- tests/stress/math-floor-basics.js:
(testMathFloorOnConstants):
- tests/stress/math-round-basics.js:
(testMathRoundOnConstants):
- tests/stress/math-trunc-basics.js:
(testMathTruncOnConstants):
- 1:59 PM Changeset in webkit [201655] by
-
- 14 edits in trunk/Source
Unreviewed, roll out r196633 as it broke PageCache on iOS for WebKit.org
<rdar://problem/26521101>
Source/WebCore:
- dom/Document.cpp:
(WebCore::Document::setInPageCache): Deleted.
- history/CachedPage.cpp:
(WebCore::CachedPage::restore):
(WebCore::CachedPage::clear):
- history/CachedPage.h:
(WebCore::CachedPage::markForVisitedLinkStyleRecalc):
(WebCore::CachedPage::markForFullStyleRecalc):
- history/PageCache.cpp:
(WebCore::PageCache::markPagesForVisitedLinkStyleRecalc):
(WebCore::PageCache::markPagesForFullStyleRecalc):
- history/PageCache.h:
- page/Frame.cpp:
(WebCore::Frame::setPageAndTextZoomFactors):
- page/Page.cpp:
(WebCore::Page::setViewScaleFactor):
(WebCore::Page::setDeviceScaleFactor):
(WebCore::Page::setPagination):
(WebCore::Page::setPaginationLineGridEnabled):
(WebCore::Page::setVisitedLinkStore):
Source/WebKit/mac:
- WebCoreSupport/WebVisitedLinkStore.mm:
(WebVisitedLinkStore::removeAllVisitedLinks):
(WebVisitedLinkStore::removeVisitedLink):
(WebVisitedLinkStore::addVisitedLinkHash):
Source/WebKit/win:
- WebCoreSupport/WebVisitedLinkStore.cpp:
(WebVisitedLinkStore::removeAllVisitedLinks):
(WebVisitedLinkStore::addVisitedLinkHash):
Source/WebKit2:
- WebProcess/WebPage/VisitedLinkTableController.cpp:
(WebKit::VisitedLinkTableController::setVisitedLinkTable):
(WebKit::VisitedLinkTableController::visitedLinkStateChanged):
(WebKit::VisitedLinkTableController::allVisitedLinkStateChanged):
(WebKit::VisitedLinkTableController::removeAllVisitedLinks):
- 1:12 PM Changeset in webkit [201654] by
-
- 6 edits in trunk/Source/JavaScriptCore
JSGlobalObject::addFunction should call deleteProperty rather than removeDirect
https://bugs.webkit.org/show_bug.cgi?id=158295
Reviewed by Saam Barati.
When a function in declared in program code, this replaces any previosly existing
property from the global object. JSGlobalObject::addFunction is currently calling
removeDirect rather than deleteProperty to remove the existing property. This fails
to remove any properties from static tables.
We currently get away with this because (a) JSObject & JSGlobalObject don't currently
have any properties in static tables, and (b) the current quirky property precedence
means that the symbol table properties end up taking precedence over JSDOMWindow's
static table, so window object properties end up being shadowed.
As a part of bug #158178 the precedence of static tables will change, requiring this
to be fixed.
The deleteProperty function does what we want (has the ability to remove properties,
including those from the static tables). Normally deleteProperty will not remove
properties that are non-configurable (DontDelete) - we need to do so. The function
does already support this, through a flag on VM named 'isInDefineOwnProperty', which
causes configurability to be ignored. Generalize this mechanism for use outside of
defineOwnProperty, renaming & moving DefineOwnPropertyScope helper class out to VM.
- runtime/JSFunction.cpp:
(JSC::JSFunction::deleteProperty):
- isInDefineOwnProperty -> deletePropertyMode.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::addFunction):
- removeDirect -> deleteProperty.
- runtime/JSObject.cpp:
(JSC::JSObject::deleteProperty):
- isInDefineOwnProperty -> deletePropertyMode.
(JSC::JSObject::defineOwnNonIndexProperty):
- DefineOwnPropertyScope -> VM::DeletePropertyModeScope.
(JSC::DefineOwnPropertyScope::DefineOwnPropertyScope): Deleted.
(JSC::DefineOwnPropertyScope::~DefineOwnPropertyScope): Deleted.
- DefineOwnPropertyScope -> VM::DeletePropertyModeScope.
- runtime/VM.cpp:
(JSC::VM::VM):
- removed m_inDefineOwnProperty.
- runtime/VM.h:
(JSC::VM::deletePropertyMode):
- isInDefineOwnProperty -> deletePropertyMode.
(JSC::VM::DeletePropertyModeScope::DeletePropertyModeScope):
(JSC::VM::DeletePropertyModeScope::~DeletePropertyModeScope):
- DefineOwnPropertyScope -> VM::DeletePropertyModeScope.
(JSC::VM::setInDefineOwnProperty): Deleted.
- Replaced with deletePropertyMode, can now only be set via VM::DeletePropertyModeScope.
(JSC::VM::isInDefineOwnProperty): Deleted.
- isInDefineOwnProperty -> deletePropertyMode.
- 12:54 PM Changeset in webkit [201653] by
-
- 2 edits in trunk/LayoutTests
LayoutTest imported/w3c/indexeddb/idbcursor-advance-continue-async.htm is flaky on Yosemite WK2
https://bugs.webkit.org/show_bug.cgi?id=154606
Reviewed by Alex Christensen.
- platform/mac-wk2/TestExpectations: Remove expectations. Test has been working great for quite awhile.
- 12:28 PM Changeset in webkit [201652] by
-
- 5 edits in trunk/LayoutTests
storage/indexeddb/intversion-open-in-upgradeneeded.html is flaky on mac.
https://bugs.webkit.org/show_bug.cgi?id=155050
Reviewed by Alex Christensen.
The test no longer crashes/times out, but it does have text failures.
Resolve them by removing a race in the test itself.
- platform/mac-wk2/TestExpectations:
- storage/indexeddb/intversion-open-in-upgradeneeded-expected.txt:
- storage/indexeddb/intversion-open-in-upgradeneeded-private-expected.txt:
- storage/indexeddb/resources/intversion-open-in-upgradeneeded.js:
- 11:42 AM Changeset in webkit [201651] by
-
- 2 edits in trunk/Source/JavaScriptCore
ARMv7 vstm and vldm instructions can only operate on a maximum of 16 registers.
https://bugs.webkit.org/show_bug.cgi?id=158349
Reviewed by Filip Pizlo.
According to the ARM Assembler Reference, the vstm and vldm instructions can only
operate on a maximum of 16 registers. See
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dht0002a/ch01s03s02.html
and http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dht0002a/ch01s03s02.html.
The ARMv7 probe code was wrongly using these instructions to store and load all
32 'd' registers. This is now fixed.
- assembler/MacroAssemblerARMv7.cpp:
- 11:36 AM Changeset in webkit [201650] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Update NativeFunctionParameters (FontFaceSet, HTMLSlotElement, EventTarget)
https://bugs.webkit.org/show_bug.cgi?id=158333
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-03
Reviewed by Brian Burg.
- UserInterface/Models/NativeFunctionParameters.js:
Replace FontLoader with FontFaceSet. Add HTMLSlotElement API.
EventTarget is now actually in the prototype chain, so add it as
a first class citizen and keep mixing it in for legacy backends.
- 11:22 AM Changeset in webkit [201649] by
-
- 2 edits in trunk/Source/WebKit/win
[Win] Implement WebView::removeAllUserContentFromGroup
https://bugs.webkit.org/show_bug.cgi?id=158343
Reviewed by Brent Fulgham.
- WebView.cpp:
(WebView::removeAllUserContentFromGroup):
- 11:13 AM Changeset in webkit [201648] by
-
- 5 edits8 adds in trunk
Reflection of element does not respect backdrop-filter property
https://bugs.webkit.org/show_bug.cgi?id=158201
Patch by Antoine Quint <Antoine Quint> on 2016-06-03
Reviewed by Dean Jackson.
Source/WebCore:
We weren't cloning the PlatformCALayer for the backdrop so reflections would simply
not show their backdrops. We now follow the same pattern as other PlatformCALayers
owned by a GraphicsLayerCA and keep a list of backdrop layer clones that we add
to the structural layer when cloning to match the layer order of the original
and update the backdrop layer clone properties to match the original when the
backdrop filters or rectangle changes.
Tests: css3/filters/backdrop/backdrop-filter-with-reflection-add-backdrop.html
css3/filters/backdrop/backdrop-filter-with-reflection-remove-backdrop.html
css3/filters/backdrop/backdrop-filter-with-reflection-value-change.html
css3/filters/backdrop/backdrop-filter-with-reflection.html
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateBackdropFilters):
(WebCore::GraphicsLayerCA::updateBackdropFiltersRect):
Update backdrop layer clones to match new values set when the backdrop filter
configuration changes.
(WebCore::GraphicsLayerCA::ensureCloneLayers):
Create the backdrop layer clones map if needed and clone the existing backdrop layer.
(WebCore::GraphicsLayerCA::clearClones):
Clear the backdrop layer clones map.
(WebCore::GraphicsLayerCA::fetchCloneLayers):
Obtain a clone for the backdrop layer, and if we have a valid clone, add it to the
structural layer clone as its first child to match the operation in updateSublayerList().
- platform/graphics/ca/GraphicsLayerCA.h:
Modify the signature for ensureCloneLayers() to account for the new backdrop layer clone and
declare the backdrop layer clone map.
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(PlatformCALayerCocoa::clone):
Reflect the backdrop layer type when cloning a PlatformCALayer.
LayoutTests:
- css3/filters/backdrop/backdrop-filter-with-reflection-add-backdrop-expected.html: Added.
- css3/filters/backdrop/backdrop-filter-with-reflection-add-backdrop.html: Added.
Covers the case where a reflected element without a backdrop-filter initially has one added later.
- css3/filters/backdrop/backdrop-filter-with-reflection-expected.html: Added.
- css3/filters/backdrop/backdrop-filter-with-reflection-remove-backdrop-expected.html: Added.
Covers the case where a reflected element with a backdrop-filter initially has it removed later.
- css3/filters/backdrop/backdrop-filter-with-reflection-remove-backdrop.html: Added.
- css3/filters/backdrop/backdrop-filter-with-reflection-value-change-expected.html: Added.
Covers the case where a reflected element with a backdrop-filter has its backdrop-filter property changed later.
- css3/filters/backdrop/backdrop-filter-with-reflection-value-change.html: Added.
- css3/filters/backdrop/backdrop-filter-with-reflection.html: Added.
Covers the basic case of a reflected element with a backdrop-filter.
- 10:09 AM Changeset in webkit [201647] by
-
- 3 edits in trunk/Source/WebCore
ResourceResponseBase cleanup.
https://bugs.webkit.org/show_bug.cgi?id=158348
Reviewed by Chris Dumez.
No new tests (Refactor, no behavior change).
CrossThreadData can be noncopyable and WTFMove()'ed around, instead of
being in a unique_ptr.
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::crossThreadData):
(WebCore::ResourceResponseBase::fromCrossThreadData):
- platform/network/ResourceResponseBase.h:
- 9:49 AM Changeset in webkit [201646] by
-
- 2 edits in trunk/Source/JavaScriptCore
Gardening: CLOOP build fix (needs a #include).
Not reviewed.
- interpreter/StackVisitor.h:
- 9:43 AM Changeset in webkit [201645] by
-
- 3 edits in trunk/Source/JavaScriptCore
Eliminate two large sources of temporary StringImpl objects.
<https://webkit.org/b/158336>
Reviewed by Anders Carlsson.
We were jumping through some inefficient hoops when creating Identifiers due to the
convenience of our String(const char*) constructor.
This patch avoids just over 1 million temporary StringImpl objects on the PLUM benchmark.
- runtime/JSObject.h:
(JSC::makeIdentifier): Add an overload for string literals so we can stop creating a temporary
String just for passing to Identifier::fromString().
- runtime/Lookup.h:
(JSC::reifyStaticProperties): Use the Identifier::fromString() that takes an LChar* and a length
instead of creating a temporary String.
- 9:32 AM Changeset in webkit [201644] by
-
- 2 edits in trunk
[Win] IndexedDB worker tests are failing.
https://bugs.webkit.org/show_bug.cgi?id=158341
Reviewed by Alex Christensen.
Enable IndexedDB in workers.
- Source/cmake/OptionsWin.cmake:
- 9:13 AM Changeset in webkit [201643] by
-
- 2 edits in trunk/Source/WebKit2
Fix the !ENABLE(INDEXED_DATABASE) build after r201575
https://bugs.webkit.org/show_bug.cgi?id=158346
Reviewed by Brady Eidson.
- DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::fetchWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteDataForOrigins):
- 8:40 AM Changeset in webkit [201642] by
-
- 2 edits in trunk/Tools
[GTK] Update YouCompleteMe script to make all include paths absolute
https://bugs.webkit.org/show_bug.cgi?id=158301
Reviewed by Michael Catanzaro.
Before this patch, some include paths were not made absolute.
This could make YouCompleteMe plugin to fail extracting information or validating cpp files.
- gtk/ycm_extra_conf.py:
- 7:53 AM Changeset in webkit [201641] by
-
- 6 edits1 add in trunk/Source
Clean up how StackVisitor dumps its frames.
https://bugs.webkit.org/show_bug.cgi?id=158316
Reviewed by Keith Miller.
Source/JavaScriptCore:
- Updated to do dumping to a PrintStream.
- Added support for printing a prefix for each frame. This is currently used by JSDollarVMPrototype to print frame numbers.
- Fix the incrementing of the frame index in StackVisitor. It was initialized but never incremented before when iterating the frames.
- interpreter/StackVisitor.cpp:
(JSC::StackVisitor::gotoNextFrame):
(JSC::StackVisitor::Frame::codeType):
(JSC::StackVisitor::Frame::functionName):
(JSC::StackVisitor::Frame::sourceURL):
(JSC::StackVisitor::Frame::toString):
(JSC::StackVisitor::Frame::createArguments):
(JSC::StackVisitor::Frame::computeLineAndColumn):
(JSC::StackVisitor::Frame::retrieveExpressionInfo):
(JSC::StackVisitor::Frame::setToEnd):
(JSC::StackVisitor::Frame::dump):
(JSC::StackVisitor::Indent::dump):
(JSC::printIndents): Deleted.
(JSC::log): Deleted.
(JSC::logF): Deleted.
(JSC::StackVisitor::Frame::print): Deleted.
- interpreter/StackVisitor.h:
(JSC::StackVisitor::Indent::Indent):
(JSC::StackVisitor::Indent::operator++):
(JSC::StackVisitor::Indent::operator--):
(JSC::StackVisitor::Frame::isJSFrame):
(JSC::StackVisitor::Frame::isInlinedFrame):
(JSC::StackVisitor::Frame::vmEntryFrame):
(JSC::StackVisitor::Frame::callFrame):
(JSC::StackVisitor::Frame::Frame):
(JSC::StackVisitor::Frame::~Frame):
- tools/JSDollarVMPrototype.cpp:
(JSC::PrintFrameFunctor::operator()):
Source/WTF:
Added an Indenter class what works with dataLog.
- WTF.xcodeproj/project.pbxproj:
- wtf/Indenter.h: Added.
(WTF::Indenter::Indenter):
(WTF::Indenter::dump):
(WTF::Indenter::operator++):
(WTF::Indenter::operator--):
- 2:03 AM Changeset in webkit [201640] by
-
- 2 edits in trunk/Tools
Unreviewed: add myself to the committers list.
- Scripts/webkitpy/common/config/contributors.json:
- 12:52 AM Changeset in webkit [201639] by
-
- 4 edits in trunk
REGRESSION: WebGL doesn't show up in CSS reflections
https://bugs.webkit.org/show_bug.cgi?id=76489
Patch by Antoine Quint <Antoine Quint> on 2016-06-03
Reviewed by Dean Jackson.
Source/WebCore:
The WebGLLayer needs to notify its owning GraphicsLayer that it was displayed
such that its clones, in GraphicsLayerCA::layerDidDisplay, may have their contents
updated to match that layer's contents. The test at compositing/webgl/webgl-reflection.html
already covers this test and its expectation on Mac has been updated.
- platform/graphics/mac/WebGLLayer.mm:
(-[WebGLLayer display]):
LayoutTests:
Update the expected rendering to contain the reflected WebGL <canvas>.
- platform/mac/compositing/webgl/webgl-reflection-expected.png:
- 12:10 AM Changeset in webkit [201638] by
-
- 2 edits in trunk/Source/WebCore
Refactor showModalDialog handling in JSDOMWindowCustom
https://bugs.webkit.org/show_bug.cgi?id=158294
Reviewed by Ryosuke Niwa.
The showModalDialog property is currently implemented in a way that effectively
results in duplication of the tail of the function, but modified to call
Base::getOwnPropertySlot instead of getStaticPropertySlot. It does so based on the
assumption that Base::getOwnPropertySlot is not going to search the static tables
(containing the property we wish to omit).
However as a part of bug #158178 I plan to change it such that Base::getOwnPropertySlot
does also search the static tables. So, refactoring this code to no longer depend on
using a function that bypasses the static tables. Always perform a lookup that will
check both property storage & static tables. If the object does contain the property,
then check explicitly for the value we're intending to suppress.
Covered by exsiting tests.
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot):
- Check result of getStaticPropertySlot for showModalDialog function.
Jun 2, 2016:
- 10:40 PM Changeset in webkit [201637] by
-
- 4 edits in trunk/Source/WebCore
Fix AtomicString regression caused by r201603.
https://bugs.webkit.org/show_bug.cgi?id=158338
Reviewed by Chris Dumez.
No new tests (Refactor, plus already caught by existing test configs).
- loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::crossThreadData): Re-introduce the cross thread data concept,
but more modern and clean this time.
(WebCore::ResourceResponseBase::fromCrossThreadData):
(WebCore::ResourceResponseBase::isolatedCopy): Deleted.
- platform/network/ResourceResponseBase.h:
- 10:38 PM Changeset in webkit [201636] by
-
- 2 edits in trunk/Source/WebCore
Drop BlobRegistryContext class as it is no longer needed
https://bugs.webkit.org/show_bug.cgi?id=158328
Reviewed by Brady Eidson.
Drop BlobRegistryContext class as it is no longer needed. We can now
call isolatedCopy() as we capture in the lambda.
- fileapi/ThreadableBlobRegistry.cpp:
(WebCore::ThreadableBlobRegistry::registerFileBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):
(WebCore::ThreadableBlobRegistry::blobSize):
(WebCore::ThreadableBlobRegistry::unregisterBlobURL):
(WebCore::BlobRegistryContext::BlobRegistryContext): Deleted.
- 10:27 PM Changeset in webkit [201635] by
-
- 18 edits2 adds in trunk
Repaint issue with vertical text in an out of flow container.
https://bugs.webkit.org/show_bug.cgi?id=102665
<rdar://problem/26605298>
Reviewed by David Hyatt.
Since the renderer’s offset for positioned objects is always physical, we only
need to flip the repaint rect(always logical) for writing root, when we see the first positioned object.
All subsequent writing root changes for positioned objects are okay and they don't need flipping.
Source/WebCore:
Test: fast/repaint/vertical-text-repaint.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeRectForRepaint):
- rendering/RenderBox.h:
(WebCore::RenderBox::computeRectForRepaint):
- rendering/RenderInline.cpp:
(WebCore::RenderInline::computeRectForRepaint):
- rendering/RenderInline.h:
(WebCore::RenderInline::computeRectForRepaint):
- rendering/RenderObject.cpp:
(WebCore::RenderObject::computeRectForRepaint):
- rendering/RenderObject.h:
(WebCore::RenderObject::computeAbsoluteRepaintRect):
(WebCore::RenderObject::computeRectForRepaint):
- rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::computeRectForRepaint):
- rendering/RenderTableCell.h:
- rendering/RenderView.cpp:
(WebCore::RenderView::computeRectForRepaint):
- rendering/RenderView.h:
- rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::computeRectForRepaint):
- rendering/svg/RenderSVGForeignObject.h:
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::computeFloatRectForRepaint):
- rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::computeRectForRepaint):
- rendering/svg/RenderSVGText.h:
LayoutTests:
- fast/repaint/vertical-text-repaint-expected.txt: Added.
- fast/repaint/vertical-text-repaint.html: Added.
- 9:33 PM Changeset in webkit [201634] by
-
- 8 edits in trunk
[Win] Fetch API tests are failing.
https://bugs.webkit.org/show_bug.cgi?id=158296
Reviewed by Alex Christensen.
Source/WebKit/win:
Add preference for enabling Fetch API.
- Interfaces/IWebPreferencesPrivate.idl:
- WebPreferenceKeysPrivate.h:
- WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
(WebPreferences::fetchAPIEnabled):
(WebPreferences::setFetchAPIEnabled):
- WebPreferences.h:
- WebView.cpp:
(WebView::notifyPreferencesChanged):
Tools:
Enable Fetch API when running tests.
- DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebPreferencesToConsistentValues):
- 8:32 PM Changeset in webkit [201633] by
-
- 9 edits1 add in trunk/Source/WebCore
Fix build
https://bugs.webkit.org/show_bug.cgi?id=158337
rdar://problem/26429419
Reviewed by Dan Bernstein.
- WebCore.xcodeproj/project.pbxproj:
Add QTKitSPI.h header.
- platform/graphics/mac/MediaPlayerPrivateQTKit.h:
- platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
- platform/graphics/mac/MediaTimeQTKit.h:
- platform/graphics/mac/MediaTimeQTKit.mm:
- platform/mac/WebVideoFullscreenController.mm:
Include QTKitSPI.h.
- platform/spi/cocoa/QuartzCoreSPI.h:
- platform/spi/mac/AVFoundationSPI.h:
Use MAX_ALLOWED instead of MIN_REQUIRED.
- platform/spi/mac/QTKitSPI.h:
Add new QTKit header.
- 7:54 PM Changeset in webkit [201632] by
-
- 3 edits in trunk/LayoutTests
Fix a typo in the clz32() tests
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-02
Rubber-stamped by Joseph Pecoraro.
Joe found a bug in math-clz32.js: I typed INFINITI instead of INFINITY.
The tests was effectively checking "undefined" instead of infinity.
- js/math-clz32-expected.txt:
- js/script-tests/math-clz32.js:
(objectRecordConversionCalls.valueOf):
- 6:34 PM Changeset in webkit [201631] by
-
- 2 edits in trunk/Source/WebKit/ios
Fix typo in -[WebDefaultUIKitDelegate deleteFromInputwithFlags:]
<https://webkit.org/b/158323>
<rdar://problem/26549165>
Reviewed by Andy Estes.
- DefaultDelegates/WebDefaultUIKitDelegate.m:
(-[WebDefaultUIKitDelegate deleteFromInputwithFlags:]): Rename...
(-[WebDefaultUIKitDelegate deleteFromInputWithFlags:]): ...to this.
- 6:18 PM Changeset in webkit [201630] by
-
- 12 edits in trunk/Source/WebInspectorUI
Web Inspector: Modernize Array.prototype.every/some callsites to arrow functions
https://bugs.webkit.org/show_bug.cgi?id=158330
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-02
Reviewed by Brian Burg.
- UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype._updateContentFlowFromPayload):
- UserInterface/Models/ProfileNode.js:
(WebInspector.ProfileNode):
- UserInterface/Models/ScopeChainNode.js:
(WebInspector.ScopeChainNode):
- UserInterface/Models/StackTrace.js:
(WebInspector.StackTrace):
- UserInterface/Models/StructureDescription.js:
(WebInspector.StructureDescription):
- UserInterface/Models/TypeDescription.js:
(WebInspector.TypeDescription):
- UserInterface/Protocol/InspectorBackend.js:
(InspectorBackend.Command.prototype.supports):
- UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.showContentView):
- UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie.treeElementMatchesCookie):
(WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):
- UserInterface/Views/ScopeBar.js:
(WebInspector.ScopeBar.prototype.get selectedItems):
(WebInspector.ScopeBar.prototype.hasNonDefaultItemSelected):
- UserInterface/Views/TabContentView.js:
(WebInspector.TabContentView):
(WebInspector.TabContentView.console.assert): Deleted.
- 5:39 PM Changeset in webkit [201629] by
-
- 15 edits in trunk/Source
[iOS] PDFDocumentImage should not create a cached image larger than 4M pixels
https://bugs.webkit.org/show_bug.cgi?id=157857
Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2016-06-02
Reviewed by Darin Adler.
Source/WebCore:
On iOS, if the scaled size of the PDFDocumentImage cached image will exceed
the 4M pixels limit and the system physical memory is 1GB or less, do not
create it. PDFDocumentImage::draw() falls back peacefully if the cached image
couldn't be created for any reason. The PDF will be drawn directly to the
GraphicsContext without having to go through the cached image. This means
the whole PDF will be drawn multiple times; one time for each tile. I think
this is okay for zooming a large PDFDocumentImage on a low end device.
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawTextInternal): Call the static function
ImageBuffer::createCompatibleBuffer() without having to go through the GraphicsContext.
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::drawPattern): Ditto.
- platform/graphics/FloatSize.h:
(WebCore::FloatSize::area): A helper function similar to IntSize::area().
(WebCore::operator*): Scale a FloatSize by another FloatSize and return the result.
- platform/graphics/GradientImage.cpp:
(WebCore::GradientImage::drawPattern): Call ImageBuffer::createCompatibleBuffer().
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::scaleFactor):: Return the scaling part of the current CTM.
(WebCore::scalesMatch): Deleted.
(WebCore::GraphicsContext::createCompatibleBuffer): Deleted.
(WebCore::GraphicsContext::isCompatibleWithBuffer): Deleted.
- platform/graphics/GraphicsContext.h:
Move these image buffer functions to ImageBuffer.
- platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::createCompatibleBuffer): Make createCompatibleBuffer
a static function of the ImageBuffer. There is no need to go through the
GraphicsContext just to get the GraphicsContext scaleFactor.
(WebCore::ImageBuffer::compatibleBufferSize): Scale the size of the cachedImage
by the scaleFactor of the context.
(WebCore::ImageBuffer::isCompatibleWithContext): Returns true if the drawing
context and the ImageBuffer context have the same scaleFactor.
- platform/graphics/ImageBuffer.h:
- platform/graphics/NamedImageGeneratedImage.cpp:
(WebCore::NamedImageGeneratedImage::drawPattern): Call ImageBuffer::createCompatibleBuffer().
- platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::updateCachedImageIfNeeded): On iOS, if the
physical memory is less than 1GB, do not allocate more than 16MB for the
PDF cachedImage.
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended): Call ImageBuffer::createCompatibleBuffer().
- rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::bufferForeground): Ditto.
Source/WTF:
- wtf/StdLibExtras.h: Add a constant value for GB (230).
- 4:52 PM Changeset in webkit [201628] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
global lexical environment variables are not accessible through functions created using the function constructor
https://bugs.webkit.org/show_bug.cgi?id=158319
Reviewed by Filip Pizlo.
When creating a function using the Function constructor, we were
using the global object instead of the global lexical environment
as the function's scope. We should be using the global lexical environment.
- runtime/FunctionConstructor.cpp:
(JSC::constructFunctionSkippingEvalEnabledCheck):
- tests/stress/function-constructor-reading-from-global-lexical-environment.js: Added.
(assert):
(test):
(ClassTDZ):
- 4:45 PM Changeset in webkit [201627] by
-
- 7 edits in trunk
[WebIDL] 'undefined' should be an acceptable value for nullable parameters
https://bugs.webkit.org/show_bug.cgi?id=158321
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline test. The test is failing because the first parameter to
createPattern is wrongly marked as nullable in our IDL and because our
implementation throws a legacy TYPE_MISMATCH_ERR instead of a standard
TypeError when getting null as first parameter. I will fix this bug
and this test via Bug 158322.
- canvas/2d.pattern.image.undefined-expected.txt:
Source/WebCore:
'undefined' should be an acceptable value for nullable parameters (and
should be converted to null):
Our bindings got most of the cases right but there was a bug in our
overload resolution code. This patch fixes it.
No new tests, already covered by existing tests.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheckExpression):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter):
LayoutTests:
Rebaseline existing test that is now passing.
- canvas/philip/tests/2d.pattern.image.undefined-expected.txt:
- 4:33 PM Changeset in webkit [201626] by
-
- 5 edits in trunk/Tools
Really display failing JSC stress tests in buildbot dashboard
https://bugs.webkit.org/show_bug.cgi?id=158324
Patch by Srinivasan Vijayaraghavan <svijayaraghavan@apple.com> on 2016-06-02
Reviewed by Alexey Proskuryakov.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotCombinedQueueView.js:
(BuildbotCombinedQueueView.prototype.update): Correctly check for string membership in array.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
(BuildbotIteration.prototype._parseData): Correctly check for string membership in array.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:
(BuildbotQueueView.prototype._popoverContentForJavaScriptCoreTestRegressions): Correctly check for string
membership in array.
(BuildbotQueueView.prototype._presentPopoverForJavaScriptCoreTestRegressions): Ensure that the correct URL is
generated after the first time.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:
(BuildbotTesterQueueView.prototype.appendBuilderQueueStatus): Correctly check for string membership in array.
- 4:14 PM Changeset in webkit [201625] by
-
- 2 edits in trunk/Websites/webkit.org
Update the example for wider color gamut images.
- blog-files/color-gamut/index.html:
- 4:07 PM Changeset in webkit [201624] by
-
- 7 edits2 adds in trunk
JS parser incorrectly handles invalid utf8 in error messages.
https://bugs.webkit.org/show_bug.cgi?id=158128
Reviewed by Saam Barati.
Source/JavaScriptCore:
The bug here was caused by us using PrintStream's toString method
to produce the error message for a parse error, even though toString
may produce a null string in the event of invalid utf8 that causes
the error in first case. So when we try to create an error message
containing the invalid character code, we set m_errorMessage to the
null string, as that signals "no error" we don't stop parsing, and
everything goes down hill from there.
Now we use the new toStringWithLatin1Fallback so that we can always
produce an error message, even if it contains invalid unicode. We
also add an additional fallback so that we can guarantee an error
message is set even if we're given a null string. There's a debug
mode assertion to prevent anyone accidentally attempting to clear
the message via setErrorMessage.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::logError):
- parser/Parser.h:
(JSC::Parser::setErrorMessage):
Source/WTF:
Add a new toStringWithLatin1Fallback that simply uses
String::fromUTF8WithLatin1Fallback, so we can avoid the
standard String::fromUTF8 null return.
- wtf/StringPrintStream.cpp:
(WTF::StringPrintStream::toStringWithLatin1Fallback):
- wtf/StringPrintStream.h:
LayoutTests:
Add a testcase.
- js/invalid-utf8-in-syntax-error-expected.txt: Added.
- js/script-tests/invalid-utf8-in-syntax-error.js: Added.
- 3:43 PM Changeset in webkit [201623] by
-
- 26 edits in trunk/Source/WebCore
Modernize how many platform/network classes do isolatedCopy().
https://bugs.webkit.org/show_bug.cgi?id=158313
Reviewed by Alex Christensen.
No new tests (Refactor, no behavior change).
- loader/WorkerThreadableLoader.h:
- platform/network/FormData.cpp:
(WebCore::FormData::isolatedCopy):
(WebCore::FormDataElement::isolatedCopy):
(WebCore::FormData::FormData): Deleted.
(WebCore::FormData::deepCopy): Deleted.
- platform/network/FormData.h:
- platform/network/HTTPHeaderMap.cpp:
(WebCore::HTTPHeaderMap::isolatedCopy):
(WebCore::HTTPHeaderMap::copyData): Deleted.
(WebCore::HTTPHeaderMap::adopt): Deleted.
- platform/network/HTTPHeaderMap.h:
- platform/network/ResourceErrorBase.cpp:
(WebCore::ResourceErrorBase::asResourceError):
(WebCore::ResourceErrorBase::isolatedCopy):
- platform/network/ResourceErrorBase.h:
(WebCore::ResourceErrorBase::platformCopy): Deleted.
- platform/network/ResourceLoadTiming.h:
(WebCore::ResourceLoadTiming::isolatedCopy): Not strictly needed for now, but makes it obvious
that changes will be needed if new members are added later.
- platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::isolatedCopy):
(WebCore::ResourceRequestBase::setAsIsolatedCopy):
(WebCore::ResourceRequestBase::copyData): Deleted.
- platform/network/ResourceRequestBase.h:
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::isolatedCopy):
(WebCore::ResourceResponseBase::copyData): Deleted.
- platform/network/ResourceResponseBase.h:
(WebCore::CrossThreadResourceResponseDataBase::CrossThreadResourceResponseDataBase): Deleted.
- platform/network/cf/ResourceError.h:
- platform/network/cf/ResourceErrorCF.cpp:
(WebCore::ResourceError::doPlatformIsolatedCopy):
(WebCore::ResourceError::platformCopy): Deleted.
- platform/network/cf/ResourceRequest.h:
- platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::doPlatformSetAsIsolatedCopy):
(WebCore::ResourceRequest::doPlatformCopyData): Deleted.
(WebCore::ResourceRequest::doPlatformAdopt): Deleted.
- platform/network/cf/ResourceResponse.h:
(WebCore::ResourceResponse::doPlatformCopyData): Deleted.
(WebCore::ResourceResponse::doPlatformAdopt): Deleted.
- platform/network/curl/ResourceError.h:
(WebCore::ResourceError::doPlatformIsolatedCopy):
- platform/network/curl/ResourceRequest.h:
(WebCore::ResourceRequest::doPlatformSetAsIsolatedCopy):
(WebCore::ResourceRequest::doPlatformCopyData): Deleted.
(WebCore::ResourceRequest::doPlatformAdopt): Deleted.
- platform/network/curl/ResourceResponse.h:
(WebCore::ResourceResponse::doPlatformCopyData): Deleted.
(WebCore::ResourceResponse::doPlatformAdopt): Deleted.
- platform/network/mac/ResourceErrorMac.mm:
(WebCore::ResourceError::doPlatformIsolatedCopy):
- platform/network/soup/ResourceError.h:
- platform/network/soup/ResourceErrorSoup.cpp:
(WebCore::ResourceError::doPlatformIsolatedCopy):
(WebCore::ResourceError::platformCopy): Deleted.
- platform/network/soup/ResourceRequest.h:
(WebCore::ResourceRequest::doPlatformSetAsIsolatedCopy):
(WebCore::ResourceRequest::doPlatformCopyData): Deleted.
(WebCore::ResourceRequest::doPlatformAdopt): Deleted.
- platform/network/soup/ResourceResponse.h:
(WebCore::ResourceResponse::doPlatformCopyData): Deleted.
(WebCore::ResourceResponse::doPlatformAdopt): Deleted.
- 3:18 PM Changeset in webkit [201622] by
-
- 3 edits1 add in trunk/Source/JavaScriptCore
Teach bytecode liveness about the debugger
https://bugs.webkit.org/show_bug.cgi?id=158288
Reviewed by Filip Pizlo.
There was a bug where we wouldn't always keep the scope register
on the stack when the debugger is enabled. The debugger always assumes
it can read from the scope. The bug happened in OSR exit from the FTL.
The FTL uses bytecode liveness for OSR exit. Bytecode liveness proved
that the scope register was dead, so the FTL OSR exit wroteundefined
into the scope's stack slot when OSR exiting to the baseline.
To fix this, I taught bytecode liveness' computeUsesForBytecodeOffset() that the
scope is used by every instruction except op_enter. This causes the
scope to be live-in at every instruction except op_enter.
- bytecode/BytecodeLivenessAnalysis.cpp:
(JSC::blockContainsBytecodeOffset):
(JSC::addAlwaysLiveLocals):
(JSC::findBasicBlockForBytecodeOffset):
(JSC::stepOverInstruction):
(JSC::computeLocalLivenessForBytecodeOffset):
(JSC::BytecodeLivenessAnalysis::runLivenessFixpoint):
- bytecode/UnlinkedCodeBlock.cpp:
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
- tests/stress/shadow-chicken-reading-from-scope-after-ftl-osr-exit-bytecode-liveness.js: Added.
(foo):
(catch):
- 3:15 PM Changeset in webkit [201621] by
-
- 1 edit10 adds in trunk/Websites/webkit.org
Adding some sample images for a blog post on color.
- blog-files/color-gamut/Flowers-AdobeRGB.jpg: Added.
- blog-files/color-gamut/Flowers-ProPhoto.jpg: Added.
- blog-files/color-gamut/Flowers-oog.jpg: Added.
- blog-files/color-gamut/Flowers-sRGB.jpg: Added.
- blog-files/color-gamut/Rose-AdobeRGB.jpg: Added.
- blog-files/color-gamut/Rose-ProPhoto.jpg: Added.
- blog-files/color-gamut/Rose-oog.jpg: Added.
- blog-files/color-gamut/Rose-sRGB.jpg: Added.
- blog-files/color-gamut/index.html: Added.
- 3:11 PM Changeset in webkit [201620] by
-
- 26 edits in trunk/Source/WebInspectorUI
Web Inspector: Modernize some function expressions that bind(this) to arrow functions
https://bugs.webkit.org/show_bug.cgi?id=158315
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-02
Reviewed by Brian Burg.
Convert a common "function(x) { ... }.bind(this)" pattern to use arrow
functions "(x) => { ... }", which lexically bindsthis, slightly faster,
and uses less memory.
- UserInterface/Base/Main.js:
(WebInspector._updateNewTabButtonState):
- UserInterface/Controllers/BreakpointPopoverController.js:
(WebInspector.BreakpointPopoverController.prototype._createPopoverContent):
- UserInterface/Controllers/TypeTokenAnnotator.js:
(WebInspector.TypeTokenAnnotator.prototype.insertAnnotations):
(WebInspector.TypeTokenAnnotator.prototype.insertAnnotations.): Deleted.
- UserInterface/Models/RenderingFrameTimelineRecord.js:
(WebInspector.RenderingFrameTimelineRecord.prototype._calculateDurationRemainder):
(WebInspector.RenderingFrameTimelineRecord):
- UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.requestContent):
- UserInterface/Models/Script.js:
(WebInspector.Script.prototype.requestScriptSyntaxTree):
(WebInspector.Script.prototype.requestScriptSyntaxTree.makeSyntaxTreeAndCallCallback): Deleted.
- UserInterface/Models/SourceCodeLocation.js:
(WebInspector.SourceCodeLocation.prototype.populateLiveDisplayLocationString):
- UserInterface/Models/WrappedPromise.js:
(WebInspector.WrappedPromise):
- UserInterface/Views/BreakpointActionView.js:
(WebInspector.BreakpointActionView.prototype._updateBody):
- UserInterface/Views/BreakpointTreeElement.js:
(WebInspector.BreakpointTreeElement.prototype._dataUpdated):
- UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers):
- UserInterface/Views/DefaultDashboardView.js:
(WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem.set item):
(WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem):
- UserInterface/Views/ErrorObjectView.js:
(WebInspector.ErrorObjectView.prototype.update):
- UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype.onattach):
(WebInspector.GeneralTreeElement.prototype.onattach.this._boundContextMenuEventHandler): Deleted.
- UserInterface/Views/InlineSwatch.js:
(WebInspector.InlineSwatch.prototype._getNextValidHEXFormat):
(WebInspector.InlineSwatch):
- UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WebInspector.LayerTreeDetailsSidebarPanel.prototype.refresh):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._showPopoverForSelectedNode):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._contentForPopover):
- UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._mouseup):
- UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):
- UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement.prototype.createGetterElement):
(WebInspector.ObjectTreeBaseTreeElement.prototype.createGetterElement.): Deleted.
- UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateEntries):
- UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView.prototype._updateEntries):
- UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection):
- UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeElementAddContextMenuItems):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpressionButtonClicked.this._codeMirror.addKeyMap): Deleted.
- UserInterface/Views/TabBar.js:
- UserInterface/Views/VisualStylePropertyEditor.js:
(WebInspector.VisualStylePropertyEditor.prototype._checkDependencies):
- 3:01 PM Changeset in webkit [201619] by
-
- 16 edits3 adds in trunk
REGRESSION(r200694): %ThrowTypeError% is not unique
https://bugs.webkit.org/show_bug.cgi?id=158231
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
The ES6 standard in section 9.2.7.1 states that %ThrowTypeError% is unique. This
change reverts the handling of TypeError before r200694 and then rolls in
throwTypeErrorGetterSetter() with the renamed throwTypeErrorArgumentsCalleeAndCallerGetterSetter().
- runtime/ClonedArguments.cpp:
(JSC::ClonedArguments::getOwnPropertySlot):
(JSC::ClonedArguments::materializeSpecials):
- runtime/JSBoundFunction.cpp:
(JSC::JSBoundFunction::finishCreation):
(JSC::JSBoundFunction::visitChildren):
- runtime/JSFunction.cpp:
(JSC::getThrowTypeErrorGetterSetter):
(JSC::JSFunction::callerGetter):
(JSC::JSFunction::defineOwnProperty):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::regExpProtoSymbolReplaceFunction):
(JSC::JSGlobalObject::regExpProtoGlobalGetter):
(JSC::JSGlobalObject::regExpProtoUnicodeGetter):
(JSC::JSGlobalObject::throwTypeErrorArgumentsCalleeAndCallerGetterSetter):
(JSC::JSGlobalObject::moduleLoader):
(JSC::JSGlobalObject::throwTypeErrorGetterSetter): Deleted.
(JSC::JSGlobalObject::throwTypeErrorCalleeAndCallerGetterSetter): Deleted.
(JSC::JSGlobalObject::throwTypeErrorArgumentsAndCallerInStrictModeGetterSetter): Deleted.
(JSC::JSGlobalObject::throwTypeErrorArgumentsAndCallerInClassContextGetterSetter): Deleted.
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::globalFuncThrowTypeError):
(JSC::globalFuncThrowTypeErrorArgumentsCalleeAndCaller):
(JSC::globalFuncThrowTypeErrorCalleeAndCaller): Deleted.
(JSC::globalFuncThrowTypeErrorArgumentsAndCallerInStrictMode): Deleted.
(JSC::globalFuncThrowTypeErrorArgumentsAndCallerInClassContext): Deleted.
- runtime/JSGlobalObjectFunctions.h:
- tests/stress/reflect-set.js:
LayoutTests:
Rebased tests for the new TypeError messages.
Added a new test, throw-type-error-is-unique.html.
- inspector/runtime/getProperties-expected.txt:
- js/basic-strict-mode-expected.txt:
- js/caller-property-expected.txt:
- js/class-method-and-constructor-properties-expected.txt:
- js/script-tests/caller-property.js:
(strictCaller):
(strictTailCaller):
- js/script-tests/class-method-and-constructor-properties.js:
(F.prototype.getElement):
(F):
(G.prototype.get item):
(G):
(H.prototype.arguments):
(H):
- js/script-tests/throw-type-error-is-unique.js: Added.
(ThrowTypeErrorSource):
(ThrowTypeErrorSource.prototype.checkTypeErrorFunctions):
(A):
(strictArguments):
(test):
- js/throw-type-error-is-unique-expected.txt: Added.
- js/throw-type-error-is-unique.html: Added.
- 2:53 PM Changeset in webkit [201618] by
-
- 5 edits in trunk
[iOS]: Some JSC stress tests fail running out of executable memory when the LLInt is disabled
https://bugs.webkit.org/show_bug.cgi?id=158317
Reviewed by Saam Barati.
Source/JavaScriptCore:
Updated these test to not run the "no-llint" variant when running on ARM machines.
- tests/stress/arrowfunction-lexical-bind-superproperty.js: Skip no-llint for ARM
(testCase):
- tests/stress/proxy-revoke.js: Skipp no-lint for ARM and ARM64
(assert):
Tools:
Added defaultNoNoLLIntRun variant to run the default tests with the exception of the no-llint
variant.
- Scripts/run-jsc-stress-tests:
- 2:24 PM Changeset in webkit [201617] by
-
- 20 edits3 adds in trunk/Source
Unreviewed, reland r201532. The associated regressions have been fixed
by r201584.
- 1:48 PM Changeset in webkit [201616] by
-
- 5 edits in branches/safari-602.1.32-branch/Source
Versioning.
- 1:37 PM Changeset in webkit [201615] by
-
- 2 edits in trunk/Source/WebCore
Crash under CachedResource::addClientToSet()
https://bugs.webkit.org/show_bug.cgi?id=158310
<rdar://problem/23643359>
Reviewed by Eric Carlson.
Only call CachedResource::addClient() on the resource returned
by CachedResourceLoader::requestMedia() if the resource is
non-null. CachedResourceLoader::requestMedia() can return null
in some cases so we need to handle this properly.
No new tests, no known reproduction case.
- platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
(WebCore::WebCoreAVFResourceLoader::startLoading):
- 1:35 PM Changeset in webkit [201614] by
-
- 6 edits in trunk/Source/WebCore
ScriptExecutionContext::Task constructor should take a NoncopyableFunction<void ()> as parameter
https://bugs.webkit.org/show_bug.cgi?id=158309
Reviewed by Brady Eidson.
ScriptExecutionContext::Task constructor should take a NoncopyableFunction<void ()>
as parameter for consistency with the other constructor and because this can be
called cross-thread.
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::suspend):
(WebCore::AudioContext::resume):
(WebCore::AudioContext::close):
(WebCore::AudioContext::suspendPlayback):
(WebCore::AudioContext::mayResumePlayback):
- Modules/webaudio/AudioDestinationNode.h:
(WebCore::AudioDestinationNode::resume):
(WebCore::AudioDestinationNode::suspend):
(WebCore::AudioDestinationNode::close):
- Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::resume):
(WebCore::DefaultAudioDestinationNode::suspend):
(WebCore::DefaultAudioDestinationNode::close):
- Modules/webaudio/DefaultAudioDestinationNode.h:
- dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::Task::Task):
- 1:05 PM Changeset in webkit [201613] by
-
- 4 edits in trunk/Websites/webkit.org
Fix typos and make some revisions to the B3 docs
https://bugs.webkit.org/show_bug.cgi?id=158311
Reviewed by Michael Saboff.
I found typos and fixed them. Also, I clarified some things:
- Is B3 IR platform-agnostic? Sort of. I tried to describe when it is (Values usually behave the same way regardless of CPU) and when it isn't (it lets you speak of registers if that's what you want to do, for example).
- How does isValidForm really get used? You don't really need to create an Inst to use it.
- Some other incremental improvements to make the docs clearer.
- docs/b3/assembly-intermediate-representation.html:
- docs/b3/index.html:
- docs/b3/intermediate-representation.html:
- 12:57 PM Changeset in webkit [201612] by
-
- 2 edits in trunk/Source/WebKit2
Crash under WebProcess::registerWithStateDumper()
https://bugs.webkit.org/show_bug.cgi?id=158304
<rdar://problem/25329276>
Reviewed by Anders Carlsson.
The issue is that the block in registerWithStateDumper() was executed in
a background thread and is iterating over m_pageMap HashMap. The crash
occurs when a page gets removed from the m_pageMap HashMap while the
block is iterating over this same HashMap in another thread.
The solution proposed is to execute the registerWithStateDumper()'s
block in the main thread.
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::registerWithStateDumper):
- 12:40 PM Changeset in webkit [201611] by
-
- 4 edits in trunk/Source
Use "= delete" for Locker(int)
Rubber stamped by Saam Barati.
Source/JavaScriptCore:
- runtime/ConcurrentJITLock.h:
(JSC::ConcurrentJITLocker::ConcurrentJITLocker):
Source/WTF:
See discussion: https://bugs.webkit.org/show_bug.cgi?id=158306#c8
- wtf/Locker.h:
(WTF::Locker::Locker):
(WTF::Locker::~Locker):
- 12:36 PM Changeset in webkit [201610] by
-
- 4 edits in trunk/Source/JavaScriptCore
ObjectPropertyCondition should have a isStillValidAssumingImpurePropertyWatchpoint function
https://bugs.webkit.org/show_bug.cgi?id=158308
Reviewed by Filip Pizlo.
Recently, structureEnsuresValidityAssumingImpurePropertyWatchpoint was converted to check
what should be isStillValidAssumingImpurePropertyWatchpoint. This patch fixes the API so
it should work as expected. This patch also changes generateConditions in
ObjectPropertyConditionSet to use isStillValidAssumingImpurePropertyWatchpoint.
- bytecode/ObjectPropertyCondition.cpp:
(JSC::ObjectPropertyCondition::structureEnsuresValidityAssumingImpurePropertyWatchpoint):
(JSC::ObjectPropertyCondition::isStillValidAssumingImpurePropertyWatchpoint):
- bytecode/ObjectPropertyCondition.h:
- bytecode/ObjectPropertyConditionSet.cpp:
- 12:21 PM Changeset in webkit [201609] by
-
- 4 edits in trunk/Source
Make it harder to accidentally pass an integer to a locker.
Rubber stamped by Keith Miller.
Source/JavaScriptCore:
- runtime/ConcurrentJITLock.h:
(JSC::ConcurrentJITLocker::ConcurrentJITLocker):
Source/WTF:
See here for the discussion: https://bugs.webkit.org/show_bug.cgi?id=158306#c3
- wtf/Locker.h:
(WTF::Locker::Locker):
(WTF::Locker::~Locker):
- 12:05 PM Changeset in webkit [201608] by
-
- 5 edits2 adds in trunk
Fix a couple of mistakes in CSSParserValue memory management
https://bugs.webkit.org/show_bug.cgi?id=158307
<rdar://problem/26127225>
Source/WebCore:
Patch by Darin Adler <Darin Adler> on 2016-06-02
Reviewed by Daniel Bates.
- css/CSSGrammar.y.in: Added a destructor for calc_func_term. This presumably
fixes some memory leaks in error cases. Removed an assertion about not needing
a call to destroy that was far too limited. Tweaked formatting of the percentage
ase in the key production. Indented calc_func_term to make it consistent with
other productions nearby.
- css/CSSParserValues.cpp:
(WebCore::CSSParserValueList::~CSSParserValueList): Use a modern for loop.
(WebCore::CSSParserValueList::deleteValueAt): Deleted. Unused function, and also
would have resulted in a memory leak unless the code already extracted the value
from the list.
(WebCore::CSSParserValueList::extend): Properly transfer ownership from one value
list to the other by setting the unit to 0 in the donor.
- css/CSSParserValues.h: Removed unused deleteValueAt function.
LayoutTests:
Reviewed by Darin Adler.
- fast/css/calc-with-two-variables-crash-expected.txt: Added.
- fast/css/calc-with-two-variables-crash.html: Added.
- 12:04 PM Changeset in webkit [201607] by
-
- 3 edits in trunk/Websites/perf.webkit.org
Build fix after r201564.
- public/v3/pages/analysis-category-page.js:
(AnalysisCategoryPage.prototype.updateFromSerializedState):
- public/v3/pages/create-analysis-task-page.js:
(CreateAnalysisTaskPage.prototype.updateFromSerializedState):
(CreateAnalysisTaskPage.prototype.render):
- 11:42 AM Changeset in webkit [201606] by
-
- 2 edits in trunk/Tools
LayoutTests time out intermittently due to alert about reopening Simulator after it unexpectedly quit
https://bugs.webkit.org/show_bug.cgi?id=158305
Reviewed by Alexey Proskuryakov.
- Scripts/webkitpy/port/ios.py:
(IOSSimulatorPort.clean_up_test_run): Delete simulator's savedState directories during cleanup.
- 11:41 AM Changeset in webkit [201605] by
-
- 5 edits in trunk/Source
Make it easier to use NoLockingNecessary
https://bugs.webkit.org/show_bug.cgi?id=158306
Reviewed by Keith Miller.
Source/JavaScriptCore:
Adapt to the new NoLockingNecessary API. More details in the WTF ChangeLog.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::instantiateLexicalVariables):
(JSC::BytecodeGenerator::emitPrefillStackTDZVariables):
(JSC::BytecodeGenerator::initializeBlockScopedFunctions):
(JSC::BytecodeGenerator::hoistSloppyModeFunctionIfNecessary):
(JSC::BytecodeGenerator::popLexicalScopeInternal):
(JSC::BytecodeGenerator::prepareLexicalScopeForNextForLoopIteration):
(JSC::BytecodeGenerator::variable):
(JSC::BytecodeGenerator::createVariable):
(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitPushFunctionNameScope):
- runtime/ConcurrentJITLock.h:
(JSC::ConcurrentJITLockerBase::ConcurrentJITLockerBase):
(JSC::ConcurrentJITLocker::ConcurrentJITLocker):
Source/WTF:
An idiom that we borrowed from LLVM is that if a function requires a lock to be held, we
have it take a const Locker& as its first argument. This may not communicate which lock is
to be held, but it does help us to remember that some lock must be held. So far, it's been
relatively easy to then figure out which lock. We've had bugs where we forgot to hold a
lock but I don't remember the last time we had a bug where we grabbed the wrong lock.
But sometimes, we know at the point where we call such a method that we actually don't
need to hold any lock. This usually happens during object construction. If we're
constructing some object then we usually know that we have not escaped it yet, so we don't
need to waste time acquiring its lock. We could solve this by having a separate set of
methods that don't do or require locking. This would be cumbersome, since usually for
every variant that takes const Locker&, there is already one that doesn't, and that one
will grab the lock for you. So this means having a third variant, that also doesn't take a
const Locker&, but does no locking. That's pretty weird.
So, we introduced NoLockingNecessary for situations like this. The idiom went like so:
Locker<Whatever> locker(Locker<Whatever>::NoLockingNecessary)
stuff->foo(locker);
Usually though, there would be some distance between where the locker is defined and where
it's used, so when you just look at stuff->foo(locker) in isolation you don't know if this
is a real locker or a NoLockingNecessary cast. Also, requiring two lines for this just
adds code.
This change makes this easier. Now you can just do:
stuff->foo(NoLockingNecessary).
This is because NoLockingNecessary has been pulled out into the WTF namespace (and is
usinged from the global namespace) and the Locker<> constructor that takes
NoLockingNecessaryTag is now implicit.
The only possible downside of this change is that people might use this idiom more
frequently now that it's easier to use. I don't think that's a bad thing. I'm now
convinced that this is not a bad idiom. When I was fixing an unrelated bug, I almost went
the way of adding more locking to some core JSC data structures, and in the process, I
needed to use NoLockingNecessary. It's clear that this is a general-purpose idiom and we
should not impose artificial constraints on its use.
- wtf/Locker.h:
(WTF::Locker::Locker):
(WTF::Locker::~Locker):
- 11:40 AM Changeset in webkit [201604] by
-
- 3 edits2 adds in trunk
SVG content renders in incorrect vertical position when padding-left is not specified
https://bugs.webkit.org/show_bug.cgi?id=158234
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-06-02
Reviewed by Darin Adler.
Source/WebCore:
Fix the optimization in RenderSVGRoot::buildLocalToBorderBoxTransform().
Use LayoutSize::isZero() instead of LayoutSize::isEmpty() to decide whether
there is borderAndPadding applied or not.
Test: svg/custom/svg-root-padding-individual.html
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::buildLocalToBorderBoxTransform):
LayoutTests:
Make sure the SVG root element is positioned correctly when either the sum
of its (leftPadding + rightPadding) or the sum of its (topPadding + bottomPadding)
is equal to zero.
- svg/custom/svg-root-padding-individual-expected.html: Added.
- svg/custom/svg-root-padding-individual.html: Added.
- 11:17 AM Changeset in webkit [201603] by
-
- 14 edits in trunk/Source
Overhaul cross-thread use of ResourceRequest, ResourceResponse, and ResourceError.
https://bugs.webkit.org/show_bug.cgi?id=158293
Reviewed by Darin Adler.
Source/WebCore:
No new tests (Refactor, no behavior change).
- loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFailAccessControlCheck):
- loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::removeRequestFromSessionCaches):
- platform/network/ResourceErrorBase.cpp:
(WebCore::ResourceErrorBase::isolatedCopy):
(WebCore::ResourceErrorBase::copy): Deleted.
- platform/network/ResourceErrorBase.h:
- platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::isolatedCopy):
(WebCore::ResourceRequestBase::setAsIsolatedCopy):
(WebCore::ResourceRequestBase::adopt): Deleted.
Made copyData private, and made "adopt" be "isolatedCopy".
Rest of the changes are all re-indenting the file.
- platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::responseContentDispositionEncodingFallbackArray):
(WebCore::ResourceRequestBase::reportUploadProgress):
(WebCore::ResourceRequestBase::setReportUploadProgress):
(WebCore::ResourceRequestBase::reportLoadTiming):
(WebCore::ResourceRequestBase::setReportLoadTiming):
(WebCore::ResourceRequestBase::reportRawHeaders):
(WebCore::ResourceRequestBase::setReportRawHeaders):
(WebCore::ResourceRequestBase::hiddenFromInspector):
(WebCore::ResourceRequestBase::setHiddenFromInspector):
(WebCore::ResourceRequestBase::requester):
(WebCore::ResourceRequestBase::setRequester):
(WebCore::ResourceRequestBase::encodingRequiresPlatformData):
(WebCore::ResourceRequestBase::ResourceRequestBase):
(WebCore::ResourceRequestBase::platformCompare):
(WebCore::operator==):
(WebCore::operator!=):
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::isolatedCopy):
(WebCore::ResourceResponseBase::adopt): Deleted.
- platform/network/ResourceResponseBase.h:
- platform/network/cf/ResourceError.h:
(WebCore::ResourceError::isolatedCopy): Deleted.
Removed platform-specific isolatedCopy, and re-indented the header:
- platform/network/cf/ResourceRequest.h:
(WebCore::ResourceRequest::ResourceRequest):
(WebCore::ResourceRequest::encodingRequiresPlatformData):
(WebCore::ResourceRequest::cachePartition):
(WebCore::ResourceRequest::setCachePartition):
(WebCore::ResourceRequest::setDomainForCachePartition):
(WebCore::ResourceRequest::resourcePrioritiesEnabled):
(WebCore::ResourceRequest::isolatedCopy): Deleted.
- platform/network/cf/ResourceResponse.h:
(WebCore::ResourceResponse::isolatedCopy): Deleted.
Source/WebKit2:
- NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::Entry):
- 10:59 AM Changeset in webkit [201602] by
-
- 12 edits in trunk/Source
Modernize various lambda captures
https://bugs.webkit.org/show_bug.cgi?id=158292
Reviewed by Brady Eidson.
Modernize various lambda captures, especially the ones unnecessarily
allocating objects on the heap and destroying them in the lambda.
Source/WebCore:
- Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
(WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
(WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
(WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
(WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
(WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
(WebCore::ThreadableWebSocketChannelClientWrapper::resume): Deleted.
- Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
- bindings/js/JSCallbackData.h:
(WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask):
- loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
(WebCore::WorkerThreadableLoader::MainThreadBridge::destroy):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didSendData):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFailAccessControlCheck):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFailRedirectCheck):
(WebCore::WorkerThreadableLoader::MainThreadBridge::cancel): Deleted.
Source/WebKit2:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
(WebKit::clearDiskCacheEntries):
(WebKit::NetworkProcess::fetchWebsiteData): Deleted.
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::traverse):
- NetworkProcess/cache/NetworkCache.h:
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::TraverseOperation::TraverseOperation):
- NetworkProcess/cache/NetworkCacheStorage.h:
- 10:50 AM Changeset in webkit [201601] by
-
- 10 edits in trunk
WebRTC: Update RTCPeerConnection.addTrack() to create (or reuse) an RTCRtpTransceiver
https://bugs.webkit.org/show_bug.cgi?id=158191
Reviewed by Eric Carlson.
Source/WebCore:
Update RTCPeerConnection.addTrack to create an RTCRtpTranscevier, or reuse an existing
transceiver that has not been used to send [1].
A new RtpTransceiverSet type is added that wraps a vector of RTCRtpTransceiver objects
and internally maintains two lists for efficient access to RTCRtpSender and RTCRtpReceiver
objects.
[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#dom-rtcpeerconnection-addtrack
Updated existing test: fast/mediastream/RTCPeerConnection-add-removeTrack.html
- Modules/mediastream/PeerConnectionBackend.h:
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::addTrack):
(WebCore::RTCPeerConnection::removeTrack):
(WebCore::RTCPeerConnection::completeAddTransceiver):
(WebCore::RTCPeerConnection::close):
- Modules/mediastream/RTCPeerConnection.h:
- Modules/mediastream/RTCRtpTransceiver.cpp:
(WebCore::RtpTransceiverSet::append):
- Modules/mediastream/RTCRtpTransceiver.h:
(WebCore::RtpTransceiverSet::list):
(WebCore::RtpTransceiverSet::getSenders):
(WebCore::RtpTransceiverSet::getReceivers):
LayoutTests:
Extend existing test to verify the created RTCRtpTransceiver object.
- fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt:
- fast/mediastream/RTCPeerConnection-add-removeTrack.html:
Add checks for bad argument lists and verify the created RTCRtpTransceiver.
- 9:40 AM Changeset in webkit [201600] by
-
- 3 edits in trunk/Source/WebKit2
Speculative revalidated request returns 200 instead of 304
https://bugs.webkit.org/show_bug.cgi?id=158256
Reviewed by Antti Koivisto and Carlos Garcia Campos.
Already conditional requests coming from WebCore should bypass the
SpeculativeLoadManager. This is because the validation is requested
by WebCore (usually the memory cache) and not our network cache. As
a result, we need to pipe the revalidation response (e.g. 304 status
code) back to WebCore instead of resolving it as disk cache level.
This should fix the /webkit2/WebKitWebResource/response unit test.
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::retrieve):
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::requestsHeadersMatch):
- 5:03 AM Changeset in webkit [201599] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening.
Unskip websocket tests passing after r201500.
- platform/win/TestExpectations:
- 3:33 AM Changeset in webkit [201598] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening.
The test storage/indexeddb/modern/blob-simple.html is passing.
- platform/win/TestExpectations:
- 2:48 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 2:31 AM Changeset in webkit [201597] by
-
- 5 edits1 add in trunk/LayoutTests
Unreviewed GTK+ gardening Additional rebaseline after r201397.
Added reference files for pixel tests.
- fast/forms/search-input-rtl-expected.txt:
- platform/gtk/fast/css/text-overflow-input-expected.png:
- platform/gtk/fast/forms/placeholder-position-expected.png:
- platform/gtk/fast/forms/search-input-rtl-expected.png: Added.
- platform/gtk/fast/forms/search-rtl-expected.png:
- 1:45 AM Changeset in webkit [201596] by
-
- 32 edits in trunk/Source
Source/WebCore:
Use more references in ResourceLoader related code
https://bugs.webkit.org/show_bug.cgi?id=158222
Reviewed by Darin Adler.
No change of behavior.
- css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::load):
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::clearDocument):
(WebCore::CSSFontSelector::beginLoadingFontSoon):
(WebCore::CSSFontSelector::beginLoadTimerFired):
- css/CSSFontSelector.h:
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::scheduleArchiveLoad):
- loader/DocumentLoader.h:
- loader/LoaderStrategy.h:
- loader/NetscapePlugInStreamLoader.cpp:
(WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
(WebCore::NetscapePlugInStreamLoader::create):
- loader/NetscapePlugInStreamLoader.h:
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::ResourceLoader):
(WebCore::ResourceLoader::start):
- loader/ResourceLoader.h:
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::RequestCountTracker::RequestCountTracker):
(WebCore::SubresourceLoader::SubresourceLoader):
(WebCore::SubresourceLoader::create):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::notifyDone):
- loader/SubresourceLoader.h:
- loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::maybeLoadResource):
- loader/appcache/ApplicationCacheHost.h:
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load):
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::incrementRequestCount):
(WebCore::CachedResourceLoader::decrementRequestCount):
- loader/cache/CachedResourceLoader.h:
Source/WebKit:
Use more references in ResourceLoader related code
https://bugs.webkit.org/show_bug.cgi?id=158222
Reviewed by Darin Adler.
- WebCoreSupport/WebResourceLoadScheduler.cpp:
(WebResourceLoadScheduler::loadResource):
- WebCoreSupport/WebResourceLoadScheduler.h:
Source/WebKit/mac:
Add WebIDL special operation support: serializer
https://bugs.webkit.org/show_bug.cgi?id=156293
Reviewed by Darin Adler.
- Plugins/Hosted/HostedNetscapePluginStream.mm:
(WebKit::HostedNetscapePluginStream::start):
- Plugins/WebNetscapePluginStream.mm:
(WebNetscapePluginStream::start):
Source/WebKit/win:
Use more references in ResourceLoader related code
https://bugs.webkit.org/show_bug.cgi?id=158222
Reviewed by Darin Adler.
- Plugins/PluginStream.cpp:
(WebCore::PluginStream::start):
Source/WebKit2:
Use more references in ResourceLoader related code
https://bugs.webkit.org/show_bug.cgi?id=158222
Reviewed by Darin Adler.
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::loadResource):
(WebKit::WebLoaderStrategy::schedulePluginStreamLoad):
(WebKit::WebLoaderStrategy::scheduleLoad):
(WebKit::WebLoaderStrategy::scheduleInternallyFailedLoad):
(WebKit::WebLoaderStrategy::startLocalLoad):
(WebKit::WebLoaderStrategy::networkProcessCrashed):
- WebProcess/Network/WebLoaderStrategy.h:
- WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::create):
(WebKit::WebResourceLoader::WebResourceLoader):
- WebProcess/Network/WebResourceLoader.h:
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::Stream::start):
- 12:36 AM Changeset in webkit [201595] by
-
- 2 edits in trunk/Source/WebCore
[Wayland] PlatformDisplayWayland destructor is super crashy
https://bugs.webkit.org/show_bug.cgi?id=157973
Reviewed by Michael Catanzaro.
EGL registers two at exist callbacks one to finish the display and another one to unload drivers, the one to
finish the display happens first. When our destructor is called the _eglFiniDisplay callback has already been
called, so we have a valid pointer for an already finished display. Then eglTerminate tries to find the display
in the global display list, but fails and for some reason it crashes when trying to return an error.
If atexit is called after the global PlatformDisplay constructor, the atexit handler is called before the
destructor. The atexit callbacks are called in reverse order, so if we register an atexit handler after the
global instace has been created and after EGL has been initialized, we could terminate the EGL display before
the EGL atexit handlers and the global PlatformDisplay destructor.
- platform/graphics/PlatformDisplay.cpp:
(WebCore::PlatformDisplay::initializeEGLDisplay):
Jun 1, 2016:
- 10:47 PM Changeset in webkit [201594] by
-
- 10 edits in trunk/Source
Get rid of StringCapture.
https://bugs.webkit.org/show_bug.cgi?id=158285
Reviewed by Chris Dumez.
Source/WebCore:
No new tests (Refactor, no behavior change).
- dom/Document.cpp:
(WebCore::Document::addConsoleMessage):
(WebCore::Document::addMessage):
- dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::installContentFilterUnblockHandler):
- loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
(WebVideoFullscreenControllerContext::setExternalPlayback):
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::addConsoleMessage):
(WebCore::WorkerGlobalScope::addMessage):
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
(WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject):
Source/WTF:
- wtf/text/WTFString.h:
(WTF::StringCapture::StringCapture): Deleted.
(WTF::StringCapture::string): Deleted.
(WTF::StringCapture::releaseString): Deleted.
(WTF::StringCapture::operator=): Deleted.
- 10:39 PM Changeset in webkit [201593] by
-
- 2 edits in trunk/Source/WebKit2
Notify client immediately if network session doesn't exist for a synchronous XHR load.
https://bugs.webkit.org/show_bug.cgi?id=158239
<rdar://problem/26344251>
Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2016-06-01
Reviewed by Brady Eidson.
For a synchronous XHR load, if the network session doesn't exist, we should notify NetworkLoadClient.
Otherwise the Web process could hang when waiting for the synchronous load to finish.
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::NetworkLoad):
- 10:21 PM Changeset in webkit [201592] by
-
- 4 edits2 adds in trunk
REGRESSION(r191907): Can't enter combining diacritic marks in Web Inspector fields
https://bugs.webkit.org/show_bug.cgi?id=158227
<rdar://problem/26232464>
Source/WebKit2:
Reviewed by Darin Adler and Alexey Proskuryakov.
Web Inspector uses a WKWebView subclass for the inspector frontend interface.
Since r191907, WKWebView does not have an inner WKView, and instead shares
a WebViewImpl to implement the same methods as WKView. So, WKView is no longer
involved at all when delivering keystrokes to the Web Inspector interface.
This caused a subtle regression where some keystrokes were not being interpreted
in the same way by AppKit because WKWebView does not conform to NSTextInputClient
but WKView does. AppKit won't automatically create a NSTextInputContext for a NSView
unless the subclass is declared as conforming to NSTextInputClient. Thus, the keystroke
never goes through NSTextInputContext machinery which converts the keystroke into
a combining diacritic character.
This regression is covered by a new API test.
- UIProcess/API/Cocoa/WKWebView.mm: mark WKWebView as conforming to NSTextInputClient.
Tools:
Reviewed by Alexey Proskuryakov.
Add a regression test that runs on Mac only.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewTextInput.mm: Added.
(-[DummyNavigationDelegate webView:didFinishNavigation:]):
(TEST):
- TestWebKitAPI/Tests/WebKit2Cocoa/editable-body.html: Added.
- 9:38 PM Changeset in webkit [201591] by
-
- 2 edits in trunk/Source/WebKit2
Try to fix ENABLE(IOS_TOUCH_EVENTS) builds.
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::touchEvent):
- 9:26 PM Changeset in webkit [201590] by
-
- 3 edits in trunk/Source/JavaScriptCore
Structure::previousID() races with Structure::allocateRareData()
https://bugs.webkit.org/show_bug.cgi?id=158280
Reviewed by Mark Lam.
The problem is that previousID() would test hasRareData() and then either load the
previous Structure from the rare data, or load it directly. allocateRareData() would set
the hasRareData() bit separately from moving the Structure pointer into the rare data. So
we'd have a race that would cause previousID() to sometimes return the rarae data instead
of the previous Structure.
The fix is to get rid of the hasRareData bit. We can use the structureID of the
previousOrRareData cell to determine if it's the previousID or the RareData. This fixes the
race and it's probably not any slower.
- runtime/Structure.cpp:
(JSC::Structure::Structure):
(JSC::Structure::allocateRareData):
- runtime/Structure.h:
- 9:07 PM Changeset in webkit [201589] by
-
- 2 edits1 add in trunk/Source/JavaScriptCore
Runaway WebContent process CPU & memory @ foxnews.com
https://bugs.webkit.org/show_bug.cgi?id=158290
Reviewed by Mark Lam.
Clear the thrown value at the end of the catch block so that the stack scanner won't
find the value during GC.
Added a new stress test.
- bytecompiler/NodesCodegen.cpp:
(JSC::TryNode::emitBytecode):
- tests/stress/recursive-try-catch.js: Added.
(logError):
(tryCallingBadFunction):
(recurse):
(test):
- 9:01 PM Changeset in webkit [201588] by
-
- 52 edits in trunk/Source
Audit RenderObject casts and fix problems and style issues found
https://bugs.webkit.org/show_bug.cgi?id=158221
Reviewed by Chris Dumez.
Source/WebCore:
- bindings/objc/DOM.mm:
(-[DOMElement image]): Use auto to get more specific types in code getting
the renderer for an element instead of dumbing down the type to RenderObject.
- dom/Element.cpp:
(WebCore::Element::scrollByUnits): Call renderer only once. The comment in
Node advises we should do this since it has a branch in it.
(WebCore::Element::absoluteEventBounds): Call renderer only once. Also use
auto for a rect type to clarify that we are not changing the type of the
rect returned by the fucntion.
(WebCore::Element::webkitGetRegionFlowRanges): Call renderer only once.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded): Use auto
to get a mroe specific renderer type.
- editing/SimplifyMarkupCommand.cpp:
(WebCore::SimplifyMarkupCommand::doApply): Call renderer only once.
- editing/cocoa/HTMLConverter.mm:
(HTMLConverter::_addAttachmentForElement): Add an obviously missing
null check for something that is null checked elsewhere.
(fileWrapperForURL): Ditto.
(fileWrapperForElement): Changed argument type to HTMLImageElement& since
the call site already checks the type of the object. Use HTMLImageElement::src
instead of repeating the code here. Check the type of the renderer instead of
assuming it's a RenderImage.
(WebCore::editingAttributedStringFromRange): Pass a reference, not a pointer.
- html/HTMLAnchorElement.cpp:
(WebCore::appendServerMapMousePosition): Take a reference to an event rather
than a "known to be non-null" pointer. Call renderer only once. Round the
floating point values rather than truncating them.
(WebCore::HTMLAnchorElement::handleClick): Pass a reference.
- html/HTMLAttachmentElement.cpp:
(WebCore::HTMLAttachmentElement::setFile): Removed the now-unneeded cast since
the renderer function returns a pointer of a more specific type now.
(WebCore::HTMLAttachmentElement::parseAttribute): Ditto.
(WebCore::HTMLAttachmentElement::attachmentTitle): Use auto& to avoid a bit of
reference count churn.
- html/HTMLAttachmentElement.h: Override renderer to return a more specific type.
This follows the pattern that ContainerNode::renderer uses.
- html/HTMLButtonElement.h: Ditto.
- html/HTMLCanvasElement.cpp: Gave the constants at the top of the file more
normal names. Removed unneeded "static" from them. Moved the
defaultInterpolationQuality constant here from the header because it doesn't
need to be there.
(WebCore::HTMLCanvasElement::HTMLCanvasElement): Updated for name changes.
(WebCore::HTMLCanvasElement::createElementRenderer): Removed unneeded code to
set m_rendererIsCanvas to record renderer type; we can just check the type.
(WebCore::HTMLCanvasElement::setHeight): Updated for name changes.
(WebCore::HTMLCanvasElement::setWidth): Ditto.
(WebCore::HTMLCanvasElement::reset): Check the type of the renderer directly
instead of calling m_rendererIsCanvas. This helped make it clear we were
do extra unneeded checks since a renderer can't both be a RenderCanvas and
not be a RenderBox.
(WebCore::HTMLCanvasElement::createImageBuffer): Updated for name changes.
- html/HTMLCanvasElement.h: Moved DefaultInterpolationQuality into the cpp file.
Use nullptr instead of 0. Removed m_rendererIsCanvas.
- html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::HTMLFieldSetElement): Initialize m_documentVersion
in the class definition.
(WebCore::HTMLFieldSetElement::~HTMLFieldSetElement): Use m_hasDisabledAttribute.
(WebCore::updateFromControlElementsAncestorDisabledStateUnder): Fixed typo.
(WebCore::HTMLFieldSetElement::disabledAttributeChanged): Fixed mistake in this
function that would cause the number of disabled fieldset elements to be too high
if the disabled attribute's value was changed from one value to another. Use a
boolean to track the old value; can't think of a solution that works without that.
(WebCore::HTMLFieldSetElement::childrenChanged): Fixed typo.
(WebCore::HTMLFieldSetElement::didMoveToNewDocument): Use m_hasDisabledAttribute.
(WebCore::HTMLFieldSetElement::updateAssociatedElements): Changed name to make it
clearer what this function does. Tweaked a bit without changing behavior.
(WebCore::HTMLFieldSetElement::associatedElements): Updated for name change.
(WebCore::HTMLFieldSetElement::length): Changed to call associatedElements instead of
repeating that it does.
- html/HTMLFieldSetElement.h: Override renderer to return a more specific type.
Also updated for other changes mentioned above.
- html/HTMLFrameElement.cpp:
(WebCore::HTMLFrameElement::HTMLFrameElement): Initialize booleans in the class
definition rather than doing it here.
(WebCore::HTMLFrameElement::parseAttribute): Call renderer only once.
- html/HTMLFrameElement.h: Override renderer to return a more specific type.
Also initialize some booleans in the class definition.
- html/HTMLIFrameElement.h: Override renderer to return a more specific type.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateRenderer): Added. Helper for a common idiom.
(WebCore::HTMLMediaElement::didAttachRenderers): Use auto to get a more specific
type for the renderer.
(WebCore::HTMLMediaElement::willDetachRenderers): Call renderer only once.
(WebCore::HTMLMediaElement::didRecalcStyle): Use updateRenderer to call renderer
only once.
(WebCore::HTMLMediaElement::loadResource): Ditto.
(WebCore::HTMLMediaElement::waitForSourceChange): Ditto.
(WebCore::HTMLMediaElement::noneSupported): Ditto.
(WebCore::HTMLMediaElement::setReadyState): Ditto.
(WebCore::HTMLMediaElement::progressEventTimerFired): Ditto.
(WebCore::HTMLMediaElement::selectNextSourceChild): Renamed goto label to use a style
that fits WebKit coding style. Call renderer only once in MediaQuery code.
(WebCore::HTMLMediaElement::mediaPlayerRepaint): Call renderer only once.
(WebCore::HTMLMediaElement::mediaPlayerSizeChanged): Use updateRenderer to call
renderer only once.
(WebCore::HTMLMediaElement::mediaPlayerRenderingCanBeAccelerated): Call renderer
only once.
(WebCore::HTMLMediaElement::mediaPlayerGraphicsDeviceAdapter): Call page only once.
(WebCore::HTMLMediaElement::mediaEngineWasUpdated): Use updateRenderer to call
renderer only once.
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged): Ditto.
(WebCore::HTMLMediaElement::updatePlayState): Ditto.
(WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer): Ditto.
(WebCore::HTMLMediaElement::resume): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerContentBoxRect): Call renderer only once.
(WebCore::mediaElementIsAllowedToAutoplay): Use auto to get a more specific type.
- html/HTMLMediaElement.h: Removed conditionals around forward declarations.
Tweaked formatting a bit. Added the updateRender function. Override renderer to
return a more specific type.
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::optionElementChildrenChanged): Don't use the renderer
just to get to the document for the AXObjectCache.
(WebCore::HTMLSelectElement::setLength): Use auto for the list items vector.
(WebCore::HTMLSelectElement::nextValidIndex): Ditto.
(WebCore::HTMLSelectElement::firstSelectableListIndex): Ditto.
(WebCore::HTMLSelectElement::nextSelectableListIndexPageAway): Ditto. Also add a
null check for the renderer.
(WebCore::HTMLSelectElement::updateListBoxSelection): Split an assertion with &&
in it into two separate assertions. Use auto for the list items vector and use
a reference for the list items.
(WebCore::HTMLSelectElement::listBoxOnChange): Use auto for the list items vector
and use a reference for the list items.
(WebCore::HTMLSelectElement::setRecalcListItems): Don't use the renderer
just to get to the document for the AXObjectCache.
(WebCore::HTMLSelectElement::selectOption): Use auto for the list items vector.
(WebCore::HTMLSelectElement::optionToListIndex): Ditto.
(WebCore::HTMLSelectElement::listToOptionIndex): Ditto.
(WebCore::HTMLSelectElement::searchOptionsForValue): Ditto.
(WebCore::HTMLSelectElement::restoreFormControlState): Ditto.
(WebCore::HTMLSelectElement::platformHandleKeydownEvent): Call renderer only once.
(WebCore::HTMLSelectElement::menuListDefaultEventHandler): Split an assertion with
&& in it into two separate assertions. Use auto for the list items vector. Call
renderer only once.
(WebCore::HTMLSelectElement::updateSelectedState): Use a reference for the list
item.
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler): Use auto for the list
items vvector. Call renderer less often; could not quite get it down to once.
(WebCore::HTMLSelectElement::defaultEventHandler): Call renderer only once.
(WebCore::HTMLSelectElement::lastSelectedListIndex): Use auto for the list items
vector and use a reference for the list items.
(WebCore::HTMLSelectElement::optionAtIndex): Use a reference for the list item.
(WebCore::HTMLSelectElement::accessKeySetSelectedIndex): Use auto for the list
items vector and use a reference for the list items.
(WebCore::HTMLSelectElement::length): Use auto for the list items vector.
- html/HTMLTextAreaElement.h: Override renderer to return a more specific type.
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::didAttachRenderers): Call renderer only once and
don't downcast it. There was no obvious type check because the renderer has a
guaranteed type, but this is now clearer because it's the renderer function
that returns a more specific type.
(WebCore::HTMLVideoElement::parseAttribute): Ditto.
(WebCore::HTMLVideoElement::setDisplayMode): Ditto.
- html/HTMLVideoElement.h: Override renderer to return a more specific type.
- html/HTMLWBRElement.h: Ditto.
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::canControlControlsManager): Removed
unneeded typecast in code that null checks a renderer.
(WebCore::isMainContent): Remove now-unneeded downcast of a renderer
obtained from an HTMLMediaElement. Fixed awkward formatting by splitting
an if statement into two.
(WebCore::isElementLargeEnoughForMainContent): Remove now unneeded downcast
of a renderer obtained from an HTMLMediaElement.
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::forwardEvent): Call renderer only once.
Also use auto more in the code rather than writing out types.
- html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::setPositionFromPoint): Used the renderBox
function more consistently for all the renderers used here; before,
some had null checks and others did not.
- html/shadow/TextControlInnerElements.cpp:
(WebCore::SearchFieldResultsButtonElement::defaultEventHandler): Use auto
a bit more.
- page/EventHandler.cpp:
(WebCore::enclosingScrollableArea): Removed a redundant null check and
stopped using the name "element" for a local variable that was not
always an element.
- page/PrintContext.cpp:
(WebCore::enclosingBoxModelObject): Rewrote loop to be simpler and tighter.
Also marked this inline since it's used only one place.
(WebCore::PrintContext::pageNumberForElement): Use auto for the return
value rather than writing out the type.
- page/SpatialNavigation.cpp:
(WebCore::isScrollableNode): Tighten the code and use auto a bit.
- platform/ios/WebVideoFullscreenControllerAVKit.mm: Add an include of
RenderVideo.h since this gets at the renderer for a video.
- rendering/RenderAttachment.h:
(WebCore::HTMLAttachmentElement::renderer): Added. Function is here because
it can only be called by code that includes this header. This matches the
pattern of RenderElement.h and ContainerNode::renderer.
- rendering/RenderFrame.cpp: Added now-needed include.
- rendering/RenderFrame.h:
(WebCore::HTMLFrameElement::renderer): Added. Same logic as above.
- rendering/RenderLayerFilterInfo.cpp:
(WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients): Use auto
a bit and call rendeer only once.
- rendering/RenderMedia.h:
(WebCore::HTMLMediaElement::renderer): Added. Same logic as above.
- rendering/RenderTextControlMultiLine.h:
(WebCore::HTMLTextAreaElement::renderer): Ditto.
- rendering/RenderVideo.cpp:
(WebCore::placeholder): Renamed. Tightened up argument type to match what
is passed at all the call sites. Use auto instead of RenderObject.
(WebCore::RenderVideo::offsetLeft): Use auto and the renamed function above.
(WebCore::RenderVideo::offsetTop): Ditto.
(WebCore::RenderVideo::offsetWidth): Ditto.
(WebCore::RenderVideo::offsetHeight): Ditto.
- rendering/RenderVideo.h:
(WebCore::HTMLVideoElement::renderer): Added. Same logic as above.
- svg/SVGGElement.cpp:
(WebCore::SVGGElement::createElementRenderer): Fixed typo.
- svg/SVGGraphicsElement.cpp:
(WebCore::SVGGraphicsElement::createElementRenderer): Removed
non-helpful oblique comment.
- svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::createElementRenderer): Ditto.
Source/WebKit/mac:
- Misc/WebNSPasteboardExtras.mm:
(imageFromElement): Use auto and tighten the logic a bit.
(-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]):
Use auto and added a comment about this not using imageFromElement.
- Plugins/WebBaseNetscapePluginView.mm:
(-[WebBaseNetscapePluginView _windowClipRect]): Consistently cast to
RenderEmbeddedObject, which is the class used for renderers for plug-ins.
(-[WebBaseNetscapePluginView inFlatteningPaint]): Ditto.
(-[WebBaseNetscapePluginView invalidatePluginContentRect:]): Ditto.
(-[WebBaseNetscapePluginView actualVisibleRectInWindow]): Ditto.
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::createPlugin): Changed code so it does a null check
rather than assuming the renderer is non-null.
(WebFrameLoaderClient::createJavaAppletWidget): Ditto.
Source/WebKit2:
- Shared/WebRenderObject.cpp:
(WebKit::WebRenderObject::WebRenderObject): Tightened up the code that
builds the tree of objects; fewer local variables.
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::invalidateRect): Cast to RenderEmbeddedObject since
that is the class used for plug-ins.
(WebKit::PluginView::pluginProcessCrashed): Ditto.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createPlugin): Ditto.
(WebKit::WebPage::plugInIsPrimarySize): Check the renderer for null here.
Did not change this to RenderEmbeddedObject, though, because I wasn't
absolute certain this is only called with that type of renderer.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::rangeForWebSelectionAtPosition): Tweaked.
- 8:38 PM Changeset in webkit [201587] by
-
- 7 edits in trunk/Source/WebKit2
Modernize lambda usage for all callers of RunLoop::dispatch() (take 2).
https://bugs.webkit.org/show_bug.cgi?id=158277
Reviewed by Chris Dumez.
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::deleteDumpFile):
- Platform/IPC/Connection.cpp:
(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::removeWorkQueueMessageReceiver):
(IPC::Connection::invalidate):
(IPC::Connection::sendMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::postConnectionDidCloseOnConnectionWorkQueue):
- UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):
- UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::destroySessionStorageNamespace):
(WebKit::StorageManager::setAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::cloneSessionStorageNamespace):
(WebKit::StorageManager::processDidCloseConnection):
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
- 8:34 PM Changeset in webkit [201586] by
-
- 5 edits3 adds in trunk
[JSC] Some setters for components of Date do not timeClip() their result
https://bugs.webkit.org/show_bug.cgi?id=158278
Source/JavaScriptCore:
rdar://problem/25131426
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-01
Reviewed by Geoffrey Garen.
Many of the setters where not doing timeClip() on the computed UTC
time since Epoch.
See http://www.ecma-international.org/ecma-262/6.0/#sec-date.prototype.setdate
and the following sections for the definition.
- runtime/DatePrototype.cpp:
(JSC::setNewValueFromTimeArgs):
(JSC::setNewValueFromDateArgs):
Source/WTF:
Unreviewed.
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-01
- wtf/DateMath.cpp:
(WTF::equivalentYearForDST): Deleted.
The assertion is bogus.
As the comments above explains, the function is completely wrong for years
outside [1900-2100].
The tests passing large values for years are failing (year <= maxYear).
The weird NaN test is a mystery. The old changelog does not explain it.
LayoutTests:
rdar://problem/25131426
Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-01
Reviewed by Geoffrey Garen.
New test coverage for large values.
Note that some of those tests are still failing with this patch.
The reason is our code handling month and years is unable to deal
with values outside int32.
Changing that is a bit more complicated due to the number of users
of DateMath. I leave that for the future.
- js/date-timeClip-large-values-expected.txt: Added.
- js/date-timeClip-large-values.html: Added.
- js/script-tests/date-timeClip-large-values.js: Added.
- 8:19 PM Changeset in webkit [201585] by
-
- 2 edits in trunk/Source/WebCore
LayoutTest accessibility/ios-simulator/attributed-string-for-range.html failing on ios-simulator debug
https://bugs.webkit.org/show_bug.cgi?id=158279
Reviewed by Alexey Proskuryakov.
Just use the same description for debug and release. We're not getting any benefit from having two.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper description]):
- 8:18 PM Changeset in webkit [201584] by
-
- 6 edits in trunk/Source/JavaScriptCore
canOptimizeStringObjectAccess should use ObjectPropertyConditions rather than structure watchpoints
https://bugs.webkit.org/show_bug.cgi?id=158291
Reviewed by Benjamin Poulain.
The old StringObject primitive access code used structure watchpoints. This meant that
if you set a watchpoint on String.prototype prior to tiering up to the DFG then added
a new property to String.prototype then we would never use StringObject optimizations.
This made property caching in the LLInt bad because it meant we would watchpoint
String.prototype very early in the program, which hurt date-format-xpab.js since that
benchmark relies on the StringObject optimizations.
This patch also extends ObjectPropertyConditionSet to be able to handle a slotBase
equivalence condition. Since that makes the code for generating the DFG watchpoints
significantly cleaner.
- bytecode/ObjectPropertyCondition.cpp:
(JSC::ObjectPropertyCondition::structureEnsuresValidityAssumingImpurePropertyWatchpoint):
- bytecode/ObjectPropertyConditionSet.cpp:
(JSC::ObjectPropertyConditionSet::hasOneSlotBaseCondition):
(JSC::ObjectPropertyConditionSet::slotBaseCondition):
(JSC::generateConditionsForPrototypeEquivalenceConcurrently):
- bytecode/ObjectPropertyConditionSet.h:
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::isStringPrototypeMethodSane):
(JSC::DFG::Graph::canOptimizeStringObjectAccess):
- dfg/DFGGraph.h:
- 6:09 PM Changeset in webkit [201583] by
-
- 2 edits in trunk/Source/WebKit2
[iOS] Regression(r200972): Crash under WebKit::WebPage::selectTextWithGranularityAtPoint()
https://bugs.webkit.org/show_bug.cgi?id=158284
<rdar://problem/26573954>
Reviewed by Ryosuke Niwa.
range can be null but r200972 started dereferencing it without null
check. This patch adds a null check for range and uses the pre-r200972
code path if range is null.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectTextWithGranularityAtPoint):
- 5:45 PM Changeset in webkit [201582] by
-
- 5 edits in branches/safari-601-branch/Source
Versioning.
- 5:43 PM Changeset in webkit [201581] by
-
- 5 edits in branches/safari-601.1.46-branch/Source
Versioning.
- 5:38 PM Changeset in webkit [201580] by
-
- 2 edits in tags/Safari-602.1.35/Source/WebCore
Merged r201576. rdar://problem/26584828
- 5:23 PM Changeset in webkit [201579] by
-
- 2 edits in trunk/Source/WebCore
Use HashMap::ensure() in DocumentOrderedMap::add()
https://bugs.webkit.org/show_bug.cgi?id=158283
Reviewed by Ryosuke Niwa.
Use HashMap::ensure() in DocumentOrderedMap::add() to avoid constructing
a MapEntry if the key is already present in the HashMap.
- dom/DocumentOrderedMap.cpp:
(WebCore::DocumentOrderedMap::add):
- 5:23 PM Changeset in webkit [201578] by
-
- 1 copy in tags/Safari-602.1.32.7
New tag.
- 5:22 PM Changeset in webkit [201577] by
-
- 1 copy in tags/Safari-601.1.46.144
New tag.
- 5:09 PM Changeset in webkit [201576] by
-
- 2 edits in trunk/Source/WebCore
Update QuartzCoreSPI.h for <rdar://problem/26584828>.
- platform/spi/cocoa/QuartzCoreSPI.h:
- 4:38 PM Changeset in webkit [201575] by
-
- 25 edits in trunk/Source
Modernize lambda usage for all callers of RunLoop::dispatch().
https://bugs.webkit.org/show_bug.cgi?id=158265
Reviewed by Chris Dumez.
Source/WebCore:
No new tests (Refactor, no behavior change).
- Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::InProcessIDBServer::deleteDatabase):
(WebCore::InProcessIDBServer::didDeleteDatabase):
(WebCore::InProcessIDBServer::openDatabase):
(WebCore::InProcessIDBServer::didOpenDatabase):
(WebCore::InProcessIDBServer::didAbortTransaction):
(WebCore::InProcessIDBServer::didCommitTransaction):
(WebCore::InProcessIDBServer::didCreateObjectStore):
(WebCore::InProcessIDBServer::didDeleteObjectStore):
(WebCore::InProcessIDBServer::didClearObjectStore):
(WebCore::InProcessIDBServer::didCreateIndex):
(WebCore::InProcessIDBServer::didDeleteIndex):
(WebCore::InProcessIDBServer::didPutOrAdd):
(WebCore::InProcessIDBServer::didGetRecord):
(WebCore::InProcessIDBServer::didGetCount):
(WebCore::InProcessIDBServer::didDeleteRecord):
(WebCore::InProcessIDBServer::didOpenCursor):
(WebCore::InProcessIDBServer::didIterateCursor):
(WebCore::InProcessIDBServer::abortTransaction):
(WebCore::InProcessIDBServer::commitTransaction):
(WebCore::InProcessIDBServer::didFinishHandlingVersionChangeTransaction):
(WebCore::InProcessIDBServer::createObjectStore):
(WebCore::InProcessIDBServer::deleteObjectStore):
(WebCore::InProcessIDBServer::clearObjectStore):
(WebCore::InProcessIDBServer::createIndex):
(WebCore::InProcessIDBServer::deleteIndex):
(WebCore::InProcessIDBServer::putOrAdd):
(WebCore::InProcessIDBServer::getRecord):
(WebCore::InProcessIDBServer::getCount):
(WebCore::InProcessIDBServer::deleteRecord):
(WebCore::InProcessIDBServer::openCursor):
(WebCore::InProcessIDBServer::iterateCursor):
(WebCore::InProcessIDBServer::establishTransaction):
(WebCore::InProcessIDBServer::fireVersionChangeEvent):
(WebCore::InProcessIDBServer::didStartTransaction):
(WebCore::InProcessIDBServer::didCloseFromServer):
(WebCore::InProcessIDBServer::notifyOpenDBRequestBlocked):
(WebCore::InProcessIDBServer::databaseConnectionClosed):
(WebCore::InProcessIDBServer::abortOpenAndUpgradeNeeded):
(WebCore::InProcessIDBServer::didFireVersionChangeEvent):
(WebCore::InProcessIDBServer::openDBRequestCancelled):
(WebCore::InProcessIDBServer::confirmDidCloseFromServer):
(WebCore::InProcessIDBServer::getAllDatabaseNames):
(WebCore::InProcessIDBServer::didGetAllDatabaseNames):
- Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously):
- page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::invalidate):
(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):
(WebCore::ThreadedScrollingTree::currentSnapPointIndicesDidChange):
(WebCore::ThreadedScrollingTree::handleWheelEventPhase):
(WebCore::ThreadedScrollingTree::setActiveScrollSnapIndices):
(WebCore::ThreadedScrollingTree::deferTestsForReason):
(WebCore::ThreadedScrollingTree::removeTestDeferralForReason):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::platformPrecache):
- platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
(WebCore::DisplayRefreshMonitorMac::displayLinkFired):
- platform/network/DataURLDecoder.cpp:
(WebCore::DataURLDecoder::createDecodeTask):
(WebCore::DataURLDecoder::decode):
Source/WebKit2:
- DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::fetchWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteData):
(WebKit::DatabaseProcess::deleteWebsiteDataForOrigins):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::fetchDiskCacheEntries):
(WebKit::NetworkProcess::fetchWebsiteData):
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::remove):
(WebKit::NetworkCache::retrieveFromMemory):
- Platform/IPC/Connection.cpp:
(IPC::Connection::SyncMessageState::processIncomingMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::connectionDidClose):
(IPC::Connection::enqueueIncomingMessage):
- Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::receiveSourceEventHandler):
- Shared/mac/CookieStorageShim.mm:
(-[WKNSURLSessionLocal _getCookieHeadersForTask:completionHandler:]):
- UIProcess/API/APIUserContentExtensionStore.cpp:
(API::UserContentExtensionStore::lookupContentExtension):
(API::UserContentExtensionStore::compileContentExtension):
(API::UserContentExtensionStore::removeContentExtension):
- UIProcess/Launcher/ProcessLauncher.cpp:
(WebKit::ProcessLauncher::ProcessLauncher):
- UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService):
- UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::getSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins):
(WebKit::StorageManager::getLocalStorageOriginDetails):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigin):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::isWebProcessResponsive):
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::isResponsive):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchData):
- WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
(WebKit::NetscapePlugin::pluginThreadAsyncCall):
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::unprotectPluginFromDestruction):
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent):
(WebKit::EventDispatcher::gestureEvent):
(WebKit::EventDispatcher::touchEvent):
- WebProcess/WebPage/ViewUpdateDispatcher.cpp:
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):
- 3:49 PM Changeset in webkit [201574] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r201385) ASSERT in WebCore::HTMLMediaElement::updateActiveTextTrackCues + 5688
https://bugs.webkit.org/show_bug.cgi?id=158164
<rdar://problem/26498634>
Reviewed by Jer Noble.
No new tests, this prevents an assert in existing tests.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement): Call beginIgnoringTrackDisplayUpdateRequests
so we avoid doing unnecessary work triggered by destruction.
- 3:22 PM Changeset in webkit [201573] by
-
- 7 edits in trunk/Source/JavaScriptCore
Unreviewed, rolling in r201436.
https://bugs.webkit.org/show_bug.cgi?id=158143
r201562 should haved fixed the Dromaeo DOM core regression.
Restored changeset:
"REGRESSION: JSBench spends a lot of time transitioning
to/from dictionary"
https://bugs.webkit.org/show_bug.cgi?id=158045
http://trac.webkit.org/changeset/201436
- 2:43 PM Changeset in webkit [201572] by
-
- 2 edits in trunk/Source/WebCore
Fix iOS build.
- platform/spi/cg/CoreGraphicsSPI.h: No ColorSync on iOS.
- 2:43 PM Changeset in webkit [201571] by
-
- 2 edits in trunk/Source/WebCore
Crash under eventTargetRespectingTargetRules()
https://bugs.webkit.org/show_bug.cgi?id=158273
<rdar://problem/26343998>
Reviewed by Alex Christensen.
The code would call nodeOrHostIfPseudoElement(), which can return null
and then dereference it in eventTargetRespectingTargetRules() without
null check. This patch adds a null check. When the node is null, the
while loop after will do nothing and thus the target will not be used.
No new tests, we do not have a good reproduction case.
- dom/EventPath.cpp:
(WebCore::EventPath::EventPath):
- 2:40 PM Changeset in webkit [201570] by
-
- 14 edits in trunk/Source/WebCore
Unreviewed, rolling out r201551 and r201552.
https://bugs.webkit.org/show_bug.cgi?id=158275
This change caused 3 API tests to crash on ios-simulator
(Requested by ryanhaddad on #webkit).
Reverted changesets:
"Precache primary font in a secondary thread"
https://bugs.webkit.org/show_bug.cgi?id=158243
http://trac.webkit.org/changeset/201551
"Remove accidental fprintf."
http://trac.webkit.org/changeset/201552
Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-01
- 2:31 PM Changeset in webkit [201569] by
-
- 2 edits in branches/safari-602.1.32-branch/Source/WebCore
Merge r201567. rdar://problem/25388848
- 2:27 PM Changeset in webkit [201568] by
-
- 6 edits2 adds in trunk
AX: iOS: VoiceOver can't access attachments in mail messages
https://bugs.webkit.org/show_bug.cgi?id=158198
Reviewed by Joanmarie Diggs.
Source/WebCore:
Replaced elements, like attachemnts, were not being exposed in the attributed string returned to VoiceOver.
Make sure they are exposed with the attachment character, pointing to the actual element.
Test: accessibility/ios-simulator/attributed-string-for-range.html
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(AccessibilityUnignoredAncestor):
(-[WebAccessibilityObjectWrapper _stringForRange:attributed:]):
Tools:
- DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::stringForRange):
(AccessibilityUIElement::attributedStringForRange):
(AccessibilityUIElement::attributedStringRangeIsMisspelled):
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::attributedStringForRange):
(WTR::AccessibilityUIElement::attributedStringRangeIsMisspelled):
LayoutTests:
- accessibility/ios-simulator/attributed-string-for-range.html: Added.
- 1:55 PM Changeset in webkit [201567] by
-
- 2 edits in trunk/Source/WebCore
setVideoFullscreenGravity() has no effect on the fullscreen video layer
https://bugs.webkit.org/show_bug.cgi?id=158267
Reviewed by Eric Carlson.
When we moved to a 2-AVPlayerLayer solution, we didn't update setVideoFullscreenGravity()
to change the correct layer's videoGravity property.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenGravity):
- 1:32 PM Changeset in webkit [201566] by
-
- 6 edits1 delete in trunk
Unreviewed, rolling out r201488.
https://bugs.webkit.org/show_bug.cgi?id=158268
Caused 23% regression on JetStream's crypto-md5 (Requested by
rniwa on #webkit).
Reverted changeset:
"[ESNext] Support trailing commas in function param lists"
https://bugs.webkit.org/show_bug.cgi?id=158020
http://trac.webkit.org/changeset/201488
- 1:15 PM Changeset in webkit [201565] by
-
- 4 edits in trunk/Source/WebCore
Fix null dereferencing in ResourceTimingInformation::addResourceTiming
https://bugs.webkit.org/show_bug.cgi?id=158266
rdar://problem/26528466
Patch by Alex Christensen <achristensen@webkit.org> on 2016-06-01
Reviewed by Chris Dumez.
This would crash sometimes in http/tests/security/cross-frame-access-custom.html
- loader/ResourceTimingInformation.cpp:
(WebCore::ResourceTimingInformation::addResourceTiming):
- loader/ResourceTimingInformation.h:
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::loadDone):
We would dereference a null pointer on the first instruction when calling
Document::parentDocument from ResourceTimingInformation::addResourceTiming,
which means the document was null. CachedResourceLoader::document even has
a comment saying it can be null, so we should check it before using it.
- 12:55 PM Changeset in webkit [201564] by
-
- 15 edits in trunk/Websites/perf.webkit.org
v3 UI should support marking and unmarking outliers as well as hiding them
https://bugs.webkit.org/show_bug.cgi?id=158248
Rubber-stamped by Chris Dumez.
Added the support for marking and unmarking a sequence of points as outliers. Unlike v2, we now support marking
multiple points as outliers in a single click. Also fixed a bug that outliers are never explicitly hidden in v3 UI.
This patch splits ChartStyles.createChartSourceList into two functions: resolveConfiguration and createSourceList
to separate the work of resolving platform and metric IDs to their respective model objects, and creating a source
list used by TimeSeriesChart to fetch measurement sets. createSourceList is called again when filtering options are
changed.
It also adds noCache option to TimeSeriesChart's fetchMeasurementSets, MeasurementSet's fetchBetween and
_fetchPrimaryCluster to update the measurement sets after marking or unmarking points as outliers. In addition, it
fixes a bug that the annotation bars for analysis tasks are not updated in charts page after creating an analysis
task by adding noCache option to ChartPaneBase's fetchAnalysisTasks, AnalysisTask's fetchByPlatformAndMetric and
_fetchSubset.
Finally, this patch splits ChartPane._makeAnchorToOpenPane into _makePopoverActionItem, _makePopoverOpenOnHover and
_setPopoverVisibility for clarity.
- public/v3/components/chart-pane-base.js:
(ChartPaneBase): Added _disableSampling and _showOutliers as instance variables.
(ChartPaneBase.prototype.configure):
(ChartPaneBase.prototype.isSamplingEnabled): Added.
(ChartPaneBase.prototype.setSamplingEnabled): Added. When a filtering option is updated, recreate the source list
so that TimeSeriesChart.setSourceList can re-fetch the measurement set JSONs.
(ChartPaneBase.prototype.isShowingOutliers): Added.
(ChartPaneBase.prototype.setShowOutliers): Added. Ditto for calling _updateSourceList.
(ChartPaneBase.prototype._updateSourceList): Added.
(ChartPaneBase.prototype.fetchAnalysisTasks): Renamed from _fetchAnalysisTasks. Now takes noCache as an argument
instead of platform and metric IDs since they're on instance variables.
- public/v3/components/chart-styles.js:
(ChartStyles.resolveConfiguration): Renamed from createChartSourceList. Just resolves platform and metric IDs.
(ChartStyles.createSourceList): Extracted from createChartSourceList since it needs to be called when a filtering
option is changed as well as when ChartPaneBase.prototype.configure is called.
(ChartStyles.baselineStyle): Now takes filtering options.
(ChartStyles.targetStyle): Ditto.
(ChartStyles.currentStyle): Ditto.
- public/v3/components/interactive-time-series-chart.js:
(InteractiveTimeSeriesChart.prototype.currentPoint): Find the point in _fetchedTimeSeries when
_sampledTimeSeriesData hasn't been computed yet as a fallback (e.g. when the chart hasn't been rendered yet).
(InteractiveTimeSeriesChart.prototype.selectedPoints): Added.
(InteractiveTimeSeriesChart.prototype.firstSelectedPoint): Added.
(InteractiveTimeSeriesChart.prototype.lockedIndicator): Added. Returns the current point if it's locked.
- public/v3/components/time-series-chart.js:
(TimeSeriesChart.prototype.setDomain):
(TimeSeriesChart.prototype.setSourceList): Added. Re-create _fetchedTimeSeries when filtering options have changed.
Don't re-fetch measurement set JSONs here since showing outliers can be done entirely in the front end.
(TimeSeriesChart.prototype.fetchMeasurementSets): Extracted out of setDomain. Now takes noCache as an argument.
ChartPane._markAsOutlier
(TimeSeriesChart.prototype.firstSampledPointBetweenTime): Added.
- public/v3/models/analysis-task.js:
(AnalysisTask.fetchByPlatformAndMetric): Added noCache as an argument.
(AnalysisTask._fetchSubset): Ditto.
- public/v3/models/measurement-adaptor.js:
(MeasurementAdaptor.prototype.isOutlier): Added.
(MeasurementAdaptor.prototype.applyToAnalysisResults): Add markedOutlier as a property on each point.
- public/v3/models/measurement-cluster.js:
(MeasurementCluster.prototype.addToSeries): Fixed the bug that filtering outliers was broken as _markedOutlierIndex
is undefined here. Use MeasurementAdaptor's isOutlier instead.
- public/v3/models/measurement-set.js:
(MeasurementSet.prototype.fetchBetween): Added noCache as an argument. Reset _primaryClusterPromise and _allFetches
when noCache is true since we need to re-fetch the primary cluster as well as all secondary clusters now.
(MeasurementSet.prototype._fetchPrimaryCluster): Added noCache as an argument. Directly invoke the JSON API at
/api/measurement-set to re-generate all clusters' JSON files instead of first fetching the cached version.
(MeasurementSet.prototype._fetchSecondaryCluster):
(MeasurementSet.prototype._didFetchJSON): Removed a bogus assertion since this function is called on secondary
clusters as well as primary clusters.
(MeasurementSet.prototype._addFetchedCluster): Reimplemented this function using an insertion sort. Also remove the
existing entry if the fetch cluster should replace it.
- public/v3/models/time-series.js:
(TimeSeries.prototype.dataBetweenPoints): Removed the dead code to filter out outliers. This is done in addToSeries
of MeasurementCluster instead.
- public/v3/pages/chart-pane.js:
(ChartPane): Renamed pane to popover since it was confusing to have a pane inside a pane class. As such, renamed
_paneOpenedByClick to _lockedPopover.
(ChartPane.prototype.serializeState): Added the code to serialize filtering options in the serialized state URL.
(ChartPane.prototype.updateFromSerializedState): Ditto for parsing.
(ChartPane.prototype._analyzeRange): Extracted out of render(). Also fixed a bug that the charts page don't show
the newly created analysis task by invoking fetchAnalysisTasks with noCache set to true.
(ChartPane.prototype._markAsOutlier): Added.
(ChartPane.prototype._renderActionToolbar): A bunch of changes due to pane -> popover rename. Also added a popover
for filtering options.
(ChartPane.prototype._makePopoverActionItem): Extracted from _makeAnchorToOpenPane.
(ChartPane.prototype._makePopoverOpenOnHover): Ditto.
(ChartPane.prototype._setPopoverVisibility): Ditto.
(ChartPane.prototype._renderFilteringPopover): Added.
(ChartPane.htmlTemplate): Added a popover for specifying filtering options. Also added .popover on each popover.
(ChartPane.cssTemplate): Updated the style to make use of .popover.
- public/v3/pages/charts-page.js:
(ChartsPage.prototype.graphOptionsDidChange): Added. Updates the URL state when a filtering option is modified.
- public/v3/pages/dashboard-page.js:
(DashboardPage.prototype._createChartForCell):
- public/v3/pages/page-router.js:
(PageRouter.prototype._serializeHashQueryValue): Serialize a set of strings as | separated tokens.
(PageRouter.prototype._deserializeHashQueryValue): Rewrote the function as the serialized URL can no longer be
parsed as a JSON as | separated tokens can't be converted into a valid JSON construct with a simple regex.
- unit-tests/measurement-set-tests.js: Added a test case for fetchBetween with noCache=true.
- 12:47 PM Changeset in webkit [201563] by
-
- 11 edits in branches/safari-601.1.46-branch/Source/WebCore
Merged r201561. rdar://problem/26475175
- 12:32 PM Changeset in webkit [201562] by
-
- 4 edits in trunk/Source/JavaScriptCore
Dictionary property access should be fast
https://bugs.webkit.org/show_bug.cgi?id=158250
Reviewed by Keith Miller.
We have some remnant code that unnecessarily takes a slow path for
dictionaries. This caused the Dromaeo regression in r201436. Let's fix
that.
- jit/Repatch.cpp:
(JSC::tryCacheGetByID): Attempt to flatten a dictionary if necessary, but
not too much. This is our idiom in other places.
(JSC::tryCachePutByID): See tryCacheGetByID.
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::setupGetByIdPrototypeCache): See tryCacheGetByID.
- runtime/JSObject.cpp:
(JSC::JSObject::fillGetterPropertySlot):
- runtime/JSObject.h:
(JSC::JSObject::fillCustomGetterPropertySlot): The rules for caching a
getter are the same as the rules for caching anything else: We're
allowed to cache even in dictionaries, as long as they're cacheable
dictionaries. Any transition that would change to/from getter/setter
or change other attributes requires a structure transition.
- 11:50 AM Changeset in webkit [201561] by
-
- 11 edits in trunk/Source/WebCore
SVGImage should report its memory cost to JS garbage collector
https://bugs.webkit.org/show_bug.cgi?id=158139
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-06-01
Reviewed by Geoffrey Garen.
Like what we do in HTMLImageLoader::notifyFinished() by reporting the memory
cost of the BitmapImage, we need to do something similar for the SVGImage. In
SVGImage::dataChange() and when allDataReceived is true, we can calculate
the size of all DOM nodes and their renderers. The size of the encoded data
has to be added as well to the total memory cost. An approximation for the
memory cost has to be used since it is costly to get an accurate number.
- bindings/js/JSDocumentCustom.cpp:
(WebCore::reportMemoryForDocumentIfFrameless): Use Node::approximateMemoryCost()
instead of sizeof(Node). A Node's descendant can override this function and
return a more accurate memory cost.
- dom/Node.h:
(WebCore::Node::approximateMemoryCost): Define this new virtual function in the
Node class. Its default value is sizeof(Node) but any descendant can return a
more accurate number.
- platform/graphics/Image.h:
(WebCore::Image::data): Define a const version of data() so it can be called
the const function SVGImage::reportApproximateMemoryCost().
- svg/SVGGraphicsElement.h: Override approximateMemoryCost() to return
sizeof(SVGGraphicsElement).
- svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::approximateMemoryCost): Override this function to return
the memory cost of the points and the m_path of the renderer.
- svg/SVGPathElement.h:
- svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::approximateMemoryCost): Override this function to return
the memory cost of the points and the m_path of the renderer.
- svg/SVGPolyElement.h:
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::reportApproximateMemoryCost): Calculate the memory cost of the
nodes in the SVGDocument of an SVGImage. Then report this number to the JS garbage
collector.
(WebCore::SVGImage::dataChanged): After loading all the SVG encoded data and building
its DOM tree and the render tree, report the total memory cost to the JS garbage collector.
- svg/graphics/SVGImage.h:
- 11:36 AM BuildingGtk edited by
- (diff)
- 11:17 AM Changeset in webkit [201560] by
-
- 5 edits in branches/safari-601.1.46-branch/Source
Versioning.
- 11:14 AM Changeset in webkit [201559] by
-
- 6 edits in trunk/Source/WebCore
Use inline capacity for StylePropertyShorthand Vectors.
<https://webkit.org/b/158260>
Reviewed by Antti Koivisto.
Vector<StylePropertyShorthand> was a huge source of heap allocations,
just over 0.5% of all fastMalloc() bytes on PLUM. Giving it an inline capacity
of 4 turns all of it into stack allocations.
- css/CSSParser.cpp:
(WebCore::CSSParser::addProperty):
- css/CSSProperty.cpp:
(WebCore::StylePropertyMetadata::shorthandID):
- css/StylePropertyShorthand.cpp:
(WebCore::indexOfShorthandForLonghand):
- css/StylePropertyShorthand.h:
- css/makeprop.pl:
(constructShorthandsVector):
- 10:38 AM Changeset in webkit [201558] by
-
- 1 copy in tags/Safari-602.1.35
New tag.
- 10:14 AM Changeset in webkit [201557] by
-
- 8 edits2 adds in trunk
POST request on a blob resource should return a "network error" instead of HTTP 500 response
https://bugs.webkit.org/show_bug.cgi?id=158022
Patch by Nael Ouedraogo <nael.ouedraogo@crf.canon.fr> on 2016-06-01
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Make sure request on blob resource is correct.
- web-platform-tests/fetch/api/basic/scheme-blob-expected.txt:
- web-platform-tests/fetch/api/basic/scheme-blob-worker-expected.txt:
- web-platform-tests/fetch/api/basic/scheme-blob.js: Add new tests with several HTTP methods.
Source/WebCore:
Not allowed HTTP method is notified as failed in BlobResourceHandle as per Fetch
specification (5.2 Basic fetch). This behavior is observable in fetch WPT tests.
The behavior of XHR is slightly changed for asynchronous request on a blob resource with not
allowed or invalid HTTP methods. The onError callback is called instead of throwing an
exception as per XHR specification (https://xhr.spec.whatwg.org/#request-error-steps).
WPT tests expected results have been updated for fetch tests on blob resources which are
now correct.
Test: fast/files/xhr-blob-request.html ensures XHR response to requests on a blob resource is
correct.
- platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::doStart):
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::createRequest):
LayoutTests:
Make sure response to XHR request on blob is correct.
- fast/files/xhr-blob-request-expected.txt: Added.
- fast/files/xhr-blob-request.html: Added.
- 9:58 AM Changeset in webkit [201556] by
-
- 3 edits in trunk/Source/WebCore
Remove allocation of SubresourceLoader::m_requestCountTracker
https://bugs.webkit.org/show_bug.cgi?id=158255
Reviewed by Chris Dumez.
No change of behavior.
Making m_requestCountTracker an Optional in lieu of a unique_ptr.
This requires constructing m_requestCountTracker in place so that constructor and destructor are called only once.
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::SubresourceLoader):
(WebCore::SubresourceLoader::didReceiveResponse):
(WebCore::SubresourceLoader::notifyDone):
- loader/SubresourceLoader.h:
- 9:22 AM Changeset in webkit [201555] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
Close wptserve response file handles explicitly
https://bugs.webkit.org/show_bug.cgi?id=158253
Reviewed by Alexey Proskuryakov.
See https://github.com/youennf/wptserve/commit/fc902e97a21b8470dcdaab8c70691aea1fecbc12
- resources/web-platform-tests-modules.json: Updating wptserve module to close response file handles once written.
- 9:03 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 8:53 AM Changeset in webkit [201554] by
-
- 4 edits1 add in trunk/LayoutTests
Unreviewed GTK+ gardening. Rebaseline several tests after r201397.
We correctly render search field's cancel and result button for RTL content.
- fast/forms/search-input-rtl-expected.txt: Added.
- platform/gtk/fast/css/text-overflow-input-expected.txt:
- platform/gtk/fast/forms/placeholder-position-expected.txt:
- platform/gtk/fast/forms/search-rtl-expected.txt:
- 8:39 AM Changeset in webkit [201553] by
-
- 5 edits in trunk/Source
Versioning.
- 8:11 AM Changeset in webkit [201552] by
-
- 2 edits in trunk/Source/WebCore
Remove accidental fprintf.
- platform/graphics/FontCache.cpp:
(WebCore::FontCache::precache):
- 7:29 AM Changeset in webkit [201551] by
-
- 14 edits in trunk/Source/WebCore
Precache primary font in a secondary thread
https://bugs.webkit.org/show_bug.cgi?id=158243
Reviewed by Andreas Kling.
We know the font families and descriptions to use on style resolution. The actual fonts are only needed for
layout. There is often time to load and cache fonts asynchronously before they are accessed. This can substantially
reduce font related workload in the main thread.
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::font):
(WebCore::CSSFontFace::resolveFamilies):
(WebCore::CSSFontFace::hasSVGFontFaceSource):
- css/CSSFontFace.h:
- css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::font):
(WebCore::CSSFontFaceSource::url):
(WebCore::CSSFontFaceSource::isSVGFontFaceSource):
- css/CSSFontFaceSource.h:
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::fallbackFontAt):
(WebCore::CSSFontSelector::resolveFamilies):
Add a function for resolving font families of a cascade to their final values.
- css/CSSFontSelector.h:
- css/CSSSegmentedFontFace.cpp:
(WebCore::CSSSegmentedFontFace::fontRanges):
(WebCore::CSSSegmentedFontFace::resolveFamilies):
- css/CSSSegmentedFontFace.h:
- platform/graphics/FontCache.cpp:
(WebCore::fontPlatformDataCache):
(WebCore::precacheTasksInProgress):
(WebCore::alternateFamilyName):
(WebCore::FontCache::getCachedFontPlatformData):
(WebCore::FontCache::invalidate):
(WebCore::FontCache::precache):
Precache fonts by trying to load them asyncronously one by one. On success the font is cached into font platform data cache.
(WebCore::FontCache::similarFont):
- platform/graphics/FontCache.h:
- platform/graphics/FontCascade.cpp:
(WebCore::pruneSystemFallbackFonts):
(WebCore::precachePrimaryFamily):
When initializing a new font cascade resolve any platform fonts to their actual names using FontSelector,
then precache the primary font for the cascade.
Web fonts are ignored for now.
(WebCore::retrieveOrAddCachedFonts):
- platform/graphics/FontSelector.h:
(WebCore::FontSelector::~FontSelector):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::setFontWhitelist):
(WebCore::fontWithFamily):
(WebCore::autoActivateFont):
(WebCore::createFontPlatformDataThreadSafe):
Factor thread safe part of createFontPlatformData to a function.
(WebCore::FontCache::createFontPlatformData):
Do the main thread only hash lookups here then call to createFontPlatformDataThreadSafe.
(WebCore::fallbackDedupSet):
(WebCore::FontCache::systemFallbackForCharacters):
(WebCore::FontCache::platformPrecache):
Try to initialize font asynchronously in a dispatch queue, call completion handler on success or failure.
(WebCore::FontCache::platformCancelPrecache):
Cancel ongoing precache operation.
(WebCore::platformFontLookupWithFamily): Deleted.
This was inlined to the only client, fontWithFamily.
- 4:57 AM Changeset in webkit [201550] by
-
- 2 edits in trunk/Tools
Unreviewed. Mark GTK+ test /webkit2/WebKitWebInspectorServer/test-open-debugging-session as slow.
It's timing out in the bots, but it seems to pass when running run-gtk-tests with no timeout. For GLib tests the
timeout is applied per tester program not per test case, so we need to mark the whole test
WebKit2Gtk/TestInspectorServer as slow.
- Scripts/run-gtk-tests:
(TestRunner):
(TestRunner._run_test_glib):
- 3:06 AM Changeset in webkit [201549] by
-
- 24 edits2 copies3 adds in trunk
WebRTC: Add RTCRtpTransceiver interface and RTCPeerConnection.addTransceiver()
https://bugs.webkit.org/show_bug.cgi?id=158189
Reviewed by Darin Adler.
Source/WebCore:
The RTCRtpTransceiver interface represents a combination of an RTCRtpSender and an
RTCRtpReceiver that share a common mid [1].
RTCPeerConnection.addTransceiver() [2] creates an RTCRtpTransceiver object, either directly
from a MediaStreamTrack [3], or with a specific media type (kind).
This change introduces the RTCRtpTransceiver object, follow-up patches will integrate it
into the offer/answer machinery.
[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#rtcrtptransceiver-interface
[2] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#dom-rtcpeerconnection-addtransceiver
[3] http://w3c.github.io/mediacapture-main/archives/20160513/getusermedia.html#mediastreamtrack
Test: fast/mediastream/RTCPeerConnection-addTransceiver.html
- CMakeLists.txt:
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::createOfferTask):
(WebCore::MediaEndpointPeerConnection::createReceiver):
An RTCTransceiver always has a receiver (RTCRtpReceiver) with a track (MediaStreamTrack) that
can be rendered. Before that remote track is receiving data from the remote peer, it's muted.
createReceiver() uses MediaEndponit::createMutedRemoteSource() to create a source to represent
future incoming media.
- Modules/mediastream/MediaEndpointPeerConnection.h:
- Modules/mediastream/PeerConnectionBackend.h:
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::addTransceiver):
(WebCore::RTCPeerConnection::completeAddTransceiver):
(WebCore::RTCPeerConnection::addReceiver): Deleted.
We now create the receiver explicitly with createReceiver.
- Modules/mediastream/RTCPeerConnection.h:
- Modules/mediastream/RTCPeerConnection.idl:
- Modules/mediastream/RTCRtpSender.cpp:
(WebCore::RTCRtpSender::create):
(WebCore::RTCRtpSender::RTCRtpSender):
(WebCore::RTCRtpSender::setTrack):
(WebCore::RTCRtpSender::replaceTrack):
- Modules/mediastream/RTCRtpSender.h:
(WebCore::RTCRtpSender::trackId):
(WebCore::RTCRtpSender::trackKind):
(WebCore::RTCRtpSender::setMediaStreamIds):
(WebCore::RTCRtpSender::isStopped):
(WebCore::RTCRtpSender::create): Deleted.
- Modules/mediastream/RTCRtpSenderReceiverBase.h:
(WebCore::RTCRtpSenderReceiverBase::track):
(WebCore::RTCRtpSenderReceiverBase::RTCRtpSenderReceiverBase):
- Modules/mediastream/RTCRtpTransceiver.cpp: Added.
(WebCore::RTCRtpTransceiver::create):
(WebCore::RTCRtpTransceiver::getNextMid):
(WebCore::RTCRtpTransceiver::RTCRtpTransceiver):
(WebCore::RTCRtpTransceiver::directionString):
(WebCore::RTCRtpTransceiver::hasSendingDirection):
(WebCore::RTCRtpTransceiver::enableSendingDirection):
(WebCore::RTCRtpTransceiver::disableSendingDirection):
- Modules/mediastream/RTCRtpTransceiver.h: Added.
(WebCore::RTCRtpTransceiver::~RTCRtpTransceiver):
(WebCore::RTCRtpTransceiver::direction):
(WebCore::RTCRtpTransceiver::setDirection):
(WebCore::RTCRtpTransceiver::provisionalMid):
(WebCore::RTCRtpTransceiver::setProvisionalMid):
(WebCore::RTCRtpTransceiver::mid):
(WebCore::RTCRtpTransceiver::setMid):
(WebCore::RTCRtpTransceiver::sender):
(WebCore::RTCRtpTransceiver::receiver):
(WebCore::RTCRtpTransceiver::stopped):
(WebCore::RTCRtpTransceiver::stop):
- Modules/mediastream/RTCRtpTransceiver.idl: Added.
- WebCore.xcodeproj/project.pbxproj:
- platform/mediastream/MediaEndpoint.h:
Added createMutedRemoteSource() that creates a muted remote source that will become unmuted
when media arrives from the remote peer.
- platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::RealtimeMediaSource): Deleted.
- platform/mediastream/RealtimeMediaSource.h:
- platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:
(WebCore::MockRealtimeVideoSource::create):
Use Ref instead of RefPtr.
- platform/mock/MockMediaEndpoint.cpp:
(WebCore::MockMediaEndpoint::createMutedRemoteSource):
- platform/mock/MockMediaEndpoint.h:
- platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::create):
(WebCore::MockRealtimeAudioSource::createMuted):
(WebCore::MockRealtimeAudioSource::MockRealtimeAudioSource):
- platform/mock/MockRealtimeAudioSource.h:
- platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::create):
(WebCore::MockRealtimeVideoSource::createMuted):
(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource):
- platform/mock/MockRealtimeVideoSource.h:
LayoutTests:
Added test for RTCPeerConnection.addTransceiver().
- fast/mediastream/RTCPeerConnection-addTransceiver-expected.txt: Added.
- fast/mediastream/RTCPeerConnection-addTransceiver.html: Added.
Test creating several RTCRtpTransceivers with various configurations and inspect the result.
- platform/mac/TestExpectations:
Skip the new test since the Mac port currently doesn't build with WebRTC support.
- 2:56 AM Changeset in webkit [201548] by
-
- 2 edits in trunk/Tools
Unreviewed. Skip media permission request GTK+ unit tests.
They are timing out in the bots.
- Scripts/run-gtk-tests:
(TestRunner):
- 2:10 AM Changeset in webkit [201547] by
-
- 2 edits in trunk/Source/WebCore
[Win][IndexedDB] Crash when running blob test.
https://bugs.webkit.org/show_bug.cgi?id=158224
Reviewed by Brady Eidson.
Avoid calling WTFMove(x) before calling x->method().
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::putOrAddOnServer):
- 1:23 AM Changeset in webkit [201546] by
-
- 2 edits in trunk/Source/WebKit/win
[Win] Potential null pointer crash when setting cursor.
https://bugs.webkit.org/show_bug.cgi?id=158225
Reviewed by Alex Christensen.
Check return value of Cursor::platformCursor().
- WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::setCursor):
- 12:24 AM Changeset in webkit [201545] by
-
- 5 edits in trunk
[css-grid] Positioned items can be placed on the implicit grid
https://bugs.webkit.org/show_bug.cgi?id=158197
Reviewed by Sergio Villar Senin.
Source/WebCore:
The old code wrongly assumed that positioned items couldn't be placed
on the implicit grid. However, the spec doesn't mention anything about this.
The patch fixes this issue, so now positioned items can be actually
placed on the implicit tracks.
Test: fast/css-grid-layout/grid-positioned-items-within-grid-implicit-track.html
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild): Use the lines
of the implicit grid instead of the explicit one.
LayoutTests:
Updated the test to follow the expected behavior.
- fast/css-grid-layout/grid-positioned-items-within-grid-implicit-track-expected.txt:
- fast/css-grid-layout/grid-positioned-items-within-grid-implicit-track.html:
May 31, 2016:
- 10:05 PM Changeset in webkit [201544] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Drop "replace" from JSC_COMMON_PRIVATE_IDENTIFIERS_EACH_WELL_KNOWN_SYMBOL_NOT_IMPLEMENTED_YET
https://bugs.webkit.org/show_bug.cgi?id=158223
Reviewed by Darin Adler.
This list maintains "not implemented yet" well-known symbols.
Symbol.replaceis already implemented.
- runtime/CommonIdentifiers.h:
- 9:49 PM Changeset in webkit [201543] by
-
- 4 edits in trunk/Source/WebCore
Modernize lambda captures in WorkerThreadableWebSocketChannel
https://bugs.webkit.org/show_bug.cgi?id=158246
Reviewed by Brady Eidson.
Modernize lambda captures in WorkerThreadableWebSocketChannel and drop
legacy URLCapture as it is no longer needed / used.
- Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Peer::send):
(WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::close):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::fail):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::suspend):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::resume):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::setMethodNotCompleted): Deleted.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::waitForMethodCompletion): Deleted.
- Modules/websockets/WorkerThreadableWebSocketChannel.h:
- platform/URL.h:
(WebCore::operator==): Deleted.
- 9:30 PM Changeset in webkit [201542] by
-
- 54 edits15 deletes in trunk/Source
Unreviewed, roll out r201481, r201523: 0.3% regression in Octane code-load
https://bugs.webkit.org/show_bug.cgi?id=158249
Source/JavaScriptCore:
- API/JSScriptRef.cpp:
(parseScript):
- CMakeLists.txt:
- DerivedSources.make:
- JavaScriptCore.xcodeproj/project.pbxproj:
- builtins/AsyncFunctionPrototype.js: Removed.
(asyncFunctionResume): Deleted.
- builtins/BuiltinExecutables.cpp:
(JSC::BuiltinExecutables::createExecutable):
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset): Deleted.
(JSC::computeDefsForBytecodeOffset): Deleted.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::dumpBytecode): Deleted.
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::isArrowFunction):
(JSC::UnlinkedCodeBlock::isOrdinaryArrowFunction): Deleted.
(JSC::UnlinkedCodeBlock::isAsyncArrowFunction): Deleted.
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::UnlinkedFunctionExecutable::fromGlobalCode):
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):
- bytecode/UnlinkedFunctionExecutable.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitNewArrowFunctionExpression):
(JSC::BytecodeGenerator::emitNewMethodDefinition):
(JSC::BytecodeGenerator::emitLoadArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitNewFunctionExpressionCommon): Deleted.
(JSC::BytecodeGenerator::emitNewFunction): Deleted.
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::makeFunction):
- bytecompiler/NodesCodegen.cpp:
(JSC::FunctionNode::emitBytecode): Deleted.
- inspector/agents/InspectorRuntimeAgent.cpp:
(Inspector::InspectorRuntimeAgent::parse):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass): Deleted.
- jit/JIT.h:
- jit/JITOpcodes.cpp:
(JSC::JIT::emitNewFuncCommon): Deleted.
(JSC::JIT::emit_op_new_async_func): Deleted.
(JSC::JIT::emitNewFuncExprCommon): Deleted.
(JSC::JIT::emit_op_new_async_func_exp): Deleted.
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- jsc.cpp:
(runInteractive):
(printUsageStatement): Deleted.
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL): Deleted.
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- parser/ASTBuilder.h:
(JSC::ASTBuilder::createAsyncFunctionBody): Deleted.
- parser/Keywords.table:
- parser/Parser.cpp:
(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::isArrowFunctionParameters):
(JSC::Parser<LexerType>::parseStatementListItem):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseImportClauseItem):
(JSC::Parser<LexerType>::parseImportDeclaration):
(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parsePropertyMethod):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseMemberExpression):
(JSC::Parser<LexerType>::parseArrowFunctionExpression):
(JSC::Parser<LexerType>::printUnexpectedTokenText):
(JSC::Parser<LexerType>::parseAsyncFunctionSourceElements): Deleted.
(JSC::Parser<LexerType>::parseVariableDeclarationList): Deleted.
(JSC::Parser<LexerType>::parseDestructuringPattern): Deleted.
(JSC::Parser<LexerType>::parseFunctionDeclarationStatement): Deleted.
(JSC::Parser<LexerType>::parseFormalParameters): Deleted.
(JSC::stringForFunctionMode): Deleted.
(JSC::Parser<LexerType>::parseAsyncFunctionDeclaration): Deleted.
(JSC::Parser<LexerType>::parseExpressionOrLabelStatement): Deleted.
(JSC::Parser<LexerType>::parseAwaitExpression): Deleted.
(JSC::Parser<LexerType>::parseAsyncFunctionExpression): Deleted.
(JSC::Parser<LexerType>::parseUnaryExpression): Deleted.
- parser/Parser.h:
(JSC::Scope::Scope):
(JSC::Parser::ExpressionErrorClassifier::propagateExpressionErrorClass):
(JSC::Parser::closestParentOrdinaryFunctionNonLexicalScope):
(JSC::Parser::pushScope):
(JSC::Parser::popScopeInternal):
(JSC::Parser::matchSpecIdentifier):
(JSC::parse):
(JSC::Scope::setSourceParseMode): Deleted.
(JSC::Scope::isAsyncFunction): Deleted.
(JSC::Scope::isAsyncFunctionBoundary): Deleted.
(JSC::Scope::isModule): Deleted.
(JSC::Scope::setIsFunction): Deleted.
(JSC::Scope::setIsAsyncArrowFunction): Deleted.
(JSC::Scope::setIsAsyncFunction): Deleted.
(JSC::Scope::setIsAsyncFunctionBody): Deleted.
(JSC::Scope::setIsAsyncArrowFunctionBody): Deleted.
(JSC::Parser::ExpressionErrorClassifier::forceClassifyExpressionError): Deleted.
(JSC::Parser::ExpressionErrorClassifier::indicatesPossibleAsyncArrowFunction): Deleted.
(JSC::Parser::forceClassifyExpressionError): Deleted.
(JSC::Parser::declarationTypeToVariableKind): Deleted.
(JSC::Parser::upperScope): Deleted.
(JSC::Parser::isDisallowedIdentifierAwait): Deleted.
(JSC::Parser::disallowedIdentifierAwaitReason): Deleted.
- parser/ParserModes.h:
(JSC::isFunctionParseMode):
(JSC::isModuleParseMode):
(JSC::isProgramParseMode):
(JSC::SourceParseModeSet::SourceParseModeSet): Deleted.
(JSC::SourceParseModeSet::contains): Deleted.
(JSC::SourceParseModeSet::mergeSourceParseModes): Deleted.
(JSC::isAsyncFunctionParseMode): Deleted.
(JSC::isAsyncArrowFunctionParseMode): Deleted.
(JSC::isAsyncFunctionWrapperParseMode): Deleted.
(JSC::isAsyncFunctionBodyParseMode): Deleted.
(JSC::constructAbilityForParseMode): Deleted.
- parser/ParserTokens.h:
- parser/SourceCodeKey.h:
(JSC::SourceCodeKey::SourceCodeKey):
(JSC::SourceCodeKey::operator==):
(JSC::SourceCodeKey::runtimeFlags): Deleted.
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createAsyncFunctionBody): Deleted.
- runtime/AsyncFunctionConstructor.cpp: Removed.
(JSC::AsyncFunctionConstructor::AsyncFunctionConstructor): Deleted.
(JSC::AsyncFunctionConstructor::finishCreation): Deleted.
(JSC::callAsyncFunctionConstructor): Deleted.
(JSC::constructAsyncFunctionConstructor): Deleted.
(JSC::AsyncFunctionConstructor::getCallData): Deleted.
(JSC::AsyncFunctionConstructor::getConstructData): Deleted.
- runtime/AsyncFunctionConstructor.h: Removed.
(JSC::AsyncFunctionConstructor::create): Deleted.
(JSC::AsyncFunctionConstructor::createStructure): Deleted.
- runtime/AsyncFunctionPrototype.cpp: Removed.
(JSC::AsyncFunctionPrototype::AsyncFunctionPrototype): Deleted.
(JSC::AsyncFunctionPrototype::finishCreation): Deleted.
- runtime/AsyncFunctionPrototype.h: Removed.
(JSC::AsyncFunctionPrototype::create): Deleted.
(JSC::AsyncFunctionPrototype::createStructure): Deleted.
- runtime/CodeCache.cpp:
(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getModuleProgramCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):
- runtime/CodeCache.h:
- runtime/CommonIdentifiers.h:
- runtime/Completion.cpp:
(JSC::checkSyntax):
(JSC::checkModuleSyntax):
- runtime/Completion.h:
- runtime/Executable.cpp:
(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ProgramExecutable::checkSyntax):
- runtime/Executable.h:
- runtime/FunctionConstructor.cpp:
(JSC::constructFunctionSkippingEvalEnabledCheck):
- runtime/FunctionConstructor.h:
- runtime/JSAsyncFunction.cpp: Removed.
(JSC::JSAsyncFunction::JSAsyncFunction): Deleted.
(JSC::JSAsyncFunction::createImpl): Deleted.
(JSC::JSAsyncFunction::create): Deleted.
(JSC::JSAsyncFunction::createWithInvalidatedReallocationWatchpoint): Deleted.
- runtime/JSAsyncFunction.h: Removed.
(JSC::JSAsyncFunction::allocationSize): Deleted.
(JSC::JSAsyncFunction::createStructure): Deleted.
- runtime/JSFunction.cpp:
(JSC::JSFunction::getOwnPropertySlot):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::createProgramCodeBlock):
(JSC::JSGlobalObject::createEvalCodeBlock):
(JSC::JSGlobalObject::createModuleProgramCodeBlock):
(JSC::JSGlobalObject::init): Deleted.
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::asyncFunctionPrototype): Deleted.
(JSC::JSGlobalObject::asyncFunctionStructure): Deleted.
- runtime/ModuleLoaderObject.cpp:
(JSC::moduleLoaderObjectParseModule):
- runtime/RuntimeFlags.h:
(JSC::RuntimeFlags::operator==): Deleted.
(JSC::RuntimeFlags::operator!=): Deleted.
- tests/stress/async-await-basic.js: Removed.
(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(shouldThrow): Deleted.
(shouldThrowAsync): Deleted.
(shouldThrowSyntaxError): Deleted.
(let.AsyncFunction.async): Deleted.
(async.asyncFunctionForProto): Deleted.
(Object.getPrototypeOf.async): Deleted.
(Object.getPrototypeOf.async.method): Deleted.
(async): Deleted.
(async.method): Deleted.
(async.asyncNonConstructorDecl): Deleted.
(shouldThrow.new.async): Deleted.
(shouldThrow.new.async.nonConstructor): Deleted.
(async.asyncDecl): Deleted.
(async.f): Deleted.
(MyError): Deleted.
(async.asyncDeclThrower): Deleted.
(shouldThrowAsync.async): Deleted.
(resolveLater): Deleted.
(rejectLater): Deleted.
(async.resumeAfterNormal): Deleted.
(O.async.resumeAfterNormal): Deleted.
(resumeAfterNormalArrow.async): Deleted.
(async.resumeAfterThrow): Deleted.
(O.async.resumeAfterThrow): Deleted.
(resumeAfterThrowArrow.async): Deleted.
(catch): Deleted.
- tests/stress/async-await-module-reserved-word.js: Removed.
(shouldThrow): Deleted.
(SyntaxError.Canstring_appeared_hereawait.checkModuleSyntaxError.String.raw.await): Deleted.
(checkModuleSyntaxError.String.raw.await): Deleted.
(checkModuleSyntaxError.String.raw.async.await): Deleted.
(SyntaxError.Cannot.declare.named): Deleted.
- tests/stress/async-await-mozilla.js: Removed.
(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(shouldThrow): Deleted.
(shouldThrowAsync): Deleted.
(assert): Deleted.
(shouldThrowSyntaxError): Deleted.
(mozSemantics.async.empty): Deleted.
(mozSemantics.async.simpleReturn): Deleted.
(mozSemantics.async.simpleAwait): Deleted.
(mozSemantics.async.simpleAwaitAsync): Deleted.
(mozSemantics.async.returnOtherAsync): Deleted.
(mozSemantics.async.simpleThrower): Deleted.
(mozSemantics.async.delegatedThrower): Deleted.
(mozSemantics.async.tryCatch): Deleted.
(mozSemantics.async.tryCatchThrow): Deleted.
(mozSemantics.async.wellFinally): Deleted.
(mozSemantics.async.finallyMayFail): Deleted.
(mozSemantics.async.embedded.async.inner): Deleted.
(mozSemantics.async.embedded): Deleted.
(mozSemantics.async.fib): Deleted.
(mozSemantics.async.isOdd.async.isEven): Deleted.
(mozSemantics.async.isOdd): Deleted.
(mozSemantics.hardcoreFib.async.fib2): Deleted.
(mozSemantics.namedAsyncExpr.async.simple): Deleted.
(mozSemantics.async.executionOrder.async.first): Deleted.
(mozSemantics.async.executionOrder.async.second): Deleted.
(mozSemantics.async.executionOrder.async.third): Deleted.
(mozSemantics.async.executionOrder): Deleted.
(mozSemantics.async.miscellaneous): Deleted.
(mozSemantics.thrower): Deleted.
(mozSemantics.async.defaultArgs): Deleted.
(mozSemantics.shouldThrow): Deleted.
(mozSemantics): Deleted.
(mozMethods.X): Deleted.
(mozMethods.X.prototype.async.getValue): Deleted.
(mozMethods.X.prototype.setValue): Deleted.
(mozMethods.X.prototype.async.increment): Deleted.
(mozMethods.X.prototype.async.getBaseClassName): Deleted.
(mozMethods.X.async.getStaticValue): Deleted.
(mozMethods.Y.prototype.async.getBaseClassName): Deleted.
(mozMethods.Y): Deleted.
(mozFunctionNameInferrence.async.test): Deleted.
(mozSyntaxErrors): Deleted.
- tests/stress/async-await-reserved-word.js: Removed.
(assert): Deleted.
(shouldThrowSyntaxError): Deleted.
(AsyncFunction.async): Deleted.
- tests/stress/async_arrow_functions_lexical_arguments_binding.js: Removed.
(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(shouldThrowAsync): Deleted.
(noArgumentsArrow2.async): Deleted.
- tests/stress/async_arrow_functions_lexical_new.target_binding.js: Removed.
(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(shouldThrowAsync): Deleted.
(C1): Deleted.
(C2): Deleted.
(shouldThrowAsync.async): Deleted.
- tests/stress/async_arrow_functions_lexical_super_binding.js: Removed.
(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(BaseClass.prototype.baseClassValue): Deleted.
(BaseClass.prototype.get property): Deleted.
(BaseClass): Deleted.
(ChildClass.prototype.asyncSuperProp): Deleted.
(ChildClass.prototype.asyncSuperProp2): Deleted.
(ChildClass): Deleted.
(ChildClass2): Deleted.
- tests/stress/async_arrow_functions_lexical_this_binding.js: Removed.
(shouldBe): Deleted.
(shouldBeAsync): Deleted.
(d.y): Deleted.
Source/WebKit/mac:
- WebView/WebPreferencesPrivate.h:
Source/WebKit/win:
- Interfaces/IWebPreferencesPrivate.idl:
Source/WebKit2:
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- 5:45 PM Changeset in webkit [201541] by
-
- 2 edits9 adds in trunk/Source/WebCore
Web Inspector: ReportExtraMemoryCost IDL attribute should also be used to generate estimatedSize method
https://bugs.webkit.org/show_bug.cgi?id=158144
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-31
Reviewed by Darin Adler.
- bindings/scripts/CodeGeneratorJS.pm:
(InstanceNeedsEstimatedSize):
(GenerateHeader):
(GenerateImplementation):
When an interface includes ReportExtraMemoryCost, generate an estimatedSize
method which includes the Base::estimatedSize and the memoryCost().
- bindings/scripts/test/GObject/WebKitDOMInterfaceName.cpp: Added.
(WebKit::kit):
(WebKit::core):
(WebKit::wrapInterfaceName):
(webkit_dom_interface_name_finalize):
(webkit_dom_interface_name_constructor):
(webkit_dom_interface_name_class_init):
(webkit_dom_interface_name_init):
- bindings/scripts/test/GObject/WebKitDOMInterfaceName.h: Added.
- bindings/scripts/test/GObject/WebKitDOMInterfaceNamePrivate.h: Added.
- bindings/scripts/test/JS/JSInterfaceName.cpp: Added.
(WebCore::JSInterfaceNamePrototype::create):
(WebCore::JSInterfaceNamePrototype::createStructure):
(WebCore::JSInterfaceNamePrototype::JSInterfaceNamePrototype):
(WebCore::JSInterfaceNameConstructor::prototypeForStructure):
(WebCore::JSInterfaceNameConstructor::initializeProperties):
(WebCore::JSInterfaceNamePrototype::finishCreation):
(WebCore::JSInterfaceName::JSInterfaceName):
(WebCore::JSInterfaceName::createPrototype):
(WebCore::JSInterfaceName::prototype):
(WebCore::JSInterfaceName::destroy):
(WebCore::jsInterfaceNameConstructor):
(WebCore::setJSInterfaceNameConstructor):
(WebCore::JSInterfaceName::getConstructor):
(WebCore::JSInterfaceName::visitChildren):
(WebCore::JSInterfaceName::estimatedSize):
(WebCore::JSInterfaceNameOwner::isReachableFromOpaqueRoots):
(WebCore::JSInterfaceNameOwner::finalize):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSInterfaceName::toWrapped):
- bindings/scripts/test/JS/JSInterfaceName.h: Added.
(WebCore::JSInterfaceName::create):
(WebCore::JSInterfaceName::createStructure):
(WebCore::JSInterfaceName::finishCreation):
(WebCore::wrapperOwner):
(WebCore::wrapperKey):
(WebCore::toJS):
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/ObjC/DOMInterfaceName.h: Added.
- bindings/scripts/test/ObjC/DOMInterfaceName.mm: Added.
(-[DOMInterfaceName dealloc]):
(core):
(kit):
- bindings/scripts/test/ObjC/DOMInterfaceNameInternal.h: Added.
- bindings/scripts/test/TestReportExtraMemoryCost.idl: Added.
Include a test for the ReportExtraMemoryCost attribute.
- 5:31 PM Changeset in webkit [201540] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Storage DataGrids have a half-pixel transparent/white border below the header
https://bugs.webkit.org/show_bug.cgi?id=156699
<rdar://problem/25778260>
Reviewed by Timothy Hatcher.
Increase the width of the border below the DataGrid's header to match the border in the left sidebar.
- UserInterface/Views/DataGrid.css:
(.data-grid > .header-wrapper):
- 5:28 PM Changeset in webkit [201539] by
-
- 2 edits in trunk/Source/WebCore
Fix assertion after r201447
https://bugs.webkit.org/show_bug.cgi?id=158244
Patch by Alex Christensen <achristensen@webkit.org> on 2016-05-31
Reviewed by Jer Noble.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::loadResource):
If we are loading media using WebCoreNSURLSession, we could be making a request for a
resource we already have in the memory cache because we are ignoring all caches.
- 5:26 PM Changeset in webkit [201538] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Snapshot List scroll bar occludes border of containing view in top-right
https://bugs.webkit.org/show_bug.cgi?id=158219
<rdar://problem/26545018>
Reviewed by Timothy Hatcher.
- UserInterface/Views/TimelineDataGrid.css:
(.data-grid.timeline th): Deleted.
- UserInterface/Views/TimelineRecordingContentView.css:
(.content-view.timeline-recording > .content-browser > .navigation-bar):
Make the border line span across the whole navigation bar, not just its table cells.
- 4:28 PM Changeset in webkit [201537] by
-
- 2 edits in trunk/Tools
Yet another unreviewed build fix; move the closing brace of the namespace declaration inside
the #if check.
- TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenTopContentInset.mm:
- 4:20 PM Changeset in webkit [201536] by
-
- 2 edits in trunk/Tools
Further unreviewed build fix; only run FullscreenTopContentInset test on Mac.
- TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenTopContentInset.mm:
- 3:52 PM Changeset in webkit [201535] by
-
- 2 edits in trunk/Source/WebKit2
Add two optional items to WebViewImplDelegate
https://bugs.webkit.org/show_bug.cgi?id=158242
-and corresponding-
rdar://problem/26473095
Reviewed by Tim Horton.
- UIProcess/Cocoa/WebViewImpl.h:
- 3:51 PM Changeset in webkit [201534] by
-
- 10 edits in trunk/Source/WebCore
Clean up / modernize iOS text autosizing code
https://bugs.webkit.org/show_bug.cgi?id=158217
Reviewed by Darin Adler.
Clean up / modernize iOS text autosizing code.
I think iOS text autosizing code is too intrusive inside the RenderStyle
class but I have not updated this part of the code yet to limit patch
size. This patch focuses on the TextAutoSizing.* and text autosizing
code in the Document class.
- WebCore.xcodeproj/project.pbxproj:
- dom/Document.cpp:
(WebCore::TextAutoSizingTraits::constructDeletedValue): Deleted.
(WebCore::TextAutoSizingTraits::isDeletedValue): Deleted.
Move TextAutoSizingTraits to the TextAutoSizing header to
promote reuse and make the text autosizing code a little less
intrusive.
(WebCore::Document::addAutoSizingNode):
- Drop local 'key' variable as it is only used once.
- Use std::make_unique<> to construct the TextAutoSizingValue as it is no longer ref-counted.
(WebCore::Document::validateAutoSizingNodes):
Iterate over the textAutosizedNodes HashMap only once instead
of twice. TextAutoSizingValue::adjustTextNodeSizes() was updated
to return an enum class so we know from that value if we can
remove the value from the HashSet or not, without having to rely
on TextAutoSizingValue::numNodes(), which I removed in this
patch.
(WebCore::Document::clearAutoSizingNodes):
Updated the TextAutoSizingValue destructor to call reset() so
we don't have to explicitly call reset() on each value before
clearing the textAutosizedNodes HashMap.
- dom/Document.h:
- Move TextAutoSizingTraits to the TextAutosizing header.
- Rename resetAutosizingNodes() to clearAutoSizingNodes() as the method now only clears the textAutosizedNodes HashMap and reset() is now an implementation detail for TextAutoSizingValue.
- rendering/RenderElement.cpp:
(WebCore::RenderElement::resetTextAutosizing):
Call clearAutoSizingNodes() as it was renamed.
- rendering/TextAutoSizing.cpp:
(WebCore::TextAutoSizingKey::TextAutoSizingKey):
- Use value of -1 for std::unique_ptr m_style member for distinguishing
a HashTable deleted value, instead of having an extra m_isDeleted
data member for this purpose.
- Take RenderStyle parameter by reference and drop the null check as the call site can never pass nullptr.
(WebCore::TextAutoSizingValue::addTextNode):
- Rename addNode() to addTextNode() for clarity.
(WebCore::TextAutoSizingValue::~TextAutoSizingValue):
Update destructor to call reset() so that the Document does not have to
call it explicitly and can instead just clear the HashMap, which will
destroy the TextAutoSizingValue objects.
(WebCore::TextAutoSizingValue::reset):
Rename text to renderer for clarity.
- rendering/TextAutoSizing.h:
- Make TextAutoSizingValue as fast allocated.
- Update TextAutoSizingValue to no longer be refcounted as ownership is never shared. The Document owns those.
- Drop the factory function for TextAutoSizingValue and make the constructor public now that the class is no longer refcounted.
- Make reset() method private now that it is called from the destructor and the Document is no longer expected to explicitly call it.
- Update adjustTextNodeSizes() to return a StillHasNodes enum class and the Document can rely on the determine if it can drop the TextAutoSizingValue from its HashMap (and therefore destroy the object).
- Drop numNodes() method as it is no longer needed.
- 3:44 PM Changeset in webkit [201533] by
-
- 2 edits in trunk/Tools
Unreviewed build fix; only run FullscreetTopContentInset test on platforms
where WK_API_ENABLED is set.
- TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenTopContentInset.mm:
- 3:35 PM Changeset in webkit [201532] by
-
- 20 edits3 deletes in trunk/Source
Unreviewed, rolling out r201363 and r201456.
https://bugs.webkit.org/show_bug.cgi?id=158240
"40% regression on date-format-xparb" (Requested by
keith_miller on #webkit).
Reverted changesets:
"LLInt should be able to cache prototype loads for values in
GetById"
https://bugs.webkit.org/show_bug.cgi?id=158032
http://trac.webkit.org/changeset/201363
"get_by_id should support caching unset properties in the
LLInt"
https://bugs.webkit.org/show_bug.cgi?id=158136
http://trac.webkit.org/changeset/201456
- 3:10 PM Changeset in webkit [201531] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, rolling out r201359.
https://bugs.webkit.org/show_bug.cgi?id=158238
"It was not a speedup on anything" (Requested by saamyjoon on
#webkit).
Reverted changeset:
"We can cache lookups to JSScope::abstractResolve inside
CodeBlock::finishCreation"
https://bugs.webkit.org/show_bug.cgi?id=158036
http://trac.webkit.org/changeset/201359
- 2:59 PM Changeset in webkit [201530] by
-
- 4 edits2 adds in trunk
REGRESSION (r201405): trailers.apple.com HUD is missing in fullscreen
https://bugs.webkit.org/show_bug.cgi?id=158156
<rdar://problem/26519589>
Reviewed by Darin Adler.
Source/WebKit2:
Only increase the frame of the webView (to account for top content inset) in one dimension.
- UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController enterFullScreen:]):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenTopContentInset.html: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenTopContentInset.mm: Added.
(-[FullscreenChangeMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):
- 2:57 PM Changeset in webkit [201529] by
-
- 4 edits2 adds in trunk
REGRESSION(r201040): Repainting of moving overflow:hidden objects is broken.
https://bugs.webkit.org/show_bug.cgi?id=158079
Reviewed by Zalan Bujtas.
Source/WebCore:
Added new test fast/repaint/overflow-hidden-movement.html
Change checkForRepaintDuringLayout() to only be true for self-painting layers
and not for all layers.
- rendering/RenderObject.cpp:
(WebCore::RenderObject::hasSelfPaintingLayer):
(WebCore::RenderObject::checkForRepaintDuringLayout):
- rendering/RenderObject.h:
(WebCore::RenderObject::hasSelfPaintingLayer):
LayoutTests:
- fast/repaint/overflow-hidden-movement-expected.txt: Added.
- fast/repaint/overflow-hidden-movement.html: Added.
- 2:56 PM Changeset in webkit [201528] by
-
- 2 edits in trunk/Source/WebCore
ShowRenderTree: Print location information for relative/sticky inlines.
https://bugs.webkit.org/show_bug.cgi?id=158235
Reviewed by David Hyatt.
- rendering/RenderObject.cpp:
(WebCore::RenderObject::showRenderObject):
- 2:47 PM Changeset in webkit [201527] by
-
- 2 edits in trunk/Websites/webkit.org
Unreviewed, fix an obvious typo: a missing comma.
- docs/b3/assembly-intermediate-representation.html:
- 2:44 PM Changeset in webkit [201526] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix; use ASSERT_UNUSED rather than ASSERT to fix release builds.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::removeSession):
- 2:40 PM Changeset in webkit [201525] by
-
- 2 edits in trunk/Websites/webkit.org
Air needs documentation
https://bugs.webkit.org/show_bug.cgi?id=153668
Reviewed by Mark Lam, Saam Barati, and Benjamin Poulain.
Write documentation for Air!
- docs/b3/assembly-intermediate-representation.html:
- 2:24 PM Changeset in webkit [201524] by
-
- 5 edits in trunk/Source/WebCore
[EME] Sound continues playing when video's src is changed
https://bugs.webkit.org/show_bug.cgi?id=158233
Reviewed by Eric Carlson.
When CDMSessionAVFoundation began listening for outputObscuredDueToInsufficientExternalProtection
KVO notifications, it retained the AVPlayer owned by MediaPlayerPrivateAVFoundationObjC, which
caused the AVPlayer to outlive its original owner, and to continue playing even after the
MediaPlayerPrivateAVFoundationObjC had been destroyed.
Rather than observe for outputObscuredDueToInsufficientExternalProtection changes in
CDMSessionAVFoundation, add a backreference from the media player to the session, listen for changes
in the player, and have the player notify the session when the value of that property changes.
- platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h:
(WebCore::CDMSessionAVFoundationObjC::createWeakPtr):
- platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:
(WebCore::CDMSessionAVFoundationObjC::CDMSessionAVFoundationObjC):
(-[WebCDMSessionAVFoundationObjCListener initWithParent:player:]): Deleted.
(-[WebCDMSessionAVFoundationObjCListener invalidate]): Deleted.
(-[WebCDMSessionAVFoundationObjCListener observeValueForKeyPath:ofObject:change:context:]): Deleted.
(WebCore::CDMSessionAVFoundationObjC::~CDMSessionAVFoundationObjC): Deleted.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::removeSession):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createSession):
(WebCore::MediaPlayerPrivateAVFoundationObjC::outputObscuredDueToInsufficientExternalProtectionChanged):
(WebCore::playerKVOProperties):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
- 1:57 PM Changeset in webkit [201523] by
-
- 7 edits in trunk/Source/JavaScriptCore
[JSC] Recover parser performance regression by async support
https://bugs.webkit.org/show_bug.cgi?id=158228
Reviewed by Saam Barati.
This patch recovers parser performance regression caused in r201481.
Compared to the version that reverts r201481, still ~1% regression remains.
But compared to ToT, this patch significantly improves the code-load performance.
In Linux x64 JSCOnly port, with GCC 5.3.1.
reverted v.s. patched.
reverted patched
closure 0.61805+-0.00376 ? 0.62280+-0.00525 ?
jquery 8.03778+-0.02114 8.03453+-0.04646
<geometric> 2.22883+-0.00836 ? 2.23688+-0.00995 ? might be 1.0036x slower
ToT v.s. patched.
baseline patched
closure 0.65490+-0.00351 0.62473+-0.00363 definitely 1.0483x faster
jquery 8.25373+-0.06256 8.04701+-0.03455 definitely 1.0257x faster
<geometric> 2.32488+-0.00921 2.24210+-0.00592 definitely 1.0369x faster
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
- bytecode/UnlinkedFunctionExecutable.h:
Extend SourceParseMode.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::isArrowFunctionParameters):
Do not callmatchSpecIdentifier()as much as we can. This greatly improves the performance.
(JSC::Parser<LexerType>::parseStatementListItem):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
Do not touchcurrentScope()->isGenerator()even if it is unnecessary in parseFunctionInfo.
And accidentalsyntaxChecker => contextchanges are fixed.
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseExpressionOrLabelStatement):
(JSC::Parser<LexerType>::parseImportClauseItem):
(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parseAssignmentExpression):
Do not use matchSpecIdentifier() in the hot paths.
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseMemberExpression):
(JSC::Parser<LexerType>::parseUnaryExpression):
(JSC::Parser<LexerType>::printUnexpectedTokenText): Deleted.
- parser/Parser.h:
(JSC::isIdentifierOrKeyword):
AWAIT shoud be one of the keywords. This AWAIT check is unnecessary.
(JSC::Parser::upperScope):
(JSC::Parser::matchSpecIdentifier):
Touching currentScope() and its member causes significant performance degradation.
We carefully remove the above access in the hot paths.
(JSC::Parser::isDisallowedIdentifierAwait):
- parser/ParserModes.h:
(JSC::SourceParseModeSet::SourceParseModeSet):
(JSC::SourceParseModeSet::contains):
(JSC::SourceParseModeSet::mergeSourceParseModes):
(JSC::isFunctionParseMode):
(JSC::isAsyncFunctionParseMode):
(JSC::isAsyncArrowFunctionParseMode):
(JSC::isAsyncFunctionWrapperParseMode):
(JSC::isAsyncFunctionBodyParseMode):
(JSC::isModuleParseMode):
(JSC::isProgramParseMode):
(JSC::constructAbilityForParseMode):
The parser frequently checks SourceParseMode. And variety of SourceParseMode becomes many.
So using switch onto SourceParseMode degrades the performance. Instead, we use bit tests to guard against
many SourceParseModes. We expect that this will be efficiently compiled into test & jmp.
- parser/ParserTokens.h:
Change AWAIT to one of the keywords, as the same to YIELD / LET.
- 1:47 PM Changeset in webkit [201522] by
-
- 4 edits2 adds in trunk
[Mac] AirPlay route is sometimes reset when changing video.src
https://bugs.webkit.org/show_bug.cgi?id=158226
<rdar://problem/24197592>
Reviewed by Jer Noble.
Source/WebCore:
Test: media/airplay-autoplay.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::webkitShowPlaybackTargetPicker): Remove the gesture requirement
if currently processing a user gesture.
(WebCore::HTMLMediaElement::dispatchEvent): Set m_failedToPlayToWirelessTarget to false when
dispatching webkitcurrentplaybacktargetiswirelesschanged so an element can succeed after failing.
LayoutTests:
- media/airplay-autoplay-expected.txt: Added.
- media/airplay-autoplay.html: Added.
- 1:32 PM Changeset in webkit [201521] by
-
- 2 edits in trunk/Source/WebCore
Regression(r201482): Crash under dispatch_semaphore_wait
https://bugs.webkit.org/show_bug.cgi?id=158230
<rdar://problem/26534698>
Reviewed by Eric Carlson.
Stop moving hasSessionSemaphore in the lambda capture since it is used in
dispatch_semaphore_wait() call after the callOnMainThread() call.
No new tests, already covered by tests that are crashing on the bots.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]):
- 12:45 PM Changeset in webkit [201520] by
-
- 3 edits in trunk/Source/JavaScriptCore
Web Inspector: capturing with Allocations timeline causes GC to take 100x longer and cause frame drops
https://bugs.webkit.org/show_bug.cgi?id=158054
<rdar://problem/25280762>
Reviewed by Joseph Pecoraro.
HeapSnapshot::sweepCell was taking a long time on
http://bl.ocks.org/syntagmatic/6c149c08fc9cde682635
because it has to do a binary search to find if
an item is or is not in the list. 90% of the binary searches
would not find anything. This resulted in a lot of wasted time.
This patch adds a TinyBloomFilter member variable to HeapSnapshot.
We use this filter to try to bypass doing a binary search when the
filter tells us that a particular JSCell is definitely not in our
list. This is a 2x speedup on the steady state GC of the above
website.
- heap/HeapSnapshot.cpp:
(JSC::HeapSnapshot::appendNode):
(JSC::HeapSnapshot::sweepCell):
(JSC::HeapSnapshot::shrinkToFit):
(JSC::HeapSnapshot::nodeForCell):
- heap/HeapSnapshot.h:
- 12:35 PM Changeset in webkit [201519] by
-
- 4 edits in trunk/Source/WebKit2
[iOS] Better deal with WebProcess suspension due to screen locking
https://bugs.webkit.org/show_bug.cgi?id=158229
<rdar://problem/17665473>
<rdar://problem/26554699>
Reviewed by Tim Horton.
When locking the screen while MobileSafari is front-most, we would try keep
trying to mark IOSurfaces as volatile until the 30 seconds timeout was
reached. This patch deals more cleanly with this situation by only trying
to mark IOSurfaces as volatile once if the suspension is due to screen
locking. In such case, it is apparently expected that some IOSurfaces cannot
be marked as volatile so it is enough to try once and let ourselves get
suspended.
This patch also reduces the timeout from 30 seconds to ~3 seconds in the
other suspension cases (e.g. homing out of MobileSafari). If we fail to mark
them as purgeable for 3 seconds for a reason or another, it is no use in
retrying, it is simply not going to happen and there is no reason to delay
process suspension any further.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::callVolatilityCompletionHandlers):
(WebKit::WebPage::layerVolatilityTimerFired):
(WebKit::WebPage::markLayersVolatileImmediatelyIfPossible):
(WebKit::WebPage::markLayersVolatile):
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::markLayersVolatile):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::applicationDidEnterBackground):
(WebKit::WebPage::applicationWillEnterForeground):
- 12:33 PM Changeset in webkit [201518] by
-
- 15 edits1 add in trunk/Source
Make createCrossThreadTask() functions return on the stack instead of the heap.
https://bugs.webkit.org/show_bug.cgi?id=158215
Reviewed by Darin Adler.
Source/WebCore:
No new tests (Refactor, no change in behavior).
- Modules/indexeddb/client/IDBConnectionProxy.h:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::postDatabaseTask):
(WebCore::IDBServer::IDBServer::postDatabaseTaskReply):
(WebCore::IDBServer::IDBServer::databaseRunLoop):
- Modules/indexeddb/server/IDBServer.h:
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTask):
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTaskReply):
- Modules/indexeddb/server/UniqueIDBDatabase.h:
- dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::postCrossThreadTask):
- fileapi/ThreadableBlobRegistry.cpp:
(WebCore::threadableQueue):
Source/WebKit2:
- DatabaseProcess/DatabaseProcess.cpp:
(WebKit::DatabaseProcess::postDatabaseTask):
(WebKit::DatabaseProcess::performNextDatabaseTask):
(WebKit::DatabaseProcess::fetchWebsiteData):
- DatabaseProcess/DatabaseProcess.h:
Source/WTF:
- WTF.xcodeproj/project.pbxproj:
- wtf/CrossThreadCopier.cpp:
- wtf/CrossThreadQueue.h: Added. A lightweight of MessageQueue that deals directly in objects instead of in std::unique_ptrs.
(WTF::CrossThreadQueue::isKilled):
(WTF::CrossThreadQueue<DataType>::append):
(WTF::CrossThreadQueue<DataType>::waitForMessage):
(WTF::CrossThreadQueue<DataType>::tryGetMessage):
- wtf/CrossThreadTask.h:
(WTF::createCrossThreadTask):
(WTF::CrossThreadTask::CrossThreadTask): Deleted.
- 11:49 AM Changeset in webkit [201517] by
-
- 2 edits in trunk/Tools
Unreviewed: add myself to the reviewers list.
- Scripts/webkitpy/common/config/contributors.json:
- 11:42 AM Changeset in webkit [201516] by
-
- 4 edits3 adds in trunk
REGRESSION (r189567): Elements with aspect ratios not handled correctly inside flexbox.
https://bugs.webkit.org/show_bug.cgi?id=158040
Reviewed by Zalan Bujtas.
Source/WebCore:
Added new tests in fast/flexbox.
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::clientLogicalBottomAfterRepositioning):
(WebCore::RenderFlexibleBox::hasOrthogonalFlow):
(WebCore::RenderFlexibleBox::mainAxisContentExtent):
(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
(WebCore::RenderFlexibleBox::mainAxisBorderAndPaddingExtentForChild):
(WebCore::RenderFlexibleBox::mainAxisLengthIsDefinite):
(WebCore::RenderFlexibleBox::mainAxisScrollbarExtentForChild):
(WebCore::RenderFlexibleBox::prepareOrderIteratorAndMargins):
(WebCore::RenderFlexibleBox::crossAxisLengthIsDefinite):
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing):
(WebCore::RenderFlexibleBox::adjustChildSizeForAspectRatioCrossAxisMinAndMax):
(WebCore::RenderFlexibleBox::useChildAspectRatio):
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):
(WebCore::RenderFlexibleBox::resetAutoMarginsAndLogicalTopInCrossAxis):
(WebCore::RenderFlexibleBox::mainAxisOverflowForChild):
(WebCore::RenderFlexibleBox::mainAxisExtentIsDefinite): Deleted.
(WebCore::RenderFlexibleBox::mainAxisLengthIsIndefinite): Deleted.
- rendering/RenderFlexibleBox.h:
(WebCore::RenderFlexibleBox::isFlexibleBoxImpl):
LayoutTests:
- fast/flexbox/aspect-ratio-intrinsic-adjust-expected.html: Added.
- fast/flexbox/aspect-ratio-intrinsic-adjust.html: Added.
- fast/flexbox/resources/subjects_sm.png: Added.
- 10:53 AM Changeset in webkit [201515] by
-
- 2 edits in trunk/Source/WebCore
Build fix after r201482.
- platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::didReceiveHeader):
header used to be capturedHeader, which was a StringCapture, which needed .string() to get the String.
Now it's a WTF::String, so we already have the String. Hooray for c++14!
- 8:58 AM Changeset in webkit [201514] by
-
- 23 edits in branches/safari-602.1.32-branch/Source
Merge r201474. rdar://problem/24476949
- 8:44 AM Changeset in webkit [201513] by
-
- 5 edits in branches/safari-602.1.32-branch/Source
Versioning.
- 8:42 AM Changeset in webkit [201512] by
-
- 5 edits in branches/safari-602.1.32.5-branch/Source
Versioning.
- 8:35 AM Changeset in webkit [201511] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix.
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
- 8:17 AM Changeset in webkit [201510] by
-
- 4 edits2 adds in trunk
[css-grid] Empty grid without explicit tracks shouldn't have any size
https://bugs.webkit.org/show_bug.cgi?id=155197
Reviewed by Darin Adler.
Source/WebCore:
The internal representation of the grid is a Vector of Vector representing rows and
columns. Because of that it was not possible to have columns without having at least one
row. That forced us to have a 1x1 internal representation of the grid even if it was
actually empty. That works for most of the cases except when the grid is actually empty.
By changing the way we compute the sizes we can overcome that implementation
restriction. This allowed us also to thighten the conditions under we could use the
GridIterator. From now on it won't be possible to use it on empty grids so callers should
enforce that restriction.
A new bool was added to verify that placeItemsOnGrid() has been already called. The previous
code was relying on the fact that there were items in the internal representation, which is
wrong, as there might be no items in the grid.
Test: fast/css-grid-layout/empty-grid.html
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::GridIterator::GridIterator): Added ASSERTs.
(WebCore::RenderGrid::GridIterator::nextGridItem): Ditto.
(WebCore::RenderGrid::GridIterator::isEmptyAreaEnough): Ditto.
(WebCore::RenderGrid::GridIterator::nextEmptyGridArea): Ditto.
(WebCore::RenderGrid::gridColumnCount): Use the style to resolve the number of columns if
the internal representation is empty.
(WebCore::RenderGrid::gridRowCount):
(WebCore::RenderGrid::guttersSize): Allow to pass 0 as span, this permits using the return
value of gridColumnCount|gridRowCount directly to call this method.
(WebCore::RenderGrid::computeIntrinsicLogicalWidths): Use m_gridIsDirty.
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks): Do not examine the contents of grid
tracks if there are no items in the grid.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions): Ditto.
(WebCore::RenderGrid::placeItemsOnGrid): Set m_gridIsDirty to false.
(WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
(WebCore::RenderGrid::clearGrid):
(WebCore::RenderGrid::populateGridPositionsForDirection):
- rendering/RenderGrid.h: Moved gridColumnCount/gridRowCount to cpp file.
LayoutTests:
Make sure that empty grids (and grids with one empty axis) are properly handled. Do also
verify that removing all the items from a grid also generates an correct empty grid.
- fast/css-grid-layout/empty-grid-expected.txt: Added.
- fast/css-grid-layout/empty-grid.html: Added.
- 3:34 AM Changeset in webkit [201509] by
-
- 2 edits in trunk/Tools
[GTK] Provide alternative mirror for the ICU tarball.
https://bugs.webkit.org/show_bug.cgi?id=154530
Unreviewed.
- gtk/jhbuild.modules: After r201449 the GTK+ ARM buildbot is having
a hard time trying to download the ICU tarball from download.icu-project.org
(which redirects to sourceforge and gives problems with something related to
SSL). Provide this alternative mirror to make things working back.
- 2:27 AM Changeset in webkit [201508] by
-
- 1 copy in releases/WebKitGTK/webkit-2.13.1
WebKitGTK+ 2.13.1
- 2:25 AM Changeset in webkit [201507] by
-
- 4 edits in trunk
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.13.1 release.
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit2:
- gtk/NEWS: Add release notes for 2.13.1.
- 12:51 AM Changeset in webkit [201506] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed. Fix GTK+ clean build after r201504.
- DatabaseProcess/DatabaseProcess.cpp: Add missing include.
- 12:22 AM Changeset in webkit [201505] by
-
- 2 edits in trunk/Tools
[GTK] Test /webkit2/WebKitWebView/geolocation-permission-requests is failing since r201423
https://bugs.webkit.org/show_bug.cgi?id=158200
Reviewed by Philippe Normand.
This is because geolocation is no longer allowed for non secure sites, like HTTP. In that case
POSITION_UNAVAILABLE is returned without asking the API layer.
- TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp:
(testWebViewGeolocationPermissionRequests): Keep the HTTP case to check that it indeed returns
POSITION_UNAVAILABLE and use HTTPS URLs to check permission requests are allowed or denied. Also stop using the
document title, and use user script messages that are more reliable instead.
May 30, 2016:
- 8:35 PM Changeset in webkit [201504] by
-
- 22 edits3 moves2 adds2 deletes in trunk/Source
Move CrossThreadCopier/CrossThreadTask to WTF.
https://bugs.webkit.org/show_bug.cgi?id=158207
Reviewed by Alex Christensen.
Source/WebCore:
No new tests (Refactor, no behavior change).
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- Modules/indexeddb/IDBActiveDOMObject.h:
- Modules/indexeddb/IDBValue.cpp:
- Modules/indexeddb/client/IDBConnectionProxy.h:
- Modules/indexeddb/server/IDBServer.cpp:
- Modules/indexeddb/server/IDBServer.h:
- Modules/indexeddb/server/UniqueIDBDatabase.h:
- dom/ScriptExecutionContext.h:
- fileapi/ThreadableBlobRegistry.cpp:
- platform/WebCoreCrossThreadCopier.cpp: Added.
(WTF::WebCore::SessionID>::copy):
(WTF::WebCore::ThreadSafeDataBuffer>::copy):
- platform/WebCoreCrossThreadCopier.h: Added.
- platform/network/cf/ResourceError.h:
(WebCore::ResourceError::isolatedCopy):
- platform/network/cf/ResourceRequest.h:
(WebCore::ResourceRequest::isolatedCopy):
- platform/network/cf/ResourceResponse.h:
(WebCore::ResourceResponse::isolatedCopy):
Source/WebKit2:
- CMakeLists.txt:
- WebKit2.xcodeproj/project.pbxproj:
- DatabaseProcess/DatabaseProcess.cpp:
- DatabaseProcess/DatabaseProcess.h:
- Shared/WebCrossThreadCopier.cpp: Removed.
- Shared/WebCrossThreadCopier.h: Removed.
Source/WTF:
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/CrossThreadCopier.cpp: Renamed from Source/WebCore/platform/CrossThreadCopier.cpp.
- wtf/CrossThreadCopier.h: Renamed from Source/WebCore/platform/CrossThreadCopier.h.
(WTF::CrossThreadCopierPassThrough::copy):
- wtf/CrossThreadTask.h: Renamed from Source/WebCore/platform/CrossThreadTask.h.
(WTF::CrossThreadTask::CrossThreadTask):
(WTF::CrossThreadTask::performTask):
(WTF::createCrossThreadTask):
- 8:25 PM Changeset in webkit [201503] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Timelines: "-0.000ms" in Self Time
https://bugs.webkit.org/show_bug.cgi?id=158162
<rdar://problem/26523350>
Reviewed by Darin Adler.
Values such as -0.0000 and +0.00001 seem to indicate there is
some floating point error accumulating in profile node data.
Since the sampling profiler isn't accurate to that precision,
let's clean up the data so near-zero numbers are simply zero.
- UserInterface/Models/ProfileNode.js:
Round selfTime down to zero if it's less than the
smallest value we would show in the user interface.
- 1:26 PM Changeset in webkit [201502] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Uncaught exception page should pre-populate the bug's URL with the inspected page URL
https://bugs.webkit.org/show_bug.cgi?id=158055
<rdar://problem/26516693>
Reviewed by Saam Barati.
- UserInterface/Debug/UncaughtExceptionReporter.js:
Include the encoded URL in the query string if it is not empty.
- 12:03 PM Changeset in webkit [201501] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening.
After the crash fix in r201500, update the test expectations for
http/tests/websocket/tests/hybi/stop-on-resume-in-error-handler.html.
Patch by Per Arne Vollan <pvollan@apple.com> on 2016-05-30
- platform/win/TestExpectations:
- 11:44 AM Changeset in webkit [201500] by
-
- 2 edits in trunk/Source/WebCore
http/tests/websocket/tests/hybi/stop-on-resume-in-error-handler.html crashes on Windows almost all the time
https://bugs.webkit.org/show_bug.cgi?id=144057
Patch by Per Arne Vollan <pvollan@apple.com> on 2016-05-30
Reviewed by Brent Fulgham.
Protect SocketStreamHandle object before trying to access it on the main thread, and make sure
CFWriteStreamRef parameter is valid before calling CFWriteStreamCanAcceptBytes.
- platform/network/cf/SocketStreamHandleCFNet.cpp:
(WebCore::SocketStreamHandle::readStreamCallback):
(WebCore::SocketStreamHandle::writeStreamCallback):
- 9:56 AM Changeset in webkit [201499] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Right-clicking in Snapshot's DataGrid throws an exception
https://bugs.webkit.org/show_bug.cgi?id=157934
<rdar://problem/26380910>
Reviewed by Brian Burg.
Check that click event target is actually a cell, as it can be a row
when focusing the table after dismissing a popup menu.
- UserInterface/Views/DataGrid.js:
(WebInspector.DataGridNode.prototype.isEventWithinDisclosureTriangle):
- 1:14 AM Changeset in webkit [201498] by
-
- 28 edits2 adds in trunk
[CSS Box Alignment] New CSS Value 'normal' for Self Alignment
https://bugs.webkit.org/show_bug.cgi?id=156254
Reviewed by Darin Adler.
Source/WebCore:
The Box Alignment specification defines a new value 'normal' to be used
as default for the different layout models, which will define the
specific behavior for each case. This patch adds a new CSS value in the
parsing logic and adapts the Self Alignment properties to the new
value.
The 'auto' value is no longer valid for the 'align-items' property and
the Computed Value will be always the specified value. Hence, I removed
the StyleResolver logic because is not required now; the specific
behavior of the 'normal' value will be resolved at layout time.
Additionally, this patch updates the layout logic as well, for both
Flexbox and Grid layout models.
Test: css3/parse-alignment-of-root-elements.html
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::resolveLegacyJustifyItems): Added.
(WebCore::resolveJustifyItemsAuto): Added.
(WebCore::resolveJustifySelfAuto): Added.
(WebCore::resolveAlignSelfAuto): Added.
(WebCore::valueForItemPositionWithOverflowAlignment): Using a StyleSelfAlignmentData argument.
(WebCore::ComputedStyleExtractor::propertyValue): Using the new resolving functions.
- css/CSSParser.cpp:
(WebCore::CSSParser::parseItemPositionOverflowPosition): A new value 'normal' is now valid.
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Mappings for the new value 'normal'.
(WebCore::CSSPrimitiveValue::operator ItemPosition): Mappings for the new value 'normal'.
- css/CSSPropertyNames.in:
- css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle): We don't need to resolve 'legacy" keyword.
- rendering/RenderBox.cpp:
(WebCore::flexItemHasStretchAlignment):
(WebCore::RenderBox::hasStretchedLogicalWidth):
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::styleDidChange):
(WebCore::RenderFlexibleBox::alignmentForChild):
(WebCore::contentAlignmentNormalBehaviorFlexibleBox):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::layoutColumnReverse):
(WebCore::RenderFlexibleBox::alignFlexLines):
(WebCore::RenderFlexibleBox::alignChildren):
- rendering/RenderGrid.cpp:
(WebCore::defaultAlignmentChangedToStretchInRowAxis):
(WebCore::defaultAlignmentChangedFromStretchInRowAxis):
(WebCore::defaultAlignmentChangedFromStretchInColumnAxis):
(WebCore::selfAlignmentChangedToStretchInRowAxis):
(WebCore::selfAlignmentChangedFromStretchInRowAxis):
(WebCore::selfAlignmentChangedFromStretchInColumnAxis):
(WebCore::contentAlignmentNormalBehaviorGrid):
(WebCore::RenderGrid::applyStretchAlignmentToTracksIfNeeded):
(WebCore::RenderGrid::needToStretchChildLogicalHeight):
(WebCore::RenderGrid::applyStretchAlignmentToChildIfNeeded):
(WebCore::RenderGrid::columnAxisPositionForChild):
(WebCore::RenderGrid::rowAxisPositionForChild):
(WebCore::RenderGrid::columnAxisOffsetForChild):
(WebCore::RenderGrid::rowAxisOffsetForChild):
(WebCore::RenderGrid::computeContentPositionAndDistributionOffset):
- rendering/style/RenderStyle.cpp:
(WebCore::resolvedSelfAlignment):
(WebCore::RenderStyle::resolvedAlignItems):
(WebCore::RenderStyle::resolvedAlignSelf):
(WebCore::RenderStyle::resolvedJustifyItems):
(WebCore::RenderStyle::resolvedJustifySelf):
- rendering/style/RenderStyle.h:
- rendering/style/RenderStyleConstants.h:
- rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): align-items uses now a different initial function.
LayoutTests:
Changes in the already defined tests for the alignment properties to
consider the new CSS value 'normal', which is the default for align-items
and the value to resolve 'auto' when there is no parent.
Added a new test to verify the Self-Alignment properties work as expected
with root elements.
- css3/flexbox/css-properties-expected.txt:
- css3/flexbox/css-properties.html:
- css3/parse-align-items-expected.txt:
- css3/parse-align-items.html:
- css3/parse-align-self-expected.txt:
- css3/parse-align-self.html:
- css3/parse-alignment-of-root-elements-expected.txt: Added.
- css3/parse-alignment-of-root-elements.html: Added.
- fast/css/getComputedStyle/computed-style-expected.txt:
- fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- fast/css/parse-justify-items-expected.txt:
- fast/css/parse-justify-items.html:
- fast/css/parse-justify-self-expected.txt:
- fast/css/parse-justify-self.html:
- fast/css/resources/alignment-parsing-utils.js:
- svg/css/getComputedStyle-basic-expected.txt:
(checkBadValues):
- svg/css/getComputedStyle-basic-expected.txt:
May 29, 2016:
- 11:53 PM Changeset in webkit [201497] by
-
- 10 edits in trunk/Source/WebCore
Transition various Task/Function queues from std::function to NoncopyableFunction.
https://bugs.webkit.org/show_bug.cgi?id=158196
Reviewed by Chris Dumez.
No new tests (Refactor, no behavior change).
- dom/ActiveDOMCallbackMicrotask.cpp:
(WebCore::ActiveDOMCallbackMicrotask::ActiveDOMCallbackMicrotask):
- dom/ActiveDOMCallbackMicrotask.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::layoutSizeChanged):
- page/FrameView.cpp:
(WebCore::FrameView::queuePostLayoutCallback):
(WebCore::FrameView::flushPostLayoutTasksQueue):
- page/FrameView.h:
- platform/GenericTaskQueue.cpp:
(WebCore::TaskDispatcher<Timer>::postTask):
(WebCore::TaskDispatcher<Timer>::dispatchOneTask):
- platform/GenericTaskQueue.h:
(WebCore::TaskDispatcher::postTask):
(WebCore::GenericTaskQueue::enqueueTask):
- style/StyleTreeResolver.cpp:
(WebCore::Style::postResolutionCallbackQueue):
(WebCore::Style::queuePostResolutionCallback):
(WebCore::Style::suspendMemoryCacheClientCalls):
- style/StyleTreeResolver.h:
- 11:23 PM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 9:30 PM Changeset in webkit [201496] by
-
- 7 edits in trunk/Source/WebCore
Make ScriptExecutionContext::Task work in terms of wtf::NoncopyableFunction instead of std::function.
https://bugs.webkit.org/show_bug.cgi?id=158187
Reviewed by Chris Dumez.
No new tests (Refactor, no behavior change).
Also make postTask take an rvalue reference.
- bindings/js/JSDOMGlobalObjectTask.cpp:
(WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
- dom/Document.cpp:
(WebCore::Document::postTask):
- dom/Document.h:
- dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::Task::Task):
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::postTask):
- workers/WorkerGlobalScope.h:
- 12:01 PM Changeset in webkit [201495] by
-
- 9 edits1 add in trunk/Source/JavaScriptCore
Stack overflow crashes with deep or cyclic proxy prototype chains
https://bugs.webkit.org/show_bug.cgi?id=157087
Reviewed by Filip Pizlo and Mark Lam.
Because a Proxy can call back into the JS runtime in arbitrary
ways, we may have effectively cyclic prototype chains and property lookups
by using a Proxy. We may also have arbitrarily long Proxy chains
where we call into a C frame for each link in the Proxy chain.
This means that every Proxy hook must be aware that it can stack overflow.
Before, only certain hooks were aware of this fact. That was a bug,
all hooks must assume they can stack overflow.
Also, because we may have effectively cyclic prototype chains, we
compile ProxyObject.cpp with -fno-optimize-sibling-calls. This prevents
tail call optimization from happening on any of the calls from
ProxyObject.cpp. We do this because we rely on the machine stack
growing for throwing a stack overflow error. It's better for developers
to be able to see a stack overflow error than to have their program
infinite loop because the compiler performed TCO.
This patch also fixes a couple call sites of various methods
where we didn't check for an exception.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- interpreter/Interpreter.cpp:
(JSC::sizeOfVarargs):
- runtime/InternalFunction.cpp:
(JSC::InternalFunction::createSubclassStructure):
- runtime/JSArray.h:
(JSC::getLength):
- runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncToString):
- runtime/ProxyObject.cpp:
(JSC::performProxyGet):
(JSC::ProxyObject::performInternalMethodGetOwnProperty):
(JSC::ProxyObject::performHasProperty):
(JSC::ProxyObject::getOwnPropertySlotCommon):
(JSC::ProxyObject::performPut):
(JSC::performProxyCall):
(JSC::performProxyConstruct):
(JSC::ProxyObject::performDelete):
(JSC::ProxyObject::performPreventExtensions):
(JSC::ProxyObject::performIsExtensible):
(JSC::ProxyObject::performDefineOwnProperty):
(JSC::ProxyObject::performGetOwnPropertyNames):
(JSC::ProxyObject::getOwnPropertyNames):
(JSC::ProxyObject::getPropertyNames):
(JSC::ProxyObject::getOwnNonIndexPropertyNames):
(JSC::ProxyObject::performSetPrototype):
(JSC::ProxyObject::performGetPrototype):
- runtime/ProxyObject.h:
(JSC::ProxyObject::create):
- tests/stress/proxy-stack-overflow-exceptions.js: Added.
(shouldThrowStackOverflow):
(const.emptyFunction):
(makeLongProxyChain):
(shouldThrowStackOverflow.longProxyChain):
(shouldThrowStackOverflow.effecivelyCyclicProxyProtoChain1):
(shouldThrowStackOverflow.effecivelyCyclicProxyProtoChain2):
(shouldThrowStackOverflow.effecivelyCyclicProxyProtoChain3):
(shouldThrowStackOverflow.longProxyChainBind):
(shouldThrowStackOverflow.longProxyChainPropertyAccess):
(shouldThrowStackOverflow.longProxyChainReflectConstruct):
(shouldThrowStackOverflow.longProxyChainReflectSet):
(shouldThrowStackOverflow.longProxyChainReflectOwnKeys):
(shouldThrowStackOverflow.longProxyChainGetPrototypeOf):
(shouldThrowStackOverflow.longProxyChainSetPrototypeOf):
(shouldThrowStackOverflow.longProxyChainGetOwnPropertyDescriptor):
(shouldThrowStackOverflow.longProxyChainDefineProperty):
(shouldThrowStackOverflow.longProxyChainIsExtensible):
(shouldThrowStackOverflow.longProxyChainPreventExtensions):
(shouldThrowStackOverflow.longProxyChainDeleteProperty):
(shouldThrowStackOverflow.longProxyChainWithScope):
(shouldThrowStackOverflow.longProxyChainWithScope2):
(shouldThrowStackOverflow.longProxyChainWithScope3):
(shouldThrowStackOverflow.longProxyChainArrayPrototypePush):
(shouldThrowStackOverflow.longProxyChainWithScope4):
(shouldThrowStackOverflow.longProxyChainCall):
(shouldThrowStackOverflow.longProxyChainConstruct):
(shouldThrowStackOverflow.longProxyChainHas):
May 28, 2016:
- 9:47 PM Changeset in webkit [201494] by
-
- 3 edits in trunk/Source/JavaScriptCore
JSGlobalLexicalEnvironment leaks SegmentedVector due to lack of destructor.
<https://webkit.org/b/158186>
Reviewed by Saam Barati.
Give JSGlobalLexicalEnvironment a destroy() and set up a finalizer for it
like we do with JSGlobalObject. (This is needed because they don't inherit
from JSDestructibleObjects and thus can't use JSCell::needsDestruction to
ask for allocation in destructor space.)
This stops us from leaking all the SegmentedVector backing stores.
- runtime/JSGlobalLexicalEnvironment.cpp:
(JSC::JSGlobalLexicalEnvironment::destroy):
- runtime/JSGlobalLexicalEnvironment.h:
(JSC::JSGlobalLexicalEnvironment::create):
- 9:20 PM Changeset in webkit [201493] by
-
- 37 edits in trunk/Source
Templatize NoncopyableFunction class similarly to std::function
https://bugs.webkit.org/show_bug.cgi?id=158185
Reviewed by Darin Adler.
Templatize NoncopyableFunction class similarly to std::function, so
that it can be used as a std::function replacement in more places.
Previously, NoncopyableFunction could only support "void()" lambdas.
Source/WebCore:
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::runTask):
- Modules/mediastream/MediaEndpointPeerConnection.h:
- fileapi/AsyncFileStream.cpp:
(WebCore::callOnFileThread):
(WebCore::AsyncFileStream::perform):
(WebCore::AsyncFileStream::getSize):
(WebCore::AsyncFileStream::openForRead):
(WebCore::AsyncFileStream::openForWrite):
(WebCore::AsyncFileStream::write):
- fileapi/AsyncFileStream.h:
- page/scrolling/ScrollingThread.cpp:
(WebCore::ScrollingThread::dispatch):
(WebCore::ScrollingThread::dispatchBarrier):
(WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread):
- page/scrolling/ScrollingThread.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::scheduleDeferredTask):
- platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::scheduleDeferredTask):
- platform/mediastream/MediaStreamPrivate.h:
- platform/mediastream/mac/AVMediaCaptureSource.h:
- platform/mediastream/mac/AVMediaCaptureSource.mm:
(WebCore::AVMediaCaptureSource::scheduleDeferredTask):
Source/WebKit:
- Storage/StorageSyncManager.cpp:
(WebCore::StorageSyncManager::dispatch):
- Storage/StorageSyncManager.h:
- Storage/StorageThread.cpp:
(WebCore::StorageThread::dispatch):
(WebCore::StorageThread::terminate):
- Storage/StorageThread.h:
Source/WebKit2:
- NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::runTaskInQueue):
Source/WTF:
- wtf/FunctionDispatcher.h:
- wtf/MainThread.cpp:
(WTF::functionQueue):
(WTF::dispatchFunctionsFromMainThread):
(WTF::callOnMainThread):
- wtf/MainThread.h:
- wtf/NoncopyableFunction.h:
- wtf/RunLoop.cpp:
(WTF::RunLoop::performWork):
(WTF::RunLoop::dispatch):
- wtf/RunLoop.h:
- wtf/WorkQueue.h:
- wtf/cocoa/WorkQueueCocoa.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
- wtf/efl/DispatchQueueWorkItemEfl.h:
(WorkItem::WorkItem):
(TimerWorkItem::create):
(TimerWorkItem::TimerWorkItem):
- wtf/efl/WorkQueueEfl.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
- wtf/generic/RunLoopGeneric.cpp:
(WTF::RunLoop::TimerBase::ScheduledTask::create):
(WTF::RunLoop::TimerBase::ScheduledTask::ScheduledTask):
(WTF::RunLoop::dispatchAfter):
- wtf/generic/WorkQueueGeneric.cpp:
(WorkQueue::dispatch):
(WorkQueue::dispatchAfter):
- wtf/glib/RunLoopGLib.cpp:
(WTF::DispatchAfterContext::DispatchAfterContext):
(WTF::RunLoop::dispatchAfter):
- wtf/win/WorkItemWin.cpp:
(WTF::WorkItemWin::WorkItemWin):
(WTF::WorkItemWin::create):
(WTF::HandleWorkItem::HandleWorkItem):
(WTF::HandleWorkItem::createByAdoptingHandle):
- wtf/win/WorkItemWin.h:
(WTF::WorkItemWin::function):
- wtf/win/WorkQueueWin.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
- 4:16 PM Changeset in webkit [201492] by
-
- 8 edits in trunk/Source
Fix the build with newer clang and other custom configuration options
https://bugs.webkit.org/show_bug.cgi?id=158161
Reviewed by Dan Bernstein.
Source/WebCore:
- platform/mac/WebVideoFullscreenInterfaceMac.mm:
(WebCore::WebVideoFullscreenInterfaceMac::rateChanged): Added UNUSED_PARAMs for the
case where this function is unimplemented.
(WebCore::WebVideoFullscreenInterfaceMac::setExternalPlayback): Added a non-additions
version of this function.
- platform/spi/cf/CFNetworkSPI.h: Silence nullability-completeness (and other) warnings.
I doubt that it's practical to get these right for every SDK version at this time. Added
functions for overriding HTTPS certicate behavior that we used to declare in .m files.
- platform/spi/mac/AVFoundationSPI.h: Define AVAssetCache conditionally.
Source/WebKit2:
- NetworkProcess/ios/NetworkProcessIOS.mm: -setAllowsSpecificHTTPSCertificate:forHost:
is now in CFNetworkSPI.h
- NetworkProcess/mac/NetworkProcessMac.mm: Ditto.
- Shared/mac/CookieStorageShimLibrary.cpp:
(WebKit::WebKitCookieStorageShimInitialize): Use more portable std::call_once.
- 12:53 PM Changeset in webkit [201491] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
Adding wptserve logging for 404 file-serving responses
https://bugs.webkit.org/show_bug.cgi?id=158183
Reviewed by Alexey Proskuryakov.
- resources/web-platform-tests-modules.json: Modifying wptserve module to log 404 FileHandler exceptions.
- 12:18 PM Changeset in webkit [201490] by
-
- 21 edits1 copy1 move3 adds in trunk
Autocorrection makes it hard to type "doesn't" and to type @ in email addresses
https://bugs.webkit.org/show_bug.cgi?id=158177
.:
Reviewed by Darin Adler.
Fixed manual tests for autocorrection panels and added a manual test for . Most of changes are fixing up the path to LayoutTests/editing/editing.js.
Also wrap many steps to type in a space or delete a character inside setTimeout since autocorrection happens on a timer
and the fact WebKit2 communicates with NSSpellChecker via IPC makes the behavior even more indeterministic.
- ManualTests/autocorrection/autocorrection-at-mark.html: Added.
- ManualTests/autocorrection/autocorrection-cancelled-by-ESC.html:
- ManualTests/autocorrection/autocorrection-cancelled-by-typing-1.html:
- ManualTests/autocorrection/autocorrection-contraction-2.html: Added.
- ManualTests/autocorrection/autocorrection-contraction.html:
- ManualTests/autocorrection/autocorrection-in-iframe.html:
- ManualTests/autocorrection/close-window-when-correction-is-shown.html:
- ManualTests/autocorrection/continue-typing-to-dismiss-reversion.html:
- ManualTests/autocorrection/delete-to-dismiss-reversion.html:
- ManualTests/autocorrection/delete-to-end-of-word-to-show-reversion.html:
- ManualTests/autocorrection/dismiss-multiple-guesses.html:
- ManualTests/autocorrection/document-for-iframe-test.html: Removed.
- ManualTests/autocorrection/move-to-end-of-word-to-show-reversion.html: Type a space and move care in setTimeout as
the reversion panel wouldn't show up otherwise.
- ManualTests/autocorrection/remove-misspelling-marker-after-appending-letter.html: Delay the typing of a space as well as
deleting letters since autocorrection panel wouldn't show up in time otherwise, and deleting character immediately would
reject the autocorrection instead of accepting it. Also removed the steps to add back the spellchecking marker and extracted
it as a separate test.
- ManualTests/autocorrection/removing-misspelling-marker-after-appending-letter-2.html: Copied. This test continues the full
scenario in the previous test by typing a space and deleting the character, thereby bringing up spellchecking marker.
- ManualTests/autocorrection/resources: Added.
- ManualTests/autocorrection/resources/document-for-iframe-test.html: Moved from ManualTests/autocorrection/.
- ManualTests/autocorrection/select-from-multiple-guesses.html: Added a missing instruction.
- ManualTests/autocorrection/spell-checking-after-reversion.html:
- ManualTests/autocorrection/type-whitespace-to-dismiss-reversion.html: Delay the typing of a space and moving the selection
since the reversion panel wouldn't show up otherwise.
- ManualTests/autocorrection/undo-autocorrection-2.html: Copied. Automated most of steps in the second test case.
- ManualTests/autocorrection/undo-autocorrection.html:
Source/WebCore:
<rdar://problem/20490862>
<rdar://problem/24707954>
Reviewed by Darin Adler.
When the user had typed "doesn'", some unified spellchecker may try to autocorrect it to "doesn't" or "does"
but we should ignore this for a moment until the next character is typed by the user. The code to deal with
this situation which checks the existence of an "ambiguous boundary character" was not robust when the
replacement text was longer than the corrected text.
Fixed this bug by fixing the logic to detect this case. Also added '@' as an ambiguous boundary character
since autocorrecting letters that appear right before '@' would not be useful in many cases.
Tests: ManualTests/autocorrection/autocorrection-at-mark.html
ManualTests/autocorrection/autocorrection-contraction-2.html
- editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::timerFired): Fixed a bug that we can show an empty reversion panel.
- editing/Editor.cpp:
(WebCore::Editor::markAndReplaceFor): When the user had typed "doesn'" and our autocorrection result is
"doesn't", resultEndLocation (the end of "doesn't") is larger than selectionOffset (the end of "doesn'").
When the correction is "does", resultEndLocation (the end of "does") is one less than selectionOffset.
Updated the condition to deal with both of these conditions as well as cases where the correction result
contains more than one letter after '.
- editing/htmlediting.cpp:
(WebCore::isAmbiguousBoundaryCharacter): Moved from the header file since this is not a hot function and
doesn't need to be inlined everywhere. Added '@' as an ambiguous boundary character.
- editing/htmlediting.h:
(WebCore::isAmbiguousBoundaryCharacter): Moved to the cpp file.
- 11:27 AM Changeset in webkit [201489] by
-
- 2 edits in trunk/Tools
tests fail if display sleeps while run-webkit-tests is running
https://bugs.webkit.org/show_bug.cgi?id=153919
Reviewed by Darin Adler.
- DumpRenderTree/mac/LayoutTestHelper.m:
(addDisplaySleepAssertion): Use PreventUserIdleSystemSleep flag, same as set by caffeinate tool.
- 11:26 AM Changeset in webkit [201488] by
-
- 6 edits1 add in trunk
[Next] Trailing commas in function parameters.
https://bugs.webkit.org/show_bug.cgi?id=158020
Reviewed by Keith Miller.
ESNext allow to add trailing commas in function parameters and function arguments.
Link to spec - https://jeffmo.github.io/es-trailing-function-commas
Example of using - (function (a, b,) { return a + b; })(1,2,);
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseFormalParameters):
(JSC::Parser<LexerType>::parseArguments):
- tests/stress/trailing-comma-in-function-paramters.js: Added.
- 10:47 AM Changeset in webkit [201487] by
-
- 13 edits in trunk/Source/JavaScriptCore
[JSC] op_new_arrow_func_exp is no longer necessary
https://bugs.webkit.org/show_bug.cgi?id=158180
Reviewed by Saam Barati.
This patch removes op_new_arrow_func_exp bytecode since
what op_new_arrow_func_exp is doing is completely the same to op_new_func_exp.
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset): Deleted.
(JSC::computeDefsForBytecodeOffset): Deleted.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode): Deleted.
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitNewFunctionExpressionCommon):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel): Deleted.
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass): Deleted.
- jit/JIT.h:
- jit/JITOpcodes.cpp:
(JSC::JIT::emitNewFuncExprCommon):
(JSC::JIT::emit_op_new_arrow_func_exp): Deleted.
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL): Deleted.
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- 10:05 AM Changeset in webkit [201486] by
-
- 3 edits in trunk/Source/WebCore
FileSystem: use OS(WINDOWS) instead of PLATFORM(WIN).
https://bugs.webkit.org/show_bug.cgi?id=158168
Reviewed by Darin Adler.
No new tests needed.
- platform/FileSystem.cpp:
(WebCore::lastComponentOfPathIgnoringTrailingSlash):
(WebCore::MappedFileData::~MappedFileData):
(WebCore::MappedFileData::MappedFileData):
- platform/FileSystem.h: Removed unused PlatformFilePathSeparator
constant.
- 9:55 AM Changeset in webkit [201485] by
-
- 3 edits in trunk/Source/WebCore
Use COMPILER(MSVC) instead of PLATFORM(WIN) for MSVC-specific workaround
https://bugs.webkit.org/show_bug.cgi?id=158169
Reviewed by NOBODY (OOPS!).
No new tests needed.
- platform/PlatformMouseEvent.h:
- platform/win/PlatformMouseEventWin.cpp: Moved operators'
implementations to PlatformMouseEvent.h
- 9:54 AM Changeset in webkit [201484] by
-
- 7 edits in trunk/Source/WebKit2
Modernize lambda captures in the network disk cache implementation
https://bugs.webkit.org/show_bug.cgi?id=158179
Reviewed by Darin Adler.
Modernize lambda captures in the network disk cache implementation.
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::retrieve):
(WebKit::NetworkCache::Cache::store):
(WebKit::NetworkCache::Cache::traverse):
- NetworkProcess/cache/NetworkCache.h:
- NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::inputStreamReadReadyCallback):
(WebKit::NetworkCache::outputStreamWriteReadyCallback):
- NetworkProcess/cache/NetworkCacheStatistics.cpp:
(WebKit::NetworkCache::Statistics::initialize):
(WebKit::NetworkCache::Statistics::shrinkIfNeeded):
(WebKit::NetworkCache::Statistics::queryWasEverRequested):
- NetworkProcess/cache/NetworkCacheStatistics.h:
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::updateFileModificationTime):
(WebKit::NetworkCache::Storage::clear):
- 9:33 AM Changeset in webkit [201483] by
-
- 2 edits in trunk/Source/WTF
Build fix for projects that include MainThread.h without including FastMalloc.h.
- wtf/NoncopyableFunction.h: Include FastMalloc.h from here.
May 27, 2016:
- 10:51 PM Changeset in webkit [201482] by
-
- 60 edits1 copy in trunk/Source
callOnMainThread() should not copy captured lambda variables
https://bugs.webkit.org/show_bug.cgi?id=158166
Reviewed by Brady Eidson.
Source/WebCore:
callOnMainThread() should not copy captured lambda variables. This
function is usually called cross-thread with a lambda and copying
the lambda (and its captured variables) can lead to thread-safety
issues.
This patch updates callOnMainThread() to take a NoncopyableFunction&&
in parameter instead of a std::function. The call sites of
callOnMainThread() have also been updated to use C++14's lambda
capture with initializer.
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::putOrAddOnServer):
- Modules/mediastream/MediaDevicesRequest.cpp:
(WebCore::MediaDevicesRequest::didCompletePermissionCheck):
(WebCore::MediaDevicesRequest::didCompleteTrackSourceInfoRequest):
- Modules/mediastream/MediaEndpointPeerConnection.cpp:
(WebCore::MediaEndpointPeerConnection::runTask):
- Modules/mediastream/MediaEndpointPeerConnection.h:
- Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::constraintsValidated):
(WebCore::UserMediaRequest::userMediaAccessGranted):
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::scheduleNodeDeletion):
(WebCore::AudioContext::isPlayingAudioDidChange):
- dom/Document.cpp:
(WebCore::Document::postTask):
(WebCore::Document::pendingTasksTimerFired): Deleted.
- dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestScript):
- fileapi/AsyncFileStream.cpp:
(WebCore::callOnFileThread):
(WebCore::AsyncFileStream::~AsyncFileStream):
(WebCore::AsyncFileStream::perform):
- fileapi/AsyncFileStream.h:
- fileapi/ThreadableBlobRegistry.cpp:
(WebCore::ThreadableBlobRegistry::registerFileBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):
(WebCore::ThreadableBlobRegistry::blobSize):
(WebCore::ThreadableBlobRegistry::unregisterBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURLOptionallyFileBacked): Deleted.
- loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::dispatchDidImportIconURLForPageURLOnMainThread):
(WebCore::IconDatabase::dispatchDidImportIconDataForPageURLOnMainThread):
- page/ResourceUsageThread.cpp:
(WebCore::ResourceUsageThread::notifyObservers):
(WebCore::ResourceUsageThread::threadBody):
- page/ResourceUsageThread.h:
- page/scrolling/ScrollingThread.cpp:
(WebCore::ScrollingThread::dispatch):
(WebCore::ScrollingThread::dispatchBarrier):
(WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread):
- page/scrolling/ScrollingThread.h:
- page/scrolling/ios/ScrollingTreeIOS.cpp:
(WebCore::ScrollingTreeIOS::invalidate):
(WebCore::ScrollingTreeIOS::scrollingTreeNodeDidScroll):
(WebCore::ScrollingTreeIOS::currentSnapPointIndicesDidChange):
(WebCore::ScrollingTreeIOS::createScrollingTreeNode): Deleted.
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::releaseReferencesToScrollerImpsOnTheMainThread):
- platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::releaseMemory):
- platform/audio/ios/MediaSessionManagerIOS.mm:
(-[WebMediaSessionHelper dealloc]):
(-[WebMediaSessionHelper startMonitoringAirPlayRoutes]):
(-[WebMediaSessionHelper stopMonitoringAirPlayRoutes]):
- platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
(WebCore::AudioSourceProviderAVFObjC::prepare):
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
- platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:
(-[WebCDMSessionAVFoundationObjCListener observeValueForKeyPath:ofObject:change:context:]):
- platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
(-[WebAVOutputDeviceMenuControllerHelper observeValueForKeyPath:ofObject:change:context:]):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
(-[WebCoreAVFMovieObserver outputSequenceWasFlushed:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForResponseToAuthenticationChallenge:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::CMTimebaseEffectiveRateChangedCallback):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::play):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pause):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::scheduleDeferredTask):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]):
(-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]):
(-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]):
(-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]):
(-[WebAVStreamDataParserListener streamDataParser:didReachEndOfTrackWithTrackID:mediaType:]):
(-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]):
(-[WebAVSampleBufferErrorListener observeValueForKeyPath:ofObject:change:context:]):
(-[WebAVSampleBufferErrorListener layerFailedToDecode:]):
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::patternReleaseCallback):
- platform/graphics/cg/PatternCG.cpp:
(WebCore::patternReleaseCallback):
- platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
(WebCore::MediaPlayerPrivateMediaFoundation::endCreatedMediaSource):
(WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::processInputNotify):
- platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::scheduleDeferredTask):
- platform/mediastream/MediaStreamPrivate.h:
- platform/mediastream/mac/AVMediaCaptureSource.h:
- platform/mediastream/mac/AVMediaCaptureSource.mm:
(WebCore::AVMediaCaptureSource::scheduleDeferredTask):
- platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::RealtimeMediaSourceCenterMac::getMediaStreamTrackSources):
- platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm:
(WebCore::WebAudioSourceProviderAVFObjC::prepare):
- platform/mock/MockRealtimeMediaSourceCenter.cpp:
(WebCore::MockRealtimeMediaSourceCenter::getMediaStreamTrackSources):
- platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::start):
(WebCore::BlobResourceHandle::notifyFinish):
- platform/network/DataURLDecoder.cpp:
(WebCore::DataURLDecoder::decode):
- platform/network/DataURLDecoder.h:
- platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSession dealloc]):
(-[WebCoreNSURLSessionDataTask cancel]):
(-[WebCoreNSURLSessionDataTask suspend]):
(-[WebCoreNSURLSessionDataTask resume]):
- platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::didReceiveHeader):
(WebCore::CurlDownload::didReceiveData): Deleted.
Source/WebKit:
callOnMainThread() should not copy captured lambda variables. This
function is usually called cross-thread with a lambda and copying
the lambda (and its captured variables) can lead to thread-safety
issues.
This patch updates callOnMainThread() to take a NoncopyableFunction&&
in parameter instead of a std::function. The call sites of
callOnMainThread() have also been updated to use C++14's lambda
capture with initializer.
- Storage/StorageAreaSync.cpp:
(WebCore::StorageAreaSync::deleteEmptyDatabase):
- Storage/StorageSyncManager.cpp:
(WebCore::StorageSyncManager::dispatch):
- Storage/StorageSyncManager.h:
- Storage/StorageThread.cpp:
(WebCore::StorageThread::dispatch):
(WebCore::StorageThread::terminate):
(WebCore::StorageThread::releaseFastMallocFreeMemoryInAllThreads):
- Storage/StorageThread.h:
- Storage/StorageTracker.cpp:
(WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
(WebCore::StorageTracker::setOriginDetails):
Source/WebKit/mac:
callOnMainThread() should not copy captured lambda variables. This
function is usually called cross-thread with a lambda and copying
the lambda (and its captured variables) can lead to thread-safety
issues.
This patch updates callOnMainThread() to take a NoncopyableFunction&&
in parameter instead of a std::function. The call sites of
callOnMainThread() have also been updated to use C++14's lambda
capture with initializer.
- Storage/WebDatabaseManagerClient.mm:
(DidModifyOriginData::dispatchToMainThread):
(DidModifyOriginData::DidModifyOriginData): Deleted.
- Storage/WebStorageTrackerClient.mm:
(WebStorageTrackerClient::dispatchDidModifyOrigin):
Source/WTF:
callOnMainThread() should not copy captured lambda variables. This
function is usually called cross-thread with a lambda and copying
the lambda (and its captured variables) can lead to thread-safety
issues.
This patch updates callOnMainThread() to take a NoncopyableFunction&&
in parameter instead of a std::function. The call sites of
callOnMainThread() have also been updated to use C++14's lambda
capture with initializer.
- WTF.xcodeproj/project.pbxproj:
- wtf/FunctionDispatcher.h:
- wtf/NoncopyableFunction.h:
- Moved NoncopyableFunction from FunctionDispatcher.h to NoncopyableFunction.h.
- Add a new operator=(nullptr_t) operator to NoncopyableFunction to match std::function, as one of the call sites needed it.
- wtf/MainThread.cpp:
(WTF::functionQueue):
(WTF::dispatchFunctionsFromMainThread):
(WTF::callOnMainThread):
- wtf/MainThread.h:
- 10:44 PM Changeset in webkit [201481] by
-
- 54 edits15 adds in trunk/Source
[JSC] implement async functions proposal
https://bugs.webkit.org/show_bug.cgi?id=156147
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
Adds support for
asyncfunctions, proposed in https://tc39.github.io/ecmascript-asyncawait/.
On the front-end side, "await" becomes a contextual keyword when used within an async function,
which triggers parsing an AwaitExpression. "await" becomes an illegal identifier name within
these contexts. The bytecode generated from an "await" expression is identical to that generated
in a "yield" expression in a Generator, as AsyncFunction reuses generator's state machine mechanism.
There are numerous syntactic forms for language features, including a variation on ArrowFunctions,
requiring the keywordasyncto precede ArrowFormalParameters, and similarly, MethodDefinitions,
which are ordinary MethodDefinitions preceded by the keywordasync.
An async function desugars to the following:
`
async function asyncFn() {
}
becomes:
function asyncFn() {
let generator = {
@generatorNext: function(@generator, @generatorState, @generatorValue, @generatorResumeMode) {
generator state machine stuff here
},
@generatorState: 0,
@generatorThis: this,
@generatorFrame: null
};
return @asyncFunctionResume(generator, undefined, GeneratorResumeMode::NormalMode);
}
`
@asyncFunctionResume()is similar to@generatorResume, with the exception that it will wrap the
result of invoking@generatorNext()in a Promise, and will avoid allocating an iterator result
object.
If the generator has yielded (an AwaitExpression has occurred), resumption will occur automatically
once the await-expression operand is finished, via Promise chaining.
- API/JSScriptRef.cpp:
(parseScript):
- CMakeLists.txt:
- DerivedSources.make:
- JavaScriptCore.xcodeproj/project.pbxproj:
- builtins/AsyncFunctionPrototype.js: Added.
(asyncFunctionResume):
- builtins/BuiltinExecutables.cpp:
(JSC::BuiltinExecutables::createExecutable):
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::finishCreation):
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::isArrowFunction):
(JSC::UnlinkedCodeBlock::isOrdinaryArrowFunction):
(JSC::UnlinkedCodeBlock::isAsyncArrowFunction):
- bytecode/UnlinkedFunctionExecutable.cpp:
(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::fromGlobalCode):
(JSC::UnlinkedFunctionExecutable::unlinkedCodeBlockFor):
- bytecode/UnlinkedFunctionExecutable.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitNewFunctionExpressionCommon):
(JSC::BytecodeGenerator::emitNewArrowFunctionExpression):
(JSC::BytecodeGenerator::emitNewMethodDefinition):
(JSC::BytecodeGenerator::emitNewFunction):
(JSC::BytecodeGenerator::emitLoadArrowFunctionLexicalEnvironment):
- bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::makeFunction):
- bytecompiler/NodesCodegen.cpp:
(JSC::FunctionNode::emitBytecode):
- inspector/agents/InspectorRuntimeAgent.cpp:
(Inspector::InspectorRuntimeAgent::parse):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
- jit/JIT.h:
- jit/JITOpcodes.cpp:
(JSC::JIT::emitNewFuncCommon):
(JSC::JIT::emit_op_new_async_func):
(JSC::JIT::emitNewFuncExprCommon):
(JSC::JIT::emit_op_new_async_func_exp):
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- jsc.cpp:
(runInteractive):
(printUsageStatement):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- parser/ASTBuilder.h:
(JSC::ASTBuilder::createAsyncFunctionBody):
- parser/Keywords.table:
- parser/Parser.cpp:
(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::isArrowFunctionParameters):
(JSC::Parser<LexerType>::parseAsyncFunctionSourceElements):
(JSC::Parser<LexerType>::parseStatementListItem):
(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseStatement):
(JSC::Parser<LexerType>::parseFunctionDeclarationStatement):
(JSC::Parser<LexerType>::parseFormalParameters):
(JSC::stringForFunctionMode):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseAsyncFunctionDeclaration):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseExpressionOrLabelStatement):
(JSC::Parser<LexerType>::parseImportClauseItem):
(JSC::Parser<LexerType>::parseImportDeclaration):
(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::Parser<LexerType>::parseAwaitExpression):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parsePropertyMethod):
(JSC::Parser<LexerType>::parseAsyncFunctionExpression):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseMemberExpression):
(JSC::Parser<LexerType>::parseArrowFunctionExpression):
(JSC::Parser<LexerType>::parseUnaryExpression):
(JSC::Parser<LexerType>::printUnexpectedTokenText):
- parser/Parser.h:
(JSC::isIdentifierOrKeyword):
(JSC::Scope::Scope):
(JSC::Scope::setSourceParseMode):
(JSC::Scope::isAsyncFunction):
(JSC::Scope::isAsyncFunctionBoundary):
(JSC::Scope::isModule):
(JSC::Scope::setIsFunction):
(JSC::Scope::setIsAsyncArrowFunction):
(JSC::Scope::setIsAsyncFunction):
(JSC::Scope::setIsAsyncFunctionBody):
(JSC::Scope::setIsAsyncArrowFunctionBody):
(JSC::Parser::ExpressionErrorClassifier::forceClassifyExpressionError):
(JSC::Parser::ExpressionErrorClassifier::propagateExpressionErrorClass):
(JSC::Parser::ExpressionErrorClassifier::indicatesPossibleAsyncArrowFunction):
(JSC::Parser::forceClassifyExpressionError):
(JSC::Parser::declarationTypeToVariableKind):
(JSC::Parser::closestParentOrdinaryFunctionNonLexicalScope):
(JSC::Parser::pushScope):
(JSC::Parser::popScopeInternal):
(JSC::Parser::matchSpecIdentifier):
(JSC::Parser::isDisallowedIdentifierAwait):
(JSC::Parser::disallowedIdentifierAwaitReason):
(JSC::parse):
- parser/ParserModes.h:
(JSC::isFunctionParseMode):
(JSC::isAsyncFunctionParseMode):
(JSC::isAsyncArrowFunctionParseMode):
(JSC::isAsyncFunctionWrapperParseMode):
(JSC::isAsyncFunctionBodyParseMode):
(JSC::isModuleParseMode):
(JSC::isProgramParseMode):
(JSC::constructAbilityForParseMode):
- parser/ParserTokens.h:
- parser/SourceCodeKey.h:
(JSC::SourceCodeKey::SourceCodeKey):
(JSC::SourceCodeKey::runtimeFlags):
(JSC::SourceCodeKey::operator==):
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createAsyncFunctionBody):
- runtime/AsyncFunctionConstructor.cpp: Added.
(JSC::AsyncFunctionConstructor::AsyncFunctionConstructor):
(JSC::AsyncFunctionConstructor::finishCreation):
(JSC::callAsyncFunctionConstructor):
(JSC::constructAsyncFunctionConstructor):
(JSC::AsyncFunctionConstructor::getCallData):
(JSC::AsyncFunctionConstructor::getConstructData):
- runtime/AsyncFunctionConstructor.h: Added.
(JSC::AsyncFunctionConstructor::create):
(JSC::AsyncFunctionConstructor::createStructure):
- runtime/AsyncFunctionPrototype.cpp: Added.
(JSC::AsyncFunctionPrototype::AsyncFunctionPrototype):
(JSC::AsyncFunctionPrototype::finishCreation):
- runtime/AsyncFunctionPrototype.h: Added.
(JSC::AsyncFunctionPrototype::create):
(JSC::AsyncFunctionPrototype::createStructure):
- runtime/CodeCache.cpp:
(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getModuleProgramCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):
- runtime/CodeCache.h:
- runtime/CommonIdentifiers.h:
- runtime/Completion.cpp:
(JSC::checkSyntax):
(JSC::checkModuleSyntax):
- runtime/Completion.h:
- runtime/Executable.cpp:
(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ProgramExecutable::checkSyntax):
- runtime/Executable.h:
- runtime/FunctionConstructor.cpp:
(JSC::constructFunctionSkippingEvalEnabledCheck):
- runtime/FunctionConstructor.h:
- runtime/JSAsyncFunction.cpp: Added.
(JSC::JSAsyncFunction::JSAsyncFunction):
(JSC::JSAsyncFunction::createImpl):
(JSC::JSAsyncFunction::create):
(JSC::JSAsyncFunction::createWithInvalidatedReallocationWatchpoint):
- runtime/JSAsyncFunction.h: Added.
(JSC::JSAsyncFunction::allocationSize):
(JSC::JSAsyncFunction::createStructure):
- runtime/JSFunction.cpp:
(JSC::JSFunction::getOwnPropertySlot):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::createProgramCodeBlock):
(JSC::JSGlobalObject::createEvalCodeBlock):
(JSC::JSGlobalObject::createModuleProgramCodeBlock):
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::asyncFunctionPrototype):
(JSC::JSGlobalObject::asyncFunctionStructure):
- runtime/ModuleLoaderObject.cpp:
(JSC::moduleLoaderObjectParseModule):
- runtime/RuntimeFlags.h:
(JSC::RuntimeFlags::operator==):
(JSC::RuntimeFlags::operator!=):
- tests/stress/async-await-basic.js: Added.
(shouldBe):
(shouldBeAsync):
(shouldThrow):
(shouldThrowAsync):
(let.AsyncFunction.async):
(async.asyncFunctionForProto):
(Object.getPrototypeOf.async):
(Object.getPrototypeOf.async.method):
(async):
(async.method):
(async.asyncNonConstructorDecl):
(shouldThrow.new.async):
(shouldThrow.new.async.nonConstructor):
(async.asyncDecl):
(async.f):
(MyError):
(async.asyncDeclThrower):
(shouldThrowAsync.async):
(resolveLater):
(rejectLater):
(async.resumeAfterNormal):
(O.async.resumeAfterNormal):
(resumeAfterNormalArrow.async):
(async.resumeAfterThrow):
(O.async.resumeAfterThrow):
(resumeAfterThrowArrow.async):
(catch):
- tests/stress/async-await-module-reserved-word.js: Added.
(shouldThrow):
(SyntaxError.Canstring_appeared_hereawait.checkModuleSyntaxError.String.raw.await):
(checkModuleSyntaxError.String.raw.await):
(checkModuleSyntaxError.String.raw.async.await):
(SyntaxError.Cannot.declare.named):
- tests/stress/async-await-mozilla.js: Added.
(shouldBe):
(shouldBeAsync):
(shouldThrow):
(shouldThrowAsync):
(assert):
(shouldThrowSyntaxError):
(mozSemantics.async.empty):
(mozSemantics.async.simpleReturn):
(mozSemantics.async.simpleAwait):
(mozSemantics.async.simpleAwaitAsync):
(mozSemantics.async.returnOtherAsync):
(mozSemantics.async.simpleThrower):
(mozSemantics.async.delegatedThrower):
(mozSemantics.async.tryCatch):
(mozSemantics.async.tryCatchThrow):
(mozSemantics.async.wellFinally):
(mozSemantics.async.finallyMayFail):
(mozSemantics.async.embedded.async.inner):
(mozSemantics.async.embedded):
(mozSemantics.async.fib):
(mozSemantics.async.isOdd.async.isEven):
(mozSemantics.async.isOdd):
(mozSemantics.hardcoreFib.async.fib2):
(mozSemantics.namedAsyncExpr.async.simple):
(mozSemantics.async.executionOrder.async.first):
(mozSemantics.async.executionOrder.async.second):
(mozSemantics.async.executionOrder.async.third):
(mozSemantics.async.executionOrder):
(mozSemantics.async.miscellaneous):
(mozSemantics.thrower):
(mozSemantics.async.defaultArgs):
(mozSemantics.shouldThrow):
(mozSemantics):
(mozMethods.X):
(mozMethods.X.prototype.async.getValue):
(mozMethods.X.prototype.setValue):
(mozMethods.X.prototype.async.increment):
(mozMethods.X.prototype.async.getBaseClassName):
(mozMethods.X.async.getStaticValue):
(mozMethods.Y.prototype.async.getBaseClassName):
(mozMethods.Y):
(mozFunctionNameInferrence.async.test):
(mozSyntaxErrors):
- tests/stress/async-await-reserved-word.js: Added.
(assert):
(shouldThrowSyntaxError):
(AsyncFunction.async):
- tests/stress/async_arrow_functions_lexical_arguments_binding.js: Added.
(shouldBe):
(shouldBeAsync):
(shouldThrowAsync):
(noArgumentsArrow2.async):
- tests/stress/async_arrow_functions_lexical_new.target_binding.js: Added.
(shouldBe):
(shouldBeAsync):
(shouldThrowAsync):
(C1):
(C2):
(shouldThrowAsync.async):
- tests/stress/async_arrow_functions_lexical_super_binding.js: Added.
(shouldBe):
(shouldBeAsync):
(BaseClass.prototype.baseClassValue):
(BaseClass):
(ChildClass.prototype.asyncSuperProp):
(ChildClass.prototype.asyncSuperProp2):
(ChildClass):
- tests/stress/async_arrow_functions_lexical_this_binding.js: Added.
(shouldBe):
(shouldBeAsync):
(d.y):
Source/WebKit/mac:
- WebView/WebPreferencesPrivate.h:
Source/WebKit/win:
- Interfaces/IWebPreferencesPrivate.idl:
Source/WebKit2:
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- 9:48 PM Changeset in webkit [201480] by
-
- 2 edits in trunk/Source/WebKit2
Improve lambda capture in NetworkCache::Storage::synchronize()
https://bugs.webkit.org/show_bug.cgi?id=158176
Reviewed by Brady Eidson.
Improve lambda capture in NetworkCache::Storage::synchronize(). We can
now capture the std::unique_ptr<> variables directly thanks to:
- C++14's support for initializer's in lambda captures
- RunLoop::dispatch() now takes a NoncopyableFunction in instead of a std::function, allowing us to capture non-copyable variables.
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::synchronize):
- 9:18 PM Changeset in webkit [201479] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, build fix for JSCOnly port.
https://bugs.webkit.org/show_bug.cgi?id=158111
Use NoncopyableFunction instead of std::function<>.
- wtf/generic/RunLoopGeneric.cpp:
(WTF::RunLoop::TimerBase::ScheduledTask::create):
(WTF::RunLoop::TimerBase::ScheduledTask::ScheduledTask):
- 6:22 PM Changeset in webkit [201478] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r190574): Swipe snapshots are always black on iPhone 5
https://bugs.webkit.org/show_bug.cgi?id=158171
<rdar://problem/24639709>
Reviewed by Beth Dakin.
- platform/graphics/cocoa/IOSurface.mm:
(optionsForBiplanarSurface):
(optionsFor32BitSurface):
(IOSurface::IOSurface):
(IOSurface::format):
We are supposed to be using bi-planar 422f, not yuvf. They're the same
size, but different formats, and 422f is supported in more places.
Clean up the IOSurface constructor so we don't have a switch inside an if
with random ASSERT_NOT_REACHED, making helper functions to build the
options dictionary for arbitrary-size biplanar and 32-bit single-planar
surfaces.
I don't know how to write a test because IOSurface is not supported
in the simulator.
- 5:44 PM Changeset in webkit [201477] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Not all transitively dominated nodes display their retained size
https://bugs.webkit.org/show_bug.cgi?id=158174
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-05-27
Reviewed by Timothy Hatcher.
- UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._isDominatedByNonBaseParent):
Use the parent reference changing in the loop instead of always using the same parent.
- 5:07 PM Changeset in webkit [201476] by
-
- 5 edits2 adds in trunk
EventHandler finds incorrect scrollable container.
https://bugs.webkit.org/show_bug.cgi?id=158132
<rdar://problem/26423126>
Reviewed by Brent Fulgham.
Fix the logic that checks whether we are at the beginning or at the end of the container (horizontally).
While scrolling to the right, deltaX has negative values. So in case of deltaX < 0, we need to check if
the container is not scrolled all the way to the right.
Source/WebCore:
Test: fast/scrolling/scroll-container-horizontally.html
- page/mac/EventHandlerMac.mm:
(WebCore::findEnclosingScrollableContainer):
LayoutTests:
- fast/scrolling/scroll-container-horizontally-expected.txt: Added.
- fast/scrolling/scroll-container-horizontally.html: Added.
- platform/ios-simulator/TestExpectations:
- platform/mac-wk1/TestExpectations:
- 5:06 PM Changeset in webkit [201475] by
-
- 10 edits2 copies1 add in trunk/Tools
Display failing JSC stress tests in buildbot dashboard
https://bugs.webkit.org/show_bug.cgi?id=156595
Patch by Srinivasan Vijayaraghavan <svijayaraghavan@apple.com> on 2016-05-27
Reviewed by Alexey Proskuryakov.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Buildbot.js:
(Buildbot.prototype.javaScriptCoreTestFailuresURLForIteration):
(Buildbot.prototype.javaScriptCoreTestStdioUrlForIteration):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotCombinedQueueView.js:
(BuildbotCombinedQueueView.prototype.update):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
(BuildbotIteration):
(BuildbotIteration.prototype._parseData):
(BuildbotIteration.prototype.loadLayoutTestResults):
(BuildbotIteration.prototype.):
(BuildbotIteration.prototype.loadJavaScriptCoreTestResults):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotQueueView.js:
(BuildbotQueueView.prototype._createLoadingIndicator):
(BuildbotQueueView.prototype.):
(BuildbotQueueView.prototype._onPopoverCopy):
(BuildbotQueueView.prototype._popoverContentForJavaScriptCoreTestRegressions):
(BuildbotQueueView.prototype._presentPopoverForJavaScriptCoreTestRegressions):
(BuildbotQueueView.prototype._addIterationHeadingToPopover):
(BuildbotQueueView.prototype._testStepFailureDescription):
(BuildbotQueueView.prototype._testStepFailureDescriptionWithCount):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTestResults.js:
(BuildbotTestResults.prototype.addJavaScriptCoreTestFailures):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:
(BuildbotTesterQueueView.prototype.appendBuilderQueueStatus):
(BuildbotTesterQueueView.prototype.update):
(BuildbotTesterQueueView.prototype._popoverContentForLayoutTestRegressions):
(BuildbotTesterQueueView.prototype._presentPopoverForLayoutTestRegressions):
(BuildbotTesterQueueView.prototype._testStepFailureDescription): Deleted.
(BuildbotTesterQueueView.prototype._testStepFailureDescriptionWithCount): Deleted.
(BuildbotTesterQueueView.prototype.): Deleted.
(BuildbotTesterQueueView.prototype.content.oncopy): Deleted.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/index.html:
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockBuildbot.js: Copied from Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockBuildbotQueue.js.
(MockBuildbot):
(MockBuildbot.prototype.buildPageURLForIteration):
(MockBuildbot.prototype.javaScriptCoreTestFailuresURLForIteration):
(MockBuildbot.prototype.javaScriptCoreTestStdioUrlForIteration):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockBuildbotQueue.js:
(MockBuildbotQueue):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockBuildbotTestResults.js: Copied from Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/MockBuildbotQueue.js.
(MockBuildbotTestResults):
(MockBuildbotTestResults.prototype.addJavaScriptCoreTestFailures):
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/test-jsc-results.json: Added.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/tests/resources/tests.js:
- 4:58 PM Changeset in webkit [201474] by
-
- 23 edits in trunk/Source
Decrease flicker when changing video presentation mode.
https://bugs.webkit.org/show_bug.cgi?id=158148
rdar://problem/24476949
Patch by Jeremy Jones <jeremyj@apple.com> on 2016-05-27
Source/WebCore:
Reviewed by Jer Noble.
No new tests because there is no behavior change. This change is about the timing of
moving AVPlayerLayers between layers to prevent flicker.
1) Moving an AVPlayerLayer between CAContexts can flicker. So always keep two
AVPlayerLayers around and add and remove them from the inline and fullscreen contexts.
2) Wait to show the inline placeholder until the fullscreen video layer has been installed.
3) Wait to remove the fullscreen video layer until the placeholder has been removed.
- Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::isVideoLayerInline): Expose isVideoLayerInline to the shadow DOM.
(WebCore::MediaControlsHost::setPreparedForInline): Expose setPreparedForInline to the shadow DOM.
- Modules/mediacontrols/MediaControlsHost.h: Add setPreparedForInline and isVideoLayerInline
- Modules/mediacontrols/MediaControlsHost.idl: Add setPreparedForInline and isVideoLayerInline
- Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.showInlinePlaybackPlaceholderWhenSafe): Wait to show placeholder when entering fullscreen.
(Controller.prototype.handlePresentationModeChange): Wait to show placeholder, and notify when placeholder is removed.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setPreparedForInline):
(WebCore::HTMLMediaElement::waitForPreparedForInlineThen): Used to delay fullscreen cleanup until placeholder is removed.
(WebCore::HTMLMediaElement::setVideoFullscreenLayer): Add a callback so we can wait until this completes before continuing.
- html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::isVideoLayerInline):
(WebCore::HTMLMediaElement::waitForPreparedForInlineThen):
(WebCore::HTMLMediaElement::setVideoFullscreenLayer): Add completionHandler.
- platform/cocoa/WebVideoFullscreenModelVideoElement.h:
(WebCore::WebVideoFullscreenModelVideoElement::setVideoFullscreenLayer): Add completionHandler.
(WebCore::WebVideoFullscreenModelVideoElement::waitForPreparedForInlineThen): Added.
- platform/cocoa/WebVideoFullscreenModelVideoElement.mm:
(WebVideoFullscreenModelVideoElement::setVideoFullscreenLayer): Add completionHandler.
(WebVideoFullscreenModelVideoElement::waitForPreparedForInlineThen):
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::setVideoFullscreenLayer): Add completionHandler.
- platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayer::setVideoFullscreenLayer): Add completionHandler.
- platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::setVideoFullscreenLayer): Add completionHandler.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): Create two video layers.
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): Allow two video layers.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer): Add completionHandler.
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity): Allow two video layers.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer): Allow two video layers.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenLayer): Add completionHandler.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createPreviewLayers): Allow two video layers.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVideoFullscreenLayer): Add completionHandler.
- platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.h:
- platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.mm:
(WebCore::VideoFullscreenLayerManager::setVideoLayers): Allow two video layers.
(WebCore::VideoFullscreenLayerManager::setVideoFullscreenLayer): Add completionHandler.
(WebCore::VideoFullscreenLayerManager::setVideoFullscreenFrame): Allow two video layers.
(WebCore::VideoFullscreenLayerManager::didDestroyVideoLayer): Allow two video layers.
(WebCore::VideoFullscreenLayerManager::setVideoLayer): Deleted.
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
(WebVideoFullscreenControllerContext::didSetupFullscreen): Use completionHandler.
(WebVideoFullscreenControllerContext::didExitFullscreen): Use completionHandler.
Source/WebKit2:
Reviewed by Tim Horton.
Prevent flicker by using setVideoFullscreenLayer with a completion handler to delay
enter fullscreen and cleanup fullscreen until the video layer has completely been
installed or removed.
- WebProcess/cocoa/WebVideoFullscreenManager.mm:
(WebKit::WebVideoFullscreenManager::didSetupFullscreen):
(WebKit::WebVideoFullscreenManager::didExitFullscreen):
- 4:42 PM Changeset in webkit [201473] by
-
- 3 edits3 adds in trunk
DebuggerCallFrame crashes when updated with the globalExec because neither ShadowChicken's algorithm nor StackVisitor's algorithm reasons about the globalExec
https://bugs.webkit.org/show_bug.cgi?id=158104
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
I think globalExec is a special enough case that it should be handled
at the layers above ShadowChicken and StackVisitor. Those APIs should
deal with real stack frames on the machine stack, not a heap constructed frame.
This patch makes DebuggerCallFrame::create aware that it may be
created with the globalObject->globalExec() by having it construct
a single DebuggerCallFrame that wraps the globalExec.
This fixes a crasher because we will construct a DebuggerCallFrame
with the globalExec when the Inspector is set to pause on all uncaught
exceptions and the JS program has a syntax error. Because the program
hasn't begun execution, there is no machine JS stack frame yet. So
DebuggerCallFrame is created with globalExec, which will cause it
to hit an assertion that dictates that the stack have size greater
than zero.
- debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::create):
LayoutTests:
- inspector/debugger/breakpoint-syntax-error-top-level-expected.txt: Added.
- inspector/debugger/breakpoint-syntax-error-top-level.html: Added.
- inspector/debugger/resources/file-with-syntax-error.js: Added.
- 4:34 PM Changeset in webkit [201472] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test fix after r201468.
Correct output handling to reduce flakiness on test bots.
- http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load.html:
- 3:31 PM Changeset in webkit [201471] by
-
- 15 edits2 adds in trunk
Crash in TreeScope::focusedElement
https://bugs.webkit.org/show_bug.cgi?id=158108
Reviewed by Enrica Casucci.
Source/WebCore:
The bug was caused by a flawed sequence of steps we took to remove an element. When an element is removed,
willRemoveChild and willRemoveChildren fire blur events on removed focused element and its ancestors and
unload event on any removed iframes. However, it was possible to focus an element on which we had fired blur
during an unload event, leaving m_focusedElement point to an element that's not in the document anymore.
Changing the order doesn't help because that would make it possible to insert the removed iframes back into
the document inside a event listener of the blur event, which was specifically fixed by r127534 four years ago.
Instead, fix the bug by not firing blur and change events on removed nodes. New behavior matches Firefox and HTML5
specification: https://html.spec.whatwg.org/multipage/interaction.html#focus-fixup-rule-one
Test: fast/shadow-dom/shadow-root-active-element-crash.html
- dom/ContainerNode.cpp:
(WebCore::willRemoveChild): Made this function static local since it didn't need to have access to any private
member variables. Call Document::nodeWillBeRemoved after disconnecting iframes since unload event handler could
allocate new Ranges just like mutation events.
(WebCore::willRemoveChildren): Ditto.
(WebCore::ContainerNode::removeChild): Removed the calls to removeFullScreenElementOfSubtree and
removeFocusedNodeOfSubtree as they're now called in Document::nodeWillBeRemoved.
(WebCore::ContainerNode::removeChildren): Ditto.
- dom/ContainerNode.h:
- dom/Document.cpp:
(WebCore::Document::removeFocusedNodeOfSubtree): Don't dispatch blur and change events when a node is removed.
(WebCore::Document::setFocusedElement): Added FocusRemovalEventsMode as the third argument. Avoid dispatching blur
and change events when FocusRemovalEventsMode::Dispatch is set.
(WebCore::Document::nodeChildrenWillBeRemoved): Added calls to removeFullScreenElementOfSubtree and
removeFocusedNodeOfSubtree. Also assert that no events are fired within this function. If we ever fire an event here,
"unloaded" iframes can be inserted back into a document before ContainerNode::removeChild actually removes them.
(WebCore::Document::nodeWillBeRemoved): Ditto.
- dom/Document.h:
- dom/TreeScope.cpp:
(WebCore::TreeScope::focusedElement): Added a release assertion to make sure the focused element is in the document
of the tree scope, and added an explicit type check just in case.
LayoutTests:
Added a regression test for accessing shadowRoot.activeElement after re-focusing an element
inside DOMNodeRemovedFromDocument event and unload events.
This patch also restores the expected result of fast/events/onblur-remove.html to that of when
the test was in r15720 and updated in r19014. The expected result was changed in r85495 as it was
converted to a eventSender test.
- fast/dom/Range/range-created-during-remove-children-expected.txt:
- fast/dom/Range/range-created-during-remove-children.html: Update the test to use unload event
of an iframe since we no longer fire blur event when removing a focused element.
- fast/dom/adopt-node-prevented-expected.txt:
- fast/dom/adopt-node-prevented.html: Ditto.
- fast/dom/remove-body-during-body-replacement2.html: Ditto. Use DOMNodeRemoved instead.
- fast/events/nested-event-remove-node-crash.html: Ditto. Use DOMNodeRemovedFromDocument instead.
- fast/events/onblur-remove-expected.txt:
- fast/events/onblur-remove.html: See above.
- fast/shadow-dom/shadow-root-active-element-crash-expected.txt: Added.
- fast/shadow-dom/shadow-root-active-element-crash.html: Added.
- 3:29 PM Changeset in webkit [201470] by
-
- 3 edits1 add in trunk/Source/JavaScriptCore
DFG::LazyJSValue::tryGetStringImpl() crashes for empty values
https://bugs.webkit.org/show_bug.cgi?id=158170
Reviewed by Michael Saboff.
The problem here is that jsDynamicCast<>() is evil! It avoids checking for the empty
value, presumably because this makes it soooper fast. In DFG IR, empty values can appear
anywhere because of TDZ.
This patch doesn't change jsDynamicCast<>(), but it hardens our wrappers for it in the DFG
and it has the affected code use one of those wrappers.
- dfg/DFGFrozenValue.h:
(JSC::DFG::FrozenValue::dynamicCast): Harden this.
(JSC::DFG::FrozenValue::cast):
- dfg/DFGLazyJSValue.cpp:
(JSC::DFG::LazyJSValue::tryGetStringImpl): Use the hardened wrapper.
- tests/stress/strcat-emtpy.js: Added. This used to crash every time.
(foo):
(i.catch):
- 2:42 PM Changeset in webkit [201469] by
-
- 5 edits in tags/Safari-602.1.34.1/Source
Versioning
- 1:50 PM Changeset in webkit [201468] by
-
- 6 edits in trunk
CSP: Fire 'load' events even when blocking loads via 'frame-src'.
https://bugs.webkit.org/show_bug.cgi?id=153150
<rdar://problem/24383162>
Reviewed by Daniel Bates.
Source/WebCore:
Always fire a load event, even when the load is blocked by CSP rules, so that
attackers cannot gain knowledge about the URL in the frame by blocking the
load and waiting long enough to be sure that a 'load' event would have
fired if the load wasn't blocked.
Inspired by Blink patch:
<https://src.chromium.org/viewvc/blink?view=rev&revision=165743>
Tests: http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load.html
- loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy):
LayoutTests:
- TestExpectations: Unskip the cross-origin load test.
- http/tests/security/contentSecurityPolicy/frame-src-cross-origin-load-expected.txt: Update to match
our message format.
- 1:45 PM Changeset in webkit [201467] by
-
- 3 edits2 adds in trunk/Source/JavaScriptCore
regExpProtoFuncSplitFast should OOM before it swaps
https://bugs.webkit.org/show_bug.cgi?id=158157
Reviewed by Mark Lam.
This is a huge speed-up on some jsfunfuzz test cases because it makes us realize much
sooner that running a regexp split will result in swapping. It uses the same basic
approach as http://trac.webkit.org/changeset/201451: if the result array crosses a certain
size threshold, we proceed with a dry run to see how big the array will get before
allocating anything else. This way, bogus uses of split that would have OOMed only after
killing the user's machine will now OOM before killing the user's machine.
This is an enormous speed-up on some jsfunfuzz tests: they go from running for a long
time to running instantly.
- runtime/RegExpPrototype.cpp:
(JSC::advanceStringIndex):
(JSC::genericSplit):
(JSC::regExpProtoFuncSplitFast):
- runtime/StringObject.h:
(JSC::jsStringWithReuse):
(JSC::jsSubstring):
- tests/stress/big-split-captures.js: Added.
- tests/stress/big-split.js: Added.
- 1:32 PM Changeset in webkit [201466] by
-
- 2 edits in trunk/Source/WebCore
Document abandons its EventTargetData.
<https://webkit.org/b/158158>
Reviewed by Darin Adler.
Node::willBeDeletedFrom() is called when destroying all Node types *except* Document.
If a Document had an associated EventTargetData, it would not get cleaned up.
This patch moves the EventTargetData cleanup to ~Node() where it's guaranteed to run.
- dom/Node.cpp:
(WebCore::Node::~Node):
(WebCore::Node::willBeDeletedFrom):
- 1:26 PM Changeset in webkit [201465] by
-
- 4 edits3 adds in trunk
ShadowChicken/DebuggerCallFrame don't properly handle when the entry stack frame is a tail deleted frame
https://bugs.webkit.org/show_bug.cgi?id=158131
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
There were bugs both in DebuggerCallFrame and ShadowChicken when the entry stack
frame(s) are tail deleted.
DebuggerCallFrame had an assertion saying that the entry frame shouldn't be
tail deleted. This is clearly wrong. The following program proves that this assertion
was misguided:
`
"use strict";
setTimeout(function foo() { return bar(); }, 0);
`
ShadowChicken had a very subtle bug when creating the shadow stack when
the entry frames of the stack were tail deleted. Because it places frames into its shadow
stack by walking the machine frame and looking up entries in the log,
the machine frame doesn't have any notion of those tail deleted frames
at the entry of execution. ShadowChicken would never find those frames
because it would look for tail deleted frames *before* consulting the
current machine frame. This is wrong because if the entry frames
are tail deleted, then there is no machine frame for them because there
is no machine frame before them! Therefore, we must search for tail deleted
frames *after* consulting a machine frame. This is sound because we will always
have at least one machine frame on the stack (when we are using StackVisitor on a valid ExecState).
So when we consult the machine frame that is the entry frame on the machine stack,
we will search for tail deleted frames that come before it in the shadow stack.
This will allow us to find those tail deleted frames that are the entry frames
for the shadow stack.
- debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::create):
- interpreter/ShadowChicken.cpp:
(JSC::ShadowChicken::Packet::dump):
(JSC::ShadowChicken::update):
(JSC::ShadowChicken::dump):
LayoutTests:
- inspector/debugger/resources/tail-deleted-frames-from-vm-entry.js: Added.
(timeout):
(bar):
- inspector/debugger/tail-deleted-frames-from-vm-entry-expected.txt: Added.
- inspector/debugger/tail-deleted-frames-from-vm-entry.html: Added.
- 1:22 PM Changeset in webkit [201464] by
-
- 26 edits in trunk
WorkQueue::dispatch() / RunLoop::dispatch() should not copy captured lambda variables
https://bugs.webkit.org/show_bug.cgi?id=158111
Reviewed by Darin Adler.
WorkQueue::dispatch() / RunLoop::dispatch() should not copy captured lambda variables.
These are often used cross-thread and copying the captured lambda variables can be
dangerous (e.g. we do not want to copy a String after calling isolatedCopy() upon
capture).
Source/JavaScriptCore:
- runtime/Watchdog.cpp:
(JSC::Watchdog::startTimer):
(JSC::Watchdog::Watchdog): Deleted.
(JSC::Watchdog::setTimeLimit): Deleted.
- runtime/Watchdog.h:
Source/WebKit2:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::clearDiskCacheEntries):
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::clear):
- NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::runTaskInQueue):
- Platform/IPC/Connection.cpp:
(IPC::Connection::processIncomingMessage):
- UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::getSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins):
(WebKit::StorageManager::getLocalStorageOriginDetails):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
- UIProcess/Storage/StorageManager.h:
Source/WTF:
This patch introduces a new NoncopyableFunction type that behaves similarly to
std::function but guarantees that the passed-in lambda (and its captured variables)
cannot be copied. This new NoncopyableFunction type is now used for
WorkQueue / RunLoop's dispatch() / dispatchAfter() which are commonly used
cross-thread. This should now allow us to call WorkQueue::dispatch() with a lambda
that captures a String like so:
[str = str.isolatedCopy()]() { }
Also note that even though this is not leveraged in this patch, NoncopyableFunction
would allow us to capture move-only types such as std::unique_ptr as so:
[p = WTFMove(p)]() { }
This does not work if we convert the lambda into an std::function because
std::function requires the lambda to be copyable, NoncopyableFunction does not.
- wtf/FunctionDispatcher.h:
(WTF::CallableWrapperBase::~CallableWrapperBase):
(WTF::NoncopyableFunction::NoncopyableFunction):
(WTF::NoncopyableFunction::operator()):
(WTF::NoncopyableFunction::operator bool):
(WTF::NoncopyableFunction::operator=):
- wtf/RunLoop.cpp:
(WTF::RunLoop::performWork):
(WTF::RunLoop::dispatch):
- wtf/RunLoop.h:
- wtf/WorkQueue.h:
- wtf/cocoa/WorkQueueCocoa.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
- wtf/efl/DispatchQueueWorkItemEfl.h:
(WorkItem::WorkItem):
(TimerWorkItem::create):
(TimerWorkItem::TimerWorkItem):
- wtf/efl/WorkQueueEfl.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):
- wtf/generic/RunLoopGeneric.cpp:
(WTF::RunLoop::dispatchAfter):
- wtf/generic/WorkQueueGeneric.cpp:
(WorkQueue::dispatch):
(WorkQueue::dispatchAfter):
- wtf/glib/RunLoopGLib.cpp:
(WTF::DispatchAfterContext::DispatchAfterContext):
(WTF::RunLoop::dispatchAfter):
- wtf/win/WorkItemWin.cpp:
(WTF::WorkItemWin::WorkItemWin):
(WTF::WorkItemWin::create):
(WTF::HandleWorkItem::HandleWorkItem):
(WTF::HandleWorkItem::createByAdoptingHandle):
- wtf/win/WorkItemWin.h:
(WTF::WorkItemWin::function):
- wtf/win/WorkQueueWin.cpp:
(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::timerCallback):
(WTF::WorkQueue::dispatchAfter):
Tools:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::decidePolicyForNavigationAction):
- 1:14 PM Changeset in webkit [201463] by
-
- 3 edits in trunk/Source/WebCore
Attempt to fix the iOS build.
Unreviewed build fix.
- platform/graphics/cocoa/TextTrackRepresentationCocoa.mm:
- platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerLayer layoutSublayers]):
- 12:50 PM Changeset in webkit [201462] by
-
- 2 edits in trunk/Source/JavaScriptCore
Removed unused headers from ExecutableAllocatorFixedVMPool.cpp.
https://bugs.webkit.org/show_bug.cgi?id=158159
Reviewed by Darin Adler.
- jit/ExecutableAllocatorFixedVMPool.cpp:
- 12:45 PM Changeset in webkit [201461] by
-
- 5 edits3 adds in trunk
Modern IDB: After closing a Netflix video, trying to watch it again fails.
<rdar://problem/25092473> and https://bugs.webkit.org/show_bug.cgi?id=158160
Reviewed by Alex Christensen.
Source/WebCore:
New APITest: IndexedDB.WebProcessKillIDBCleanup
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::stop):
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient): All active transactions need to be aborted
(without callback, since there's no connection to callback to).
(WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup-1.html: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup-2.html: Added.
- TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup.mm: Added.
- 12:22 PM Changeset in webkit [201460] by
-
- 2 edits in tags/Safari-602.1.34.1/Source/WebKit2
Merge r201453. rdar://problem/26502712
- 12:08 PM Changeset in webkit [201459] by
-
- 1 copy in tags/Safari-602.1.34.1
New Tag.
- 12:08 PM Changeset in webkit [201458] by
-
- 5 edits in trunk
AX: [ATK] accessibility/gtk/no-notification-for-unrendered-iframe-children.html began failing after r201416
https://bugs.webkit.org/show_bug.cgi?id=158152
Reviewed by Chris Fleizach.
The failure is actually a bug fix because only one child is being added, but two
notifications were being emitted. Now there is only one notification. To verify
this was the case, we really should examine the child reportedly being added. That
child is the ATK event's any_data, so pass along that child to the listener.
Tools:
- WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:
LayoutTests:
The failing test and associated expectations were modified to remove the duplicate
notification and include the title of the added child for the notification we get.
- accessibility/gtk/no-notification-for-unrendered-iframe-children.html: Updated.
- accessibility/gtk/no-notification-for-unrendered-iframe-children-expected.txt: Updated.
- 11:50 AM Changeset in webkit [201457] by
-
- 8 edits in trunk
Expose content extension failure error codes in SPI
https://bugs.webkit.org/show_bug.cgi?id=158095
rdar://problem/26475651
Reviewed by Anders Carlsson.
Source/WebKit2:
- UIProcess/API/APIUserContentExtensionStore.cpp:
(API::UserContentExtensionStore::synchronousRemoveAllContentExtensions):
(API::UserContentExtensionStore::invalidateContentExtensionVersion):
Added for testing.
(API::userContentExtensionStoreErrorCategory):
- UIProcess/API/APIUserContentExtensionStore.h:
- UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:
Added the new enum, _WKUserContentExtensionStoreErrorCode.
- UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:
(-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
Sometimes the error code returned by UserContentExtensionStore::compileContentExtension has the error code from compileRuleList.
When this happens, we want to get the message from the internal compiler error, but we want the NSError's code to always be CompileFailed.
(-[_WKUserContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]):
(-[_WKUserContentExtensionStore removeContentExtensionForIdentifier:completionHandler:]):
(-[_WKUserContentExtensionStore _removeAllContentExtensions]):
(-[_WKUserContentExtensionStore _invalidateContentExtensionVersionForIdentifier:]):
- UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h:
Added new invalidator for testing.
Tools:
- TestWebKitAPI/Tests/WebKit2Cocoa/_WKUserContentExtensionStore.mm:
(checkDomain):
(TEST_F):
Add tests that use the new enum.
- 11:36 AM Changeset in webkit [201456] by
-
- 12 edits in trunk/Source/JavaScriptCore
get_by_id should support caching unset properties in the LLInt
https://bugs.webkit.org/show_bug.cgi?id=158136
Reviewed by Benjamin Poulain.
Recently, we started supporting prototype load caching for get_by_id
in the LLInt. This patch extends that to caching unset properties.
While it is uncommon in general for a program to see a single structure
without a given property, the Array.prototype.concat function needs to
lookup the Symbol.isConcatSpreadable property. For any existing code
That property will never be set as it did not exist prior to ES6.
Similarly to the get_by_id_proto_load bytecode, this patch adds a new
bytecode, get_by_id_unset that checks the structureID of the base and
assigns undefined to the result.
There are no new tests here since we already have many tests that
incidentally cover this change.
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::printGetByIdOp):
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::finalizeLLIntInlineCaches):
- bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeFromLLInt):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::setupGetByIdPrototypeCache):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- 11:35 AM Changeset in webkit [201455] by
-
- 9 edits1 add in trunk
WebRTC: Update RTCPeerConnection overloaded legacy operations to return a Promise
https://bugs.webkit.org/show_bug.cgi?id=158114
Reviewed by Eric Carlson.
Source/WebCore:
Update overloaded operations so that the legacy callback versions also return a promise
and never throw [1].
[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#legacy-interface-extensions
Updated existing tests.
- fast/mediastream/RTCPeerConnection-overloaded-operations-params.html
- fast/mediastream/RTCPeerConnection-overloaded-operations.html
- Modules/mediastream/RTCPeerConnection.idl:
Updated legacy signatures (just for documentation purposes)
- Modules/mediastream/RTCPeerConnection.js:
Implements the promise overload and the legacy callbacks overload (using the promise version)
as specified in [1] (above).
(createOffer):
(createAnswer):
(setLocalDescription):
(setRemoteDescription):
(addIceCandidate):
(getStats):
- Modules/mediastream/RTCPeerConnectionInternals.js:
Added helper functions objectAndCallbacksOverload and callbacksAndDictionaryOverload that
process an argument list and determine which overloaded version to use.
(callbacksAndDictionaryOverload):
(setLocalOrRemoteDescription): Deleted.
(extractCallbackArg): Deleted.
LayoutTests:
Updated existing tests (see below).
- fast/mediastream/RTCPeerConnection-overloaded-operations-expected.txt:
- fast/mediastream/RTCPeerConnection-overloaded-operations-params-expected.txt:
- fast/mediastream/RTCPeerConnection-overloaded-operations-params.html:
Test various combinations of good and bad arguments and verify that no errors are thrown.
- fast/mediastream/RTCPeerConnection-overloaded-operations.html:
Test that all overloaded versions return a promise.
- fast/mediastream/resources/promise-utils.js: Added.
Shared utils to make it easier to test async promise APIs.
(ensurePromise):
(promiseShouldReject):
(promiseShouldNotRejectWithTypeError.):
- 11:33 AM Changeset in webkit [201454] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Add indicators to show nesting levels inside DOM Tree
https://bugs.webkit.org/show_bug.cgi?id=157468
<rdar://problem/26162640>
Patch by Devin Rousso <Devin Rousso> on 2016-05-27
Reviewed by Timothy Hatcher.
Add CSS rules to give all expanded node children lists a small line on the
left border indicating that all items under the line are descendants.
- UserInterface/Views/DOMTreeOutline.css:
(.tree-outline.dom li .selection):
(.tree-outline.dom li > span):
(.tree-outline.dom ol):
(.tree-outline.dom .tree-outline.dom li:matches(.hovered, .selected) + ol.children.expanded):
(.tree-outline.dom li.selected + ol.children.expanded):
(.tree-outline.dom li.parent::before):
- 10:09 AM Changeset in webkit [201453] by
-
- 2 edits in trunk/Source/WebKit2
Regression(r200972): Webcore::Range::collectSelectionsRects() asserts in startContainer() while selecting text.
https://bugs.webkit.org/show_bug.cgi?id=158155
<rdar://problem/26502712>
Reviewed by Chris Dumez.
This patch ensures that we still have a valid paragraphRange after returning from enclosingTextUnitOfGranularity().
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectTextWithGranularityAtPoint):
- 9:05 AM Changeset in webkit [201452] by
-
- 2 edits2 deletes in trunk/Source/bmalloc
[cmake] Deduplicated bmalloc/Zone.cpp handling.
https://bugs.webkit.org/show_bug.cgi?id=158154
Reviewed by Alex Christensen.
File bmalloc/Zone.cpp is required on Darwin irrespectively from what
port is being built.
Also I removed WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS() because it's
unlikely that bmalloc will ever need port-specific customizations (as
opposed to OS-specific customizations which should be done in
CMakeLists.txt).
- CMakeLists.txt: Added bmalloc/Zone.cpp for Darwin.
- PlatformGTK.cmake: Removed.
- PlatformMac.cmake: Removed.
- 7:59 AM Changeset in webkit [201451] by
-
- 7 edits2 adds in trunk/Source/JavaScriptCore
Bogus uses of regexp matching should realize that they will OOM before they start swapping
https://bugs.webkit.org/show_bug.cgi?id=158142
Reviewed by Michael Saboff.
Refactored the RegExpObject::matchGlobal() code so that there is less duplication. Took
advantage of this to make the code more resilient in case of absurd situations: if the
result array gets large, it proceeds with a dry run to detect how many matches there will
be. This allows it to OOM before it starts swapping.
This also improves the overall performance of the code by using lightweight substrings and
skipping the whole intermediate argument array.
This makes some jsfunfuzz tests run a lot faster and use a lot less memory.
- builtins/RegExpPrototype.js:
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- runtime/MatchResult.cpp: Added.
(JSC::MatchResult::dump):
- runtime/MatchResult.h:
(JSC::MatchResult::empty):
(MatchResult::empty): Deleted.
- runtime/RegExpObject.cpp:
(JSC::RegExpObject::match):
(JSC::collectMatches):
(JSC::RegExpObject::matchGlobal):
- runtime/StringObject.h:
(JSC::jsStringWithReuse):
(JSC::jsSubstring):
- tests/stress/big-match.js: Added. Make sure that this optimization doesn't break big matches.
- 6:51 AM Changeset in webkit [201450] by
-
- 3 edits3 adds in trunk
Video play glyph not visible if initially invisible when contained in a "-webkit-overflow-scrolling: touch" container
https://bugs.webkit.org/show_bug.cgi?id=158146
<rdar://problem/25816307>
Patch by Antoine Quint <Antoine Quint> on 2016-05-27
Reviewed by Dean Jackson.
Source/WebCore:
We now force the <video> controls play glyph into being composited due to webkit.org/b/158147. In most scenarios,
this element gets composited anyway, this is just to ensure that this happens in all cases until we get the
general fix for webkit.org/b/158147.
Test: platform/ios-simulator/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container.html
- Modules/mediacontrols/mediaControlsiOS.css:
(video::-webkit-media-controls-start-playback-button .webkit-media-controls-start-playback-glyph):
LayoutTests:
Testing that on iOS the play glyph for <video> controls when play button would be initially invisible when contained
in a scrollable container is indeed composited.
- platform/ios-simulator/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container-expected.txt: Added.
- platform/ios-simulator/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container.html: Added.
- 12:18 AM Changeset in webkit [201449] by
-
- 2 edits in trunk/Tools
New intl-numberformat.js test fails on many Linux platforms
https://bugs.webkit.org/show_bug.cgi?id=154530
Reviewed by Darin Adler.
The test is actually failing because of a bug in the icu version installed in the bots, using a newer version of
icu makes the tests pass and explains why it worked for some people. So, let's add icu 55.1 to the internal
jhbuild to ensure JSC tests pass in the bots no matter what the icu version installed is.
- gtk/jhbuild.modules:
- 12:09 AM Changeset in webkit [201448] by
-
- 68 edits in trunk/Source/JavaScriptCore
Static table property lookup should not require getOwnPropertySlot override.
https://bugs.webkit.org/show_bug.cgi?id=158059
Reviewed by Darin Adler.
Currently JSObject does not handle property lookup of entries in the static
table. Each subclass with static properties mut override getOwnPropertySlot,
and explicitly call the lookup functions. This has the following drawbacks:
- Performance: for any class with static properties, property acces becomes virtual (via method table).
- Poor encapsulation: implementation detail of static property access is spread throughout & cross projects, rather than being contained in JSObject.
- Code size: this results in a great many additional functions.
- Inconsistency: static table presence has to be be taken into account in many other operations, e.g. presence of read-only properties for put.
- Memory: in order to avoid the virtual lookup, DOM prototypes eagerly reify all properties. This is likely suboptimal.
Instead, JSObject::getPropertySlot / JSObject::getOwnPropertySlot should be
able to handle static properties.
This is actually a fairly small & simple change.
The common pattern is for subclasses of JObject to override getOwnPropertySlot
to first defer to JSObject for property storage lookup, and only if this fails
consult the static table. They just want the static tables to be consulted after
regular property storgae lookup. So just add a fast flag in TypeInfo for JSObject
to check, and where it is set, do so. Then it's just a question of switching
classes over to start setting this flag, and drop the override.
The new mechanism does change static table lookup order from oldest-ancestor
first to most-derived first. The new ordering makes more sense (means derived
class static tables can now override entries from parents), and shoudn't affect
any existing code (since overriding didn't previously work, there likely aren't
shadowing properties in more derived types).
This patch changes all classes in JavaScriptCore over to using the new mechanism,
except JSGlobalObject. I'll move classes in WebCore over as a separate patch
(this is also why I've not moved JSGlobalObject in this patch - doing so would
move JSDOMWindow, and I'd rather handle that separately).
- runtime/JSTypeInfo.h:
(JSC::TypeInfo::hasStaticPropertyTable):
- Add HasStaticPropertyTable flag.
- runtime/Lookup.cpp:
(JSC::setUpStaticFunctionSlot):
- Change setUpStaticFunctionSlot to take a VM&.
- runtime/Lookup.h:
(JSC::getStaticPropertySlotFromTable):
- Added helper function to perform static lookup alone.
(JSC::getStaticPropertySlot):
(JSC::getStaticFunctionSlot):
- setUpStaticFunctionSlot changed to take a VM&.
- runtime/JSObject.cpp:
(JSC::JSObject::getOwnStaticPropertySlot):
- Added, walks ClassInfo chain looking for static properties.
- runtime/JSObject.h:
(JSC::JSObject::getOwnNonIndexPropertySlot):
- getOwnNonIndexPropertySlot is used internally by getPropertySlot & getOwnPropertySlot. If property is not present in storage array then check the static table.
- runtime/ArrayConstructor.cpp:
(JSC::ArrayConstructor::finishCreation):
(JSC::constructArrayWithSizeQuirk):
(JSC::ArrayConstructor::getOwnPropertySlot): Deleted.
- runtime/ArrayConstructor.h:
(JSC::ArrayConstructor::create):
- runtime/ArrayIteratorPrototype.cpp:
(JSC::ArrayIteratorPrototype::finishCreation):
(JSC::ArrayIteratorPrototype::getOwnPropertySlot): Deleted.
- runtime/ArrayIteratorPrototype.h:
(JSC::ArrayIteratorPrototype::create):
(JSC::ArrayIteratorPrototype::ArrayIteratorPrototype):
- runtime/BooleanPrototype.cpp:
(JSC::BooleanPrototype::finishCreation):
(JSC::booleanProtoFuncToString):
(JSC::BooleanPrototype::getOwnPropertySlot): Deleted.
- runtime/BooleanPrototype.h:
(JSC::BooleanPrototype::create):
- runtime/DateConstructor.cpp:
(JSC::DateConstructor::finishCreation):
(JSC::millisecondsFromComponents):
(JSC::DateConstructor::getOwnPropertySlot): Deleted.
- runtime/DateConstructor.h:
(JSC::DateConstructor::create):
- runtime/DatePrototype.cpp:
(JSC::DatePrototype::finishCreation):
(JSC::dateProtoFuncToString):
(JSC::DatePrototype::getOwnPropertySlot): Deleted.
- runtime/DatePrototype.h:
(JSC::DatePrototype::create):
- runtime/ErrorPrototype.cpp:
(JSC::ErrorPrototype::finishCreation):
(JSC::ErrorPrototype::getOwnPropertySlot): Deleted.
- runtime/ErrorPrototype.h:
(JSC::ErrorPrototype::create):
- runtime/GeneratorPrototype.cpp:
(JSC::GeneratorPrototype::finishCreation):
(JSC::GeneratorPrototype::getOwnPropertySlot): Deleted.
- runtime/GeneratorPrototype.h:
(JSC::GeneratorPrototype::create):
(JSC::GeneratorPrototype::createStructure):
(JSC::GeneratorPrototype::GeneratorPrototype):
- runtime/InspectorInstrumentationObject.cpp:
(JSC::InspectorInstrumentationObject::finishCreation):
(JSC::InspectorInstrumentationObject::isEnabled):
(JSC::InspectorInstrumentationObject::getOwnPropertySlot): Deleted.
- runtime/InspectorInstrumentationObject.h:
(JSC::InspectorInstrumentationObject::create):
(JSC::InspectorInstrumentationObject::createStructure):
- runtime/IntlCollatorConstructor.cpp:
(JSC::IntlCollatorConstructor::getCallData):
(JSC::IntlCollatorConstructorFuncSupportedLocalesOf):
(JSC::IntlCollatorConstructor::getOwnPropertySlot): Deleted.
- runtime/IntlCollatorConstructor.h:
- runtime/IntlCollatorPrototype.cpp:
(JSC::IntlCollatorPrototype::finishCreation):
(JSC::IntlCollatorFuncCompare):
(JSC::IntlCollatorPrototype::getOwnPropertySlot): Deleted.
- runtime/IntlCollatorPrototype.h:
- runtime/IntlDateTimeFormatConstructor.cpp:
(JSC::IntlDateTimeFormatConstructor::getCallData):
(JSC::IntlDateTimeFormatConstructorFuncSupportedLocalesOf):
(JSC::IntlDateTimeFormatConstructor::getOwnPropertySlot): Deleted.
- runtime/IntlDateTimeFormatConstructor.h:
- runtime/IntlDateTimeFormatPrototype.cpp:
(JSC::IntlDateTimeFormatPrototype::finishCreation):
(JSC::IntlDateTimeFormatFuncFormatDateTime):
(JSC::IntlDateTimeFormatPrototype::getOwnPropertySlot): Deleted.
- runtime/IntlDateTimeFormatPrototype.h:
- runtime/IntlNumberFormatConstructor.cpp:
(JSC::IntlNumberFormatConstructor::getCallData):
(JSC::IntlNumberFormatConstructorFuncSupportedLocalesOf):
(JSC::IntlNumberFormatConstructor::getOwnPropertySlot): Deleted.
- runtime/IntlNumberFormatConstructor.h:
- runtime/IntlNumberFormatPrototype.cpp:
(JSC::IntlNumberFormatPrototype::finishCreation):
(JSC::IntlNumberFormatFuncFormatNumber):
(JSC::IntlNumberFormatPrototype::getOwnPropertySlot): Deleted.
- runtime/IntlNumberFormatPrototype.h:
- runtime/JSDataViewPrototype.cpp:
(JSC::JSDataViewPrototype::createStructure):
(JSC::getData):
(JSC::JSDataViewPrototype::getOwnPropertySlot): Deleted.
- runtime/JSDataViewPrototype.h:
- runtime/JSInternalPromiseConstructor.cpp:
(JSC::JSInternalPromiseConstructor::getCallData):
(JSC::JSInternalPromiseConstructor::getOwnPropertySlot): Deleted.
- runtime/JSInternalPromiseConstructor.h:
- runtime/JSONObject.cpp:
(JSC::Walker::Walker):
(JSC::JSONObject::getOwnPropertySlot): Deleted.
- runtime/JSONObject.h:
(JSC::JSONObject::create):
- runtime/JSPromiseConstructor.cpp:
(JSC::JSPromiseConstructor::getCallData):
(JSC::JSPromiseConstructor::getOwnPropertySlot): Deleted.
- runtime/JSPromiseConstructor.h:
- runtime/JSPromisePrototype.cpp:
(JSC::JSPromisePrototype::addOwnInternalSlots):
(JSC::JSPromisePrototype::getOwnPropertySlot): Deleted.
- runtime/JSPromisePrototype.h:
- runtime/MapPrototype.cpp:
(JSC::MapPrototype::finishCreation):
(JSC::getMap):
(JSC::MapPrototype::getOwnPropertySlot): Deleted.
- runtime/MapPrototype.h:
(JSC::MapPrototype::create):
(JSC::MapPrototype::MapPrototype):
- runtime/ModuleLoaderObject.cpp:
(JSC::ModuleLoaderObject::finishCreation):
(JSC::printableModuleKey):
(JSC::ModuleLoaderObject::getOwnPropertySlot): Deleted.
- runtime/ModuleLoaderObject.h:
- runtime/NumberPrototype.cpp:
(JSC::NumberPrototype::finishCreation):
(JSC::toThisNumber):
(JSC::NumberPrototype::getOwnPropertySlot): Deleted.
- runtime/NumberPrototype.h:
(JSC::NumberPrototype::create):
- runtime/ObjectConstructor.cpp:
(JSC::ObjectConstructor::addDefineProperty):
(JSC::constructObject):
(JSC::ObjectConstructor::getOwnPropertySlot): Deleted.
- runtime/ObjectConstructor.h:
(JSC::ObjectConstructor::create):
(JSC::ObjectConstructor::createStructure):
- runtime/ReflectObject.cpp:
(JSC::ReflectObject::finishCreation):
(JSC::ReflectObject::getOwnPropertySlot): Deleted.
- runtime/ReflectObject.h:
(JSC::ReflectObject::create):
(JSC::ReflectObject::createStructure):
- runtime/RegExpConstructor.cpp:
(JSC::RegExpConstructor::getRightContext):
(JSC::regExpConstructorDollar):
(JSC::RegExpConstructor::getOwnPropertySlot): Deleted.
- runtime/RegExpConstructor.h:
(JSC::RegExpConstructor::create):
(JSC::RegExpConstructor::createStructure):
- runtime/SetPrototype.cpp:
(JSC::SetPrototype::finishCreation):
(JSC::getSet):
(JSC::SetPrototype::getOwnPropertySlot): Deleted.
- runtime/SetPrototype.h:
(JSC::SetPrototype::create):
(JSC::SetPrototype::SetPrototype):
- runtime/StringConstructor.cpp:
(JSC::StringConstructor::finishCreation):
(JSC::stringFromCharCodeSlowCase):
(JSC::StringConstructor::getOwnPropertySlot): Deleted.
- runtime/StringConstructor.h:
(JSC::StringConstructor::create):
- runtime/StringIteratorPrototype.cpp:
(JSC::StringIteratorPrototype::finishCreation):
(JSC::StringIteratorPrototype::getOwnPropertySlot): Deleted.
- runtime/StringIteratorPrototype.h:
(JSC::StringIteratorPrototype::create):
(JSC::StringIteratorPrototype::StringIteratorPrototype):
- runtime/StringPrototype.cpp:
(JSC::StringPrototype::create):
(JSC::substituteBackreferencesSlow):
(JSC::StringPrototype::getOwnPropertySlot): Deleted.
- runtime/StringPrototype.h:
- runtime/SymbolConstructor.cpp:
(JSC::SymbolConstructor::finishCreation):
(JSC::callSymbol):
(JSC::SymbolConstructor::getOwnPropertySlot): Deleted.
- runtime/SymbolConstructor.h:
(JSC::SymbolConstructor::create):
- runtime/SymbolPrototype.cpp:
(JSC::SymbolPrototype::finishCreation):
(JSC::SymbolPrototype::getOwnPropertySlot): Deleted.
- runtime/SymbolPrototype.h:
(JSC::SymbolPrototype::create):
- remove getOwnPropertySlot, replace OverridesGetOwnPropertySlot flag with HasStaticPropertyTable.