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

Timeline



Nov 1, 2020:

7:50 PM Changeset in webkit [269242] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION (r252689): box-shadow with inset and negative spread renders incorrectly
https://bugs.webkit.org/show_bug.cgi?id=209930

Patch by Mason Xiao <me@masonx.ca> on 2020-11-01
Reviewed by Simon Fraser.

Source/WebCore:

r252689 introduced a typo when refactoring the calculation of xOffset.
Instead of subtracting the shadowSpread, it was added.
This caused issues when the shadowSpread was greater than approximately half of the enclosing element's width.

Test: fast/box-shadow/negative-inset-box-shadow.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintBoxShadow): Change sign of shadowSpread in xOffset calculation for inset

LayoutTests:

  • fast/box-shadow/negative-inset-box-shadow-expected.html: Added.
  • fast/box-shadow/negative-inset-box-shadow.html: Added.
6:49 PM Changeset in webkit [269241] by Diego Pino Garcia
  • 3 edits
    3 adds in trunk/LayoutTests

Emit baselines for WPT css-sizing/aspect-ratio/quirks-mode* tests after resync in r269187

Unreviewed test gardening.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-001-expected.txt: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-002-expected.txt: Added.
  • web-platform-tests/css/css-sizing/aspect-ratio/quirks-mode-003-expected.txt: Added.

LayoutTests:

5:43 PM Changeset in webkit [269240] by Diego Pino Garcia
  • 3 edits
    2 copies
    1 delete in trunk/LayoutTests

[GTK][WPE] Unreviewed test gardening. Update baselines of WPT test 'html/dom/idlharness' after r269214.

  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt.
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.worker-expected.txt:
5:39 PM Changeset in webkit [269239] by Simon Fraser
  • 7 edits
    1 copy in trunk/Source/WebCore

[LFC Display] Pass deviceScaleFactor around with GraphicsContext at paint time
https://bugs.webkit.org/show_bug.cgi?id=218423

Reviewed by Zalan Bujtas.

Border painting code will need to use deviceScaleFactor at paint time, so make a small
struct that bundles GraphicsContext& and deviceScaleFactor together, and pass that to
paint functions.

  • WebCore.xcodeproj/project.pbxproj:
  • display/DisplayLayerController.cpp:

(WebCore::Display::LayerController::RootLayerClient::paintContents):

  • display/css/DisplayBoxPainter.cpp:

(WebCore::Display::BoxPainter::paintFillLayer):
(WebCore::Display::BoxPainter::paintBackgroundImages):
(WebCore::Display::BoxPainter::paintBoxDecorations):
(WebCore::Display::BoxPainter::paintBoxContent):
(WebCore::Display::BoxPainter::paintBox):

  • display/css/DisplayBoxPainter.h:
  • display/css/DisplayCSSPainter.cpp:

(WebCore::Display::CSSPainter::recursivePaintDescendants):
(WebCore::Display::CSSPainter::paintStackingContext):
(WebCore::Display::CSSPainter::paintTree):

  • display/css/DisplayCSSPainter.h:
  • display/css/DisplayPaintingContext.h: Copied from Source/WebCore/display/css/DisplayBoxPainter.h.
2:03 PM Changeset in webkit [269238] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[LegacyInlineLayout] Remove collapsible trailing whitespace when it is followed by a hard line break
https://bugs.webkit.org/show_bug.cgi?id=216902
<rdar://problem/69812136>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-text/white-space/trailing-space-before-br-001-expected.txt:

Source/WebCore:

Ignore collapsible trailing whitespace followed by hard linebreak while computing the preferred width.
Such content is input to the trimming logic, and it should be handled accordingly.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths const):

LayoutTests:

  • fast/text/trimmable-whitespace-followed-by-br-expected.html: Added.
  • fast/text/trimmable-whitespace-followed-by-br.html: Added.
12:14 PM Changeset in webkit [269237] by commit-queue@webkit.org
  • 7 edits in trunk

background-size should not accept negative values
https://bugs.webkit.org/show_bug.cgi?id=183990

Patch by Tyler Wilcock <Tyler Wilcock> on 2020-11-01
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

We now reject negative values for background-size. Update newly
passing test expectations to reflect this.

  • web-platform-tests/css/css-backgrounds/parsing/background-size-computed-expected.txt:
  • web-platform-tests/css/css-backgrounds/parsing/background-size-invalid-expected.txt:

Source/WebCore:

Reject negative background-size length-percentage values,
as these are explicitly disallowed by the spec.

https://www.w3.org/TR/2017/CR-css-backgrounds-3-20171017/#the-background-size

Change is covered by existing tests that now pass.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeBackgroundSize): Reject negative length-percentage
values as is mandated by the spec.

LayoutTests:

We now reject negative background-size values. Update newly passing
test expectations to reflect this.

12:09 PM Changeset in webkit [269236] by weinig@apple.com
  • 345 edits in trunk

Remove remaining alternative preference setting mechanisms from LayoutTests
https://bugs.webkit.org/show_bug.cgi?id=218417

Reviewed by Simon Fraser.

Source/WebKit:

Remove now unused bundle SPI that was only used by the WebKitTestRuner.

  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundleOverrideBoolPreferenceForTestRunner): Deleted.
(WKBundleSetAllowUniversalAccessFromFileURLs): Deleted.
(WKBundleSetAllowFileAccessFromFileURLs): Deleted.
(WKBundleSetAllowStorageAccessFromFileURLS): Deleted.
(WKBundleSetMinimumLogicalFontSize): Deleted.
(WKBundleSetFrameFlatteningEnabled): Deleted.
(WKBundleSetJavaScriptCanAccessClipboard): Deleted.
(WKBundleSetPopupBlockingEnabled): Deleted.
(WKBundleSetAuthorAndUserStylesEnabled): Deleted.

  • WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::addOriginAccessAllowListEntry):
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Deleted.
(WebKit::InjectedBundle::setAllowUniversalAccessFromFileURLs): Deleted.
(WebKit::InjectedBundle::setAllowFileAccessFromFileURLs): Deleted.
(WebKit::InjectedBundle::setNeedsStorageAccessFromFileURLsQuirk): Deleted.
(WebKit::InjectedBundle::setMinimumLogicalFontSize): Deleted.
(WebKit::InjectedBundle::setFrameFlatteningEnabled): Deleted.
(WebKit::InjectedBundle::setAsyncFrameScrollingEnabled): Deleted.
(WebKit::InjectedBundle::setJavaScriptCanAccessClipboard): Deleted.
(WebKit::InjectedBundle::setPopupBlockingEnabled): Deleted.
(WebKit::InjectedBundle::setAuthorAndUserStylesEnabled): Deleted.

  • WebProcess/InjectedBundle/InjectedBundle.h:

Source/WebKitLegacy/win:

  • WebPreferenceKeysPrivate.h:

Update key to match cocoa WebKitLegacy for shared use by DumpRenderTree.

Tools:

Remove various one off solutions for setting preferences in WebKitTestRunner and DumpRenderTree
keeping only test header commands (which can be set without JS and can be in place before the
inital load) and internals.settings, which can be used when dynamic changing is required.

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::supportedUInt32WebPreferenceFeatures):
(WTR::TestOptions::defaults):

  • DumpRenderTree/TestOptions.h:
  • DumpRenderTree/TestRunner.cpp:

(setPagePausedCallback):
(TestRunner::staticFunctions):
(setAuthorAndUserStylesEnabledCallback): Deleted.
(setJavaScriptCanAccessClipboardCallback): Deleted.
(setXSSAuditorEnabledCallback): Deleted.
(setAllowUniversalAccessFromFileURLsCallback): Deleted.
(setAllowFileAccessFromFileURLsCallback): Deleted.
(setNeedsStorageAccessFromFileURLsQuirkCallback): Deleted.
(setTelephoneNumberParsingEnabledCallback): Deleted.
(setPopupBlockingEnabledCallback): Deleted.
(setPluginsEnabledCallback): Deleted.

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):
(resetWebPreferencesToConsistentValues):
(webPreferenceFeatureValue):
(setWebPreferencesForTestOptions):
(runTest):
(boolWebPreferenceFeatureValue): Deleted.
(shouldEnableDeveloperExtras): Deleted.

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setAuthorAndUserStylesEnabled): Deleted.
(TestRunner::setXSSAuditorEnabled): Deleted.
(TestRunner::setAllowUniversalAccessFromFileURLs): Deleted.
(TestRunner::setAllowFileAccessFromFileURLs): Deleted.
(TestRunner::setNeedsStorageAccessFromFileURLsQuirk): Deleted.
(TestRunner::setPopupBlockingEnabled): Deleted.
(TestRunner::setPluginsEnabled): Deleted.
(TestRunner::setJavaScriptCanAccessClipboard): Deleted.
(TestRunner::setTelephoneNumberParsingEnabled): Deleted.
(TestRunner::setDeveloperExtrasEnabled): Deleted.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetWebPreferencesToConsistentValues):
(webPreferenceFeatureValue):
(setWebPreferencesForTestOptions):
(runTest):
(shouldEnableDeveloperExtras): Deleted.
(boolWebPreferenceFeatureValue): Deleted.

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::setAuthorAndUserStylesEnabled): Deleted.
(TestRunner::setXSSAuditorEnabled): Deleted.
(TestRunner::setAllowUniversalAccessFromFileURLs): Deleted.
(TestRunner::setAllowFileAccessFromFileURLs): Deleted.
(TestRunner::setNeedsStorageAccessFromFileURLsQuirk): Deleted.
(TestRunner::setPopupBlockingEnabled): Deleted.
(TestRunner::setPluginsEnabled): Deleted.
(TestRunner::setJavaScriptCanAccessClipboard): Deleted.
(TestRunner::setDeveloperExtrasEnabled): Deleted.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::overridePreference): Deleted.
(WTR::TestRunner::setXSSAuditorEnabled): Deleted.
(WTR::TestRunner::setMediaDevicesEnabled): Deleted.
(WTR::TestRunner::setWebRTCMDNSICECandidatesEnabled): Deleted.
(WTR::TestRunner::setWebAPIStatisticsEnabled): Deleted.
(WTR::TestRunner::setModernMediaControlsEnabled): Deleted.
(WTR::TestRunner::setWebGL2Enabled): Deleted.
(WTR::TestRunner::setWritableStreamAPIEnabled): Deleted.
(WTR::TestRunner::setTransformStreamAPIEnabled): Deleted.
(WTR::TestRunner::setReadableByteStreamAPIEnabled): Deleted.
(WTR::TestRunner::setEncryptedMediaAPIEnabled): Deleted.
(WTR::TestRunner::setPictureInPictureAPIEnabled): Deleted.
(WTR::TestRunner::setGenericCueAPIEnabled): Deleted.
(WTR::TestRunner::setAllowUniversalAccessFromFileURLs): Deleted.
(WTR::TestRunner::setAllowFileAccessFromFileURLs): Deleted.
(WTR::TestRunner::setNeedsStorageAccessFromFileURLsQuirk): Deleted.
(WTR::TestRunner::setPluginsEnabled): Deleted.
(WTR::TestRunner::setJavaScriptCanAccessClipboard): Deleted.
(WTR::TestRunner::setPopupBlockingEnabled): Deleted.
(WTR::TestRunner::setAuthorAndUserStylesEnabled): Deleted.
(WTR::TestRunner::setOffscreenCanvasEnabled): Deleted.

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):

LayoutTests:

Update tests to only rely on test header commands and internals.settings for
changing preferences to simplify test writing.

  • editing/async-clipboard/clipboard-do-not-read-text-from-platform-if-text-changes.html:
  • editing/async-clipboard/clipboard-read-text-from-platform.html:
  • editing/async-clipboard/clipboard-read-text-same-origin.html:
  • editing/async-clipboard/clipboard-write-in-copy-event-handler-in-subframe.html:
  • editing/async-clipboard/clipboard-write-in-copy-event-handler.html:
  • editing/async-clipboard/clipboard-write-text-requires-user-gesture.html:
  • editing/execCommand/clipboard-access-with-user-gesture.html:
  • editing/execCommand/clipboard-access.html:
  • fast/css/disabled-author-styles.html:
  • fast/css/object-fit/object-fit-embed-expected.html:
  • fast/css/object-fit/object-fit-embed.html:
  • fast/css/object-position/object-position-embed.html:
  • fast/events/before-unload-navigate-different-window.html:
  • fast/events/before-unload-open-window.html:
  • fast/events/ios/submit-form-target-blank-using-return-key.html:
  • fast/events/open-window-from-another-frame.html:
  • fast/events/popup-allowed-from-gesture-initiated-event.html:
  • fast/events/popup-allowed-from-gesture-initiated-form-submit.html:
  • fast/events/popup-blocked-from-fake-button-click.html:
  • fast/events/popup-blocked-from-fake-focus.html:
  • fast/events/popup-blocked-from-fake-user-gesture.html:
  • fast/events/popup-blocked-from-history-reload.html:
  • fast/events/popup-blocked-from-iframe-script.html:
  • fast/events/popup-blocked-from-iframe-src.html:
  • fast/events/popup-blocked-from-mousemove.html:
  • fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame.html:
  • fast/events/popup-blocked-from-sandboxed-frame-via-window-open-named-sibling-frame2.html:
  • fast/events/popup-blocked-from-untrusted-click-event-on-anchor.html:
  • fast/events/popup-blocked-from-untrusted-mouse-click.html:
  • fast/events/popup-blocked-from-window-open.html:
  • fast/events/popup-blocked-to-post-blank.html:
  • fast/events/popup-blocking-click-in-iframe.html:
  • fast/events/popup-blocking-timers1.html:
  • fast/events/popup-blocking-timers2.html:
  • fast/events/popup-blocking-timers3.html:
  • fast/events/popup-blocking-timers5.html:
  • fast/events/popup-blocking-timers6.html:
  • fast/events/popup-when-select-change.html:
  • fast/files/file-reader-file-url.html:
  • fast/files/file-reader-sandbox-iframe.html:
  • fast/files/workers/inline-worker-via-blob-url.html:
  • fast/forms/formtarget-attribute-button-html.html:
  • fast/forms/formtarget-attribute-input-2.html:
  • fast/forms/formtarget-attribute-input-html.html:
  • fast/forms/xss-auditor-doesnt-crash-on-post-submit.html:
  • fast/frames/resources/no-file-access-frame-1.html:
  • fast/frames/xss-auditor-handles-file-urls.html:
  • fast/images/embed-image.html:
  • fast/images/move-image-to-new-document.html:
  • fast/loader/url-selected-user-gesture.html:
  • fast/replaced/border-radius-clip-content-edge.html:
  • fast/replaced/outline-replaced-elements.html:
  • fast/replaced/pdf-as-embed-with-no-mime-type-is-not-blank.html:
  • fast/xmlhttprequest/xmlhttprequest-no-file-access.html:
  • fast/xmlhttprequest/xmlhttprequest-nonexistent-file.html:
  • fullscreen/full-screen-request-rejected.html:
  • fullscreen/full-screen-request-removed.html:
  • fullscreen/full-screen-restrictions.html:
  • http/tests/cookies/resources/cookie-utilities.js:
  • http/tests/dom/window-open-about-blank-and-access-document.html:
  • http/tests/dom/window-open-about-uppercase-blank-and-access-document.html:
  • http/tests/dom/window-open-about-webkit-org-and-access-document-async-delegates.html:
  • http/tests/dom/window-open-about-webkit-org-and-access-document.html:
  • http/tests/download/convert-cached-load-to-download.html:
  • http/tests/security/popup-blocked-from-fake-event.html:
  • http/tests/security/popup-blocked-from-window-open.html:
  • http/tests/security/window-opened-from-sandboxed-iframe-should-inherit-sandbox.html:
  • http/tests/security/xss-DENIED-click-and-form-submission-from-inactive-domwindow.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html:
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window3.html:
  • http/tests/security/xssAuditor/anchor-url-dom-write-location-inline-event-null-char.html:
  • http/tests/security/xssAuditor/anchor-url-dom-write-location-inline-event.html:
  • http/tests/security/xssAuditor/anchor-url-dom-write-location-javascript-URL.html:
  • http/tests/security/xssAuditor/anchor-url-dom-write-location.html:
  • http/tests/security/xssAuditor/anchor-url-dom-write-location2.html:
  • http/tests/security/xssAuditor/base-href-control-char.html:
  • http/tests/security/xssAuditor/base-href-direct.html:
  • http/tests/security/xssAuditor/base-href-null-char.html:
  • http/tests/security/xssAuditor/base-href-safe.html:
  • http/tests/security/xssAuditor/base-href-safe2.html:
  • http/tests/security/xssAuditor/base-href-safe3.html:
  • http/tests/security/xssAuditor/base-href-scheme-relative.html:
  • http/tests/security/xssAuditor/base-href.html:
  • http/tests/security/xssAuditor/block-does-not-leak-location.html:
  • http/tests/security/xssAuditor/block-does-not-leak-referrer.html:
  • http/tests/security/xssAuditor/block-does-not-leak-that-page-was-blocked-using-empty-data-url.html:
  • http/tests/security/xssAuditor/cached-frame.html:
  • http/tests/security/xssAuditor/cookie-injection.html:
  • http/tests/security/xssAuditor/crash-while-loading-tag-with-pause.html:
  • http/tests/security/xssAuditor/data-urls-work.html:
  • http/tests/security/xssAuditor/dom-write-URL.html:
  • http/tests/security/xssAuditor/dom-write-innerHTML.html:
  • http/tests/security/xssAuditor/dom-write-location-dom-write-open-img-onerror.html:
  • http/tests/security/xssAuditor/dom-write-location-inline-event.html:
  • http/tests/security/xssAuditor/dom-write-location-javascript-URL.html:
  • http/tests/security/xssAuditor/dom-write-location-open-img-onerror.html:
  • http/tests/security/xssAuditor/dom-write-location.html:
  • http/tests/security/xssAuditor/embed-tag-code-attribute-2.html:
  • http/tests/security/xssAuditor/embed-tag-code-attribute.html:
  • http/tests/security/xssAuditor/embed-tag-control-char.html:
  • http/tests/security/xssAuditor/embed-tag-in-path-unterminated.html:
  • http/tests/security/xssAuditor/embed-tag-javascript-url.html:
  • http/tests/security/xssAuditor/embed-tag-null-char.html:
  • http/tests/security/xssAuditor/embed-tag.html:
  • http/tests/security/xssAuditor/faux-script1.html:
  • http/tests/security/xssAuditor/faux-script2.html:
  • http/tests/security/xssAuditor/faux-script3.html:
  • http/tests/security/xssAuditor/form-action.html:
  • http/tests/security/xssAuditor/formaction-on-button.html:
  • http/tests/security/xssAuditor/formaction-on-input.html:
  • http/tests/security/xssAuditor/frameset-injection.html:
  • http/tests/security/xssAuditor/full-block-base-href.html:
  • http/tests/security/xssAuditor/full-block-get-from-iframe.html:
  • http/tests/security/xssAuditor/full-block-iframe-javascript-url.html:
  • http/tests/security/xssAuditor/full-block-iframe-no-inherit.php:
  • http/tests/security/xssAuditor/full-block-javascript-link.html:
  • http/tests/security/xssAuditor/full-block-link-onclick.html:
  • http/tests/security/xssAuditor/full-block-object-tag.html:
  • http/tests/security/xssAuditor/full-block-post-from-iframe.html:
  • http/tests/security/xssAuditor/full-block-script-tag-cross-domain.html:
  • http/tests/security/xssAuditor/full-block-script-tag-with-source.html:
  • http/tests/security/xssAuditor/full-block-script-tag.html:
  • http/tests/security/xssAuditor/get-from-iframe.html:
  • http/tests/security/xssAuditor/iframe-injection-allowed-2.html:
  • http/tests/security/xssAuditor/iframe-injection-allowed-3.html:
  • http/tests/security/xssAuditor/iframe-injection-allowed.html:
  • http/tests/security/xssAuditor/iframe-injection.html:
  • http/tests/security/xssAuditor/iframe-javascript-url-more-encoding.html:
  • http/tests/security/xssAuditor/iframe-javascript-url-twice-url-encode.html:
  • http/tests/security/xssAuditor/iframe-javascript-url-twice-url-encode2.html:
  • http/tests/security/xssAuditor/iframe-javascript-url-twice-url-encode3.html:
  • http/tests/security/xssAuditor/iframe-javascript-url-url-encoded.html:
  • http/tests/security/xssAuditor/iframe-javascript-url.html:
  • http/tests/security/xssAuditor/iframe-onload-GBK-char.html:
  • http/tests/security/xssAuditor/iframe-onload-in-svg-tag.html:
  • http/tests/security/xssAuditor/iframe-srcdoc-property-blocked.html:
  • http/tests/security/xssAuditor/iframe-srcdoc.html:
  • http/tests/security/xssAuditor/img-onerror-GBK-char.html:
  • http/tests/security/xssAuditor/img-onerror-accented-char.html:
  • http/tests/security/xssAuditor/img-onerror-non-ASCII-char-default-encoding.html:
  • http/tests/security/xssAuditor/img-onerror-non-ASCII-char.html:
  • http/tests/security/xssAuditor/img-onerror-non-ASCII-char2-default-encoding.html:
  • http/tests/security/xssAuditor/img-onerror-non-ASCII-char2.html:
  • http/tests/security/xssAuditor/img-onerror-tricky.html:
  • http/tests/security/xssAuditor/img-tag-with-comma.html:
  • http/tests/security/xssAuditor/inline-event-HTML-entities.html:
  • http/tests/security/xssAuditor/javascript-link-HTML-entities-control-char.html:
  • http/tests/security/xssAuditor/javascript-link-HTML-entities-named.html:
  • http/tests/security/xssAuditor/javascript-link-HTML-entities-null-char.html:
  • http/tests/security/xssAuditor/javascript-link-HTML-entities.html:
  • http/tests/security/xssAuditor/javascript-link-ampersand.html:
  • http/tests/security/xssAuditor/javascript-link-control-char.html:
  • http/tests/security/xssAuditor/javascript-link-control-char2.html:
  • http/tests/security/xssAuditor/javascript-link-null-char.html:
  • http/tests/security/xssAuditor/javascript-link-one-plus-one.html:
  • http/tests/security/xssAuditor/javascript-link-safe.html:
  • http/tests/security/xssAuditor/javascript-link-url-encoded.html:
  • http/tests/security/xssAuditor/javascript-link.html:
  • http/tests/security/xssAuditor/link-onclick-ampersand.html:
  • http/tests/security/xssAuditor/link-onclick-control-char.html:
  • http/tests/security/xssAuditor/link-onclick-entities.html:
  • http/tests/security/xssAuditor/link-onclick-null-char.html:
  • http/tests/security/xssAuditor/link-onclick.html:
  • http/tests/security/xssAuditor/link-opens-new-window.html:
  • http/tests/security/xssAuditor/malformed-HTML.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-1.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-2.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-3.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-4.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-5.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-6.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-7.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-8.html:
  • http/tests/security/xssAuditor/malformed-xss-protection-header-9.html:
  • http/tests/security/xssAuditor/meta-tag-http-refresh-javascript-url.html:
  • http/tests/security/xssAuditor/meta-tag-http-refresh-x-frame-options-ignored.html:
  • http/tests/security/xssAuditor/nested-dom-write-location-open-img-onerror.html:
  • http/tests/security/xssAuditor/no-protection-script-tag.html:
  • http/tests/security/xssAuditor/non-block-javascript-url-frame.html:
  • http/tests/security/xssAuditor/object-embed-tag-control-char.html:
  • http/tests/security/xssAuditor/object-embed-tag-null-char.html:
  • http/tests/security/xssAuditor/object-embed-tag.html:
  • http/tests/security/xssAuditor/object-src-inject.html:
  • http/tests/security/xssAuditor/object-tag-javascript-url.html:
  • http/tests/security/xssAuditor/object-tag.html:
  • http/tests/security/xssAuditor/open-attribute-body.html:
  • http/tests/security/xssAuditor/open-event-handler-iframe.html:
  • http/tests/security/xssAuditor/open-iframe-src-01.html:
  • http/tests/security/xssAuditor/open-iframe-src-02.html:
  • http/tests/security/xssAuditor/open-iframe-src-03.html:
  • http/tests/security/xssAuditor/open-script-src-01.html:
  • http/tests/security/xssAuditor/open-script-src-02.html:
  • http/tests/security/xssAuditor/open-script-src-03.html:
  • http/tests/security/xssAuditor/open-script-src-04.html:
  • http/tests/security/xssAuditor/post-from-iframe.html:
  • http/tests/security/xssAuditor/property-escape-comment-01.html:
  • http/tests/security/xssAuditor/property-escape-comment-02.html:
  • http/tests/security/xssAuditor/property-escape-comment-03.html:
  • http/tests/security/xssAuditor/property-escape-entity-01.html:
  • http/tests/security/xssAuditor/property-escape-entity-02.html:
  • http/tests/security/xssAuditor/property-escape-entity-03.html:
  • http/tests/security/xssAuditor/property-escape-long.html:
  • http/tests/security/xssAuditor/property-escape-noquotes-tab-slash-chars.html:
  • http/tests/security/xssAuditor/property-escape-noquotes.html:
  • http/tests/security/xssAuditor/property-escape-quote-01.html:
  • http/tests/security/xssAuditor/property-escape-quote-02.html:
  • http/tests/security/xssAuditor/property-escape-quote-03.html:
  • http/tests/security/xssAuditor/property-escape.html:
  • http/tests/security/xssAuditor/property-inject.html:
  • http/tests/security/xssAuditor/reflection-in-path.html:
  • http/tests/security/xssAuditor/regress-167121.html:
  • http/tests/security/xssAuditor/report-script-tag-and-do-not-follow-redirect-when-sending-report.html:
  • http/tests/security/xssAuditor/report-script-tag-full-block-and-do-not-follow-redirect-when-sending-report.html:
  • http/tests/security/xssAuditor/report-script-tag-full-block.html:
  • http/tests/security/xssAuditor/report-script-tag-replace-state.html:
  • http/tests/security/xssAuditor/report-script-tag.html:
  • http/tests/security/xssAuditor/resources/base-href/base-href-safe2.html:
  • http/tests/security/xssAuditor/resources/base-href/base-href-safe3.html:
  • http/tests/security/xssAuditor/script-tag-Big5-char-twice-url-encode-16bit-unicode.html:
  • http/tests/security/xssAuditor/script-tag-Big5-char-twice-url-encode.html:
  • http/tests/security/xssAuditor/script-tag-Big5-char.html:
  • http/tests/security/xssAuditor/script-tag-Big5-char2.html:
  • http/tests/security/xssAuditor/script-tag-addslashes-backslash.html:
  • http/tests/security/xssAuditor/script-tag-addslashes-double-quote.html:
  • http/tests/security/xssAuditor/script-tag-addslashes-null-char.html:
  • http/tests/security/xssAuditor/script-tag-addslashes-single-quote.html:
  • http/tests/security/xssAuditor/script-tag-control-char.html:
  • http/tests/security/xssAuditor/script-tag-convoluted.html:
  • http/tests/security/xssAuditor/script-tag-entities.html:
  • http/tests/security/xssAuditor/script-tag-expression-follows.html:
  • http/tests/security/xssAuditor/script-tag-inside-svg-tag.html:
  • http/tests/security/xssAuditor/script-tag-inside-svg-tag2.html:
  • http/tests/security/xssAuditor/script-tag-inside-svg-tag3.html:
  • http/tests/security/xssAuditor/script-tag-near-start.html:
  • http/tests/security/xssAuditor/script-tag-null-char.html:
  • http/tests/security/xssAuditor/script-tag-open-redirect.html:
  • http/tests/security/xssAuditor/script-tag-post-control-char.html:
  • http/tests/security/xssAuditor/script-tag-post-null-char.html:
  • http/tests/security/xssAuditor/script-tag-post.html:
  • http/tests/security/xssAuditor/script-tag-redirect.html:
  • http/tests/security/xssAuditor/script-tag-safe.html:
  • http/tests/security/xssAuditor/script-tag-safe2.html:
  • http/tests/security/xssAuditor/script-tag-safe3.html:
  • http/tests/security/xssAuditor/script-tag-safe4.html:
  • http/tests/security/xssAuditor/script-tag-src-redirect-safe.html:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode-surrogate-pair.html:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode.html:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode2.html:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode3.html:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode4.html:
  • http/tests/security/xssAuditor/script-tag-with-16bit-unicode5.html:
  • http/tests/security/xssAuditor/script-tag-with-actual-comma.html:
  • http/tests/security/xssAuditor/script-tag-with-callbacks.html:
  • http/tests/security/xssAuditor/script-tag-with-comma-01.html:
  • http/tests/security/xssAuditor/script-tag-with-comma-02.html:
  • http/tests/security/xssAuditor/script-tag-with-fancy-unicode.html:
  • http/tests/security/xssAuditor/script-tag-with-injected-comment.html:
  • http/tests/security/xssAuditor/script-tag-with-invalid-closing-tag.html:
  • http/tests/security/xssAuditor/script-tag-with-invalid-url-encoding.html:
  • http/tests/security/xssAuditor/script-tag-with-source-control-char.html:
  • http/tests/security/xssAuditor/script-tag-with-source-data-url.html:
  • http/tests/security/xssAuditor/script-tag-with-source-data-url2.html:
  • http/tests/security/xssAuditor/script-tag-with-source-data-url3.html:
  • http/tests/security/xssAuditor/script-tag-with-source-data-url4.html:
  • http/tests/security/xssAuditor/script-tag-with-source-data-url5.html:
  • http/tests/security/xssAuditor/script-tag-with-source-double-quote.html:
  • http/tests/security/xssAuditor/script-tag-with-source-entities.html:
  • http/tests/security/xssAuditor/script-tag-with-source-no-quote.html:
  • http/tests/security/xssAuditor/script-tag-with-source-null-char.html:
  • http/tests/security/xssAuditor/script-tag-with-source-relative-scheme.html:
  • http/tests/security/xssAuditor/script-tag-with-source-same-host-with-query.html:
  • http/tests/security/xssAuditor/script-tag-with-source-same-host.html:
  • http/tests/security/xssAuditor/script-tag-with-source-unterminated-01.html:
  • http/tests/security/xssAuditor/script-tag-with-source-unterminated-02.html:
  • http/tests/security/xssAuditor/script-tag-with-source-unterminated-03.html:
  • http/tests/security/xssAuditor/script-tag-with-source.html:
  • http/tests/security/xssAuditor/script-tag-with-three-times-url-encoded-16bit-unicode.html:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment-U2028.html:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment.html:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment2.html:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment3.html:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment4.html:
  • http/tests/security/xssAuditor/script-tag-with-trailing-comment5.html:
  • http/tests/security/xssAuditor/script-tag-with-trailing-script-and-urlencode.html:
  • http/tests/security/xssAuditor/script-tag.html:
  • http/tests/security/xssAuditor/svg-animate.html:
  • http/tests/security/xssAuditor/svg-script-tag.html:
  • http/tests/security/xssAuditor/window-open-without-url-should-not-assert.html:
  • http/tests/security/xssAuditor/xss-filter-bypass-big5.html:
  • http/tests/security/xssAuditor/xss-filter-bypass-long-string.html:
  • http/tests/security/xssAuditor/xss-filter-bypass-sjis.html:
  • http/tests/security/xssAuditor/xss-protection-parsing-01.html:
  • http/tests/security/xssAuditor/xss-protection-parsing-02.html:
  • http/tests/security/xssAuditor/xss-protection-parsing-03.html:
  • http/tests/security/xssAuditor/xss-protection-parsing-04.html:
  • http/tests/storageAccess/deny-with-prompt-does-not-preserve-gesture.html:
  • http/tests/storageAccess/deny-without-prompt-preserves-gesture.html:
  • http/tests/storageAccess/grant-with-prompt-preserves-gesture.html:
  • http/tests/storageAccess/resources/request-storage-access-iframe-and-pop-window.html:
  • http/tests/webAPIStatistics/canvas-read-and-write-data-collection.html:
  • http/tests/webAPIStatistics/font-load-data-collection.html:
  • http/tests/webAPIStatistics/navigator-functions-accessed-data-collection.html:
  • http/tests/webAPIStatistics/screen-functions-accessed-data-collection.html:
  • imported/blink/fast/events/popup-forwarded-gesture.html:
  • imported/blink/fast/workers/worker-shared-asm-buffer.html:
  • platform/ios/ios/fast/text/data-detectors/phone-disabled.html:
  • platform/ios/ios/fast/text/data-detectors/phone.html:
  • platform/mac/plugins/disable-plugins.html:
  • plugins/js-from-destroy.html:
  • plugins/navigator-plugin-crash.html:
  • plugins/navigator-plugins-disabled.html:
  • plugins/plugin-initiate-popup-window.html:
  • security/cannot-read-self-from-file.html:
  • storage/domstorage/localstorage/blocked-file-access-permitted-by-quirk.html:
  • storage/domstorage/localstorage/blocked-file-access.html:
  • storage/domstorage/localstorage/file-can-access.html:
  • storage/domstorage/sessionstorage/blocked-file-access.html:
  • webrtc/datachannel/mdns-ice-candidates.html:
  • webrtc/peerconnection-new-candidate-page-cache.html:
10:24 AM Changeset in webkit [269235] by Chris Dumez
  • 243 edits
    30 copies
    1 move
    318 adds
    3 deletes in trunk/LayoutTests

Resync web-platform-tests/tools tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=218352

Reviewed by Sam Weinig.

Resync web-platform-tests/tools tests from upstream 5dbb0a3fa631ef73da0.

  • web-platform-tests/tools/*: Updated.
9:57 AM Changeset in webkit [269234] by Karl Rackler
  • 1 edit
    2 adds in trunk/LayoutTests

REGRESSION (r269070): [ Big Sur ] editing/input/reveal-caret-of-multiline-input.html is a constant failure
rdar://70819245
Re-baseline for Catalina after r269174.

Unreviewed test gardening.

  • platform/mac-catalina/editing/input/reveal-caret-of-multiline-input-expected.txt: Added.
9:52 AM Changeset in webkit [269233] by Karl Rackler
  • 1 edit
    1 delete in trunk/LayoutTests

REGRESSION (r269070): [ Big Sur ] editing/input/reveal-caret-of-multiline-input.html is a constant failure
rdar://70819245
Re-baseline for Catalina after r269174. Capital letter in Input folder.

Unreviewed test gardening.

  • platform/mac-catalina/editing/Input/reveal-caret-of-multiline-input-expected.txt: Removed.
8:41 AM Changeset in webkit [269232] by Chris Fleizach
  • 4 edits in trunk/Source/WebCore

AX: Provide build workaround while isSystemVoice is not in all SDKs
https://bugs.webkit.org/show_bug.cgi?id=218414

Reviewed by Tim Horton.

Source/WebCore:

  • platform/ios/PlatformSpeechSynthesizerIOS.mm:

(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):

Source/WebCore/PAL:

  • pal/spi/cocoa/AXSpeechManagerSPI.h:
5:57 AM Changeset in webkit [269231] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] InlineLevelBox logical rect should only be accessed through LineBox
https://bugs.webkit.org/show_bug.cgi?id=218418

Reviewed by Antti Koivisto.

InlineLevelBox logical rect is relative to the parent inline box. Calling InlineLevelBox::logicalRect
and expect a line relative rect is an easy mistake to make (and one I made myself).
Only the LineBuilder and the LineBox should really need access to the relative rect, others should
continue to use LineBox::logicalRectForInlineLevelBox.

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::InlineLevelBox::logicalTop const):
(WebCore::Layout::LineBox::InlineLevelBox::logicalBottom const):
(WebCore::Layout::LineBox::InlineLevelBox::logicalLeft const):
(WebCore::Layout::LineBox::InlineLevelBox::logicalWidth const):
(WebCore::Layout::LineBox::InlineLevelBox::logicalHeight const):
(WebCore::Layout::LineBox::InlineLevelBox::logicalRect const): Deleted.

5:55 AM Changeset in webkit [269230] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Set the descent layout bounds for atomic inline level boxes
https://bugs.webkit.org/show_bug.cgi?id=218421

Reviewed by Antti Koivisto.

In most cases the layout bounds descent is 0, but in case of inline-block (or inline table) the decent value may be greater than 0.

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

Oct 31, 2020:

2:11 PM Changeset in webkit [269229] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][Integration] LineIteratorModernPath::top/bottom map to Line::enclosingRect::top/bottom
https://bugs.webkit.org/show_bug.cgi?id=218415

Reviewed by Antti Koivisto.

Line::enclosingRect includes all the inline level boxes on the line.

  • layout/integration/LayoutIntegrationLineIteratorModernPath.h:

(WebCore::LayoutIntegration::LineIteratorModernPath::top const):
(WebCore::LayoutIntegration::LineIteratorModernPath::bottom const):
(WebCore::LayoutIntegration::LineIteratorModernPath::selectionTop const):
(WebCore::LayoutIntegration::LineIteratorModernPath::selectionTopForHitTesting const):
(WebCore::LayoutIntegration::LineIteratorModernPath::selectionBottom const):
(WebCore::LayoutIntegration::LineIteratorModernPath::lineBoxTop const):
(WebCore::LayoutIntegration::LineIteratorModernPath::lineBoxBottom const):
(WebCore::LayoutIntegration::LineIteratorModernPath::y const):

12:06 PM Changeset in webkit [269228] by Simon Fraser
  • 19 edits in trunk/Source

Clean up BoxSide and BorderEdge code
https://bugs.webkit.org/show_bug.cgi?id=218197

Reviewed by Sam Weinig.

Source/WebCore:

Change border-drawing functions in RenderBoxModelObject which took BorderEdge[] to
use RectEdges<BorderEdge>. In addition, make BoxSide an enum class, and remove the redundant
PhysicalBoxSide. Also make BorderEdgeFlags an OptionSet<>.

I renamed PhysicalBoxSide to BoxSide because "physical" is a loaded term (it could mean
either locally top/right/bottom/left, or refer to absolute "physical coordinates").
This allowed BoxSide to be used in RectEdges, therefore making RectEdges<BorderEdge>
the right way to represent the set of edges for a box.

An equivalent set of bit flags, BoxSideFlag, allows use in an OptionSet<>.

Use more enumeration of sides in the border painting code.

  • page/IntersectionObserver.cpp:

(WebCore::IntersectionObserver::rootMargin const):

  • platform/RectEdges.h:

(WebCore::RectEdges::at):
(WebCore::RectEdges::top):
(WebCore::RectEdges::right):
(WebCore::RectEdges::bottom):
(WebCore::RectEdges::left):
(WebCore::RectEdges::at const):
(WebCore::RectEdges::top const):
(WebCore::RectEdges::right const):
(WebCore::RectEdges::bottom const):
(WebCore::RectEdges::left const):
(WebCore::RectEdges::setAt):
(WebCore::RectEdges::setTop):
(WebCore::RectEdges::setRight):
(WebCore::RectEdges::setBottom):
(WebCore::RectEdges::setLeft):

  • platform/text/WritingMode.h:

(WebCore::isHorizontalPhysicalSide):
(WebCore::mirrorPhysicalSide):
(WebCore::rotatePhysicalSide):
(WebCore::mapLogicalSideToPhysicalSide):

  • rendering/BorderEdge.cpp:

(WebCore::borderEdges):
(WebCore::BorderEdge::getBorderEdgeInfo): Deleted.

  • rendering/BorderEdge.h:

(WebCore::edgeFlagForSide):
(WebCore::includesEdge):
(WebCore::includesAdjacentEdges):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::borderWillArcInnerEdge):
(WebCore::borderStyleHasUnmatchedColorsAtCorner):
(WebCore::colorsMatchAtCorner):
(WebCore::colorNeedsAntiAliasAtCorner):
(WebCore::willBeOverdrawn):
(WebCore::joinRequiresMitre):
(WebCore::calculateAdjustedInnerBorder):
(WebCore::RenderBoxModelObject::paintOneBorderSide):
(WebCore::calculateSideRect):
(WebCore::RenderBoxModelObject::paintBorderSides):
(WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
(WebCore::RenderBoxModelObject::paintBorder):
(WebCore::RenderBoxModelObject::drawBoxSideFromPath):
(WebCore::RenderBoxModelObject::clipBorderSidePolygon):
(WebCore::RenderBoxModelObject::borderObscuresBackgroundEdge const):
(WebCore::RenderBoxModelObject::borderObscuresBackground const):

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::drawLineForBoxSide const):
(WebCore::RenderElement::paintOutline):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::paintOutlineForLine):

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::paintColumnRules):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::calculateBorderStyleColor):

  • rendering/RenderObjectEnums.h:
  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::paintCollapsedBorders):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::offsetTopForRowGroupBorder):
(WebCore::RenderTableSection::paintRowGroupBorderIfRequired):
(WebCore::physicalBorderForDirection):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintMenuListButtonDecorations):

  • rendering/style/NinePieceImage.h:

(WebCore::imagePieceHorizontalSide):
(WebCore::imagePieceVerticalSide):

Source/WebKit:

  • UIProcess/ios/WKKeyboardScrollingAnimator.mm:

(boxSide):

9:11 AM Changeset in webkit [269227] by Chris Dumez
  • 21 edits
    7 adds in trunk

Promises returned by our DOM API have the caller's global instead of the callee's
https://bugs.webkit.org/show_bug.cgi?id=218363

Reviewed by Darin Adler and Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/range/sw.https.window.js:

Re-import latest version of the test from upstream. Without those upstream changes, there would be a testharness error
when running this test.

  • web-platform-tests/html/cross-origin-embedder-policy/coep-on-response-from-service-worker.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/controller-with-no-fetch-event-handler.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-resources.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-response-taint.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/redirected-response.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/promise-methods-after-discard-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/startrendering-after-discard-expected.txt:

Rebaseline WPT tests that are now passing.

Source/WebCore:

Promises returned by our DOM APIs were using the caller's global instead of the
callee's global. This behavior was inconsistent with Chrome and Firefox, and was
causing failures in web-platform-tests. Because the global of the promise was
wrong, the global of the values passed when settling the promise (e.g. the global
of the exception used to reject a promise) was also wrong. This patch fixes this.

After fixing the global of DOM promises, some tests started failing because they
expect the promises coming from subframes to still get settled *after* their
iframe has been removed from the document. Such promises get settled properly
in Firefox and Chrome. They also used to settle properly in WebKit because we
were incorrectly using the caller's global. The issue was that after an iframe
gets detached, Document::stopActiveDOMObjects() would get called, which would
stop the EventLoopTaskGroup associated with the document and clear all pending
tasks from this group in the event loop. To address this, when a
Document::stopActiveDOMObjects(), we now mark the Document's EventLoopTaskGroup
as "ready to stop" instead of stopping it. Only once ALL groups in the EventLoop
are ready to stop, do we actually stop all those groups. This is important
because each document has its own group but all documents of similar origins
share the same EventLoop.

Tests: fast/js-promise-from-detached-iframe.html

http/tests/eventloop/promise-from-cross-origin-detached-iframe.html
webaudio/promise-global-object.html

  • bindings/js/JSDOMPromiseDeferred.h:

(WebCore::DeferredPromise::shouldIgnoreRequestToFulfill const):
(WebCore::callPromiseFunction):

  • dom/Document.cpp:

(WebCore::Document::stopActiveDOMObjects):
(WebCore::Document::eventLoop):

  • dom/EventLoop.cpp:

(WebCore::EventLoop::registerGroup):
(WebCore::EventLoop::unregisterGroup):
(WebCore::EventLoop::stopAssociatedGroupsIfNecessary):

  • dom/EventLoop.h:

(WebCore::EventLoopTaskGroup::EventLoopTaskGroup):
(WebCore::EventLoopTaskGroup::~EventLoopTaskGroup):
(WebCore::EventLoopTaskGroup::isReadyToStop const):
(WebCore::EventLoopTaskGroup::markAsReadyToStop):
(WebCore::EventLoopTaskGroup::stopAndDiscardAllTasks):

  • workers/WorkerOrWorkletGlobalScope.cpp:

(WebCore::WorkerOrWorkletGlobalScope::prepareForDestruction):

LayoutTests:

  • fast/js-promise-from-detached-iframe-expected.txt: Added.
  • fast/js-promise-from-detached-iframe.html: Added.

Add layout test to verify that JS promises from iframes properly get settled after the
the iframe gets removed from the doucment. I have verified that this test passes in
both Firefox and Chrome.

  • http/tests/eventloop/promise-from-cross-origin-detached-iframe-expected.txt: Added.
  • http/tests/eventloop/promise-from-cross-origin-detached-iframe.html: Added.
  • http/tests/eventloop/resources/promise-from-cross-origin-detached-iframe-subframe.html: Added.

Similar test as above but in a cross-origin iframe. Ryosuke recommended adding this test
since event loops only shared between documents of similar origins. I have verified that this
test passes in both Firefox and Chrome.

  • platform/mac/editing/input/reveal-caret-of-multiline-input-expected.txt:

Rebaseline existing test that has slightly different output.

  • requestidlecallback/requestidlecallback-document-gc-expected.txt:
  • requestidlecallback/requestidlecallback-document-gc.html:

Tweak test to check that enough documents are gc's at regular intervals, instead of expecting
them to be collected in a 0-timer.

  • webaudio/promise-global-object-expected.txt: Added.
  • webaudio/promise-global-object.html: Added.

Add test to verify that the global object of the promise is correct when the promise comes
from calling a DOM API in an subframe. Previously, we would incorrectly use the caller's
global instead of the callee's global. I have verified that this test passes in both Firefox
and Chrome.

9:08 AM Changeset in webkit [269226] by weinig@apple.com
  • 22 edits
    4 deletes in trunk

Remove all remaining testRunner.overridePreference calls
https://bugs.webkit.org/show_bug.cgi?id=218373

Reviewed by Simon Fraser.

Tools:

Remove implementations of testRunner.overridePreference. Adds testRunner.setShouldInvertColors,
which is a windows only preference. When we generate preferences for Windows, we can convert
this to use test header commands instead.

Also add default for MinimumFontSize so it can be used as test header commands for DumpRenderTree.

  • DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):

  • DumpRenderTree/TestRunner.cpp:

(setShouldInvertColors):
(TestRunner::staticFunctions):
(overridePreferenceCallback): Deleted.

  • DumpRenderTree/TestRunner.h:
  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::overridePreference): Deleted.

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::setShouldInvertColors):
(TestRunner::overridePreference): Deleted.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::toBool): Deleted.
(WTR::TestRunner::overridePreference): Deleted.

LayoutTests:

Removes remaining uses of testRunner.overridePreference and addresses some
recent feedback by removing some unnecessary "window." uses.

Also removed test cross-origin-local-storage-wk1.html as it is redundant with
other tests such as cross-origin-local-storage.html which uses internals instead.

  • fast/loader/display-image-unset-can-block-image-and-can-reload-in-place.html:
  • fast/parser/noscript-with-javascript-disabled.html:
  • fast/text/international/locale-sensitive-fonts.html:
  • fast/text/zero-font-size.html:
  • http/tests/download/default-encoding.html:
  • http/tests/misc/favicon-loads-with-images-disabled.html:
  • http/tests/security/cross-origin-local-storage-wk1-expected.txt: Removed.
  • http/tests/security/cross-origin-local-storage-wk1.html: Removed.
  • http/tests/security/resources/load-local-storage.html:
  • http/tests/xsl/xslt-transform-with-javascript-disabled.html:
  • platform/ios-wk1/TestExpectations:
  • platform/mac-wk2/http/tests/security/cross-origin-local-storage-wk1-expected.txt: Removed.
  • platform/mac/http/tests/security/cross-origin-local-storage-wk1-expected.txt: Removed.
  • platform/win/TestExpectations:
  • platform/win/inverted-colors/non-composited.html:
  • platform/wk2/TestExpectations:
  • svg/as-image/svg-image-with-data-uri-images-disabled.html:
8:21 AM EarlyWarningSystem edited by aakash_jain@apple.com
(diff)
7:29 AM Changeset in webkit [269225] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Split inline level box alignment process into multiple phases
https://bugs.webkit.org/show_bug.cgi?id=218397

Reviewed by Antti Koivisto.

Inline level box alignment inside the line box is described at https://www.w3.org/TR/css-inline-3/#line-layout.
The alignment process involves 3 distinct steps:

  1. Computing the line box's logical height. This step solely uses the layout bounds geometry of the inline level boxes.
  2. Finding the root inline box vertical position. This step is somewhat similar to the final, alignment phase but instead of

the logical top, here we compute the baseline offsets. It helps to figure out the root inline box's baseline positing inside the line box.

  1. Aligning the inline level boxes by computing their logical top position.

These 3 steps are implemented by the following 3 functions:

  1. computeLineBoxLogicalHeight()
  2. computeRootInlineBoxVerticalPosition()
  3. alignInlineLevelBoxes()

While some of the code in these functions may look redundant, they work with different type of geometries (layout bounds vs. normal ascent/descent/logical height).

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::setVerticalGeometryForInlineBox const):
(WebCore::Layout::LineBoxBuilder::alignInlineLevelBoxesVerticallyAndComputeLineBoxHeight):

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalRectForTextRun const):
(WebCore::Layout::LineBox::logicalRectForInlineLevelBox const):

  • layout/inlineformatting/InlineLineBox.h:

(WebCore::Layout::LineBox::InlineLevelBox::style const):
(WebCore::Layout::LineBox::InlineLevelBox::fontMetrics const): Deleted.

5:53 AM Changeset in webkit [269224] by Alan Bujtas
  • 5 edits in trunk/LayoutTests

Remove unneeded whitespace between content and <br>
https://bugs.webkit.org/show_bug.cgi?id=218151
<rdar://problem/70662471>

Reviewed by Antti Koivisto.

Missed these files in r268958.

  • editing/inserting/paragraph-separator-in-table-1.html:
  • platform/mac/editing/inserting/paragraph-separator-in-table-1-expected.txt:
5:19 AM Changeset in webkit [269223] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] Generate RootInlineBox::lineTop/lineBottom matching geometries
https://bugs.webkit.org/show_bug.cgi?id=218412

Reviewed by Antti Koivisto.

Line::enclosingRect's y() and maxY() match RootInlineBox::lineTop() and lineBottom() vertical coordinates.
It is required by the line iterator as some clients are apparently interested in the overflown area.

  • layout/integration/LayoutIntegrationLine.h:

(WebCore::LayoutIntegration::Line::Line):
(WebCore::LayoutIntegration::Line::enclosingRect const):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::constructContent):

  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::makeAdjustedContent):

5:18 AM Changeset in webkit [269222] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC][IFC] Rename ContainerStart/End to InlineBoxStart/End
https://bugs.webkit.org/show_bug.cgi?id=218410

Reviewed by Antti Koivisto.

ContainerStart/End inline items are triggered by inline boxes.

"An inline box is one that is both inline-level and whose contents participate in its containing inline formatting context."

  • layout/inlineformatting/InlineContentBreaker.cpp:

(WebCore::Layout::isTextContent):
(WebCore::Layout::isVisuallyEmptyWhitespaceContent):
(WebCore::Layout::isNonContentRunsOnly):
(WebCore::Layout::InlineContentBreaker::processOverflowingTextContent const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::collectInlineContentIfNeeded):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::collectHangingTrailingWhitespaceContent):
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

  • layout/inlineformatting/InlineItem.h:

(WebCore::Layout::InlineItem::isInlineBoxStart const):
(WebCore::Layout::InlineItem::isInlineBoxEnd const):
(WebCore::Layout::InlineItem::isContainerStart const): Deleted.
(WebCore::Layout::InlineItem::isContainerEnd const): Deleted.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::visuallyCollapsePreWrapOverflowContent):
(WebCore::Layout::Line::append):
(WebCore::Layout::Line::appendInlineBoxStart):
(WebCore::Layout::Line::appendInlineBoxEnd):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::isRunVisuallyNonEmpty const):
(WebCore::Layout::Line::TrimmableTrailingContent::remove):
(WebCore::Layout::Line::appendInlineContainerStart): Deleted.
(WebCore::Layout::Line::appendInlineContainerEnd): Deleted.

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::Run::isInlineBoxStart const):
(WebCore::Layout::Line::Run::isInlineBoxEnd const):
(WebCore::Layout::Line::Run::isContainerStart const): Deleted.
(WebCore::Layout::Line::Run::isContainerEnd const): Deleted.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineCandidate::InlineContent::appendInlineItem):
(WebCore::Layout::LineBuilder::inlineItemWidth const):
(WebCore::Layout::LineBuilder::nextContentForLine):
(WebCore::Layout::LineBuilder::nextWrapOpportunity const):

Note: See TracTimeline for information about the timeline view.