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

Timeline



Sep 27, 2020:

11:36 PM Changeset in webkit [267692] by commit-queue@webkit.org
  • 15 edits
    15 moves
    4 adds
    1 delete in trunk/LayoutTests

Resync web-platform-tests/html/semantics/the-iframe-element from upstream
https://bugs.webkit.org/show_bug.cgi?id=217033

Patch by Rob Buis <rbuis@igalia.com> on 2020-09-27
Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Resync web-platform-tests/html/semantics/the-iframe-element from upstream a520598adb3957def27f1b63c6bff62e891ccbda.

  • resources/resource-files.json:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/historical-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/historical.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-eager-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-eager.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-eager.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-eager.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url-2-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url-2.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url-2.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url-2.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-load-event-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-load-event.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-load-event.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-load-event.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-multiple-times-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-multiple-times.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-multiple-times.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-multiple-times.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-referrerpolicy-change.sub-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-referrerpolicy-change.sub.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-referrerpolicy-change.sub.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-referrerpolicy-change.sub.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-to-eager-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-to-eager.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-to-eager.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-to-eager.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy.tentative-expected.txt: Removed.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads.sub.tentative-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads.sub.tentative.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads.sub.tentative-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads.sub.tentative.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/sandbox-toggle-in-inactive-document-crash.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/download_stash.py:

(main):

  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:

LayoutTests:

Adjust for tentative extension removal.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads.sub.tentative-expected.txt:
9:39 PM Changeset in webkit [267691] by Lauro Moura
  • 3 edits in trunk/Source/WebKit

REGRESSION(r267688) [GTK] Many compositing timeouts
https://bugs.webkit.org/show_bug.cgi?id=217044

Reviewed by Darin Adler.

Especulative fix by adding missing finalize step to
updateRendering (or calling isolatedUpdateRendering).

Covered by existing tests.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::updateBackingStoreState):
Call finalizeUpdateRendering.
(WebKit::DrawingAreaCoordinatedGraphics::display): Ditto.

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHostTextureMapper.cpp:

(WebKit::LayerTreeHost::flushAndRenderLayers): Call
isolatedUpdateRendering instead of updateRendering on the corePage().

6:52 PM Changeset in webkit [267690] by weinig@apple.com
  • 3 edits in trunk/Source/WebKitLegacy/mac

Fix some typos found by Simon post-review for https://bugs.webkit.org/show_bug.cgi?id=217042

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):
"rmeove" -> "remove".

6:42 PM Changeset in webkit [267689] by weinig@apple.com
  • 15 edits in trunk/Source/WebKitLegacy/mac

[Preferences] Generate base preferences for WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=217042

Reviewed by Tim Horton.

Imports (and sorts) WebPreferences.yaml from WebKit, and starts generation for
for WebKitLegacy. To support this, a few tweaks to generation were required:

  • A new 'exposed' key was added to the configuration files which allows restricting which frontends a preference is exposed to. By default, preferences are exposed to all frontends. This is intended to be used for preferences that don't have a binding to WebCore (e.g. process model related preferences for Webkit). We will require a seperate concept for features that WebCore knows about, but are not supported by a frontend, but that will be added in future revisions.

'exposed' is used in a few places that have 'custom' bindings to WebCore where
WebKitLegacy and WebKit don't use the same type or meaning for a preference, such
as WebKitLegacy's FrameFlattening enum vs. WebKit's FrameFlatteningEnabled bool,
or WebKitLegacy's WebSQLEnabled vs. WebKit's WebSQLDisabled. Eventually, it would
be nice to make these match, but it is not required.

  • A new 'webKitLegacyPreferenceKey' key was added to the configuration files allowing for existing keys that don't match the default pattern of "WebKit" + keyName. This is to avoid changing the value of the preference key strings in WebPreferenceKeysPrivate.h, as I am not confident that changing them is kosher. I also went back and reverted the few I had already changed, just to be on the safe side.
  • Support was added in WebViewPreferencesChangedGenerated.mm.erb for non bool values.
  • Preferences that are conditionally compiled out (using the conditional key) no longer generate a default when they are compiled out, which required a little macro magic in WebPreferencesDefinitions.h.erb in the form of the new INITIALIZE_DEFAULT_PREFERENCES_FOR_ macros.
  • Scripts/GeneratePreferences.rb:
  • Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb:
  • Scripts/PreferencesTemplates/WebViewPreferencesChangedGenerated.mm.erb:
  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

  • WebView/WebPreferences.yaml:
  • WebView/WebPreferencesDebug.yaml:
  • WebView/WebPreferencesDefaultValues.h:
  • WebView/WebPreferencesDefaultValues.mm:

(WebKit::defaultAllowsInlineMediaPlayback):
(WebKit::defaultAllowsInlineMediaPlaybackAfterFullscreen):
(WebKit::defaultAllowsPictureInPictureMediaPlayback):
(WebKit::defaultJavaScriptCanOpenWindowsAutomatically):
(WebKit::defaultInlineMediaPlaybackRequiresPlaysInlineAttribute):
(WebKit::defaultPassiveTouchListenersAsDefaultOnDocument):
(WebKit::defaultRequiresUserGestureToLoadVideo):
(WebKit::defaultWebSQLEnabled):
(WebKit::defaultAttachmentElementEnabled):
(WebKit::defaultShouldRestrictBaseURLSchemes):

  • WebView/WebPreferencesExperimental.yaml:
  • WebView/WebPreferencesInternal.h:
  • WebView/WebPreferencesInternal.yaml:
  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _preferencesChanged:]):
(shouldAllowPictureInPictureMediaPlayback): Deleted.
(shouldAllowWindowOpenWithoutUserGesture): Deleted.
(shouldRequireUserGestureToLoadVideo): Deleted.
(shouldRestrictBaseURLSchemes): Deleted.

  • WebView/WebViewData.h:
5:23 PM Changeset in webkit [267688] by Simon Fraser
  • 10 edits in trunk/Source

WebKitLegacy should call Page::finalizeRenderingUpdate()
https://bugs.webkit.org/show_bug.cgi?id=216958

Reviewed by Tim Horton.
Source/WebCore:

Convert Page::m_inUpdateRendering to an enum which tracks the phase, which will be
used in a later patch to prevent extra update scheduling (webkit.org/b/216726).

Add isolatedUpdateRendering(), which is for callers who aren't going to call finalizeRenderingUpdate(),
and use it for SVGImage updates.

DRT/WTR can trigger Page::updateRendering() re-entrancy, so there's a bit of ugliness
that deals with that.

  • page/Page.cpp:

(WebCore::Page::updateRendering):
(WebCore::Page::isolatedUpdateRendering):
(WebCore::Page::doAfterUpdateRendering):
(WebCore::Page::finalizeRenderingUpdate):

  • page/Page.h:

Source/WebKit:

dynamicViewportSizeUpdate() needs to call isolatedUpdateRendering() because it isn't followed
by a finalizeRenderingUpdate().

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::dynamicViewportSizeUpdate):

Source/WebKitLegacy/mac:

This is a precursor to fixing webkit.org/b/216726. Page needs to track the phase
of updateRendering that we are in, and to ease this tracking, WebKitLegacy needs to call
Page::finalizeRenderingUpdate() so the state is tracked.

Rename -_viewWillDrawInternal to -_updateRendering, and have it call updateRendering()
and finalizeRenderingUpdate(). We can also move in the call to -_synchronizeCustomFixedPositionLayoutRect
which both call sites do.

Since updateRendering() is guaranteed to update layout, we know -_flushCompositingChanges would have
never returned NO here, so we can remove the condition in LayerFlushController::flushLayers().

-[WebHTMLView viewWillDraw] also does a similar -_web_updateLayoutAndStyleIfNeededRecursive
then -_flushCompositingChanges but this is called from AppKit with a timing that we don't control;
it may be redundant with -[WebView _updateRendering] but I leave that behavior unchanged.

  • WebView/WebView.mm:

(-[WebView _updateRendering]):
(-[WebView _forceRepaintForTesting]):
(LayerFlushController::flushLayers):
(-[WebView _viewWillDrawInternal]): Deleted.

Source/WebKitLegacy/win:

Windows doesn't call finalizeRenderingUpdate() so needs to use isolatedUpdateRendering().

  • WebCoreSupport/AcceleratedCompositingContext.cpp:

(AcceleratedCompositingContext::flushAndRenderLayers):

  • WebView.cpp:

(WebView::paint):
(WebView::flushPendingGraphicsLayerChangesSoon):
(WebView::flushPendingGraphicsLayerChanges):

1:00 PM Changeset in webkit [267687] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebKit

Cherry-pick r267540. rdar://problem/69593993

CrashTracer: com.apple.WebKit.Networking in NetworkSession::firstPartyHostCNAMEDomain() code
https://bugs.webkit.org/show_bug.cgi?id=216934
<rdar://problem/69216768>

Reviewed by Alex Christensen.

Add a check for a valid key.

  • NetworkProcess/NetworkSession.cpp: (WebKit::NetworkSession::firstPartyHostCNAMEDomain):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267540 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [267686] by Alan Coon
  • 3 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r267530. rdar://problem/69594070

Regression(r265280) Web Audio sources malfunction when disconnected from the audio graph
https://bugs.webkit.org/show_bug.cgi?id=216703
<rdar://problem/69158436>

Reviewed by Eric Carlson.

In case of an audio source that stops producing data, but does not end or mute the track,
we would continuously try to read the data until getting to the end of the data.
When reaching the end of the data, we would return silence and go back in time a little bit
to restart playing with some margin. This allows to read just one chunk of audio until we are back to the end of data.

We fix this by storing the end of the data counter when reaching it.
When trying to pull some more data, we will go back in time a little bit only if some more data was added in the meantime.
Otherwise, we just output silence.

Covered by manual test.

  • platform/audio/mac/AudioSampleDataSource.h:
  • platform/audio/mac/AudioSampleDataSource.mm: (WebCore::AudioSampleDataSource::pullSamplesInternal):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267530 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [267685] by Alan Coon
  • 4 edits in branches/safari-610-branch/Source/ThirdParty/ANGLE

Cherry-pick r267520. rdar://problem/69594405

REGRESSION: Textures Fail to Render in WebGL from HLS Stream [iOS 14]
https://bugs.webkit.org/show_bug.cgi?id=215908
<rdar://problem/68000962>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-09-24
Reviewed by Dean Jackson.

Disable ANGLE workers until EAGL implementation is more complete.
Current implementation fails to compile any shader, since the
compilation happens in the worker thread and worker EAGL context
which does not use the same sharegroup as the main context.
The shader objects are created in the main context but the shader
source setting and compilation happens in the worker context.
EAGL needs a flush between state changes, and adding that
correctly is a bigger change to be done later.

Use sized formats when calling [EAGLContext -texImageIOSurface]
from EGL_ANGLE_iosurface_client_buffer code. The texImageIOSurface
accepts parameters with glTexImage2D logic. On ES3, some of the
internal formats must be sized formats. The EAGLContext instantiated
by ANGLE is ES3, even if the ANGLE context would be ES2.

No tests added since this should be caught with the many video
related tests. It's unclear why this is not the case -- at
least on real hw. This is to be investigated later, too.

  • src/libANGLE/renderer/driver_utils.h: (rx::IsIOS):
  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm:
  • src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::InitializeFeatures):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267520 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [267684] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebKit

Cherry-pick r267496. rdar://problem/69594104

[macOS] Change name of client decoder entitlement
https://bugs.webkit.org/show_bug.cgi?id=216670
<rdar://problem/69101997>

Reviewed by Darin Adler.

The client decoder entitlement landed in <https://trac.webkit.org/changeset/266613/webkit> has changed name, and should be updated.

  • Scripts/process-entitlements.sh:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267496 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [267683] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebKit

Cherry-pick r267412. rdar://problem/69594162

Crashtracer inside PDFPlugin::createScrollbar.
<rdar://problem/69256031> and https://bugs.webkit.org/show_bug.cgi?id=216810

Reviewed by Tim Horton.

To quote Tim from r264945:
No new tests; timing is such that I can't reproduce without inserting
intentional delays into the main thread hops, which is further than
I'm willing to go for a test.

This is a speculative fix due to the aforementioned reproducibility issue.

  • WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::installPDFDocument): With all the past fixes in place, its apparent the plug-in HAS been torn down, and it's somewhat common to bypass the other "hasBeenDestroyed" checks. So put an explicit check here followed by an explicit release assert.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267412 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [267682] by Alan Coon
  • 5 edits in branches/safari-610-branch/Source

Cherry-pick r267394. rdar://problem/69593980

paper.io ad close buttons cannot be iteracted with via trackpad on iPad
https://bugs.webkit.org/show_bug.cgi?id=216812
<rdar://problem/68738585>

Reviewed by Wenson Hsieh.

Source/WebCore:

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm: (WebCore::IOSApplication::isPaperIO):

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm: (applicationIsKnownToIgnoreMouseEvents):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267394 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [267681] by Alan Coon
  • 13 edits in branches/safari-610-branch

Cherry-pick r267369. rdar://problem/69594300

[WebAuthn] Don't set the UV option if the authenticator doesn't support it
https://bugs.webkit.org/show_bug.cgi?id=215836
<rdar://problem/67817359>

Reviewed by Darin Adler.

Source/WebCore:

Covered by new API tests.

UV in the the CTAP 2.0 spec only means internal UV:
https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorGetInfo

If an authenticator supports ClientPin, it can set the uv bit in the responses to true but it
will not advertise itself supporting internal UV, which is the uv in the options.
https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorMakeCredential

Hence, setting it to true could result in error if the authenticator doesn't support internal UV even if it supports ClientPin.
It's not a way to ask the authenticator to set the uv bit in the response.

  • Modules/webauthn/fido/DeviceRequestConverter.cpp: (fido::encodeMakeCredenitalRequestAsCBOR): (fido::encodeGetAssertionRequestAsCBOR):

Tools:

  • TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp: (TestWebKitAPI::TEST):

LayoutTests:

  • http/wpt/webauthn/public-key-credential-create-failure-hid-silent.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-hid.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-hid.https.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267369 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [267680] by Alan Coon
  • 4 edits in branches/safari-610-branch

Cherry-pick r267305. rdar://problem/69594350

[macOS] REGRESSION (r265702): System Services receive 0 bytes when extracting selected content as rich text data
https://bugs.webkit.org/show_bug.cgi?id=216718
<rdar://problem/69150358>

Reviewed by Tim Horton.

Source/WebKit:

Test: CopyHTML.WriteRichTextSelectionToPasteboard

  • UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::dataSelectionForPasteboard):

After r265702, the IPCHandle received in the UI process was always being converted into a buffer of size 0,
due to using the size local variable (which is no longer set as an outparam of the sync IPC message). Instead,
use ipcHandle.dataSize.

Tools:

Add a new API test to verify that we get non-empty web archive data when using
-writeSelectionToPasteboard:types: to grab selected content as rich text data.

  • TestWebKitAPI/Tests/WebKitCocoa/CopyHTML.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267305 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [267679] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/JavaScriptCore

Cherry-pick r267304. rdar://problem/69594380

[JSC] PreciseAllocation's isNewlyAllocated flag should be propagated from isMarked at GC begin phase to make isLive correct
https://bugs.webkit.org/show_bug.cgi?id=216717

Reviewed by Mark Lam.

When starting full GC, at beginMarking, PreciseAllocation's mark bit is cleared to be usable for upcoming marking.
However, this means that HeapCell::isLive will see this object as dead until it is marked.
Let's consider that this object is not newly allocated one. Then, its isNewlyAllocated is false. And now mark bit

is also cleared. Since PreciseAllocation::isLive is isNewlyAllocated
isMarked, then it looks dead, while it is live.

This confuses HeapCell:isLive function and makes some of watchpoints perform wrong decisions (e.g. this condition is
no longer valid, let's just discard it).
At the beginning of full collection, we should propagate the old mark bit to isNewlyAllocated so that it looks live
during marking. This is similar trick to MarkedBlock::aboutToMark.

  • heap/PreciseAllocation.cpp: (JSC::PreciseAllocation::flip):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267304 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [267678] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r267287. rdar://problem/69594243

Crash under WebCore::shouldResetFocusNavigationStartingNode()
https://bugs.webkit.org/show_bug.cgi?id=216714
<rdar://problem/68132047>

Reviewed by Darin Adler.

Protect anchorElement in FrameView::scrollToFragmentInternal() to make sure
it stays alive until the time we pass it to setFocusNavigationStartingNode().

  • page/FrameView.cpp: (WebCore::FrameView::scrollToFragmentInternal):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267287 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [267677] by Alan Coon
  • 4 edits in branches/safari-610-branch/Source

Cherry-pick r267215. rdar://problem/69594225

Per-app accent color overrides are broken
https://bugs.webkit.org/show_bug.cgi?id=216674
<rdar://problem/67745464>

Reviewed by Wenson Hsieh.

Source/WebCore/PAL:

  • pal/spi/mac/NSApplicationSPI.h:

Source/WebKit:

No new tests; I've no idea how to write a test that would have caught this;
any test I can imagine would have also written to _accentColor and worked fine.

  • UIProcess/mac/PageClientImplMac.mm: (WebKit::PageClientImpl::accentColor): AppKit changed the meaning of the IPI. Use the correct version. We still write to _accentColor; it is now purely an override.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267215 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [267676] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r267198. rdar://problem/69594065

[iOS] YouTube does not route video to AirPlay the first time
https://bugs.webkit.org/show_bug.cgi?id=216626
<rdar://problem/62222846>

Reviewed by Eric Carlson.

Difficult to test this, since it requires an live AppleTV device.

During a refactor, the order of a couple calls changed. A MediaPlaybackTarget needs to be in place before the MediaPlayer can
be told to start playing to that target. Once the target is in-place, subsequent requests to start playing to that target succeed,
which explains the "only initial AirPlay fails" behavior.

  • platform/audio/ios/MediaSessionManagerIOS.mm: (WebCore::MediaSessionManageriOS::activeVideoRouteDidChange):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267198 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [267675] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r267148. rdar://problem/69594002

[macOS] Limit reported macOS release to 10.15 series
https://bugs.webkit.org/show_bug.cgi?id=216593
<rdar://problem/68937905>

Reviewed by Maciej Stachowiak.

If the reported system OS is 11.0 (or beyond) report the last stable release
of macOS.

  • platform/mac/UserAgentMac.mm: (WebCore::standardUserAgentWithApplicationName):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267148 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [267674] by Alan Coon
  • 4 edits in branches/safari-610-branch

Cherry-pick r267092. rdar://problem/69594199

REGRESSION (r267002): ASSERTION FAILED:[ iOS wk2 Debug ] !HashTranslator::equal(KeyTraits::emptyValue(), key) on compositing/ios/overflow-scroll-update-overlap.html
https://bugs.webkit.org/show_bug.cgi?id=216520
<rdar://problem/68894931>

Reviewed by Tim Horton.

Source/WebKit:

Avoid hash lookups with zero nodeIDs.

  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm: (WebKit::RemoteScrollingCoordinator::isRubberBandInProgress const): (WebKit::RemoteScrollingCoordinator::isUserScrollInProgress const): (WebKit::RemoteScrollingCoordinator::isScrollSnapInProgress const):

LayoutTests:

  • platform/ios-wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267092 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [267673] by Alan Coon
  • 20 edits in branches/safari-610-branch/Source

Cherry-pick r267002. rdar://problem/69594199

Overflow:scroll rubberbanding is interrupted by post-layout scrolling
https://bugs.webkit.org/show_bug.cgi?id=216463
<rdar://problem/67095741>

Reviewed by Darin Adler.

When rubberbanding overflow:scroll RenderLayer has an overscrolled scroll offset.
If RenderLayer::updateScrollInfoAfterLayout() happens when in this state, it can
clamp the scroll offset, causing the rubberband to collapse which interferes with
the user interaction. This happend on Gmail when composing a reply.

Fix by tracking the rubberbanding state in the scrolling tree, and having RenderLayer
query this state via the ScrollingCoordinator. RenderLayer::updateScrollInfoAfterLayout()
already tested isRubberBandInProgress(). This is similar to how isUserScrollInProgress()
and isScrollSnapInProgress() work.

This patch also fixes the tracking of rubberbanding state. Previously setMainFrameIsRubberBanding()
was just based on when the timer was started and stopped, which did not match the
implementation of ScrollController::isRubberBandInProgress(). Now ScrollController
correctly notifies its clients when the rubberbanding state changes by updating that
state whenever any of the conditions consulted in isRubberBandInProgressInternal() change.

Source/WebCore:

I tried to make tests for this, but the timing of wheel and scroll event delivery makes
reliable detection of interrupted rubberbands impossible in WebKitTestRunner.

  • page/FrameView.cpp: (WebCore::FrameView::isRubberBandInProgress const):
  • page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::isRubberBandInProgress const):
  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.h: (WebCore::ScrollingCoordinator::isRubberBandInProgress const):
  • page/scrolling/ScrollingTree.cpp: (WebCore::ScrollingTree::isRubberBandInProgressForNode): (WebCore::ScrollingTree::setRubberBandingInProgressForNode): (WebCore::ScrollingTree::isRubberBandInProgress): Deleted. (WebCore::ScrollingTree::setMainFrameIsRubberBanding): Deleted.
  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp: (WebCore::ScrollingTreeScrollingNode::commitStateBeforeChildren):
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: (WebCore::ScrollingTreeFrameScrollingNodeMac::currentScrollPositionChanged): (WebCore::ScrollingTreeFrameScrollingNodeMac::updateMainFramePinAndRubberbandState):
  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm: (WebCore::ScrollingTreeOverflowScrollingNodeMac::currentScrollPositionChanged):
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm: (WebCore::ScrollingTreeScrollingNodeDelegateMac::currentScrollPositionChanged): (WebCore::ScrollingTreeScrollingNodeDelegateMac::isRubberBandInProgress const): (WebCore::ScrollingTreeScrollingNodeDelegateMac::didStopRubberbandSnapAnimation): (WebCore::ScrollingTreeScrollingNodeDelegateMac::rubberBandingStateChanged):
  • platform/ScrollAnimator.cpp: (WebCore::ScrollAnimator::notifyPositionChanged):
  • platform/cocoa/ScrollController.h: (WebCore::ScrollControllerClient::rubberBandingStateChanged):
  • platform/cocoa/ScrollController.mm: (WebCore::ScrollController::handleWheelEvent): (WebCore::ScrollController::snapRubberBandTimerFired): (WebCore::ScrollController::scrollPositionChanged): (WebCore::ScrollController::isRubberBandInProgress const): (WebCore::ScrollController::stopSnapRubberbandTimer): (WebCore::ScrollController::isRubberBandInProgressInternal const): (WebCore::ScrollController::updateRubberBandingState): (WebCore::ScrollController::updateGestureInProgressState):
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::isRubberBandInProgress const): (WebCore::RenderLayer::updateScrollInfoAfterLayout):

Source/WebKit:

  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm: (WebKit::RemoteScrollingCoordinator::isRubberBandInProgress const): (WebKit::RemoteScrollingCoordinator::scrollingStateInUIProcessChanged):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267002 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [267672] by Alan Coon
  • 5 edits
    2 adds in branches/safari-610-branch

Cherry-pick r266611. rdar://problem/69594191

MediaRecorder timeslice parameter causing internal error on longer videos
https://bugs.webkit.org/show_bug.cgi?id=216076
<rdar://problem/68209422>

Reviewed by Eric Carlson.

Source/WebCore:

Test: http/wpt/fetch/blob-range.html

  • platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::readDataAsync):

Source/WebKit:

Test: http/wpt/fetch/blob-range.html

  • NetworkProcess/NetworkDataTaskBlob.cpp: (WebKit::NetworkDataTaskBlob::readData): readData can be re-entrant so we need to reset m_currentItemReadSize before consuming data.

LayoutTests:

  • http/wpt/fetch/blob-range-expected.txt: Added.
  • http/wpt/fetch/blob-range.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266611 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [267671] by Alan Coon
  • 3 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r266312. rdar://problem/69594218

[macOS] AirPlay device name is wrong when playing to multiple devices
https://bugs.webkit.org/show_bug.cgi?id=215952
<rdar://problem/66930799>

Reviewed by Jer Noble.

Tested manually because this requires a specific hardware setup.

  • platform/graphics/avfoundation/MediaPlaybackTargetCocoa.mm: (WebCore::MediaPlaybackTargetCocoa::deviceName const): If the AVOutputContext supports multiple output devices, create the device name by concatenating the names of all of the active output devices.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266312 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:00 PM Changeset in webkit [267670] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebKit

Cherry-pick r265977. rdar://problem/69594018

Could not find module 'WebKit' for target 'armv7-apple-ios'
<https://bugs.webkit.org/show_bug.cgi?id=215190>
<rdar://problem/65642049>

Reviewed by Brady Eidson.

The config changes here got added to the wrong config file. They need to
be for the overlay, not its tests.

  • SwiftOverlay/Configurations/WebKitSwiftOverlay.xcconfig:
  • SwiftOverlay/Configurations/WebKitSwiftOverlayTests.xcconfig:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@265977 268f45cc-cd09-0410-ab3c-d52691b4dbfc

12:59 PM Changeset in webkit [267669] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebKit

Cherry-pick r265322. rdar://problem/69594018

Could not find module 'WebKit' for target 'armv7-apple-ios'
<https://bugs.webkit.org/show_bug.cgi?id=215190>
<rdar://problem/65642049>

Reviewed by Brady Eidson.

  • SwiftOverlay/Configurations/WebKitSwiftOverlayTests.xcconfig: Define SWIFT_MODULE_ONLY_ARCHS to emit other architectures.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@265322 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:48 AM Changeset in webkit [267668] by Darin Adler
  • 2 edits in trunk/Tools

Remove run-webkit-tests code that strips trailing spaces when comparing expected.txt files
https://bugs.webkit.org/show_bug.cgi?id=217041

Reviewed by Sam Weinig.

  • Scripts/webkitpy/port/base.py:

(Port.do_text_results_differ): Removed code to strip the expected text before comparing.

9:45 AM Changeset in webkit [267667] by Darin Adler
  • 5 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from the last few expected.txt files that have them
https://bugs.webkit.org/show_bug.cgi?id=217040

Reviewed by Zalan Bujtas.

  • web-platform-tests/content-security-policy/style-src/style-src-imported-style-allowed.sub-expected.txt:
  • web-platform-tests/content-security-policy/style-src/style-src-imported-style-blocked-expected.txt:
  • web-platform-tests/css/css-text/white-space/append-whitespace-only-node-crash-001-expected.txt:
  • web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-expected.txt:

Remove trailing spaces.

9:30 AM Changeset in webkit [267666] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Unreviewed. Call showLayoutTree only when trees are mismatching.

  • layout/Verification.cpp:

(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree):

8:37 AM Changeset in webkit [267665] by Darin Adler
  • 15 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/euc-jp
https://bugs.webkit.org/show_bug.cgi?id=217037

Reviewed by Zalan Bujtas.

To run at a resaonable speed, we may want to find a way to change these encoding tests to not
decode each character separately since that's not critical to what they are testing; this likely
would result in tests fast enough to run as regression tests (right now they are skipped) and
much smaller output files too. But for now, these are colossal files.

  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-errors-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-expected.txt:

Remove trailing spaces.

8:36 AM Changeset in webkit [267664] by Darin Adler
  • 27 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in imported/w3c/web-platform-tests/encoding/legacy-mb-korean
https://bugs.webkit.org/show_bug.cgi?id=217036

Reviewed by Zalan Bujtas.

To run at a resaonable speed, we may want to find a way to change these encoding tests to not
decode each character separately since that's not critical to what they are testing; this likely
would result in tests fast enough to run as regression tests (right now they are skipped) and
much smaller output files too. But for now, these are colossal files.

  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-errors-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-korean-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-expected.txt:

Strip trailing spaces from these files.

8:36 AM Changeset in webkit [267663] by Darin Adler
  • 25 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis
https://bugs.webkit.org/show_bug.cgi?id=217039

Reviewed by Zalan Bujtas.

To run at a resaonable speed, we may want to find a way to change these encoding tests to not
decode each character separately since that's not critical to what they are testing; this likely
would result in tests fast enough to run as regression tests (right now they are skipped) and
much smaller output files too. But for now, these are colossal files.

  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-expected.txt:

Remove trailing spaces.

8:35 AM Changeset in webkit [267662] by Darin Adler
  • 14 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp
https://bugs.webkit.org/show_bug.cgi?id=217038

Reviewed by Zalan Bujtas.

To run at a resaonable speed, we may want to find a way to change these encoding tests to not
decode each character separately since that's not critical to what they are testing; this likely
would result in tests fast enough to run as regression tests (right now they are skipped) and
much smaller output files too. But for now, these are colossal files.

  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-errors-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-stateful-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-expected.txt:

Remove trailng spaces.

8:34 AM Changeset in webkit [267661] by Darin Adler
  • 24 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in imported/w3c/web-platform-tests/encoding/legacy-mb-tchinese/big5
https://bugs.webkit.org/show_bug.cgi?id=217035

Reviewed by Zalan Bujtas.

To run at a resaonable speed, we may want to find a way to change these encoding tests to not
decode each character separately since that's not critical to what they are testing; this likely
would result in tests fast enough to run as regression tests (right now they are skipped) and
much smaller output files too. But for now, these are colossal files.

  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-errors-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-extra-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-enc-ascii-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-expected.txt:

Strip trailing spaces from all these files. No other changes at this time.

8:17 AM Changeset in webkit [267660] by Darin Adler
  • 362 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in web-platform-tests/dom
https://bugs.webkit.org/show_bug.cgi?id=217029

Reviewed by Zalan Bujtas.

This affects many files, and it's not helpful to fill the change log with a list of them.

8:15 AM Changeset in webkit [267659] by Darin Adler
  • 84 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in web-platform-tests/encoding, not including the tests in the legacy-mb directories
https://bugs.webkit.org/show_bug.cgi?id=217030

Reviewed by Zalan Bujtas.

This affects many files, and it's not helpful to fill the change log with a list of them.

7:41 AM Changeset in webkit [267658] by Darin Adler
  • 1230 edits in trunk/LayoutTests

Remove trailing spaces from all expected.txt files outside the web-platform-tests directory
https://bugs.webkit.org/show_bug.cgi?id=217027

Reviewed by Zalan Bujtas.

This affects many files, and it's not helpful to fill the change log with a list of them.

6:03 AM Changeset in webkit [267657] by Alan Bujtas
  • 8 edits
    2 adds in trunk

[LFC][IFC] Create inline boxes for hard line breaks(<br>) and word wrap opportunities (<wbr>)
https://bugs.webkit.org/show_bug.cgi?id=217023

Reviewed by Antti Koivisto.

Source/WebCore:

Both hard <br> and the word break opportunity layout boxes generate inline boxes and get computed box geometries.
It enables us to answer questions like element.offsetTop/offsetLeft.

Test: fast/layoutformattingcontext/br-and-wbr-simple.html

  • layout/FormattingState.cpp:

(WebCore::Layout::FormattingState::boxGeometry):

  • layout/Verification.cpp:

(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineBoxes):

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::Run::isLineBreak const):
(WebCore::Layout::Line::Run::isSoftLineBreak const):
(WebCore::Layout::Line::Run::isHardLineBreak const):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForCells):

LayoutTests:

  • fast/layoutformattingcontext/br-and-wbr-simple-expected.html: Added.
  • fast/layoutformattingcontext/br-and-wbr-simple.html: Added.
5:55 AM Changeset in webkit [267656] by cathiechen
  • 4 edits in trunk/LayoutTests/imported/w3c

Add support to pause in testdriver.js
https://bugs.webkit.org/show_bug.cgi?id=216933

Reviewed by Darin Adler

While simulating a mouse action, pause in dispatchMouseActions() is needed. Otherwise, the events are sent
without delay, the simulation might not be effective. The patch uses JS setTimeout to simulate a pause.

  • web-platform-tests/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-expected.txt:
  • web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-expected.txt:
  • web-platform-tests/resources/testdriver-vendor.js:

(pause): Use setTimeout to simulate a pause.
(dispatchMouseActions):

5:45 AM Changeset in webkit [267655] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[SOUP] WebSocket: cookies set in request don't appear in the inspector
https://bugs.webkit.org/show_bug.cgi?id=217012

Reviewed by Michael Catanzaro.

Cookies are set by libsoup and we are notifying about the handshake being sent before the cookie header is added
to the request.

  • NetworkProcess/soup/WebSocketTaskSoup.cpp:

(WebKit::WebSocketTask::WebSocketTask): Connect to SoupMessage::starting to notify the web process the handshake
request has been sent.

5:35 AM Changeset in webkit [267654] by commit-queue@webkit.org
  • 18 edits
    3 deletes in trunk

Alias WebKitCSSMatrix to DOMMatrix
https://bugs.webkit.org/show_bug.cgi?id=153675

Patch by Rob Buis <rbuis@igalia.com> on 2020-09-27
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update imrpved test results.

  • web-platform-tests/css/geometry/DOMMatrix-stringifier-expected.txt:
  • web-platform-tests/css/geometry/WebKitCSSMatrix-expected.txt:

Source/WebCore:

Alias WebKitCSSMatrix to DOMMatrix and remove
the generated JSWebKitCSSMatrix as well as
WebKitCSSMatrix itself since it is no longer
needed.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/DOMMatrix.idl:
  • css/WebKitCSSMatrix.cpp: Removed.
  • css/WebKitCSSMatrix.h: Removed.
  • css/WebKitCSSMatrix.idl: Removed.

LayoutTests:

Adapt tests to expect DOMMatrix behavior rather than WebKitCSSMatrix.

  • platform/ios/ios/css/construct-WebKitCSSMatrix-expected.txt:
  • platform/ios/ios/css/resources/construct-WebKitCSSMatrix.js:
  • transforms/cssmatrix-2d-interface-expected.txt:
  • transforms/cssmatrix-2d-interface.xhtml:
  • transforms/cssmatrix-3d-interface-expected.txt:
  • transforms/cssmatrix-3d-interface.xhtml:
1:14 AM Changeset in webkit [267653] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk

Add .ccls config file
https://bugs.webkit.org/show_bug.cgi?id=216877

Patch by Philippe Normand <pnormand@igalia.com> on 2020-09-27
Reviewed by Darin Adler.

ccls is a stand-alone server implementing the Language Server Protocol for C, C++, and
Objective-C languages. It can be used with any editor which provides an LSP client
implementation. It originates from cquery.

https://github.com/MaskRay/ccls/wiki

It's basically used to provide semantic highlighting and code navigation. Many IDEs support
LSP nowadays.

  • .ccls: Added.
  • .gitignore:
12:37 AM Changeset in webkit [267652] by commit-queue@webkit.org
  • 18 edits in trunk

Clean up type parameter for Event idl
https://bugs.webkit.org/show_bug.cgi?id=217013

Patch by Rob Buis <rbuis@igalia.com> on 2020-09-27
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update improved test result.

  • web-platform-tests/html/dom/idlharness.https-expected.txt:

Source/WebCore:

Clean up type parameter for Event idl files, there is no need to
pass "undefined" default value.

  • dom/CompositionEvent.idl:
  • dom/HashChangeEvent.idl:
  • dom/KeyboardEvent.idl:
  • dom/MouseEvent.idl:
  • dom/MutationEvent.idl:
  • dom/TextEvent.idl:
  • dom/TouchEvent.idl:
  • dom/UIEvent.idl:
  • storage/StorageEvent.idl:

LayoutTests:

Update improved test results.

  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:

Sep 26, 2020:

11:30 PM Changeset in webkit [267651] by Darin Adler
  • 1478 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in web-platform-tests/[A-Za-h] minus css, dom, encoding, and html
https://bugs.webkit.org/show_bug.cgi?id=217024

Reviewed by Zalan Bujtas.

This affects many files, and it's not helpful to fill the change log with a list of them.

11:26 PM Changeset in webkit [267650] by Darin Adler
  • 2454 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in web-platform-tests/css
https://bugs.webkit.org/show_bug.cgi?id=217018

Reviewed by Zalan Bujtas.

This affects many files, and it's not helpful to fill the change log with a list of them.

11:20 PM Changeset in webkit [267649] by Darin Adler
  • 1289 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in web-platform-tests/[w-z]*
https://bugs.webkit.org/show_bug.cgi?id=217022

Reviewed by Zalan Bujtas.

This affects many files, and it's not helpful to fill the change log with a list of them.

10:56 PM Changeset in webkit [267648] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] Add <wbr> to showLayoutTree
https://bugs.webkit.org/show_bug.cgi?id=217025

Reviewed by Darin Adler.

This patch also tweaks the inline tree output (one line geometry output per line, different output format).

<div style="width: 100px;">first_line<wbr>second_line</div>

block box at (0,10) size 100x20

line at (0.00,0.00) size 100.00x10.00 baseline at (8.00)
line at (0.00,10.00) size 100.00x10.00 baseline at (8.00)

text run at (0.00,0.00) size 100.00x10.00 run(0, 10)
text run at (0.00,0.00) size 110.00x10.00 run(0, 11)

anonymous inline box (0x495583d20) length->(10) "first_line"
word break opportunity at (100,8) size 0x0 (0x4967c0680)
anonymous inline box (0x495591e00) length->(11) "second_line"

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::outputInlineRuns):
(WebCore::Layout::outputLayoutBox):

9:43 PM Changeset in webkit [267647] by Darin Adler
  • 2952 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in web-platform-tests/[i-v]*
https://bugs.webkit.org/show_bug.cgi?id=217020

Reviewed by Zalan Bujtas.

This affects many files, and it's not helpful to fill the change log with a list of them.

8:34 PM Changeset in webkit [267646] by Darin Adler
  • 4387 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in web-platform-tests/html
https://bugs.webkit.org/show_bug.cgi?id=217019

Reviewed by Zalan Bujtas.

This affects many files, and it's not helpful to fill the change log with a list of them.

7:48 PM Changeset in webkit [267645] by Wenson Hsieh
  • 14 edits in trunk

Remove support for setting CMYKA fill and stroke colors in 2D canvas
https://bugs.webkit.org/show_bug.cgi?id=217002

Reviewed by Darin Adler.

Source/WebCore:

Remove support for setFillColor(c, m, y, k, a) and setStrokeColor(c, m, y, k, a) on
CanvasRenderingContext2D, which was initially introduced in 2004 with <https://trac.webkit.org/r6730>.
Setting colors from CMYKA components is non-standard and unsupported in both Firefox and Chrome;
importantly, this is implemented in CanvasStyle::applyStrokeColor by calling directly into CoreGraphics
API using the platform CGContextRef, which is null when using the GPU Process; this subsequently causes
the web process to crash.

In lieu of adding new DisplayList items to support setting fill and stroke colors with CMYKA components,
we can take this opportunity to just drop support for this canvas API entirely. Fixes the following tests
when using the GPU Process to render canvas:

  • fast/canvas/canvas-color-serialization.html
  • fast/canvas/canvas-overloads-setFillColor.html
  • fast/canvas/canvas-overloads-setStrokeColor.html
  • html/canvas/CanvasRenderingContext2D.idl:
  • html/canvas/CanvasRenderingContext2DBase.cpp:
  • html/canvas/CanvasStyle.cpp:

(WebCore::CanvasStyle::isEquivalentColor const):
(WebCore::CanvasStyle::applyStrokeColor const):
(WebCore::CanvasStyle::applyFillColor const):

  • html/canvas/CanvasStyle.h:

(WebCore::CanvasStyle::color const):

LayoutTests:

Remove calls to CanvasRenderingContext2D.setFillColor(c, m, y, k, a) and
CanvasRenderingContext2D.setStrokeColor(c, m, y, k, a) in these layout tests.

  • fast/canvas/canvas-color-serialization-expected.txt:
  • fast/canvas/canvas-color-serialization.html:
  • fast/canvas/set-colors-expected.txt:
  • fast/canvas/set-colors.html:
  • inspector/canvas/recording-2d-full-expected.txt:
  • inspector/canvas/resources/recording-2d.js:
  • platform/ios/fast/canvas/set-colors-expected.txt:
  • platform/mac/fast/canvas/set-colors-expected.txt:
7:15 PM Changeset in webkit [267644] by Darin Adler
  • 3539 edits in trunk/LayoutTests

Remove trailing spaces from expected.txt files (excluding WPT for now since that contains too many)
https://bugs.webkit.org/show_bug.cgi?id=217016

Reviewed by Zalan Bujtas.

Done with this command:

find LayoutTests -name '*-expected.txt' | grep -v imported | xargs awk '/CONSOLE MESSAGE:/ { next }; /<\?xml/ { nextfile }; { print FILENAME; nextfile }' | xargs perl -i -pe 's/ +$g'

This affects many files, and it's not helpful to clog the change log with a list of them.

6:03 PM Changeset in webkit [267643] by Alan Coon
  • 3 edits
    2 deletes in branches/safari-610-branch

Revert r266887. rdar://problem/69586659

6:03 PM Changeset in webkit [267642] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Revert r266899. rdar://problem/69586659

5:21 PM Changeset in webkit [267641] by weinig@apple.com
  • 13 edits
    1 copy in trunk/Source/WebKitLegacy

[Preferences] Generate Debug and Internal preferences for WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=217015

Reviewed by Darin Adler.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Adds generation of WebPreferencesInternalFeatures.mm from WebPreferencesInternalFeatures.mm.erb.

Source/WebKitLegacy/mac:

Imports WebPreferencesDebug.yaml and WebPreferencesInternal.yaml from WebKit and starts
generating them.

In addition, preference yaml files must now be sorted alphabetically by preference name, and
this is now enforced by GeneratePreferences.rb, generating an error if they are out of order.

  • Scripts/GeneratePreferences.rb:
  • Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb:
  • Scripts/PreferencesTemplates/WebPreferencesInternalFeatures.mm.erb: Added.
  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(+[WebPreferences _internalDebugFeatures]): Deleted.

  • WebView/WebPreferencesDebug.yaml:
  • WebView/WebPreferencesDefaultValues.h:
  • WebView/WebPreferencesExperimental.yaml:
  • WebView/WebPreferencesInternal.yaml:
  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

4:23 PM Changeset in webkit [267640] by Darin Adler
  • 11 edits in trunk/Tools

Change dumpAsText to strip trailing spaces
https://bugs.webkit.org/show_bug.cgi?id=216944

Reviewed by Alan Bujtas.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(dumpFramesAsText): Strip trailing spaces.

  • DumpRenderTree/mac/FrameLoadDelegate.mm:

(-[FrameLoadDelegate webView:willPerformClientRedirectToURL:delay:fireDate:forFrame:]):
Don't add trailing space.

  • DumpRenderTree/mac/UIDelegate.mm:

(-[UIDelegate webView:addMessageToConsole:withSource:]): Ditto.
(addLeadingSpaceStripTrailingSpaces): Added.
(stripTrailingSpaces): Added.
(-[UIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:]): Don't add trailing space.
(-[UIDelegate webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:]): Ditto.
(-[UIDelegate webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:]): Ditto.
(-[UIDelegate webView:runBeforeUnloadConfirmPanelWithMessage:initiatedByFrame:]): Ditto.
(-[UIDelegate webView:setStatusText:]): Ditto.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(dumpFramesAsText): Strip trailing spaces.

  • DumpRenderTree/win/FrameLoadDelegate.cpp:

(FrameLoadDelegate::willPerformClientRedirectToURL): Don't add trailing space.

  • DumpRenderTree/win/UIDelegate.cpp:

(toMessage): Changed to return std::wstring.
(stripTrailingSpaces): Added.
(addLeadingSpaceStripTrailingSpaces): Added.
(UIDelegate::runJavaScriptAlertPanelWithMessage): Don't add trailing space.
(UIDelegate::runJavaScriptConfirmPanelWithMessage): Ditto.
(UIDelegate::runJavaScriptTextInputPanelWithPrompt): Ditto.
(UIDelegate::runBeforeUnloadConfirmPanelWithMessage): Ditto.
(UIDelegate::webViewAddMessageToConsole): Ditto.
(UIDelegate::setStatusText): Ditto.

  • Scripts/webkitpy/port/base.py:

(Port.do_text_results_differ): Strip trailing spaces from expected text.
Plan is to remove this after stripping the actual expected.txt files.

  • Scripts/webkitpy/port/win.py:

(WinPort.do_text_results_differ): Call through to base.

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::dumpFrameText): Strip trailing spaces.
(WTR::InjectedBundlePage::willPerformClientRedirectForFrame): Don't add trailing space.
(WTR::InjectedBundlePage::decidePolicyForNavigationAction): Ditto.
(WTR::stripTrailingSpaces): Added.
(WTR::addLeadingSpaceStripTrailingSpaces): Added.
(WTR::InjectedBundlePage::willAddMessageToConsole): Don't add trailing space.
(WTR::InjectedBundlePage::willRunJavaScriptAlert): Ditto.
(WTR::InjectedBundlePage::willRunJavaScriptConfirm): Ditto.
(WTR::InjectedBundlePage::willRunJavaScriptPrompt): Ditto.

3:13 PM Changeset in webkit [267639] by Chris Dumez
  • 24 edits
    2 adds
    2 deletes in trunk

Constructing an AudioNode for a closed context should not throw an exception
https://bugs.webkit.org/show_bug.cgi?id=216994

Reviewed by Darin Adler.

Source/WebCore:

Constructing an AudioNode for a closed context should not throw an exception. This
behavior is not as per specification and does not match the behavior of Chrome &
Firefox either.

Test: webaudio/construct-node-with-closed-context.html

  • Modules/webaudio/AnalyserNode.cpp:

(WebCore::AnalyserNode::create):

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::create):

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::lazyInitialize):
(WebCore::BaseAudioContext::sampleRate const):

  • Modules/webaudio/BaseAudioContext.h:
  • Modules/webaudio/BiquadFilterNode.cpp:

(WebCore::BiquadFilterNode::create):

  • Modules/webaudio/ChannelMergerNode.cpp:

(WebCore::ChannelMergerNode::create):

  • Modules/webaudio/ChannelSplitterNode.cpp:

(WebCore::ChannelSplitterNode::create):

  • Modules/webaudio/ConstantSourceNode.cpp:

(WebCore::ConstantSourceNode::create):

  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::create):

  • Modules/webaudio/DelayNode.cpp:

(WebCore::DelayNode::create):

  • Modules/webaudio/DynamicsCompressorNode.cpp:

(WebCore::DynamicsCompressorNode::create):

  • Modules/webaudio/GainNode.cpp:

(WebCore::GainNode::create):

  • Modules/webaudio/IIRFilterNode.cpp:

(WebCore::IIRFilterNode::create):

  • Modules/webaudio/MediaElementAudioSourceNode.cpp:

(WebCore::MediaElementAudioSourceNode::create):

  • Modules/webaudio/MediaStreamAudioDestinationNode.cpp:

(WebCore::MediaStreamAudioDestinationNode::create):

  • Modules/webaudio/MediaStreamAudioSourceNode.cpp:

(WebCore::MediaStreamAudioSourceNode::create):

  • Modules/webaudio/OscillatorNode.cpp:

(WebCore::OscillatorNode::create):

  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::create):

  • Modules/webaudio/PeriodicWave.cpp:

(WebCore::PeriodicWave::create):

  • Modules/webaudio/StereoPannerNode.cpp:

(WebCore::StereoPannerNode::create):

  • Modules/webaudio/WaveShaperNode.cpp:

(WebCore::WaveShaperNode::create):

LayoutTests:

  • http/wpt/webaudio/audiocontext-stopped-expected.txt: Removed.
  • http/wpt/webaudio/audiocontext-stopped.html: Removed.

Drop outdated test. It is replaced with the new test I am introducing.

  • webaudio/MediaStreamAudioDestination/create-in-destroyed-context-expected.txt:

Rebaseline Blink-imported test that is now passing.

  • webaudio/construct-node-with-closed-context-expected.txt: Added.
  • webaudio/construct-node-with-closed-context.html: Added.

Add layout test coverage.

3:07 PM Changeset in webkit [267638] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Drop AudioNode::lazyInitialize()
https://bugs.webkit.org/show_bug.cgi?id=217004

Reviewed by Darin Adler.

Drop AudioNode::lazyInitialize(), this is dead code.

  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::lazyInitialize): Deleted.

  • Modules/webaudio/AudioNode.h:

(WebCore::AudioNode::isInitialized const):

2:31 PM Changeset in webkit [267637] by Alan Bujtas
  • 7 edits
    2 adds in trunk

[LFC][IFC] Add support for <wbr>
https://bugs.webkit.org/show_bug.cgi?id=217014

Reviewed by Antti Koivisto.

Source/WebCore:

Introduce the WordBreakOpportunity type of InlineItem and take it into account while searching for word break opportunities.
It generates an empty line run but it does not yet have geometry information.

Test: fast/layoutformattingcontext/wbr-simple.html

  • layout/inlineformatting/InlineFormattingContext.cpp:

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

  • layout/inlineformatting/InlineItem.h:

(WebCore::Layout::InlineItem::isWordBreakOpportunity const):

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::appendWith):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendWordBreakOpportunity):

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::Run::isWordBreakOpportunity const):

  • layout/inlineformatting/InlineLineBuilder.cpp:

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

LayoutTests:

  • fast/layoutformattingcontext/wbr-simple-expected.html: Added.
  • fast/layoutformattingcontext/wbr-simple.html: Added.
2:08 PM Changeset in webkit [267636] by Alan Coon
  • 3 edits
    1 add in branches/safari-610-branch

Cherry-pick r267135. rdar://problem/69586651

JSImmutableButterfly::get needs to return jsDoubleNumber for double arrays
https://bugs.webkit.org/show_bug.cgi?id=216589
<rdar://problem/68061245>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/jsimmutablebutterfly-get-must-return-double-boxed-value.js: Added.

Source/JavaScriptCore:

We are using JSImmutableButterfly::get in AI to constant fold GetByVal,
but we were failing to always return a boxed double value for double loads.
We were calling jsNumber instead of jsDooubleNumber. This is in contrast to
the runtime, which always returns a double boxed value. This would lead AI
to disagree with the runtime, and miscompile code.

  • runtime/JSImmutableButterfly.h: (JSC::JSImmutableButterfly::get const):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267135 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:08 PM Changeset in webkit [267635] by Alan Coon
  • 7 edits
    1 add in branches/safari-610-branch

Cherry-pick r267113. rdar://problem/69586723

CustomFunctionEquivalence PropertyCondition needs to check if the structure has the property
https://bugs.webkit.org/show_bug.cgi?id=216575
<rdar://problem/68286930>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/has-static-property-property-condition-needs-to-check-if-structure-has-property.js: Added. (foo):

Source/JavaScriptCore:

The CustomFunctionEquivalence PropertyCondition would only return false to
isStillValidAssumingImpurePropertyWatchpoint if the Structure's static
property table was reified or if the static property table did not contain the
property. However, this missed the obvious case of where we store to this
property in normal object storage without reifying the static property table.
The fix here is simple: we first check if the Structure's property table
has this property, and if so, return false.

This patch also renames CustomFunctionEquivalence to HasStaticProperty to
better capture what we're doing.

  • bytecode/ObjectPropertyCondition.h: (JSC::ObjectPropertyCondition::hasStaticProperty): (JSC::ObjectPropertyCondition::customFunctionEquivalence): Deleted.
  • bytecode/ObjectPropertyConditionSet.cpp: (JSC::ObjectPropertyConditionSet::hasOneSlotBaseCondition const): (JSC::ObjectPropertyConditionSet::slotBaseCondition const): (JSC::generateConditionsForPrototypePropertyHitCustom):
  • bytecode/PropertyCondition.cpp: (JSC::PropertyCondition::dumpInContext const): (JSC::PropertyCondition::isStillValidAssumingImpurePropertyWatchpoint const): (JSC::PropertyCondition::validityRequiresImpurePropertyWatchpoint const): (JSC::PropertyCondition::isStillValid const): (JSC::PropertyCondition::isWatchableWhenValid const): (WTF::printInternal):
  • bytecode/PropertyCondition.h: (JSC::PropertyCondition::hasStaticProperty): (JSC::PropertyCondition::hash const): (JSC::PropertyCondition::operator== const): (JSC::PropertyCondition::customFunctionEquivalence): Deleted.
  • tools/JSDollarVM.cpp: (JSC::functionCreateStaticCustomValue): (JSC::JSDollarVM::finishCreation):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267113 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:08 PM Changeset in webkit [267634] by Alan Coon
  • 5 edits
    3 adds in branches/safari-610-branch

Cherry-pick r267067. rdar://problem/69586680

REGRESSION (Async overflow scroll): Code snippets on getkirby.com appear and disappear as content is scrolled
https://bugs.webkit.org/show_bug.cgi?id=216490
<rdar://problem/67018073>

Reviewed by Zalan Bujtas.
Source/WebCore:

The content in question had a z-order layer tree like this:

A (0,0) width=997 height=829 (layerID 20) {sc 2} RenderView

+ B (0,0) width=997 height=8 RenderBlock HTML class='no-js'

+ C (0,0) width=997 height=829 RenderFlexibleBox MAIN

n D (0,0) width=256 height=829 RenderFlexibleBox NAV class='left panel'

n E (0,0) width=256 height=829 (layerID 25) {sc 3} RenderBlock DIV class='scroller'

n F (256,0) width=741 height=829 RenderFlexibleBox ARTICLE class='main panel'

n G (0,0) width=741 height=829 (layerID 26) {sc 4} RenderBlock DIV class='scroller'

n H (0,-816) width=741 height=2810 RenderBlock DIV class='article-content'

+ I (0,0) width=256 height=1000 (layerID 27) overlap RenderBlock (relative positioned) DIV class='content'
+ J (10,300) width=721 height=202 (layerID 28) overlap RenderBlock (relative positioned) DIV class='relative-box'
+ K (10,802) width=721 height=202 (layerID 29) overlap RenderBlock (relative positioned) DIV class='relative-box'
+ L (10,1304) width=721 height=202 (layerID 30) overlap RenderBlock (relative positioned) DIV class='relative-box'
+ M (10,1806) width=721 height=202 (layerID 31) overlap RenderBlock (relative positioned) DIV class='relative-box'
+ M (10,2308) width=721 height=202 (layerID 32) overlap RenderBlock (relative positioned) DIV class='relative-box'

When layer 'G' is scrolled, the code would find the paint-order parent, F, which is normal-flow because it has overflow:hidden,
and would call setDescendantsNeedUpdateBackingAndHierarchyTraversal() on it. However, that doesn't go high enough, because
we need to update J-M since their ancestor clipping stacks have geometry that relies on the scroll position of G. If we don't
update that geometry, GraphicsLayers have an incorrect notion of what's visible, and we don't attach backing store.

The fix is to climb up to the stacking context B and call setDescendantsNeedUpdateBackingAndHierarchyTraversal() on it.

Test: compositing/scrolling/async-overflow-scrolling/nested-scrollers-backing-attachment.html

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollTo):

LayoutTests:

  • compositing/scrolling/async-overflow-scrolling/nested-scrollers-backing-attachment-expected.txt: Added.
  • compositing/scrolling/async-overflow-scrolling/nested-scrollers-backing-attachment.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267067 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:08 PM Changeset in webkit [267633] by Alan Coon
  • 8 edits
    2 adds in branches/safari-610-branch

Cherry-pick r266923. rdar://problem/69586712

REGRESSION (Async overflow scroll): Mouse wheel scrolling over an "always-on" overflow scrollbar doesn't work
https://bugs.webkit.org/show_bug.cgi?id=216381
<rdar://problem/68593743>

Reviewed by Antti Koivisto.

Source/WebCore:

The scrollbar and scroll corner layers need event regions and scrollingNodeIDs so that
we hit-test them via CA layers and find the right scrolling node.

Test: fast/scrolling/mac/mousewheel-over-scrollbar.html

  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateAfterDescendants): (WebCore::RenderLayerBacking::updateEventRegion): (WebCore::RenderLayerBacking::detachFromScrollingCoordinator): (WebCore::RenderLayerBacking::setScrollingNodeIDForRole):

LayoutTests:

  • fast/scrolling/mac/border-radius-event-region-expected.txt:
  • fast/scrolling/mac/event-region-scrolled-contents-layer-expected.txt:
  • fast/scrolling/mac/event-region-subscroller-overflow-expected.txt:
  • fast/scrolling/mac/event-region-visibility-hidden-expected.txt:
  • fast/scrolling/mac/mousewheel-over-scrollbar-expected.txt: Added.
  • fast/scrolling/mac/mousewheel-over-scrollbar.html: Added.
  • fast/scrolling/mac/negative-z-index-overflow-scroll-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266923 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:08 PM Changeset in webkit [267632] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r266899. rdar://problem/69586659

Address a post-commit review comment after r266887
https://bugs.webkit.org/show_bug.cgi?id=216257

Reviewed by Darin Adler.

Remove a check that currently makes us conditionally set IsComputedStyleInvalidFlag if there is a computed
style in rare data. There should be no change in behavior; this just makes the code a bit simpler.

  • dom/Element.cpp: (WebCore::Element::invalidateStyle): (WebCore::Element::storeDisplayContentsStyle):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266899 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:08 PM Changeset in webkit [267631] by Alan Coon
  • 4 edits
    2 adds in branches/safari-610-branch

Cherry-pick r266887. rdar://problem/69586659

REGRESSION (r257839): clickpay.com - password placeholder text cannot be replaced
https://bugs.webkit.org/show_bug.cgi?id=216257
<rdar://problem/68150686>

Reviewed by Antti Koivisto.

Source/WebCore:

On clickpay.com, the field in the login form that contains the text "Password" is actually a plain text input,
referred to by the site's script as the "null text input". The page adds a focus event listener to this null
text input, and inside of this focus event listener, it reveals a hidden password field by removing an inline
display: none; style rule on the real password input element, programmatically focuses it, and then hides the
null text input by setting it to display: none; via inline style.

However, after the changes in r257839, we no longer attempt to do a style update upon programmatic focus in the
case where the programmatically focused element does not have a renderer yet (this applies to the password field
in this scenario, because it previously had display: none;). When we determine whether the newly displayed
password field is focusable using Element::isVisibleWithoutResolvingFullStyle, we then attempt to use either
the existing computed RenderStyle on the element, or perform a partial computed style resolution using the
ResolveComputedStyleMode::RenderedOnly flag.

But in the case where ElementRareData's computed style exists, it is not guaranteed to be up to date if the
inline style changed since the computed style was last set. In the context of this bug, it's actually Safari's
AutoFill logic (embedded in the injected bundle) that ends up asking for the computed style of the password
input, forcing it to be created and set (though, as demonstrated in the layout test, simply grabbing the
computed style is sufficient to replicate the bug outside of Safari).

The end result is that we'll use this stale computed style, which still believes that the password input is not
displayed, and we end up not focusing the element due to believing that the password input is hidden. To fix
this, we would need to either check whether the element has an invalid style (i.e. needsStyleRecalc()) before
attempting to use the existing computed style, or clear out the ElementRareData computed style anytime the
element's style is invalidated. However, both of these approaches will cause us to perform partial style
resolution much more aggressively, leading to a 2-3% regression in Speedometer.

To address the bug without hampering our performance wins from r257839, we add a new node flag so that we can
remember when computed styles are no longer valid due to style invalidation, and consult this flag in
Element::isVisibleWithoutResolvingFullStyle to avoid using the existing computed style.

Test: fast/forms/programmatic-focus-after-display.html

  • dom/Element.cpp: (WebCore::Element::invalidateStyle): (WebCore::Element::resolveComputedStyle): (WebCore::Element::isVisibleWithoutResolvingFullStyle const):
  • dom/Node.h: (WebCore::Node::setHasValidStyle):

LayoutTests:

Add a new layout test to verify that the bug does not occur. See WebCore/ChangeLog for more details.

  • fast/forms/programmatic-focus-after-display-expected.txt: Added.
  • fast/forms/programmatic-focus-after-display.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266887 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:08 PM Changeset in webkit [267630] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r266884. rdar://problem/69583178

Revert accidental hard-coding of compositing logging from r266825.

  • platform/Logging.cpp: (WebCore::initializeLogChannelsIfNecessary):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266884 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:08 PM Changeset in webkit [267629] by Alan Coon
  • 25 edits
    1 copy
    10 adds in branches/safari-610-branch

Cherry-pick r266825. rdar://problem/69583178

REGRESSION (Async overflow scroll): Truncated scrollbars in facebook chat
https://bugs.webkit.org/show_bug.cgi?id=216294
<rdar://problem/61918702>

Reviewed by Antti Koivisto.

Source/WebCore:

When both async overflow scroll and overlay scrollbars are enabled, it's possible for
composited layers that are later in z-order than the overflow to overlap the scrollbars
(overflow does not create stacking context, so they are later siblings to the overflow).

To fix this we have to hoist the layer that hosts the overflow controls above all later layers
which belong to contents scrolled by this overflow. We know which layers these are; they have
ancestor clippings stacks that reference the overflow layer.

This overflow controls layer hoisting happens in the context of the enclosing composited layer.

So to fix this RenderLayerCompositor::updateBackingAndHierarchy() tracks these layers that belong to
an overflow scroll. RenderLayerCompositor::adjustOverflowScrollbarContainerLayers() uses them to find
the overflow scroll layers whose controls need hoisting, and where to insert those overflow controls
hosting layers in the sublayers list of the enclosing composited layer.

An additional source of complexity occurs with overflow scroll nested inside another scroller or
overflow:hidden (in the same composited stacking context): the overflow controls reparenting is hoisting
that layer up, so that layer itself needs additional layers to clip it (essentially the overflow control
layer behaves like a later sibling that needs its own ancestor clipping stack). When this occurs,
RenderLayerBacking creates an additional "ancestor clipping stack" in m_overflowControlsHostLayerAncestorClippingStack
which is a parallel stack to m_ancestorClippingStack, but with its own set of clipping layers. At some point
this will also need scrolling tree nodes created for it. Some minor refactoring helps share code for
the two LayerAncestorClippingStacks.

This new code all runs late in the compositing update for a given layer, which is not ideal; we replicate
some code from updateGeometry() and updateInternalHierarchy(). Ideally we'd be able to know at
computeCompositingRequirements() time if we need to do layer hoisting and ancestor clipping stack duplication,
but that proves hard because of ordering dependencies.

Tests: compositing/scrolling/async-overflow-scrolling/overlapped-overlay-scrollbar-dynamic.html

compositing/scrolling/async-overflow-scrolling/overlapped-overlay-scrollbar-inside-hidden.html
compositing/scrolling/async-overflow-scrolling/overlapped-overlay-scrollbar-nested.html
compositing/scrolling/async-overflow-scrolling/overlapped-overlay-scrollbar.html
compositing/scrolling/async-overflow-scrolling/transform-change-scrollbar-position.html

  • rendering/LayerAncestorClippingStack.cpp: (WebCore::LayerAncestorClippingStack::compositedClipData const):
  • rendering/LayerAncestorClippingStack.h:
  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateConfiguration): (WebCore::RenderLayerBacking::updateGeometry): (WebCore::RenderLayerBacking::adjustOverflowControlsPositionRelativeToAncestor): (WebCore::RenderLayerBacking::updateInternalHierarchy): (WebCore::RenderLayerBacking::updateAncestorClippingStack): (WebCore::RenderLayerBacking::ensureOverflowControlsHostLayerAncestorClippingStack): (WebCore::RenderLayerBacking::ensureClippingStackLayers): (WebCore::RenderLayerBacking::removeClippingStackLayers): (WebCore::RenderLayerBacking::connectClippingStackLayers): (WebCore::RenderLayerBacking::updateClippingStackLayerGeometry): (WebCore::RenderLayerBacking::updateAncestorClipping): (WebCore::RenderLayerBacking::offsetRelativeToRendererOriginForDescendantLayers const):
  • rendering/RenderLayerBacking.h:
  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::UpdateBackingTraversalState::UpdateBackingTraversalState): (WebCore::RenderLayerCompositor::UpdateBackingTraversalState::stateForDescendants const): (WebCore::RenderLayerCompositor::updateBackingAndHierarchy): (WebCore::RenderLayerCompositor::adjustOverflowScrollbarContainerLayers): (WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingProxyRole):
  • rendering/RenderLayerCompositor.h:

LayoutTests:

Some new tests, and new baselines for tests that have different layer trees now.

  • compositing/layer-creation/clipping-scope/nested-scroller-overlap-expected.txt:
  • compositing/layer-creation/clipping-scope/overlap-constrained-inside-scroller-expected.txt:
  • compositing/layer-creation/clipping-scope/scroller-with-negative-z-children-expected.txt:
  • compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
  • compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-clipped-by-scroll-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/clipped-layer-in-overflow-nested-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-hidden-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-clip-to-visible-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-gain-clipping-layer-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-in-clipped-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/layer-in-overflow-lose-clipping-layer-expected.txt:
  • compositing/scrolling/async-overflow-scrolling/overlapped-overlay-scrollbar-dynamic-expected.txt: Added.
  • compositing/scrolling/async-overflow-scrolling/overlapped-overlay-scrollbar-dynamic.html: Added.
  • compositing/scrolling/async-overflow-scrolling/overlapped-overlay-scrollbar-expected.txt: Added.
  • compositing/scrolling/async-overflow-scrolling/overlapped-overlay-scrollbar-inside-hidden-expected.txt: Added.
  • compositing/scrolling/async-overflow-scrolling/overlapped-overlay-scrollbar-inside-hidden.html: Added.
  • compositing/scrolling/async-overflow-scrolling/overlapped-overlay-scrollbar-nested-expected.txt: Added.
  • compositing/scrolling/async-overflow-scrolling/overlapped-overlay-scrollbar-nested.html: Added.
  • compositing/scrolling/async-overflow-scrolling/overlapped-overlay-scrollbar.html: Added.
  • compositing/scrolling/async-overflow-scrolling/transform-change-scrollbar-position-expected.txt: Added.
  • compositing/scrolling/async-overflow-scrolling/transform-change-scrollbar-position.html: Added.
  • compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller-expected.txt:
  • compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266825 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:08 PM Changeset in webkit [267628] by Alan Coon
  • 16 edits in branches/safari-610-branch/Source/WebKit

Cherry-pick r266804. rdar://problem/69583164

macCatalyst: Form controls behave strangely (like iPhone) in macOS-idiom apps
https://bugs.webkit.org/show_bug.cgi?id=216326

Reviewed by Wenson Hsieh.

  • Shared/UserInterfaceIdiom.h:
  • Shared/UserInterfaceIdiom.mm: (WebKit::userInterfaceIdiomIsPad): (WebKit::currentUserInterfaceIdiomIsPadOrMac): (WebKit::setCurrentUserInterfaceIdiomIsPadOrMac): (WebKit::currentUserInterfaceIdiomIsPad): Deleted. (WebKit::setCurrentUserInterfaceIdiomIsPad): Deleted.
  • Shared/ios/WebPreferencesDefaultValuesIOS.mm: (WebKit::defaultTextAutosizingUsesIdempotentMode):
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]):
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess):
  • UIProcess/ios/SmartMagnificationController.mm: (WebKit::SmartMagnificationController::didCollectGeometryForSmartMagnificationGesture):
  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKFormInputSession setAccessoryViewCustomButtonTitle:]): (-[WKContentView endEditingAndUpdateFocusAppearanceWithReason:]): (-[WKContentView _shouldShowAutomaticKeyboardUIIgnoringInputMode]): (-[WKContentView _zoomToRevealFocusedElement]): (-[WKContentView requiresAccessoryView]): (-[WKContentView _updateAccessory]): (shouldShowKeyboardForElement): (-[WKContentView _shouldUseLegacySelectPopoverDismissalBehavior]):
  • UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm: (WebKit::WebDataListSuggestionsDropdownIOS::show):
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::desktopClassBrowsingSupported):
  • UIProcess/ios/forms/WKAirPlayRoutePicker.mm: (-[WKAirPlayRoutePicker show:fromRect:]):
  • UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel _showPhotoPickerWithSourceType:]): (-[WKFileUploadPanel _presentMenuOptionForCurrentInterfaceIdiom:]):
  • UIProcess/ios/forms/WKFormColorControl.mm: (-[WKFormColorControl initWithView:]):
  • UIProcess/ios/forms/WKFormColorPicker.mm: (-[WKColorPicker initWithView:inPopover:]): (-[WKColorPicker drawSelectionIndicatorForColorButton:]):
  • UIProcess/ios/forms/WKFormSelectControl.mm: (-[WKFormSelectControl initWithView:]):
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): Rename currentUserInterfaceIdiomIsPad to currentUserInterfaceIdiomIsPadOrMac, and force it to YES on macCatalyst since internally we use it to distinguish between iPhone and iPad behavior, and (for our behaviors, at least) macCatalyst should always follow iPad.

We should clean this up, and make all callers make their
iPhone vs. iPad vs. macOS decisions more explicit.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266804 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:08 PM Changeset in webkit [267627] by Alan Coon
  • 6 edits in branches/safari-610-branch

Cherry-pick r266798. rdar://problem/69583118

Make sure WKWebsiteDataStore operations reuse existing process pools even when all WKWebViews have closed.
<rdar://problem/62978295> and https://bugs.webkit.org/show_bug.cgi?id=216317

Reviewed by Geoffrey Garen.

Source/WebKit:

Covered by new API test.

When WebsiteDataStores are gathering all the NetworkProcesses they might need to message, they miss some
obvious candidates if there are no longer any related WKWebViews.

Fix that by tracking which sessions a NetworkProcess knows about.

  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::addSession): (WebKit::NetworkProcessProxy::hasSession const): (WebKit::NetworkProcessProxy::removeSession):
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::isAssociatedProcessPool const):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm: (TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266798 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:08 PM Changeset in webkit [267626] by Alan Coon
  • 5 edits
    3 adds in branches/safari-610-branch

Cherry-pick r266148. rdar://problem/69583151

Font loads quickly followed by navigations may fail indefinitely
<rdar://problem/65560550> and https://bugs.webkit.org/show_bug.cgi?id=215435

Reviewed by Myles C. Maxfield.

Source/WebCore:

Second take at this.

Myles took the first swipe at this, but a conflict with SuspendableTimer caused issues
in the form of layout test asserts with
http/tests/security/navigate-when-restoring-cached-page.html

His original ChangeLog entry:

Font loads are coalesced using a zero-delay timer. However, that zero-delay timer
can fire while the page is in the middle of a navigation, which will cause the font
loads to fail. Then, the second page can request those same fonts, which are marked
as failed, and as such will never actually load/use the desired web font.

This patch just stops the zero-delay timer during navigations, and resumes it
when resuming the document. This means:

  1. The second page in the above story will not see that the font has failed, or even started, and will then re-request the font and load it successfully
  2. If the user goes "back" to the previous page, the zero-delay timer is restarted, the CachedFont realizes it's already succeeded, and the previous page is rendered as expected.

Test: fast/loader/font-load-timer.html

---

Now the explanation of the failure it caused:
The font loading timer was a SuspendableTimer, which is an ActiveDOMObject.

An ActiveDOMObject was used to make sure the delayed font loads play well with the
page cache, which is still necessary.

But we also still need to suspend the timer manually when "stopLoading()" is called,
which doesn't play well with ActiveDOMObject's automatic suspend/resume.

My solution:

  • Make the timer "just a normal timer"
  • Make CSSFontSelector itself the ActiveDOMObject
  • Let DocumentLoader explicitly pause the font load timer
  • Rely on ActiveDOMObject to resume the timer

These keep the bug fixed and resolve the layout test ASSERT seen with
http/tests/security/navigate-when-restoring-cached-page.html

  • css/CSSFontSelector.cpp: (WebCore::CSSFontSelector::CSSFontSelector): (WebCore::CSSFontSelector::clearDocument): (WebCore::CSSFontSelector::beginLoadingFontSoon): (WebCore::CSSFontSelector::suspendFontLoadingTimer): (WebCore::CSSFontSelector::fontLoadingTimerFired): (WebCore::CSSFontSelector::stop): (WebCore::CSSFontSelector::suspend): (WebCore::CSSFontSelector::resume): (WebCore::CSSFontSelector::beginLoadTimerFired): Deleted.
  • css/CSSFontSelector.h:
  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::stopLoading):

LayoutTests:

1) The page has some content that has “font-family: WebFont” but there are no @font-face blocks on the page
2) In script, after the page has loaded, add an @font-face rule to the page with “font-family: WebFont” and some valid font URL
3) Synchronously, within the same turn of the run loop, trigger a synchronous layout of the element (using offsetWidth or something). This will add the font to the 0-delay time work list.
4) Synchronously, within the same turn of the run loop, navigate to a second page that doesn’t use the web font.
5) The second page waits some small-but-positive amount of time. This will cause the 0-delay timer to fire, but because the page is in the middle of navigating, the font load should fail.
6) The second page adds the same @font-face rule to itself using script. This should pull the same (failed) CachedResource object out of the memory cache.
7) Use the CSS Font Loading API to wait for the font load to complete
8) Make sure that the font is used on the second page (as a reference test). Today, the second page’s font load will fail because it pulled the failed font out of the memory cache. The test makes sure the second page’s font load succeeds.

  • fast/loader/font-load-timer-expected.html: Added.
  • fast/loader/font-load-timer.html: Added.
  • fast/loader/resources/font-load-timer-navigation-destination.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@266148 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:45 PM Changeset in webkit [267625] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Fix Big Sur clean build after r267613
https://bugs.webkit.org/show_bug.cgi?id=217003

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
1:43 PM WebKitGTK/2.30.x edited by Adrian Perez de Castro
(diff)
12:52 PM Changeset in webkit [267624] by ysuzuki@apple.com
  • 9 edits in trunk/Source/JavaScriptCore

Unreviewed, follow-up after r267373 to resolve post-commit review comments
https://bugs.webkit.org/show_bug.cgi?id=216667

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNormalizeMapKey):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileMapHash):
(JSC::FTL::DFG::LowerDFGToB3::compileNormalizeMapKey):

  • runtime/HashMapImpl.h:

(JSC::jsMapHash):

9:34 AM Changeset in webkit [267623] by weinig@apple.com
  • 9 edits in trunk/Source/WebKitLegacy

[Preferences] It should be possible to have different default values for WebKitLegacy and WebKit in preference yaml files
https://bugs.webkit.org/show_bug.cgi?id=216987

Reviewed by Darin Adler.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Update script phase to explicitly specify the frontend (WebKitLegacy) and the templates to generate.

Source/WebKitLegacy/mac:

Add new syntax for default values that allows specializing based on both frontend (WebKit or
WebKitLegacy) and then futher based on platform macros. For example, the preference for
CSSTypedOMEnabled now looks like:

CSSTypedOMEnabled:

type: bool
humanReadableName: "CSS Typed OM"
humanReadableDescription: "Enable the CSS Typed OM"
webcoreBinding: RuntimeEnabledFeatures
condition: ENABLE(CSS_TYPED_OM)
defaultValue:

WebKitLegacy:

default: false

WebKit:

"ENABLE(EXPERIMENTAL_FEATURES) && (PLATFORM(GTK)
PLATFORM(WPE))": true

default: false

Which means that in WebKitLegacy, the default value is false, and in WebKit, the default
value will be:

#if ENABLE(EXPERIMENTAL_FEATURES) && (PLATFORM(GTK)
PLATFORM(WPE))

true

#else

false

#endif

As many platform macro based conditions can be provided as wanted, and they are evaluated
in the order specified in the file.

The syntax currently always requires explicitly specifying WebKitLegacy and WebKit and default
for each, even if they are all the same, but could be extended in the future to allow compaction
if that becomes desirable. There is also not yet support for conditionally enabling a feature
based on os-feature-flags or linked-on-or-after checks, so those still require specifying the
default value as a function, but that seems like a nice future improvement.

As this is still staging for doing this for both WebKitLegacy and WebKit, this change only effects
WebKitLegacy for now, and subsequent changes will move this to a shared location.

  • Scripts/GeneratePreferences.rb:
  • Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb:
  • Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.mm.erb:
  • WebView/WebPreferencesExperimental.yaml:
7:14 AM Changeset in webkit [267622] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][IFC] Line content logical width expands with run expansions (text-align: justify)
https://bugs.webkit.org/show_bug.cgi?id=217011

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/run-expansion-extends-line-content-width.html

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::applyRunExpansion):

LayoutTests:

  • fast/layoutformattingcontext/run-expansion-extends-line-content-width-expected.html: Added.
  • fast/layoutformattingcontext/run-expansion-extends-line-content-width.html: Added.
6:52 AM Changeset in webkit [267621] by Carlos Garcia Campos
  • 4 edits in trunk/Source

[SOUP] Do not set site for cookies twice in case of redirection
https://bugs.webkit.org/show_bug.cgi?id=217010

Reviewed by Michael Catanzaro.

Source/WebCore:

Only set is-toplevel-navigation on SoupMessage when same site info is present.

  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::ResourceRequest::updateSoupMessageMembers const):

Source/WebKit:

ResourceRequest::updateSoupMessage() already fills the same site information, but we are duplicating the code in
NetworkDataTaskSoup::continueHTTPRedirection().

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::continueHTTPRedirection): Do not set same site information here, it will be done
again in NetworkDataTaskSoup::createRequest().

6:51 AM Changeset in webkit [267620] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[SOUP] Slack.com is not working, new messages do not load due to WebSocket authentication failure issue
https://bugs.webkit.org/show_bug.cgi?id=149551

Reviewed by Michael Catanzaro.

The problem is that we are not including all the cookies in the web socket request. There are two cookies with
the Lax same-site policy set, that are not included for the websocket request.

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::webSocketConnectRequest): Add same site information to WebSocket requests.

Note: See TracTimeline for information about the timeline view.