Timeline



Feb 18, 2020:

10:56 PM Changeset in webkit [256913] by zandobersek@gmail.com
  • 6 edits in trunk

[WPE] Support 2D axis, smooth-motion events
https://bugs.webkit.org/show_bug.cgi?id=207881

Reviewed by Carlos Garcia Campos.

Source/WebKit:

WPE's WebEventFactory should also handle axis events that are capable
of providing information about axis change in both dimensions. In case
of smooth motion, the delta values should be preserved and not
transformed into line-steps.

Similarly, the ScrollGestureController should also adopt the 2D axis
event type, producing smooth-motion events when dispatching handling
a scroll gesture.

The changes are guarded and only enabled when building against at least
libwpe 1.5.0 since that's when the new API was added.

  • Shared/libwpe/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebWheelEvent):

  • UIProcess/API/wpe/ScrollGestureController.cpp:

(WebKit::ScrollGestureController::handleEvent):

  • UIProcess/API/wpe/ScrollGestureController.h:

(WebKit::ScrollGestureController::axisEvent):

Tools:

  • wpe/jhbuild.modules: Bump to a newer libwpe commit.
10:44 PM Changeset in webkit [256912] by commit-queue@webkit.org
  • 10 edits in trunk/Source/WebKit

Set User-Agent in preconnect requests
https://bugs.webkit.org/show_bug.cgi?id=207777

Patch by Ben Nham <Ben Nham> on 2020-02-18
Reviewed by Chris Dumez.

When using an HTTPS proxy, CFNetwork will not reuse a preconnected socket if the User-Agent
on the preconnect request doesn't match the User-Agent of the actual request
(<rdar://problem/59434166>). To work around this, this sets the User-Agent on preconnect
requests.

In addition, this patch moves the preconnect request from WebPage::loadRequest in the
WebProcess to WebPageProxy::loadRequest in the UIProcess. This is because there can be
long sync IPCs that last >100 ms that occur before WebProcess::loadRequest even starts,
e.g. https://bugs.webkit.org/show_bug.cgi?id=203165.

By making both changes, we see a ~2% improvement in PLT5 times.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::preconnectTo):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::preconnectTo):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::preconnectTo):

  • UIProcess/WebPageProxy.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::preconnectTo):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest):

9:42 PM Changeset in webkit [256911] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

Rename ScrollView::styleDidChange to styleAndRenderTreeDidChange
https://bugs.webkit.org/show_bug.cgi?id=207921

Reviewed by Simon Fraser.

When ScrollView::styleDidChange is called we actually finished updating the render tree as well.

  • dom/Document.cpp:

(WebCore::Document::resolveStyle):

  • page/FrameView.cpp:

(WebCore::FrameView::styleAndRenderTreeDidChange):
(WebCore::FrameView::styleDidChange): Deleted.

  • page/FrameView.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::styleAndRenderTreeDidChange):
(WebCore::ScrollView::styleDidChange): Deleted.

  • platform/ScrollView.h:
  • rendering/RenderView.cpp: FrameView::styleDidChange gets called by the Document.

(WebCore::RenderView::styleDidChange): Deleted.

  • rendering/RenderView.h:
9:37 PM Changeset in webkit [256910] by keith_miller@apple.com
  • 11 edits
    1 copy
    1 add in trunk/Source

Add an os_log PrintStream
https://bugs.webkit.org/show_bug.cgi?id=207898

Reviewed by Mark Lam.

Source/JavaScriptCore:

Add jsc option to write dataLogs to os_log.

  • runtime/Options.cpp:

(JSC::Options::initialize):

  • runtime/OptionsList.h:

Source/WTF:

When debugging on iOS writing to a file can be hard (thanks
Sandboxing!) so logging our dataLogs to os_log would make things
easier. This patch adds a new subclass of PrintStream,
OSLogPrintStream, that converts our file writes to
os_log. Unfortunately, os_log doesn't buffer writes so
OSLogPrintStream needs to do its own buffering. e.g. if you call
dataLogLn("some text with a ", number, " and a ", string);
os_log will log that as 5 separate logs.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/DataLog.cpp:

(WTF::setDataFile):

  • wtf/DataLog.h:
  • wtf/OSLogPrintStream.cpp: Added.

(WTF::OSLogPrintStream::OSLogPrintStream):
(WTF::OSLogPrintStream::~OSLogPrintStream):
(WTF::OSLogPrintStream::open):
(WTF::OSLogPrintStream::vprintf):

  • wtf/OSLogPrintStream.h: Copied from Source/WTF/wtf/DataLog.h.
  • wtf/PrintStream.cpp:

(WTF::printExpectedCStringHelper):
(WTF::printInternal):

  • wtf/text/CString.cpp:

(WTF::CString::grow):

  • wtf/text/CString.h:
9:20 PM Changeset in webkit [256909] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GTK] Gardening release build crashes
https://bugs.webkit.org/show_bug.cgi?id=207928

Unreviewed test gardening.

  • platform/gtk-wayland/TestExpectations:
  • platform/gtk/TestExpectations:
9:17 PM Changeset in webkit [256908] by Kocsen Chung
  • 1 copy in tags/Safari-610.1.3.3

Tag Safari-610.1.3.3.

9:14 PM Changeset in webkit [256907] by Kocsen Chung
  • 62 edits in branches/safari-610.1.3-branch/Source

Cherry-pick r256791. rdar://problem/59577979

getVTablePointer() should return a const void*.
https://bugs.webkit.org/show_bug.cgi?id=207871
<rdar://problem/59525721>

Reviewed by Yusuke Suzuki.

Source/WebCore:

  • bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation):
  • bindings/scripts/test/JS/JSInterfaceName.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSMapLike.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSReadOnlyMapLike.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSReadOnlySetLike.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSSetLike.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestCEReactions.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestCallTracer.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestEnabledForContext.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestEventTarget.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestException.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestIterable.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNode.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestPluginInterface.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestSerialization.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestStringifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestTypedefs.cpp: (WebCore::toJSNewlyCreated):

Source/WTF:

  • wtf/PointerPreparations.h: (WTF::getVTablePointer):

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

9:11 PM Changeset in webkit [256906] by Kocsen Chung
  • 8 edits in branches/safari-610.1.3-branch/Source

Versioning.

8:57 PM Changeset in webkit [256905] by commit-queue@webkit.org
  • 10 edits
    2 adds in trunk

ASSERTION FAILED: !m_embeddedObjectsToUpdate->contains(nullptr) in WebCore::FrameView::updateEmbeddedObjects
https://bugs.webkit.org/show_bug.cgi?id=191532
<rdar://problem/46151555>

Patch by Jack Lee <Jack Lee> on 2020-02-18
Reviewed by Darin Adler.

Add reentrancy protection for FrameView::updateEmbeddedObjects().
Move the common code in renderWidgetLoadingPlugin() to inherited class, HTMLPlugInElement.

Source/WebCore:

Test: fast/text/textCombine-update-embeddedObj-assert.html

  • html/HTMLAppletElement.cpp:

(WebCore::HTMLAppletElement::renderWidgetLoadingPlugin const):

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::renderWidgetLoadingPlugin const):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::renderWidgetLoadingPlugin const): Deleted.

  • html/HTMLObjectElement.h:
  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::renderWidgetLoadingPlugin const):

  • html/HTMLPlugInElement.h:
  • page/FrameView.cpp:

(WebCore::FrameView::updateEmbeddedObjects):

  • page/FrameView.h:

LayoutTests:

  • fast/text/textCombine-update-embeddedObj-assert-expected.txt: Added.
  • fast/text/textCombine-update-embeddedObj-assert.html: Added.
8:50 PM Changeset in webkit [256904] by youenn@apple.com
  • 7 edits in trunk/Source/WebCore

Reduce use of PlatformMediaSessionManager::sharedManager()
https://bugs.webkit.org/show_bug.cgi?id=207924

Reviewed by Eric Carlson.

The plan is to be able to have PlatformMediaSession in GPU process which might have different managers,
typically a manager per connection to web process.
For that reason, reduce the use of the sharedManager to classes that can only live in WebProcess.
No change of behavior.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::AudioContext):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::MediaElementSession):
(WebCore::MediaElementSession::clientDataBufferingTimerFired):
(WebCore::MediaElementSession::setHasPlaybackTargetAvailabilityListeners):

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::create):
(WebCore::PlatformMediaSession::PlatformMediaSession):
(WebCore::PlatformMediaSession::~PlatformMediaSession):
(WebCore::PlatformMediaSession::setState):
(WebCore::PlatformMediaSession::clientWillBeginPlayback):
(WebCore::PlatformMediaSession::processClientWillPausePlayback):
(WebCore::PlatformMediaSession::stopSession):
(WebCore::PlatformMediaSession::isPlayingToWirelessPlaybackTargetChanged):
(WebCore::PlatformMediaSession::canProduceAudioChanged):
(WebCore::PlatformMediaSession::clientCharacteristicsChanged):
(WebCore::PlatformMediaSession::manager):

  • platform/audio/PlatformMediaSession.h:
  • platform/audio/PlatformMediaSessionManager.h:
8:15 PM Changeset in webkit [256903] by Wenson Hsieh
  • 6 edits in trunk

REGRESSION (r256093): fast/events/touch/ios/block-without-overflow-scroll.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207919
<rdar://problem/59565344>

Reviewed by Tim Horton.

Source/WebCore:

Three iOS-specific layout tests began to fail after r256093, since they currently depend on a particular
ordering when iterating over elements in a hash map. Instead of just rebaselining these tests, we can make them
more robust against similar changes in the future by forcing a deterministic order when printing out synchronous
touch event regions for testing.

I arbitrarily chose to sort the keys (which are touch event type names) in alphabetical order.

  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::dumpProperties const):

LayoutTests:

Rebaseline some layout tests after changing the order in which synchronous touch event regions are dumped when
calling internals.scrollingStateTreeAsText().

  • fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-block-scrolling-state-expected.txt:
  • fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-document-scrolling-state-expected.txt:
  • fast/events/touch/ios/block-without-overflow-scroll-scrolling-state-expected.txt:
7:53 PM Changeset in webkit [256902] by Lauro Moura
  • 2 edits in trunk/Source/WebKit

[WebKit] Avoid segfault if editor client is null
https://bugs.webkit.org/show_bug.cgi?id=207925

Reviewed by Darin Adler.

Missing check was causing crashes running
editing/selection/selection-change-in-disconnected-frame-crash.html in
Mojave, iOS and GTK bots.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState const):

7:38 PM Changeset in webkit [256901] by youenn@apple.com
  • 7 edits in trunk/Source/WebCore

PlatformMediaSessionClient::processingUserGestureForMedia is not needed
https://bugs.webkit.org/show_bug.cgi?id=207922

Reviewed by Eric Carlson.

All code relies on the document and the virtual method is never used so remove it.
No change of behavior.

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::processingUserGestureForMedia const): Deleted.

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::processingUserGestureForMedia const): Deleted.

  • Modules/webaudio/AudioContext.h:
  • html/HTMLMediaElement.h:
  • platform/audio/PlatformMediaSession.h:
7:26 PM Changeset in webkit [256900] by youenn@apple.com
  • 16 edits in trunk/Source

SWServer::claim should check for the service worker to be active
https://bugs.webkit.org/show_bug.cgi?id=207739
<rdar://problem/45441129>

Reviewed by Alex Christensen.

Source/WebCore:

claim is only working for service workers that are active.
But there might be a time when a service worker is active in its web process but redundant in networking process.
Thus, we need to move the check from WebProcess to NetworkProcess.

  • workers/service/ServiceWorkerClients.cpp:

(WebCore::ServiceWorkerClients::claim):

  • workers/service/context/SWContextManager.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::claim):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerToContextConnection.cpp:

(WebCore::SWServerToContextConnection::claim):

  • workers/service/server/SWServerToContextConnection.h:
  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::claim): Deleted.

  • workers/service/server/SWServerWorker.h:

(WebCore::SWServerWorker::isActive const):

Source/WebKit:

Use Async Reply to remove the need for a map and passing integers around.

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::claimCompleted): Deleted.

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::claim):
(WebKit::WebSWContextManagerConnection::claimCompleted): Deleted.

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:
6:38 PM Changeset in webkit [256899] by Alan Coon
  • 18 edits in branches/safari-609-branch

Apply patch. rdar://problem/59465474

6:10 PM Changeset in webkit [256898] by Simon Fraser
  • 2 edits in branches/safari-609-branch/Source/JavaScriptCore

Unreviewed build fix.

  • jit/JITThunks.cpp:

(JSC::JITThunks::hostFunctionStub):

5:34 PM Changeset in webkit [256897] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Changed results due to ANGLE use
https://bugs.webkit.org/show_bug.cgi?id=207858

Unreviewed test gardening.

Remove conflict markers that were accidentally added as part of r256880,
remove duplicated expectation for a test, and move the expectations to the same
file as the rest of the ANGLE related failures.

  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
5:29 PM Changeset in webkit [256896] by Alan Coon
  • 29 edits
    4 copies
    6 adds in branches/safari-609-branch

Cherry-pick r256191. rdar://problem/59447003

Disallow setting base URL to a data or JavaScript URL
https://bugs.webkit.org/show_bug.cgi?id=207136

Source/WebCore:

Reviewed by Brent Fulgham.

Inspired by <https://bugs.chromium.org/p/chromium/issues/detail?id=679318>.

Block setting the base URL to a data URL or JavaScript URL as such usage is questionable.
This makes WebKit match the behavior of Chrome and Firefox and is in the spirit of the
discussion in <https://github.com/whatwg/html/issues/2249>.

On Mac and iOS, this restriction is applied only to apps linked against a future SDK to
avoid breaking shipped apps.

For all other ports, this restriction is enabled by default.

Tests: fast/url/relative2.html

fast/url/segments-from-data-url2.html
http/tests/security/allowed-base-url-data-url-via-setting.html
http/tests/security/denied-base-url-data-url.html
http/tests/security/denied-base-url-javascript-url.html

  • dom/Document.cpp: (WebCore::Document::processBaseElement): Condition updating the parsed base URL on whether is has an allowed scheme, if restrictions are enabled. Otherwise, do what we do now. If the scheme is disallowed then log a message to the console to explain this to web developers.
  • html/parser/HTMLPreloadScanner.cpp: (WebCore::TokenPreloadScanner::scan): Pass whether to apply restrictons to the base URL to updatePredictedBaseURL(). This depends on whether the setting is enabled or not. (WebCore::TokenPreloadScanner::updatePredictedBaseURL): Modifed to take a boolean as to whether to apply restrictions. If restrictions are not to be applied do what we do now. Otherwise, only do what we do now if the scheme for the predicated base URL is allowed.
  • html/parser/HTMLPreloadScanner.h:
  • page/SecurityPolicy.cpp: (WebCore::SecurityPolicy::isBaseURLSchemeAllowed): Added.
  • page/SecurityPolicy.h:
  • page/Settings.yaml: Add a setting to toggle restrictions on the base URL scheme.

Source/WebKit:

Reviewed by Brent Fulgham.

Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/Cocoa/WKWebView.mm: (shouldRestrictBaseURLSchemes): Added. (-[WKWebView _setupPageConfiguration:]): Update settings.
  • UIProcess/Cocoa/VersionChecks.h:

Source/WebKitLegacy/mac:

Reviewed by Brent Fulgham.

Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.

  • Misc/WebKitVersionChecks.h:
  • WebView/WebView.mm: (shouldRestrictBaseURLSchemes): Added. (-[WebView _commonInitializationWithFrameName:groupName:]): Update settings.

Source/WTF:

Reviewed by Brent Fulgham.

Add some more macro definitions.

  • wtf/spi/darwin/dyldSPI.h:

LayoutTests:

RReviewed by Brent Fulgham.

Add some tests. Update others to toggle the setting to apply or unapply the new behavior.

The test denied-base-url-javascript-url.html is derived from the test base-url-javascript.html,
included in <https://chromium.googlesource.com/chromium/src.git/+/c133efa0b915430701930b76a7cfe35608b9a403>.

  • fast/url/relative-expected.txt:
  • fast/url/relative.html:
  • fast/url/relative2-expected.txt: Copied from LayoutTests/fast/url/relative-expected.txt.
  • fast/url/relative2.html: Copied from LayoutTests/fast/url/relative.html.
  • fast/url/resources/utilities.js: (setShouldEllipsizeFileURLPaths): Added. Toggles ellipsizing the path portion of a file URL to simplify matching. Otherwise, file URLs could be machine-specific. (canonicalizedPathname): Added. (segments): Modified to optionally call canonicalizedPathname. (canonicalize): Ditto.
  • fast/url/segments-from-data-url-expected.txt:
  • fast/url/segments-from-data-url.html:
  • fast/url/segments-from-data-url2-expected.txt: Copied from LayoutTests/fast/url/segments-from-data-url-expected.txt.
  • fast/url/segments-from-data-url2.html: Copied from LayoutTests/fast/url/segments-from-data-url.html.
  • fetch/fetch-url-serialization-expected.txt:
  • http/tests/plugins/navigation-during-load-embed.html:
  • http/tests/plugins/navigation-during-load.html:
  • http/tests/security/allowed-base-url-data-url-via-setting-expected.txt: Added.
  • http/tests/security/allowed-base-url-data-url-via-setting.html: Added.
  • http/tests/security/denied-base-url-data-url-expected.txt: Added.
  • http/tests/security/denied-base-url-data-url.html: Added.
  • http/tests/security/denied-base-url-javascript-url-expected.txt: Added.
  • http/tests/security/denied-base-url-javascript-url.html: Added.

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

5:23 PM Changeset in webkit [256895] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][IFC] Replaced elements can also establish formatting contexts.
https://bugs.webkit.org/show_bug.cgi?id=207923
<rdar://problem/59571203>

Reviewed by Simon Fraser.

Source/WebCore:

While replaced boxes (leaf boxes) can also establish formatting contexts (e.g. style="inline-block"), we
only need to construct formatting context objects for the root's descendants (and not for the root itself).

Test: fast/layoutformattingcontext/block-only/replaced-as-inline-block-simple.html

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):

LayoutTests:

  • fast/layoutformattingcontext/block-only/replaced-as-inline-block-simple-expected.html: Added.
  • fast/layoutformattingcontext/block-only/replaced-as-inline-block-simple.html: Added.
5:16 PM Changeset in webkit [256894] by Ryan Haddad
  • 6 edits in trunk/Tools

Unreviewed, rolling out r256851.

Broke internal bots

Reverted changeset:

"Stub repositories fail to upload some results due to missing
head svn revision"
https://bugs.webkit.org/show_bug.cgi?id=207684
https://trac.webkit.org/changeset/256851

5:14 PM Changeset in webkit [256893] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.3.1

Tag Safari-609.1.20.3.1.

5:12 PM Changeset in webkit [256892] by commit-queue@webkit.org
  • 27 edits
    1 copy
    3 moves
    16 adds
    6 deletes in trunk/Source

Allow different back-ends for ImageBuffer
https://bugs.webkit.org/show_bug.cgi?id=207048

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-02-18
Reviewed by Tim Horton.

Source/WebCore:

ImageBuffer will be re-factored to decouple the platform specifics and
the back-end details from the interface "ImageBuffer".

A class hierarchy for the ImageBufferBackend will added to allow code
sharing and to split the code according to the platform and the back-end
details.

ImageBuffer will be kept interface with the rest of the code but different
back-ends will be created. ConcreteImageBuffer is a template class which
inherits ImageBuffer and will act as a bridge to the concrete
ImageBufferBackend.

Based on the RenderingMode, a ConcreteImageBuffer<BackendType> will
be created. Instead of checking the renderingMode in many places of the
code and instead of and using preprocessor directives, all these decisions
will be made in the concrete ImageBufferBackend.

This re-factoring will allow creating new types of ImageBuffers backed by
new ImageBufferBackends. These new ImageBufferBackends will implement
DisplayList drawing and synchronize remote rendering.

  • Headers.cmake:
  • PlatformAppleWin.cmake:
  • PlatformFTW.cmake:
  • PlatformMac.cmake:
  • PlatformWin.cmake:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/CanvasBase.cpp:

(WebCore::CanvasBase::setImageBuffer const):

  • platform/Cairo.cmake:
  • platform/SourcesCairo.txt:
  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::nativeImageForCurrentFrameRespectingOrientation):

  • platform/graphics/ConcreteImageBuffer.h: Added.

(WebCore::ConcreteImageBuffer::create):
(WebCore::ConcreteImageBuffer::ConcreteImageBuffer):
(WebCore::ConcreteImageBuffer::ensureBackend const):
(WebCore::ConcreteImageBuffer::putImageData):

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::create):
(WebCore::ImageBuffer::createCompatibleBuffer):
(WebCore::ImageBuffer::sizeNeedsClamping):
(WebCore::ImageBuffer::compatibleBufferSize):
(WebCore::ImageBuffer::sinkIntoNativeImage):
(WebCore::ImageBuffer::sinkIntoImage):
(WebCore::ImageBuffer::drawConsuming):
(WebCore::ImageBuffer::toBGRAData const): Deleted.
(WebCore::ImageBuffer::transformColorSpace): Deleted.
(WebCore::ImageBuffer::genericConvertToLuminanceMask): Deleted.
(WebCore::ImageBuffer::convertToLuminanceMask): Deleted.
(WebCore::ImageBuffer::platformLayer const): Deleted.
(WebCore::ImageBuffer::copyToPlatformTexture): Deleted.
(WebCore::ImageBuffer::memoryCost const): Deleted.
(WebCore::ImageBuffer::externalMemoryCost const): Deleted.

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):
(WebCore::ImageBuffer::drawConsuming):
(WebCore::ImageBuffer::putImageData):
(): Deleted.
(WebCore::ImageBuffer::internalSize const): Deleted.
(WebCore::ImageBuffer::logicalSize const): Deleted.
(WebCore::ImageBuffer::resolutionScale const): Deleted.
(WebCore::ImageBuffer::baseTransform const): Deleted.

  • platform/graphics/ImageBufferBackend.cpp: Added.

(WebCore::ImageBufferBackend::ImageBufferBackend):
(WebCore::ImageBufferBackend::calculateBackendSize):
(WebCore::ImageBufferBackend::sinkIntoNativeImage):
(WebCore::ImageBufferBackend::sinkIntoImage):
(WebCore::ImageBufferBackend::drawConsuming):
(WebCore::ImageBufferBackend::convertToLuminanceMask):
(WebCore::ImageBufferBackend::toBGRAData const):
(WebCore::copyPremultipliedToPremultiplied):
(WebCore::copyPremultipliedToUnpremultiplied):
(WebCore::copyUnpremultipliedToPremultiplied):
(WebCore::copyFunctor):
(WebCore::ImageBufferBackend::copyImagePixels const):
(WebCore::ImageBufferBackend::getImageData const):
(WebCore::ImageBufferBackend::putImageData):

  • platform/graphics/ImageBufferBackend.h: Added.

(WebCore::ImageBufferBackend::flushContext):
(WebCore::ImageBufferBackend::logicalSize const):
(WebCore::ImageBufferBackend::backendSize const):
(WebCore::ImageBufferBackend::resolutionScale const):
(WebCore::ImageBufferBackend::colorSpace const):
(WebCore::ImageBufferBackend::baseTransform const):
(WebCore::ImageBufferBackend::memoryCost const):
(WebCore::ImageBufferBackend::externalMemoryCost const):
(WebCore::ImageBufferBackend::transformColorSpace):
(WebCore::ImageBufferBackend::platformLayer const):
(WebCore::ImageBufferBackend::copyToPlatformTexture const):
(WebCore::ImageBufferBackend::bytesPerRow const):
(WebCore::ImageBufferBackend::backendColorFormat const):
(WebCore::ImageBufferBackend::toBackendCoordinates const):
(WebCore::ImageBufferBackend::logicalRect const):
(WebCore::ImageBufferBackend::backendRect const):

  • platform/graphics/PlatformImageBuffer.h: Added.
  • platform/graphics/ShadowBlur.cpp:

(WebCore::ShadowBlur::drawShadowBuffer):

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawShadowLayerBuffer):
(WebCore::Cairo::drawShadowImage):
(WebCore::Cairo::fillShadowBuffer):

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::clipToImageBuffer):

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::clipToImageBuffer):

  • platform/graphics/cairo/ImageBufferCairo.cpp: Removed.
  • platform/graphics/cairo/ImageBufferCairoBackend.cpp: Added.

(WebCore::ImageBufferCairoBackend::copyImage const):
(WebCore::ImageBufferCairoBackend::draw):
(WebCore::ImageBufferCairoBackend::drawPattern):
(WebCore::ImageBufferCairoBackend::transformColorSpace):
(WebCore::ImageBufferCairoBackend::toDataURL const):
(WebCore::ImageBufferCairoBackend::toData const):

  • platform/graphics/cairo/ImageBufferCairoBackend.h: Added.

(WebCore::ImageBufferCairoBackend::platformTransformColorSpace):

  • platform/graphics/cairo/ImageBufferCairoGLSurfaceBackend.cpp: Added.

(WebCore::clearSurface):
(WebCore::ImageBufferCairoGLSurfaceBackend::create):
(WebCore::ImageBufferCairoGLSurfaceBackend::ImageBufferCairoGLSurfaceBackend):
(WebCore::ImageBufferCairoGLSurfaceBackend::~ImageBufferCairoGLSurfaceBackend):
(WebCore::ImageBuffer::platformLayer const):
(WebCore::ImageBufferCairoGLSurfaceBackend::copyToPlatformTexture):
(WebCore::ImageBufferCairoGLSurfaceBackend::createCompositorBuffer):
(WebCore::ImageBufferCairoGLSurfaceBackend::swapBuffersIfNeeded):
(WebCore::ImageBufferCairoGLSurfaceBackend::paintToTextureMapper):

  • platform/graphics/cairo/ImageBufferCairoGLSurfaceBackend.h: Added.
  • platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp: Added.

(WebCore::ImageBufferCairoImageSurfaceBackend::create):
(WebCore::ImageBufferCairoImageSurfaceBackend::ImageBufferCairoImageSurfaceBackend):
(WebCore::ImageBufferCairoImageSurfaceBackend::platformTransformColorSpace):

  • platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.h: Added.
  • platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp: Added.

(WebCore::ImageBufferCairoSurfaceBackend::ImageBufferCairoSurfaceBackend):
(WebCore::ImageBufferCairoSurfaceBackend::context const):
(WebCore::ImageBufferCairoSurfaceBackend::bytesPerRow const):
(WebCore::ImageBufferCairoSurfaceBackend::copyNativeImage const):
(WebCore::ImageBufferCairoSurfaceBackend::cairoSurfaceCoerceToImage const):
(WebCore::ImageBufferCairoSurfaceBackend::toBGRAData const):
(WebCore::ImageBufferCairoSurfaceBackend::getImageData const):
(WebCore::ImageBufferCairoSurfaceBackend::putImageData):

  • platform/graphics/cairo/ImageBufferCairoSurfaceBackend.h: Added.
  • platform/graphics/cg/ImageBufferCG.cpp: Removed.
  • platform/graphics/cg/ImageBufferCGBackend.cpp: Added.

(WebCore::ImageBufferCGBackend::contextColorSpace):
(WebCore::ImageBufferCGBackend::setupContext):
(WebCore::createCroppedImageIfNecessary):
(WebCore::createBitmapImageAfterScalingIfNeeded):
(WebCore::ImageBufferCGBackend::copyImage const):
(WebCore::ImageBufferCGBackend::sinkIntoImage):
(WebCore::ImageBufferCGBackend::draw):
(WebCore::ImageBufferCGBackend::drawPattern):
(WebCore::ImageBufferCGBackend::baseTransform const):
(WebCore::ImageBufferCGBackend::toCFData const):
(WebCore::ImageBufferCGBackend::toData const):
(WebCore::ImageBufferCGBackend::toDataURL const):
(WebCore::makeVImageBuffer):
(WebCore::copyImagePixelsAccelerated):
(WebCore::ImageBufferCGBackend::copyImagePixels const):

  • platform/graphics/cg/ImageBufferCGBackend.h: Added.
  • platform/graphics/cg/ImageBufferCGBitmapBackend.cpp: Added.

(WebCore::ImageBufferCGBitmapBackend::create):
(WebCore::ImageBufferCGBitmapBackend::ImageBufferCGBitmapBackend):
(WebCore::ImageBufferCGBitmapBackend::context const):
(WebCore::ImageBufferCGBitmapBackend::copyNativeImage const):
(WebCore::ImageBufferCGBitmapBackend::toBGRAData const):
(WebCore::ImageBufferCGBitmapBackend::getImageData const):
(WebCore::ImageBufferCGBitmapBackend::putImageData):

  • platform/graphics/cg/ImageBufferCGBitmapBackend.h: Added.
  • platform/graphics/cg/ImageBufferDataCG.cpp: Removed.
  • platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp: Added.

(WebCore::ImageBufferIOSurfaceBackend::calculateBackendSize):
(WebCore::ImageBufferIOSurfaceBackend::contextColorSpace):
(WebCore::ImageBufferIOSurfaceBackend::create):
(WebCore::ImageBufferIOSurfaceBackend::ImageBufferIOSurfaceBackend):
(WebCore::ImageBufferIOSurfaceBackend::context const):
(WebCore::ImageBufferIOSurfaceBackend::flushContext):
(WebCore::ImageBufferIOSurfaceBackend::memoryCost const):
(WebCore::ImageBufferIOSurfaceBackend::externalMemoryCost const):
(WebCore::ImageBufferIOSurfaceBackend::bytesPerRow const):
(WebCore::ImageBufferIOSurfaceBackend::backendColorFormat const):
(WebCore::ImageBufferIOSurfaceBackend::copyNativeImage const):
(WebCore::ImageBufferIOSurfaceBackend::sinkIntoNativeImage):
(WebCore::ImageBufferIOSurfaceBackend::drawConsuming):
(WebCore::ImageBufferIOSurfaceBackend::toBGRAData const):
(WebCore::ImageBufferIOSurfaceBackend::getImageData const):
(WebCore::ImageBufferIOSurfaceBackend::putImageData):

  • platform/graphics/cg/ImageBufferIOSurfaceBackend.h: Added.
  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::updateCachedImageIfNeeded):

  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::createFromImageBuffer): Deleted.

  • platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:

(WebCore::GraphicsContextGLOpenGL::paintRenderingResultsToCanvas):

  • platform/graphics/win/ImageBufferDataDirect2D.cpp: Removed.
  • platform/graphics/win/ImageBufferDataDirect2D.h: Removed.
  • platform/graphics/win/ImageBufferDirect2D.cpp: Removed.
  • platform/graphics/win/ImageBufferDirect2DBackend.cpp: Added.

(WebCore::ImageBufferDirect2DBackend::create):
(WebCore::ImageBufferDirect2DBackend::ImageBufferDirect2DBackend):
(WebCore::ImageBufferDirect2DBackend::context const):
(WebCore::ImageBufferDirect2DBackend::flushContext):
(WebCore::ImageBufferDirect2DBackend::copyNativeImage const):
(WebCore::createCroppedImageIfNecessary):
(WebCore::createBitmapImageAfterScalingIfNeeded):
(WebCore::ImageBufferDirect2DBackend::copyImage const):
(WebCore::ImageBufferDirect2DBackend::sinkIntoImage):
(WebCore::ImageBufferDirect2DBackend::compatibleBitmap):
(WebCore::ImageBufferDirect2DBackend::draw):
(WebCore::ImageBufferDirect2DBackend::drawPattern):
(WebCore::ImageBufferDirect2DBackend::toDataURL const):
(WebCore::ImageBufferDirect2DBackend::toData const):
(WebCore::ImageBufferDirect2DBackend::toBGRAData const):
(WebCore::ImageBufferDirect2DBackend::getImageData const):
(WebCore::ImageBufferDirect2DBackend::putImageData):

  • platform/graphics/win/ImageBufferDirect2DBackend.h: Added.
  • platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp:

(WebCore::WrappedMockRealtimeVideoSource::updateSampleBuffer):

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::bufferForeground):

Source/WebKit:

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::createSelectionSnapshot const):

5:12 PM Changeset in webkit [256891] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.2.1

Tag Safari-609.1.20.2.1.

5:06 PM Changeset in webkit [256890] by youenn@apple.com
  • 8 edits in trunk/Source/WebKit

Add support for WebInspector WebSocket handshake in the new WebSocket code path
https://bugs.webkit.org/show_bug.cgi?id=207913

Reviewed by Alex Christensen.

Whenever creating the WebSocketTask, pass the request actually used for handshake to the WebProcess.
Whenever being connected, pass the request actually used for handshake to the WebProcess.
In case of failure before the web socket is connected, we send the response if we can get a non null from the task.

  • NetworkProcess/NetworkSocketChannel.cpp:

(WebKit::NetworkSocketChannel::didSendHandshakeRequest):
(WebKit::NetworkSocketChannel::didReceiveHandshakeResponse):

  • NetworkProcess/NetworkSocketChannel.h:
  • NetworkProcess/cocoa/WebSocketTaskCocoa.mm:

(WebKit::WebSocketTask::WebSocketTask):
(WebKit::WebSocketTask::didConnect):

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::connect):
(WebKit::WebSocketChannel::didConnect):
(WebKit::WebSocketChannel::didSendHandshakeRequest):
(WebKit::WebSocketChannel::didReceiveHandshakeResponse):

  • WebProcess/Network/WebSocketChannel.h:
  • WebProcess/Network/WebSocketChannel.messages.in:
4:49 PM Changeset in webkit [256889] by Fujii Hironori
  • 7 edits in trunk/Tools

[Win][MiniBrowser] Support back/forward mouse buttons by handing APPCOMMAND_BROWSER_BACKWARD and APPCOMMAND_BROWSER_FORWARD
https://bugs.webkit.org/show_bug.cgi?id=207883

Reviewed by Ross Kirsling.

Unlike other mouse buttons, 4th and 5th mouse buttons are
processed differently. Clicking them dispatches WM_XBUTTONDOWN and
WM_XBUTTONUP events to the window under the mouse cursor.
Unhandled WM_XBUTTONUP events are automatically converted to
WM_APPCOMMAND. And, unhandle WM_APPCOMMAND are propagated to the
parent window.
<https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-appcommand>

Unlike other WM_* commands, WM_APPCOMMAND should return 1 if it is
handled.

  • MiniBrowser/win/BrowserWindow.h:
  • MiniBrowser/win/MainWindow.cpp:

(MainWindow::WndProc):

  • MiniBrowser/win/WebKitBrowserWindow.cpp:

(WebKitBrowserWindow::navigateForwardOrBackward):

  • MiniBrowser/win/WebKitBrowserWindow.h:
  • MiniBrowser/win/WebKitLegacyBrowserWindow.cpp:

(WebKitLegacyBrowserWindow::navigateForwardOrBackward):

  • MiniBrowser/win/WebKitLegacyBrowserWindow.h:
4:48 PM Changeset in webkit [256888] by Russell Epstein
  • 9 edits
    1 add in branches/safari-609-branch

Cherry-pick r256779. rdar://problem/59551695

[JSC] JITThunk should be HashSet<Weak<NativeExecutable>> with appropriate GC weakness handling
https://bugs.webkit.org/show_bug.cgi?id=207715

Reviewed by Darin Adler.

JSTests:

  • stress/stress-jitthunks.js: Added. (let.set newGlobal): (set catch):

Source/JavaScriptCore:

This patch refines JITThunks GC-aware Weak hash map for NativeExecutable. Previously, we have
HashMap<std::tuple<TaggedNativeFunction, TaggedNativeFunction, String>, Weak<NativeExecutable>> table.
But this is not good because the first tuple's information is already in NativeExecutable.
But we were using this design since Weak<NativeExecutable> can be nullified because of Weak<>. If this
happens, we could have invalid Entry in HashMap which does not have corresponding values. This will
cause crash when rehasing requires hash code for this entry.

But this HashMap is very bad in terms of memory usage. Each entry has 32 bytes, and this table gets enough
large. We identified that this table is consuming much memory in Membuster. So it is worth designing
carefully crafted data structure which only holds Weak<NativeExecutable> by leveraging the deep interaction
with our GC implementation.

This patch implements new design of JITThunks, which uses HashSet<Weak<NativeExecutable>> and carefully crafted
HashTraits / KeyTraits to handle Weak<> well.

  1. Each Weak should have finalizer, and this finalizer should remove dead Weak<NativeExecutable> from HashSet.

This is ensuring that all the keys in HashSet is, even if Weak<> is saying it is Dead, it still has an way
to access content of NativeExecutable if the content is not a JS objects. For example, we can get function
pointer from dead Weak<NativeExecutable> if it is not yet finalized. Since we remove all finalized Weak<>
from the table, this finalizer mechanism allows us to access function pointers etc. from Weak<NativeExecutable>
so long as it is held in this table.

  1. Getting NativeExecutable* from JITThunks should have special protocol.

When getting NativeExecutable* from JITThunks, we do the following,

  1. First, we check we have an Entry in JITThunks. If it does not exist, we should insert it anyway.

1.1. If it exists, we should check whether this Weak<NativeExecutable> is dead or not. It is possible that

dead one is still in the table because "dead" does not mean that it is "finalized". Until finalizing happens (and
it can be delayed by incremental-sweeper), Weak<NativeExecutable> can be dead but still accessible. So the table
is still holding dead one. If we get dead one, we should insert a new one.

1.2. If it is not dead, we return it.

  1. Second, we create a new NativeExecutable and insert it. In that case, it is possible that the table already has Weak<NativeExecutable>, but it is dead. In that case, we need to explicitly replace it with newly created one since old one is holding old content. If we replaced, finalizer of Weak<> will not be invoked since it immediately deallocates Weak<>. So, it does not happen that this newly inserted NativeExecutable* is removed by the finalizer registered by the old Weak<>.

This change makes memory usage of JITThunks table 1/4.

  • heap/Weak.cpp: (JSC::weakClearSlowCase):
  • heap/Weak.h: (JSC::Weak::Weak): (JSC::Weak::isHashTableEmptyValue const): (JSC::Weak::unsafeImpl const): (WTF::HashTraits<JSC::Weak<T>>::isEmptyValue):
  • heap/WeakInlines.h: (JSC::Weak<T>::Weak):
  • jit/JITThunks.cpp: (JSC::JITThunks::JITThunks): (JSC::JITThunks::WeakNativeExecutableHash::hash): (JSC::JITThunks::WeakNativeExecutableHash::equal): (JSC::JITThunks::HostKeySearcher::hash): (JSC::JITThunks::HostKeySearcher::equal): (JSC::JITThunks::NativeExecutableTranslator::hash): (JSC::JITThunks::NativeExecutableTranslator::equal): (JSC::JITThunks::NativeExecutableTranslator::translate): (JSC::JITThunks::finalize): (JSC::JITThunks::hostFunctionStub): (JSC::JITThunks::clearHostFunctionStubs): Deleted.
  • jit/JITThunks.h:
  • runtime/NativeExecutable.h:
  • tools/JSDollarVM.cpp: (JSC::functionGCSweepAsynchronously): (JSC::functionCreateEmptyFunctionWithName): (JSC::JSDollarVM::finishCreation):

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

4:48 PM Changeset in webkit [256887] by Russell Epstein
  • 3 edits
    1 add in branches/safari-609-branch

Cherry-pick r256766. rdar://problem/59551706

[Wasm] REGRESSION(r256665): Wasm->JS call IC needs to save memory size register
https://bugs.webkit.org/show_bug.cgi?id=207849

Reviewed by Mark Lam.

JSTests:

  • wasm/regress/regress-256665.js: Added. (f):

Source/JavaScriptCore:

When generating the call IC, we should select the callee saves using BoundsChecking mode in order
to obey to the calling conventions described in r256665. Currently, we won't restore the memory size
register when calling the Wasm LLInt through the call IC.

  • wasm/js/WebAssemblyFunction.cpp: (JSC::WebAssemblyFunction::calleeSaves const):

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

4:47 PM Changeset in webkit [256886] by Russell Epstein
  • 3 edits in branches/safari-609-branch/JSTests

Cherry-pick r256698. rdar://problem/59551715

Unreviewed: fix broken tests added in r256665
https://bugs.webkit.org/show_bug.cgi?id=207727

Our inline WAT doesn't seem to like named blocks/branch targets.

  • wasm/regress/llint-callee-saves-with-fast-memory.js:
  • wasm/regress/llint-callee-saves-without-fast-memory.js:

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

4:47 PM Changeset in webkit [256885] by Russell Epstein
  • 9 edits
    2 adds in branches/safari-609-branch

Cherry-pick r256665. rdar://problem/59551715

[WASM] Wasm interpreter's calling convention doesn't match Wasm JIT's convention.
https://bugs.webkit.org/show_bug.cgi?id=207727

JSTests:

Reviewed by Mark Lam.

  • wasm/regress/llint-callee-saves-with-fast-memory.js: Added.
  • wasm/regress/llint-callee-saves-without-fast-memory.js: Added.

Source/JavaScriptCore:

Reviewed by Mark Lam.

The Wasm JIT has unusual calling conventions, which were further complicated by the addition
of the interpreter, and the interpreter did not correctly follow these conventions (by incorrectly
saving and restoring the callee save registers used for the memory base and size). Here's a summary
of the calling convention:

  • When entering Wasm from JS, the wrapper must:
    • Preserve the base and size when entering LLInt regardless of the mode. (Prior to this patch we only preserved the base in Signaling mode)
    • Preserve the memory base in either mode, and the size for BoundsChecking.
  • Both tiers must preserve every *other* register they use. e.g. the LLInt must preserve PB and wasmInstance, but must *not* preserve memoryBase and memorySize.
  • Changes to memoryBase and memorySize are visible to the caller. This means that:
    • Intra-module calls can assume these registers are up-to-date even if the memory was resized. The only exception here is if the LLInt calls a signaling JIT, in which case the JIT will not update the size register, since it won't be using it.
    • Inter-module and JS calls require the caller to reload these registers. These calls may result in memory changes (e.g. the callee may call memory.grow).
    • A Signaling JIT caller must be aware that the LLInt may trash the size register, since it always bounds checks.
  • llint/WebAssembly.asm:
  • wasm/WasmAirIRGenerator.cpp: (JSC::Wasm::AirIRGenerator::addCall):
  • wasm/WasmB3IRGenerator.cpp: (JSC::Wasm::B3IRGenerator::addCall):
  • wasm/WasmCallee.cpp: (JSC::Wasm::LLIntCallee::calleeSaveRegisters):
  • wasm/WasmCallingConvention.h:
  • wasm/WasmLLIntPlan.cpp: (JSC::Wasm::LLIntPlan::didCompleteCompilation):
  • wasm/WasmMemoryInformation.cpp: (JSC::Wasm::PinnedRegisterInfo::get): (JSC::Wasm::getPinnedRegisters): Deleted.

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

4:47 PM Changeset in webkit [256884] by Russell Epstein
  • 8 edits in branches/safari-609-branch/Source

Versioning.

4:31 PM Changeset in webkit [256883] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[First paint] Remove elementOverflowRectIsLargerThanThreshold check in qualifiesAsVisuallyNonEmpty
https://bugs.webkit.org/show_bug.cgi?id=207907
<rdar://problem/59562169>

Reviewed by Geoffrey Garen.

This is in preparation for being able to qualify for visually non-empty content without looking at geometry.
This check was added long ago, initially with a 200px value which got reduced to 48px to reduce painting latency on google search result page.
At this point a 48px threshold does not make too much sense.

  • page/FrameView.cpp:

(WebCore::FrameView::qualifiesAsSignificantRenderedText const):
(WebCore::FrameView::qualifiesAsVisuallyNonEmpty const):
(WebCore::elementOverflowRectIsLargerThanThreshold): Deleted.

4:21 PM Changeset in webkit [256882] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Do not eagerly launch WebProcess when WKPagePostMessageToInjectedBundle() is called
https://bugs.webkit.org/show_bug.cgi?id=207905

Reviewed by Alex Christensen.

Do not eagerly launch WebProcess when WKPagePostMessageToInjectedBundle() is called. It is bad for
performance as we cannot leverage the process cache if we don't know the domain of the site that
will be loaded.

Instead we now queue those injected bundle messages until we really need to launch the process.

No new tests, WebKitTestRunner extensively relies on this private API already, and was the
reason we did the eager process launch in the first place (https://trac.webkit.org/changeset/243156).

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::launchProcess):

  • UIProcess/WebPageProxy.h:
4:13 PM Changeset in webkit [256881] by Chris Dumez
  • 6 edits in trunk/Source/WebKit

Drop getSandboxExtensionsForBlobFiles() as it is dead code
https://bugs.webkit.org/show_bug.cgi?id=207909
<rdar://problem/59562180>

Reviewed by Per Arne Vollan.

  • NetworkProcess/NetworkProcess.cpp:
  • NetworkProcess/NetworkProcess.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
4:10 PM Changeset in webkit [256880] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

Changed results due to ANGLE use
https://bugs.webkit.org/show_bug.cgi?id=207858

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations: updating expectations for 2 more tests that surfaced as failures.
4:01 PM Changeset in webkit [256879] by Alan Coon
  • 3 edits in branches/safari-609.1.20.2-branch/Source/WebCore

Revert r256689. rdar://problem/59478731

4:01 PM Changeset in webkit [256878] by Alan Coon
  • 2 edits in branches/safari-609.1.20.2-branch/Source/JavaScriptCore

Revert r256690. rdar://problem/59478994

4:01 PM Changeset in webkit [256877] by Alan Coon
  • 16 edits in branches/safari-609.1.20.2-branch/Source

Revert r256691. rdar://problem/59478881

4:01 PM Changeset in webkit [256876] by Alan Coon
  • 5 edits in branches/safari-609.1.20.2-branch/Source

Revert r256692. rdar://problem/59478929

4:01 PM Changeset in webkit [256875] by Alan Coon
  • 2 edits in branches/safari-609.1.20.2-branch/Source/WebCore

Revert r256696. rdar://problem/59478734

4:01 PM Changeset in webkit [256874] by Alan Coon
  • 2 edits in branches/safari-609.1.20.2-branch/Source/WebCore

Revert r256746. rdar://problem/59478731

3:53 PM Changeset in webkit [256873] by Alan Coon
  • 3 edits in branches/safari-609.1.20.3-branch/Source/WebCore

Revert r256689. rdar://problem/59478731

3:53 PM Changeset in webkit [256872] by Alan Coon
  • 2 edits in branches/safari-609.1.20.3-branch/Source/JavaScriptCore

Revert r256690. rdar://problem/59478994

3:53 PM Changeset in webkit [256871] by Alan Coon
  • 16 edits in branches/safari-609.1.20.3-branch/Source

Revert r256691. rdar://problem/59478881

3:52 PM Changeset in webkit [256870] by Alan Coon
  • 5 edits in branches/safari-609.1.20.3-branch/Source

Revert r256692. rdar://problem/59478929

3:52 PM Changeset in webkit [256869] by Alan Coon
  • 2 edits in branches/safari-609.1.20.3-branch/Source/WebCore

Revert r256696. rdar://problem/59478734

3:52 PM Changeset in webkit [256868] by Alan Coon
  • 2 edits in branches/safari-609.1.20.3-branch/Source/WebCore

Revert r256746. rdar://problem/59478731

3:48 PM Changeset in webkit [256867] by achristensen@apple.com
  • 6 edits in trunk

Expand WKRemoteObjectCoder supported POD types to encode NSURLResponse types
https://bugs.webkit.org/show_bug.cgi?id=207912
<rdar://problem/59556922>

Reviewed by Brian Weinstein.

Source/WebKit:

This expands on r158806. There's no reason not to support all NSNumber types, so I did.
Covered by API tests.

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(encodeInvocationArguments):
(-[WKRemoteObjectEncoder encodeValueOfObjCType:at:]):
(-[WKRemoteObjectDecoder decodeValueOfObjCType:at:]):
(decodeInvocationArguments):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistry.h:
  • TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistry.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistryPlugIn.mm:

(-[RemoteObjectRegistryPlugIn sendRequest:response:challenge:error:completionHandler:]):

3:31 PM Changeset in webkit [256866] by Alan Coon
  • 8 edits in branches/safari-609.1.20.2-branch/Source

Versioning.

3:31 PM Changeset in webkit [256865] by Alan Coon
  • 8 edits in branches/safari-609.1.20.3-branch/Source

Versioning.

3:27 PM Changeset in webkit [256864] by dbates@webkit.org
  • 17 edits in trunk/Source

Ask the EditorClient whether to reveal the current selection after insertion
https://bugs.webkit.org/show_bug.cgi?id=207866
<rdar://problem/59553028>

Reviewed by Wenson Hsieh.

Source/WebCore:

Adds a new EditorClient function shouldRevealCurrentSelectionAfterInsertion() that returns whether
the client wants the engine to reveal the current selection after insertion. The default implementation
always returns true. On iOS it returns the result of WebPage::shouldRevealCurrentSelectionAfterInsertion().

  • editing/Editor.cpp:

(WebCore::Editor::insertTextWithoutSendingTextEvent): Call EditorClient::shouldRevealCurrentSelectionAfterInsertion().
If it returns false then skip the code to reveal the current selection: the UI process will call back
into WebPage::setShouldRevealCurrentSelectionAfterInsertion() when it is ready to reveal the current
selection. Otherwise, do what we do now.

  • editing/Editor.h:
  • page/EditorClient.h:

(WebCore::EditorClient::shouldRevealCurrentSelectionAfterInsertion const): Added.

  • page/Page.cpp:

(WebCore::Page::revealCurrentSelection): Added.

  • page/Page.h:

Source/WebKit:

On iOS, adds a new WebPage message SetShouldRevealCurrentSelectionAfterInsertion that the
UI process can send to toggle whether the current selection should be revealed after a
text insertion.

  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::setWaitingForPostLayoutEditorStateUpdateAfterFocusingElement):

  • UIProcess/ios/WKContentViewInteraction.h:

Add some declarations for some functions that I need to make the corresponding Apple Internal fix in <rdar://problem/57608794>.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
If we are not going to zoom to reveal the focused element immediately then call WebPage::setWaitingForPostLayoutEditorStateUpdateAfterFocusingElement(true)
so that we schedule a -_didUpdateEditorState callback on the next editor state update so that we can call
-_zoomToRevealFocusedElement.
(-[WKContentView _elementDidBlur]): Call WebPage::setWaitingForPostLayoutEditorStateUpdateAfterFocusingElement(false)
to unschedule an existing -_didUpdateEditorState callback.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::elementDidFocus):
(WebKit::WebPageProxy::elementDidBlur):
Move the setting of m_waitingForPostLayoutEditorStateUpdateAfterFocusingElement from here to
-_elementDidFocus and _elementDidBlur when an element is focused or blurred, respectively.

(WebKit::WebPageProxy::setShouldRevealCurrentSelectionAfterInsertion): Added.

  • WebProcess/WebCoreSupport/WebEditorClient.h:
  • WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:

(WebKit::WebEditorClient::shouldRevealCurrentSelectionAfterInsertion const): Added.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState const): Mark the editor state as ignoring selection changes if EditorClient::shouldRevealCurrentSelectionAfterInsertion()
returns false.
(WebKit::WebPage::didCommitLoad): Reset state.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::shouldRevealCurrentSelectionAfterInsertion const):

  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateSelectionAppearance): Do not send an update if EditorClient::shouldRevealCurrentSelectionAfterInsertion()
returns false.
(WebKit::WebPage::setShouldRevealCurrentSelectionAfterInsertion): Added. Update state, if needed. If passed
false, then reveal the current selection just as we would have done after an insertion and schedule a full
editor state update (i.e. an update after layout is performed). The latter will trigger the UI process on iOS
to zoom to reveal the newly focused element.

3:18 PM Changeset in webkit [256863] by Russell Epstein
  • 1 edit in branches/safari-609-branch/Source/WebCore/platform/graphics/cg/PDFDocumentImage.cpp

Unreviewed build fix.

3:18 PM Changeset in webkit [256862] by Russell Epstein
  • 28 edits
    10 deletes in branches/safari-609-branch

Revert "Cherry-pick r256191. rdar://problem/59447003"

This reverts commit r256796.

3:16 PM Changeset in webkit [256861] by Alan Coon
  • 1 copy in branches/safari-609.1.20.3-branch

New branch.

3:16 PM Changeset in webkit [256860] by Alan Coon
  • 1 copy in branches/safari-609.1.20.2-branch

New branch.

3:15 PM Changeset in webkit [256859] by Wenson Hsieh
  • 9 edits
    2 adds in trunk

[macOS] Web process may crash under ServicesOverlayController::buildPotentialHighlightsIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=207899
<rdar://problem/55658207>

Reviewed by Tim Horton and Simon Fraser.

Source/WebCore:

Mitigates a null pointer crash in ServicesOverlayController::buildPotentialHighlightsIfNeeded(), wherein the
focused frame may not have a FrameView when the ServicesOverlayController's selection invalidation timer fires.
This is possible if, while being focused, the newly focused subframe is unparented and reparented, which causes
it to momentarily have a null view. During this time, if a selection change had occurred earlier in the runloop,
it will schedule the page overlay controller invalidation timer, which will fire and discover that the currently
focused frame no longer has a FrameView.

Test: editing/selection/selection-change-in-disconnected-frame-crash.html

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::buildSelectionHighlight):

Source/WebKit:

Add another missing null check on iOS, for the case where FrameView is null.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformEditorState const):

Tools:

Make it possible to run tests on macOS with services controls enabled, via a new TestOptions flag.

  • WebKitTestRunner/TestController.cpp:

(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformCreateWebView):

LayoutTests:

Add a new layout test to verify that we don't crash under this circumstance.

  • editing/selection/selection-change-in-disconnected-frame-crash-expected.txt: Added.
  • editing/selection/selection-change-in-disconnected-frame-crash.html: Added.
3:11 PM Changeset in webkit [256858] by Alan Coon
  • 1 copy in tags/Safari-609.1.20

Tag Safari-609.1.20.

3:09 PM Changeset in webkit [256857] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

NetworkDataTask should not expect its session wrapper to be always live
https://bugs.webkit.org/show_bug.cgi?id=207903
rdar://problem/59291486

Reviewed by Alex Christensen.

NetworkDataTaskCocoa should take a weak pointer to its session wrapper.
If the session wrapper is still valid, then we can remove the task from the session wrapper map.
We cannot guarantee session wrapper is valid since NetworkDataTask is ref counted.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa):

2:52 PM Changeset in webkit [256856] by Peng Liu
  • 3 edits in trunk/Source/WebCore

MediaSource.isTypeSupported() says "video/mp4;codecs=\"avc3.42C015\"" is not supported, but it is
https://bugs.webkit.org/show_bug.cgi?id=207622

Reviewed by Eric Carlson.

Revert the behavior change of MediaPlayerPrivateMediaSourceAVFObjC::supportsType() in r253952.

  • platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:

(WebCore::AVAssetMIMETypeCache::canDecodeExtendedType):

2:41 PM Changeset in webkit [256855] by Alan Coon
  • 1 copy in tags/Safari-610.1.3.2

Tag Safari-610.1.3.2.

2:31 PM Changeset in webkit [256854] by Alan Coon
  • 8 edits in branches/safari-610.1.3-branch/Source

Versioning.

1:58 PM Changeset in webkit [256853] by Antti Koivisto
  • 8 edits in trunk/Source

[macOS] Don't fire timers when there is a pending rendering update
https://bugs.webkit.org/show_bug.cgi?id=207889

Reviewed by Simon Fraser.

Source/WebCore:

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

(WebCore::WindowEventLoop::breakToAllowRenderingUpdate):

Add the exported interface to WindowEventLoop as the future direction is to do everything via it.
For now it just calls into ThreadTimers rather than doing anything with the event loop itself.

  • dom/WindowEventLoop.h:
  • platform/ThreadTimers.cpp:

(WebCore::ThreadTimers::sharedTimerFiredInternal):
(WebCore::ThreadTimers::breakFireLoopForRenderingUpdate):

If we are in a firing timer set a flag so that no more timers are fired during the current runloop cycle.

  • platform/ThreadTimers.h:

Source/WebKit:

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::scheduleRenderingUpdateRunLoopObserver):

Ensure the event loop cycles to reach the runloop observer as fast as possible.

1:45 PM Changeset in webkit [256852] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

12:17 PM Changeset in webkit [256851] by Matt Lewis
  • 6 edits in trunk/Tools

Stub repositories fail to upload some results due to missing head svn revision
https://bugs.webkit.org/show_bug.cgi?id=207684

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/api_tests/run_api_tests.py:

(main): Added initializing the scm to the host object.

  • Scripts/webkitpy/layout_tests/models/test_run_results.py:

(summarize_results): Changed call to head_svn_revision to port.commits_for_upload() to bring
it in line with modern code.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(main): Added inializing the scm to the host object.

  • Scripts/webkitpy/port/base.py:

(Port.commits_for_upload): Removed the forced movement up the systems tree that prevented us
from using mock SCMs and more

  • Scripts/webkitpy/test/main.py:

(main): Removed the forced movement up the systems tree, initialized the SCM on the host object,
and converted the webkit_root variable to the SCM checkout root.
(Tester._run_tests):

12:09 PM Changeset in webkit [256850] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix order (in MIPS) under which CS-registers are saved/restored
https://bugs.webkit.org/show_bug.cgi?id=207752

Patch by Paulo Matos <Paulo Matos> on 2020-02-18
Reviewed by Keith Miller.

This has been causing several segfaults on MIPS with JIT enabled
because during an OSR to baseline, the order in which LLInt was
saving the registers was not in sync with the way baseline was
restoring them.

  • llint/LowLevelInterpreter.asm:
12:06 PM Changeset in webkit [256849] by Alan Coon
  • 62 edits in branches/safari-610.1.4-branch/Source

Cherry-pick r256791. rdar://problem/59554260

getVTablePointer() should return a const void*.
https://bugs.webkit.org/show_bug.cgi?id=207871
<rdar://problem/59525721>

Reviewed by Yusuke Suzuki.

Source/WebCore:

  • bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation):
  • bindings/scripts/test/JS/JSInterfaceName.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSMapLike.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSReadOnlyMapLike.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSReadOnlySetLike.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSSetLike.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestCEReactions.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestCallTracer.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestEnabledForContext.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestEventTarget.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestException.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestIterable.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestNode.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestObj.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestPluginInterface.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestSerialization.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestStringifier.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp: (WebCore::toJSNewlyCreated):
  • bindings/scripts/test/JS/JSTestTypedefs.cpp: (WebCore::toJSNewlyCreated):

Source/WTF:

  • wtf/PointerPreparations.h: (WTF::getVTablePointer):

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

12:06 PM Changeset in webkit [256848] by Alan Coon
  • 2 edits in branches/safari-610.1.4-branch/Source/WebKit

Cherry-pick r256740. rdar://problem/59527003

[iOS] Add telemetry with backtrace for specific rules
https://bugs.webkit.org/show_bug.cgi?id=207494

Reviewed by Brent Fulgham.

For specific sandbox mach lookup rules in the WebContent process, add telemetry with backtrace.

No new tests, no behavior change.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

12:01 PM Changeset in webkit [256847] by Chris Dumez
  • 3 edits in trunk/LayoutTests

[WK1] Flaky Test: http/tests/cookies/document-cookie-during-iframe-parsing.html
https://bugs.webkit.org/show_bug.cgi?id=207895
<rdar://problem/59558164>

Unreviewed, mark test as flaky on WK1 only as the WK2 bots appear to be fine.

12:01 PM Changeset in webkit [256846] by Ross Kirsling
  • 7 edits
    1 add in trunk

[JSC] Computed function properties compute their keys twice
https://bugs.webkit.org/show_bug.cgi?id=207297

Reviewed by Keith Miller.

JSTests:

  • stress/computed-property-key-side-effects.js: Added.
  • test262/expectations.yaml: Mark 6 test cases as passing.

Source/JavaScriptCore:

If a pseudo-String is used as the key of a computed function property,
any side effects from resolving the string value occur in duplicate.

The cause has two parts:

  • We aren't ensuring that the string value is resolved before doing SetFunctionName and PutByVal.
  • Our implementation of SetFunctionName (https://tc39.es/ecma262/#sec-setfunctionname) calls toString on a non-symbol argument, instead of assuming the type is a string.
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::shouldSetFunctionName): Added.
(JSC::BytecodeGenerator::emitSetFunctionName): Added.
(JSC::BytecodeGenerator::emitSetFunctionNameIfNeededImpl): Deleted.
(JSC::BytecodeGenerator::emitSetFunctionNameIfNeeded): Deleted.

  • bytecompiler/BytecodeGenerator.h:

Split the "if needed" logic out into its own function.

  • bytecompiler/NodesCodegen.cpp:

(JSC::PropertyListNode::emitBytecode):
(JSC::PropertyListNode::emitPutConstantProperty):
(JSC::DefineFieldNode::emitBytecode):
Never emit OpSetFunctionName for a name of unknown type.
(But also, don't perform a needless ToPropertyKey for non-function computed property keys.)

  • runtime/JSFunction.cpp:

(JSC::JSFunction::setFunctionName):
Don't call toString, assert isString.

11:55 AM Changeset in webkit [256845] by achristensen@apple.com
  • 11 edits in trunk/Source/WebKit

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

This is reverting r254081 which is effectively re-landing part of r254873 that was reverted
supposing that would be related to the fix for rdar://problem/59136037 but it was not.
Re-landing this is a step towards rdar://problem/56027111

Reverted changeset:

"Revert suppressesConnectionTerminationOnSystemChange part of
r254081"
https://bugs.webkit.org/show_bug.cgi?id=205751
https://trac.webkit.org/changeset/254873

11:42 AM Changeset in webkit [256844] by youenn@apple.com
  • 13 edits
    1 move in trunk/Source/WebCore

Remove PlatformMediaSessionClient dependency on Document
https://bugs.webkit.org/show_bug.cgi?id=207892

Reviewed by Eric Carlson.

Move DocumentIdentifier to Platform folder.
Use DocumentIdentifier instead of Document in PlatformMediaSession/Manager.
No change of behavior.

  • Headers.cmake:
  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::hostingDocumentIdentifier const):

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::hostingDocumentIdentifier const):
(WebCore::AudioContext::hostingDocument const): Deleted.

  • Modules/webaudio/AudioContext.h:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::stopAllMediaPlayback):
(WebCore::Document::suspendAllMediaPlayback):
(WebCore::Document::resumeAllMediaPlayback):
(WebCore::Document::suspendAllMediaBuffering):
(WebCore::Document::resumeAllMediaBuffering):

  • html/HTMLMediaElement.h:
  • platform/DocumentIdentifier.h: Renamed from Source/WebCore/dom/DocumentIdentifier.h.
  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::PlatformMediaSession):

  • platform/audio/PlatformMediaSession.h:
  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::stopAllMediaPlaybackForDocument):
(WebCore::PlatformMediaSessionManager::suspendAllMediaPlaybackForDocument):
(WebCore::PlatformMediaSessionManager::resumeAllMediaPlaybackForDocument):
(WebCore::PlatformMediaSessionManager::suspendAllMediaBufferingForDocument):
(WebCore::PlatformMediaSessionManager::resumeAllMediaBufferingForDocument):
(WebCore::PlatformMediaSessionManager::sessionsMatching const):
(WebCore::PlatformMediaSessionManager::forEachDocumentSession):

  • platform/audio/PlatformMediaSessionManager.h:
11:41 AM Changeset in webkit [256843] by Alan Coon
  • 8 edits in branches/safari-610.1.4-branch/Source

Versioning.

11:24 AM Changeset in webkit [256842] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Flaky Test: http/tests/cookies/document-cookie-during-iframe-parsing.html
https://bugs.webkit.org/show_bug.cgi?id=207895

Unreviewed, mark the test as flaky while I work with the CFNetwork team to resolve this.

10:58 AM Changeset in webkit [256841] by youenn@apple.com
  • 4 edits in trunk/LayoutTests

REGRESSION (256034): http/tests/media/media-stream/get-display-media-prompt.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207893
<rdar://problem/59551315>

Reviewed by Eric Carlson.

After 256034, we are allowing { audio: true } for getDisplayMedia.
Update the test accordingly, and make it easier to debug by resetting the number of getDisplayMedia prompt for each test
so that they are more indepedent.

  • http/tests/media/media-stream/get-display-media-prompt-expected.txt:
  • http/tests/media/media-stream/get-display-media-prompt.html:
  • platform/mac-wk2/TestExpectations:
10:39 AM Changeset in webkit [256840] by Alan Bujtas
  • 8 edits
    2 adds in trunk

[LFC][Quirk] Add additional escape reason to cover the case when body needs access to both the body and the ICB geometry
https://bugs.webkit.org/show_bug.cgi?id=207869
<rdar://problem/59531225>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/out-of-flow-html-and-body-stretches-to-viewport.html

When the body is stretched all the way to the ICB, we have to read both the document box's and the ICB's geometry.
This patch also refactors Quirks::stretchedInFlowHeight a bit to decouple the document and the body cases.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::geometryForBox const):

  • layout/FormattingContext.h:
  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):

  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

(WebCore::Layout::BlockFormattingContext::Quirks::needsStretching const):
(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):

LayoutTests:

  • fast/layoutformattingcontext/out-of-flow-html-and-body-stretches-to-viewport-expected.txt: Added.
  • fast/layoutformattingcontext/out-of-flow-html-and-body-stretches-to-viewport.html: Added.
  • platform/ios-wk2/TestExpectations:
10:27 AM Changeset in webkit [256839] by pvollan@apple.com
  • 11 edits
    3 adds in trunk

Move [UIDevice currentDevice] calls to UI process
https://bugs.webkit.org/show_bug.cgi?id=204320

Reviewed by Darin Adler.

Source/WebCore:

Calling [UIDevice currentDevice] will cause the runningboard daemon to be accessed. Since this service will be removed from
the WebContent sandbox, these calls should be moved to the UI process. The function exernalDeviceDisplayNameForPlayer in
MediaPlayerPrivateAVFoundationObjC.mm is calling [[PAL::getUIDeviceClass() currentDevice] localizedModel], which should be
moved to the UI process.

API test: WebKit.LocalizedDeviceName

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::exernalDeviceDisplayNameForPlayer):

  • platform/ios/LocalizedDeviceModel.h: Added.
  • platform/ios/LocalizedDeviceModel.mm: Added.

(WebCore::cachedLocalizedDeviceModel):
(WebCore::localizedDeviceModel):
(WebCore::setLocalizedDeviceModel):

Source/WebKit:

Get the localized device name in the UI process, and send it to the WebContent process as part of the
process creation parameters.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/LocalizedDeviceModel.mm: Added.

(TEST):

10:19 AM Changeset in webkit [256838] by youenn@apple.com
  • 15 edits
    1 copy in trunk/Source

Use more ObjectIdentifier in WebRTC MDNS register
https://bugs.webkit.org/show_bug.cgi?id=207548

Reviewed by Eric Carlson.

Source/WebCore:

Pass document identifiers instead of uint64_t to mdns register.
No change of behavior.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::registerMDNSName):

  • dom/Document.cpp:

(WebCore::Document::prepareForDestruction):
(WebCore::Document::suspend):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:

Source/WebKit:

Use ObjectIdentifier for MDNSRegister for more type and IPC safety.
Update MDNSRegister to also use DocumentIdentifier where more appropriate.

  • NetworkProcess/webrtc/NetworkMDNSRegister.cpp:

(WebKit::PendingRegistrationRequest::PendingRegistrationRequest):
(WebKit::NetworkMDNSRegister::registerMDNSName):
(): Deleted.

  • NetworkProcess/webrtc/NetworkMDNSRegister.h:
  • NetworkProcess/webrtc/NetworkMDNSRegister.messages.in:
  • Scripts/webkit/messages.py:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::unregisterMDNSNames):
(WebKit::LibWebRTCProvider::registerMDNSName):

  • WebProcess/Network/webrtc/LibWebRTCProvider.h:
  • WebProcess/Network/webrtc/WebMDNSRegister.cpp:

(WebKit::WebMDNSRegister::finishedRegisteringMDNSName):
(WebKit::WebMDNSRegister::unregisterMDNSNames):
(WebKit::WebMDNSRegister::registerMDNSName):

  • WebProcess/Network/webrtc/WebMDNSRegister.h:

(): Deleted.

  • WebProcess/Network/webrtc/WebMDNSRegister.messages.in:
10:09 AM Changeset in webkit [256837] by Kate Cheney
  • 6 edits
    2 adds in trunk

Web socket loads should be captured for logging per-page prevalent domains
https://bugs.webkit.org/show_bug.cgi?id=207840
<rdar://problem/59511746>

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/websocket/web-socket-loads-captured-in-per-page-domains.html

Captures a domain connection via WebSocket to check if it should be
logged as a prevalent resource.

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

LayoutTests:

Resource load statistics is only supported on mac and iOS, we should
skip this on other platforms.

  • http/tests/websocket/web-socket-loads-captured-in-per-page-domains-expected.txt: Added.
  • http/tests/websocket/web-socket-loads-captured-in-per-page-domains.html: Added.
  • platform/gtk/TestExpectations:
  • platform/win/TestExpectations:
9:46 AM Changeset in webkit [256836] by dino@apple.com
  • 116 edits in trunk/LayoutTests

[WebGL] Update WebGL2 results with ANGLE backend
https://bugs.webkit.org/show_bug.cgi?id=207872

Reviewed by Myles Maxfield.

Now that ANGLE is on by default, update a bunch of expected results.
Note that any possible regressions are tracked in:
https://bugs.webkit.org/show_bug.cgi?id=207858

  • webgl/2.0.0/conformance/context/context-lost-restored-expected.txt:
  • webgl/2.0.0/conformance/extensions/ext-sRGB-expected.txt:
  • webgl/2.0.0/conformance/extensions/oes-texture-float-expected.txt:
  • webgl/2.0.0/conformance/extensions/oes-texture-half-float-expected.txt:
  • webgl/2.0.0/conformance/extensions/oes-vertex-array-object-expected.txt:
  • webgl/2.0.0/conformance/extensions/webgl-depth-texture-expected.txt:
  • webgl/2.0.0/conformance/extensions/webgl-draw-buffers-expected.txt:
  • webgl/2.0.0/conformance/extensions/webgl-draw-buffers-framebuffer-unsupported-expected.txt:
  • webgl/2.0.0/conformance/glsl/misc/shader-struct-scope-expected.txt:
  • webgl/2.0.0/conformance/glsl/misc/shaders-with-invariance-expected.txt:
  • webgl/2.0.0/conformance/glsl/misc/shaders-with-name-conflicts-expected.txt:
  • webgl/2.0.0/conformance/limits/gl-line-width-expected.txt:
  • webgl/2.0.0/conformance/misc/object-deletion-behaviour-expected.txt:
  • webgl/2.0.0/conformance/misc/webgl-specific-expected.txt:
  • webgl/2.0.0/conformance/ogles/GL/biuDepthRange/biuDepthRange_001_to_002-expected.txt:
  • webgl/2.0.0/conformance/ogles/GL/gl_FragCoord/gl_FragCoord_001_to_003-expected.txt:
  • webgl/2.0.0/conformance/programs/program-test-expected.txt:
  • webgl/2.0.0/conformance/reading/read-pixels-test-expected.txt:
  • webgl/2.0.0/conformance/renderbuffers/feedback-loop-expected.txt:
  • webgl/2.0.0/conformance/rendering/point-no-attributes-expected.txt:
  • webgl/2.0.0/conformance/state/gl-object-get-calls-expected.txt:
  • webgl/2.0.0/conformance/textures/misc/cube-incomplete-fbo-expected.txt:
  • webgl/2.0.0/conformance/textures/misc/texture-copying-feedback-loops-expected.txt:
  • webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer-expected.txt:
  • webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer-offsets-expected.txt:
  • webgl/2.0.0/conformance2/buffers/bound-buffer-size-change-test-expected.txt:
  • webgl/2.0.0/conformance2/buffers/buffer-copying-contents-expected.txt:
  • webgl/2.0.0/conformance2/buffers/buffer-data-and-buffer-sub-data-sub-source-expected.txt:
  • webgl/2.0.0/conformance2/buffers/buffer-type-restrictions-expected.txt:
  • webgl/2.0.0/conformance2/buffers/get-buffer-sub-data-expected.txt:
  • webgl/2.0.0/conformance2/buffers/one-large-uniform-buffer-expected.txt:
  • webgl/2.0.0/conformance2/context/context-attributes-depth-stencil-antialias-obeyed-expected.txt:
  • webgl/2.0.0/conformance2/extensions/ext-color-buffer-float-expected.txt:
  • webgl/2.0.0/conformance2/extensions/promoted-extensions-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/shader-linking-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/shader-with-invalid-characters-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt:
  • webgl/2.0.0/conformance2/glsl3/valid-invariant-expected.txt:
  • webgl/2.0.0/conformance2/misc/expando-loss-2-expected.txt:
  • webgl/2.0.0/conformance2/misc/instanceof-test-expected.txt:
  • webgl/2.0.0/conformance2/misc/object-deletion-behaviour-2-expected.txt:
  • webgl/2.0.0/conformance2/query/query-expected.txt:
  • webgl/2.0.0/conformance2/reading/read-pixels-from-fbo-test-expected.txt:
  • webgl/2.0.0/conformance2/reading/read-pixels-pack-parameters-expected.txt:
  • webgl/2.0.0/conformance2/renderbuffers/invalidate-framebuffer-expected.txt:
  • webgl/2.0.0/conformance2/renderbuffers/multisample-with-full-sample-counts-expected.txt:
  • webgl/2.0.0/conformance2/renderbuffers/multisampled-renderbuffer-initialization-expected.txt:
  • webgl/2.0.0/conformance2/rendering/attrib-type-match-expected.txt:
  • webgl/2.0.0/conformance2/rendering/blitframebuffer-stencil-only-expected.txt:
  • webgl/2.0.0/conformance2/rendering/blitframebuffer-test-expected.txt:
  • webgl/2.0.0/conformance2/rendering/canvas-resizing-with-pbo-bound-expected.txt:
  • webgl/2.0.0/conformance2/rendering/clear-func-buffer-type-match-expected.txt:
  • webgl/2.0.0/conformance2/rendering/clear-srgb-color-buffer-expected.txt:
  • webgl/2.0.0/conformance2/rendering/clipping-wide-points-expected.txt:
  • webgl/2.0.0/conformance2/rendering/framebuffer-unsupported-expected.txt:
  • webgl/2.0.0/conformance2/rendering/fs-color-type-mismatch-color-buffer-type-expected.txt:
  • webgl/2.0.0/conformance2/rendering/instanced-arrays-expected.txt:
  • webgl/2.0.0/conformance2/rendering/instanced-rendering-bug-expected.txt:
  • webgl/2.0.0/conformance2/rendering/rendering-sampling-feedback-loop-expected.txt:
  • webgl/2.0.0/conformance2/rendering/rgb-format-support-expected.txt:
  • webgl/2.0.0/conformance2/state/gl-get-calls-expected.txt:
  • webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba16f-rgba-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba32f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_image/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba16f-rgba-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba32f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r8-red-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_video/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/active-3d-texture-bug-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/copy-texture-image-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-3d-size-limit-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-image-with-bad-args-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-mipmap-levels-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-new-formats-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-storage-2d-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/texture-npot-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/video/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/webgl_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/vertex_arrays/vertex-array-object-expected.txt:
  • webgl/TestExpectations:
9:32 AM Changeset in webkit [256835] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r256784?) [ iOS wk2 ] fast/canvas/webgl/oes-vertex-array-object.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=207896

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:24 AM Changeset in webkit [256834] by Simon Fraser
  • 37 edits
    1 move in trunk

Move from "layer flush" terminology to "rendering update"
https://bugs.webkit.org/show_bug.cgi?id=207870

Reviewed by Tim Horton.
Source/WebCore:

Rename various functions and member variables to move away from the legacy "layer flush"
terminology and instead use "rendering update", matching Page::updateRendering(). The fact
that we have layers is an implementation detail.

Change LayerFlushThrottlingState to be an OptionSet<>.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::scheduleStyleRecalc):
(WebCore::Document::shouldScheduleLayout):

  • loader/EmptyClients.h:
  • page/ChromeClient.h:

(WebCore::ChromeClient::renderingUpdateThrottlingIsActive const):
(WebCore::ChromeClient::adjustRenderUpdateThrottling):
(WebCore::ChromeClient::layerFlushThrottlingIsActive const): Deleted.
(WebCore::ChromeClient::adjustLayerFlushThrottling): Deleted.

  • page/FrameView.cpp:

(WebCore::determineLayerFlushThrottleState):
(WebCore::FrameView::disableLayerFlushThrottlingTemporarilyForInteraction):
(WebCore::FrameView::updateLayerFlushThrottling):

  • page/RenderingUpdateScheduler.cpp:

(WebCore::RenderingUpdateScheduler::scheduleImmediateRenderingUpdate):

  • page/RenderingUpdateThrottleState.h: Renamed from Source/WebCore/page/LayerFlushThrottleState.h.

Source/WebKit:

Rename various functions and member variables to move away from the legacy "layer flush"
terminology and instead use "rendering update", matching Page::updateRendering(). The fact
that we have layers is an implementation detail.

Change LayerFlushThrottlingState to be an OptionSet<>.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::scheduleRenderingUpdate):
(WebKit::WebChromeClient::adjustRenderUpdateThrottling):
(WebKit::WebChromeClient::renderingUpdateThrottlingIsActive const):
(WebKit::WebChromeClient::scheduleCompositingLayerFlush): Deleted.
(WebKit::WebChromeClient::adjustLayerFlushThrottling): Deleted.
(WebKit::WebChromeClient::layerFlushThrottlingIsActive const): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::renderingUpdateThrottlingIsActive const):
(WebKit::DrawingArea::adjustRenderUpdateThrottling):
(WebKit::DrawingArea::layerFlushThrottlingIsActive const): Deleted.
(WebKit::DrawingArea::adjustLayerFlushThrottling): Deleted.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.h:

(WebKit::RemoteLayerTreeContext::setNextFlushIsForImmediatePaint):
(WebKit::RemoteLayerTreeContext::nextFlushIsForImmediatePaint const):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:

(WebKit::RemoteLayerTreeDisplayRefreshMonitor::requestRefreshCallback):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::RemoteLayerTreeDrawingArea):
(WebKit::RemoteLayerTreeDrawingArea::setRootCompositingLayer):
(WebKit::RemoteLayerTreeDrawingArea::updateGeometry):
(WebKit::RemoteLayerTreeDrawingArea::setLayerTreeStateIsFrozen):
(WebKit::RemoteLayerTreeDrawingArea::forceRepaint):
(WebKit::RemoteLayerTreeDrawingArea::setExposedContentRect):
(WebKit::RemoteLayerTreeDrawingArea::scheduleImmediateRenderingUpdate):
(WebKit::RemoteLayerTreeDrawingArea::scheduleInitialDeferredPaint):
(WebKit::RemoteLayerTreeDrawingArea::scheduleRenderingUpdate):
(WebKit::RemoteLayerTreeDrawingArea::adjustRenderUpdateThrottling):
(WebKit::RemoteLayerTreeDrawingArea::updateRendering):
(WebKit::RemoteLayerTreeDrawingArea::didUpdate):
(WebKit::RemoteLayerTreeDrawingArea::activityStateDidChange):
(WebKit::RemoteLayerTreeDrawingArea::addTransactionCallbackID):
(WebKit::RemoteLayerTreeDrawingArea::scheduleCompositingLayerFlushImmediately): Deleted.
(WebKit::RemoteLayerTreeDrawingArea::scheduleCompositingLayerFlush): Deleted.
(WebKit::RemoteLayerTreeDrawingArea::adjustLayerFlushThrottling): Deleted.
(WebKit::RemoteLayerTreeDrawingArea::flushLayers): Deleted.

  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:

(WebKit::RemoteScrollingCoordinator::scheduleTreeStateCommit):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::scheduleFullEditorStateUpdate):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::dynamicViewportSizeUpdate):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::~TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::forceRepaint):
(WebKit::TiledCoreAnimationDrawingArea::setLayerTreeStateIsFrozen):
(WebKit::TiledCoreAnimationDrawingArea::scheduleRenderingUpdate):
(WebKit::TiledCoreAnimationDrawingArea::scheduleImmediateRenderingUpdate):
(WebKit::TiledCoreAnimationDrawingArea::attachViewOverlayGraphicsLayer):
(WebKit::TiledCoreAnimationDrawingArea::setShouldScaleViewToFitDocument):
(WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):
(WebKit::TiledCoreAnimationDrawingArea::addTransactionCallbackID):
(WebKit::TiledCoreAnimationDrawingArea::updateRendering):
(WebKit::TiledCoreAnimationDrawingArea::suspendPainting):
(WebKit::TiledCoreAnimationDrawingArea::updateGeometry):
(WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage):
(WebKit::TiledCoreAnimationDrawingArea::updateRenderingRunLoopCallback):
(WebKit::TiledCoreAnimationDrawingArea::invalidateRenderingUpdateRunLoopObserver):
(WebKit::TiledCoreAnimationDrawingArea::scheduleRenderingUpdateRunLoopObserver):
(WebKit::TiledCoreAnimationDrawingArea::adjustRenderUpdateThrottling):
(WebKit::TiledCoreAnimationDrawingArea::renderingUpdateThrottlingIsActive const):
(WebKit::TiledCoreAnimationDrawingArea::startRenderThrottlingTimer):
(WebKit::TiledCoreAnimationDrawingArea::renderThrottlingTimerFired):
(WebKit::TiledCoreAnimationDrawingArea::scheduleCompositingLayerFlush): Deleted.
(WebKit::TiledCoreAnimationDrawingArea::scheduleCompositingLayerFlushImmediately): Deleted.
(WebKit::TiledCoreAnimationDrawingArea::flushLayers): Deleted.
(WebKit::TiledCoreAnimationDrawingArea::layerFlushRunLoopCallback): Deleted.
(WebKit::TiledCoreAnimationDrawingArea::invalidateLayerFlushRunLoopObserver): Deleted.
(WebKit::TiledCoreAnimationDrawingArea::scheduleLayerFlushRunLoopObserver): Deleted.
(WebKit::TiledCoreAnimationDrawingArea::adjustLayerFlushThrottling): Deleted.
(WebKit::TiledCoreAnimationDrawingArea::layerFlushThrottlingIsActive const): Deleted.
(WebKit::TiledCoreAnimationDrawingArea::startLayerFlushThrottlingTimer): Deleted.
(WebKit::TiledCoreAnimationDrawingArea::layerFlushThrottlingTimerFired): Deleted.

Source/WebKitLegacy/mac:

Rename various functions and member variables to move away from the legacy "layer flush"
terminology and instead use "rendering update", matching Page::updateRendering(). The fact
that we have layers is an implementation detail.

Change LayerFlushThrottlingState to be an OptionSet<>.

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::scheduleRenderingUpdate):
(WebChromeClient::scheduleCompositingLayerFlush): Deleted.

  • WebView/WebView.mm:

(-[WebView _scheduleUpdateRendering]):
(-[WebView _scheduleCompositingLayerFlush]): Deleted.

  • WebView/WebViewData.h:
  • WebView/WebViewInternal.h:

Source/WTF:

  • wtf/SystemTracing.h:

Tools:

Rename various functions and member variables to move away from the legacy "layer flush"
terminology and instead use "rendering update", matching Page::updateRendering(). The fact
that we have layers is an implementation detail.

Change LayerFlushThrottlingState to be an OptionSet<>.

  • Tracing/SystemTracePoints.plist:
9:11 AM Changeset in webkit [256833] by dbates@webkit.org
  • 10 edits in trunk/Source/WebKit

Rename dispatchDidReceiveEditorStateAfterFocus() to dispatchDidUpdateEditorState() to better describe its purpose
https://bugs.webkit.org/show_bug.cgi?id=207865

Reviewed by Wenson Hsieh.

Although the iOS implementation bails out unless it was called after WebPageProxy::elementDidFocus()
this platform-independent function is actually invoked whenever the UI process receives either
an editor state update or a layer tree commit. Renaming this function to better describe its multi-
function purpose, which is to allow the UI process a chance to run post-editor update logic.

  • UIProcess/PageClient.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):

  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::didUpdateEditorState):
(WebKit::PageClientImpl::didReceiveEditorStateUpdateAfterFocus): Deleted.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _didUpdateEditorState]):
(-[WKContentView _didReceiveEditorStateUpdateAfterFocus]): Deleted.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::dispatchDidUpdateEditorState):
(WebKit::WebPageProxy::dispatchDidReceiveEditorStateAfterFocus): Deleted.

9:06 AM Changeset in webkit [256832] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] http/wpt/beacon/beacon-quota.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207894

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:00 AM Changeset in webkit [256831] by Chris Dumez
  • 3 edits
    2 adds in trunk

ASSERT_NOT_REACHED() under WebPageProxy::suspendCurrentPageIfPossible()
https://bugs.webkit.org/show_bug.cgi?id=207868
<rdar://problem/59464606>

Reviewed by John Wilander.

Source/WebCore:

Test: http/tests/navigation/process-swap-on-client-side-redirect-private.html

  • loader/HistoryController.cpp:

(WebCore::HistoryController::updateForSameDocumentNavigation):
Methods in HistoryController avoids updating visited links and calling updateGlobalHistory()
on the FrameLoaderClient when in an ephemeral session. However, updateForSameDocumentNavigation()
was returning early in ephemeral sessions, which was overly aggressive and bypasses things we
really need to do, like updating the current HistoryItem's url.

LayoutTests:

Add layout test that was hitting the assertion before my change.

  • http/tests/navigation/process-swap-on-client-side-redirect-private-expected.txt: Added.
  • http/tests/navigation/process-swap-on-client-side-redirect-private.html: Added.
8:38 AM Changeset in webkit [256830] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r254092?) [ Mac wk1 ] imported/w3c/web-platform-tests/css/css-position/fixed-z-index-blend.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207891

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
8:02 AM Changeset in webkit [256829] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC][IFC] Add missing float check in inline line layout
https://bugs.webkit.org/show_bug.cgi?id=207878
<rdar://problem/59537467>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/float-in-inline-context-simple.html

Make sure float content gets laid out as well.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::isAtSoftWrapOpportunity):
(WebCore::Layout::nextWrapOpportunity):

LayoutTests:

  • fast/layoutformattingcontext/float-in-inline-context-simple-expected.html: Added.
  • fast/layoutformattingcontext/float-in-inline-context-simple.html: Added.
7:55 AM Changeset in webkit [256828] by Jacob Uphoff
  • 3 edits in trunk/Source/WebCore

Unreviewed, rolling out r256804.

This broke 50+ media tests on mac debug

Reverted changeset:

"MediaSource.isTypeSupported() says
"video/mp4;codecs=\"avc3.42C015\"" is not supported, but it
is"
https://bugs.webkit.org/show_bug.cgi?id=207622
https://trac.webkit.org/changeset/256804

6:57 AM Changeset in webkit [256827] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][TreeBuilding] Take createLineBreakBox's return value
https://bugs.webkit.org/show_bug.cgi?id=207879
<rdar://problem/59537585>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/br-in-inline-content-simple.html

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createLayoutBox):

LayoutTests:

  • fast/layoutformattingcontext/br-in-inline-content-simple-expected.html: Added.
  • fast/layoutformattingcontext/br-in-inline-content-simple.html: Added.
6:47 AM Changeset in webkit [256826] by Oriol Brufau
  • 3 edits in trunk/Source/WebCore

[css-grid] Improve performance of track sizing algorithm for spanning items
https://bugs.webkit.org/show_bug.cgi?id=207852

Reviewed by Javier Fernandez.

Calculating the used sizing function for a track is not a very expensive
operation, but it's not trivial either, and the track sizing algorithm
needs to access sizing functions all over the place. This ends up having
a performance cost, especially for spanning items.

Intrinsic contributions from items that span a single track are handled
in a simpler way than when the span is greater than 1. In the former
case, SizeTrackToFitNonSpanningItem only calculates the track sizing
function of each track once per each item in that track. But in the
latter case we not only calculate the track sizing function of multiple
tracks per item, we also repeat this 5 times in order to handle the
various TrackSizeComputationPhase.

Therefore, to increase performance, this patch caches the used track
sizing functions in the tracks themselves.

This is a port of these Chromium patches:

Chromium has a auto-grid-lots-of-spanning-data perf test. In WebKit, its
performance improves by 40% with this patch.

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrack::setCachedTrackSize):
(WebCore::GridTrackSizingAlgorithm::sizeTrackToFitNonSpanningItem):
(WebCore::GridTrackSizingAlgorithm::spanningItemCrossesFlexibleSizedTracks const):
(WebCore::GridTrackSizingAlgorithm::increaseSizesToAccommodateSpanningItems):
(WebCore::GridTrackSizingAlgorithm::estimatedGridAreaBreadthForChild const):
(WebCore::GridTrackSizingAlgorithm::isIntrinsicSizedGridArea const):
(WebCore::GridTrackSizingAlgorithm::calculateGridTrackSize const):
(WebCore::GridTrackSizingAlgorithm::computeFlexFactorUnitSize const):
(WebCore::GridTrackSizingAlgorithm::computeFlexSizedTracksGrowth const):
(WebCore::GridTrackSizingAlgorithm::findFrUnitSize const):
(WebCore::GridTrackSizingAlgorithmStrategy::minSizeForChild const):
(WebCore::normalizedFlexFraction):
(WebCore::IndefiniteSizeStrategy::findUsedFlexFraction const):
(WebCore::GridTrackSizingAlgorithm::initializeTrackSizes):
(WebCore::GridTrackSizingAlgorithm::tracksAreWiderThanMinTrackBreadth const):

  • rendering/GridTrackSizingAlgorithm.h:

(WebCore::GridTrack::cachedTrackSize const):

6:15 AM Changeset in webkit [256825] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[ARM] Build failure on arm due to invalid use of incomplete type 'class WebCore::ImageData' in FEBlendNEON.h
https://bugs.webkit.org/show_bug.cgi?id=207885

Patch by Chris Lord <Chris Lord> on 2020-02-18
Reviewed by Carlos Alberto Lopez Perez.

No new tests, no functional change.

  • platform/graphics/cpu/arm/filters/FEBlendNEON.h:
3:13 AM Changeset in webkit [256824] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[WPE] Add support for rendering progress bars
https://bugs.webkit.org/show_bug.cgi?id=207688

Reviewed by Adrian Perez de Castro.

  • platform/wpe/RenderThemeWPE.cpp:

(WebCore::RenderThemeWPE::animationRepeatIntervalForProgressBar const):
(WebCore::RenderThemeWPE::animationDurationForProgressBar const):
(WebCore::RenderThemeWPE::progressBarRectForBounds const):
(WebCore::RenderThemeWPE::paintProgressBar):

  • platform/wpe/RenderThemeWPE.h:
2:48 AM Changeset in webkit [256823] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

[WPE] Add support for rendering spin buttons
https://bugs.webkit.org/show_bug.cgi?id=207686

Reviewed by Adrian Perez de Castro.

  • platform/wpe/RenderThemeWPE.cpp:

(WebCore::RenderThemeWPE::popupInternalPaddingBox const): Rename arrowSize as menuListButtonArrowSize.
(WebCore::RenderThemeWPE::paintMenuList): Use ThemeWPE::paintArrow().

  • platform/wpe/ThemeWPE.cpp:

(WebCore::ThemeWPE::paintArrow): Moved from RenderThemeWPE and added direction parameter.
(WebCore::ThemeWPE::controlSize const): Set size of spin buttons.
(WebCore::ThemeWPE::paint): Call paintSpinButton() for spin buttons.
(WebCore::ThemeWPE::paintSpinButton): Paint the buttons.

  • platform/wpe/ThemeWPE.h:
1:31 AM Changeset in webkit [256822] by commit-queue@webkit.org
  • 29 edits in trunk/Source/WebCore

Make ImageBuffer::getImageData() and putImageData() return and take ImageData
https://bugs.webkit.org/show_bug.cgi?id=206621

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-02-18
Reviewed by Tim Horton.

-- Combine ImageBuffer::getUnmultipliedImageData() and getPremultipliedImageData()

in one function and name it getImageData();

-- Make getImageData() returns a RefPtr<ImageData> since the canvas code

used to encapsulate the returned the returned Uint8ClampedArray into
an ImageData and send it to JavaScriptCore.

-- Rename ImageBuffer::putByteArray() to ImageBuffer::putImageData() and

make it take an ImageData since the byte array has to be associated
with an IntSize and separating them does not look a good design.

-- Remove the enum ImageBuffer::CoordinateSystem. All the callers need to

pass rectangles and sizes in logical coordinates. The ImageData has to
be scaled according to the ImgeBuffer::resolutionScale().

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::dumpImageBitmap):
(WebCore::CloneDeserializer::readImageBitmap):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::getImageData const):
(WebCore::CanvasRenderingContext2DBase::putImageData):

  • html/canvas/CanvasRenderingContext2DBase.h:
  • page/PageConsoleClient.cpp:

(WebCore::PageConsoleClient::screenshot):

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::convertToLuminanceMask):
(WebCore::ImageBuffer::transformColorSpace): Deleted.
Move this function to ImageBufferCairo.cpp.

(WebCore::ImageBuffer::genericConvertToLuminanceMask): Deleted.
convertToLuminanceMask() and genericConvertToLuminanceMask() are not
overridden by any platform. So delete genericConvertToLuminanceMask() and
move its body to convertToLuminanceMask().

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):
(WebCore::ImageBuffer::drawConsuming):
(WebCore::ImageBuffer::putImageData):
Make the private functions be public and remove the friend classes.

  • platform/graphics/ShadowBlur.cpp:

(WebCore::ShadowBlur::blurShadowBuffer):

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::transformColorSpace):
(WebCore::getData):
(WebCore::ImageBuffer::getImageData const):
(WebCore::ImageBuffer::putImageData):
(WebCore::getImageData): Deleted.
(WebCore::logicalUnit): Deleted.
(WebCore::backingStoreUnit): Deleted.
(WebCore::ImageBuffer::getUnmultipliedImageData const): Deleted.
(WebCore::ImageBuffer::getPremultipliedImageData const): Deleted.
(WebCore::ImageBuffer::putByteArray): Deleted.

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::getImageData const):
(WebCore::ImageBuffer::putImageData):
(WebCore::ImageBuffer::toCFData const):
(WebCore::ImageBuffer::getUnmultipliedImageData const): Deleted.
(WebCore::ImageBuffer::getPremultipliedImageData const): Deleted.
(WebCore::ImageBuffer::putByteArray): Deleted.

  • platform/graphics/cg/ImageBufferDataCG.cpp:

(WebCore::ImageBufferData::getData const):
(WebCore::ImageBufferData::putData):

  • platform/graphics/cg/ImageBufferDataCG.h:

All the rectangles and sizes have to be passed in logical coordinates. To
deal with the pixels' data we need to scale them by the resolutionScale().

  • platform/graphics/cpu/arm/filters/FEBlendNEON.h:

(WebCore::FEBlend::platformApplySoftware):

  • platform/graphics/filters/FEColorMatrix.cpp:

(WebCore::FEColorMatrix::platformApplySoftware):

  • platform/graphics/filters/FEComponentTransfer.cpp:

(WebCore::FEComponentTransfer::platformApplySoftware):

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::platformApplySoftware):

  • platform/graphics/filters/FEConvolveMatrix.cpp:

(WebCore::FEConvolveMatrix::platformApplySoftware):

  • platform/graphics/filters/FEDisplacementMap.cpp:

(WebCore::FEDisplacementMap::platformApplySoftware):

  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::platformApplySoftware):
This was the only place which was passing a rectangle in a the back-end
coordinates along with BackingStoreCoordinateSystem. Instead we can pass
the rectangle in logical coordinates and then use ImageData::size() since
it must be scaled with resolutionScale() when the ImageData is created.

  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::FEGaussianBlur::platformApplySoftware):

  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::platformApplySoftware):

  • platform/graphics/filters/FEMorphology.cpp:

(WebCore::FEMorphology::platformApplySoftware):

  • platform/graphics/filters/FETurbulence.cpp:

(WebCore::FETurbulence::platformApplySoftware):

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::forceValidPreMultipliedPixels):
(WebCore::FilterEffect::imageBufferResult):
(WebCore::FilterEffect::copyUnmultipliedResult):
(WebCore::FilterEffect::copyPremultipliedResult):
(WebCore::FilterEffect::createImageBufferResult):
(WebCore::FilterEffect::createUnmultipliedImageResult):
(WebCore::FilterEffect::createPremultipliedImageResult):

  • platform/graphics/filters/FilterEffect.h:
  • platform/graphics/win/ImageBufferDataDirect2D.cpp:

(WebCore::ImageBufferData::getData const):
(WebCore::ImageBufferData::putData):

  • platform/graphics/win/ImageBufferDataDirect2D.h:
  • platform/graphics/win/ImageBufferDirect2D.cpp:

(WebCore::ImageBuffer::getImageData const):
(WebCore::ImageBuffer::putImageData):
(WebCore::ImageBuffer::getUnmultipliedImageData const): Deleted.
(WebCore::ImageBuffer::getPremultipliedImageData const): Deleted.
(WebCore::ImageBuffer::putByteArray): Deleted.

  • rendering/shapes/Shape.cpp:

(WebCore::Shape::createRasterShape):

Feb 17, 2020:

11:38 PM Changeset in webkit [256821] by Wenson Hsieh
  • 5 edits
    2 adds in trunk

Selection cannot be modified via text interaction in some areas of the compose body field in Gmail
https://bugs.webkit.org/show_bug.cgi?id=207854
<rdar://problem/59218824>

Reviewed by Tim Horton.

Source/WebCore:

Currently, several codepaths that are consulted when performing text interaction gestures on iOS to make and
modify text selections (e.g. double taps and long presses) rely on Frame::visiblePositionForPoint to map the
touch location to a visible editing position on the page. visiblePositionForPoint uses the hit-testing option
AllowChildFrameContent, which allows it to find and select text within subframes. However, this option also
includes content in hidden ("visibility: hidden;") frames. This means that text selection gestures on iOS are
unable to find otherwise selectable text, if a hidden child frame overlaps the text.

To fix this, we instead use the AllowVisibleChildFrameContentOnly hit-testing option, which will ignore such
hidden subframes.

Test: editing/selection/ios/select-text-under-hidden-subframe.html

  • page/Frame.cpp:

(WebCore::Frame::visiblePositionForPoint const):

Source/WebKit:

Adjusts more call sites in WebKit to ignore child frames that are hidden when hit-testing. See WebCore/ChangeLog
for more details.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::rectForElementAtInteractionLocation const):
(WebKit::WebPage::handleStylusSingleTapAtPoint):
(WebKit::rangeForPointInRootViewCoordinates):
(WebKit::WebPage::setFocusedFrameBeforeSelectingTextAtLocation):
(WebKit::selectionPositionInformation):
(WebKit::textInteractionPositionInformation):
(WebKit::WebPage::positionInformation):

LayoutTests:

Add a new layout test to verify that the hit-testing codepaths exercised by text interaction gestures on iOS
successfully ignore a hidden child frame that covers the page.

  • editing/selection/ios/select-text-under-hidden-subframe-expected.txt: Added.
  • editing/selection/ios/select-text-under-hidden-subframe.html: Added.
10:32 PM Changeset in webkit [256820] by Chris Dumez
  • 38 edits
    2 copies
    8 adds in trunk

[WK2][Cocoa] Implement in-WebProcess cookie cache to avoid sync IPC for document.cookie in most cases
https://bugs.webkit.org/show_bug.cgi?id=207593
<rdar://problem/56027027>

Reviewed by Antti Koivisto.

Source/WebCore:

Implement in-WebProcess DOM cookie cache for serving document.cookie requests from JavaScript.

The first time document.cookie is called for a given host, the WebProcess will pull in all the
non-HTTPOnly cookies for that host from the NetworkProcess (still via sync IPC) and store them
in an in-memory cookie store. Later document.cookie calls for this host from this WebProcess
will then leverage the in-memory cookie store and avoid doing a sync IPC to the NetworkProcess
entirely.

To maintain the in-process cookie store up-to-date, the WebProcess subscribe for cookie-change
notifications from the NetworkProcess, only for the hosts it is interested in.

If the page's JavaScript sets a cookie by setting document.cookie, we will not invalidate the
cache for performance reasons. Instead, we set the cookie in our in-memory cookie before
sending the new cookie to the NetworkProcess.

For compatibility reasons, any sync IPC to a given host will currently invalidate the cookie
cache for this host. This is because this synchronous load may cause cookies to get set
synchronously and the page could access document.cookie right after the sync XHR. This behavior
is covered by the following existing test:

  • http/tests/cookies/sync-xhr-set-cookie-invalidates-cache.html

Another limitation of the current implementation of the cookie cache is that it is currently
only leveraged for first party content. This is suboptimal and could be improved in a later
iteration. However, the default behavior in Safari is that third-party iframes do not have
cookie access unless they request it using the storage access API. We also currently have
a limit of 5 hosts with cached cookies per WebProcess.

Tests: http/tests/cookies/document-cookie-after-showModalDialog.html

http/tests/cookies/document-cookie-during-iframe-parsing.html

  • dom/Document.cpp:

(WebCore::Document::didLoadResourceSynchronously):

  • dom/Document.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::didLoadResourceSynchronously):

  • dom/ScriptExecutionContext.h:
  • loader/CookieJar.h:
  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoader::loadResourceSynchronously):

  • page/MemoryRelease.cpp:

(WebCore::releaseCriticalMemory):

  • page/Settings.yaml:
  • platform/network/NetworkStorageSession.h:

(WebCore::CookieChangeObserver::~CookieChangeObserver):

  • platform/network/cf/NetworkStorageSessionCFNet.cpp:

(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::cookieStorage const):

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::~NetworkStorageSession):
(WebCore::NetworkStorageSession::setCookie):
(WebCore::NetworkStorageSession::setCookies):
(WebCore::NetworkStorageSession::deleteCookie):
(WebCore::nsCookiesToCookieVector):
(WebCore::NetworkStorageSession::nsCookieStorage const):
(WebCore::createPrivateStorageSession):
(WebCore::NetworkStorageSession::httpCookies const):
(WebCore::NetworkStorageSession::deleteHTTPCookie const):
(WebCore::NetworkStorageSession::setHTTPCookiesForURL const):
(WebCore::NetworkStorageSession::httpCookiesForURL const):
(WebCore::filterCookies):
(WebCore::NetworkStorageSession::cookiesForURL const):
(WebCore::NetworkStorageSession::cookiesForSession const):
(WebCore::NetworkStorageSession::cookiesForDOM const):
(WebCore::NetworkStorageSession::cookieRequestHeaderFieldValue const):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::NetworkStorageSession::deleteCookiesForHostnames):
(WebCore::NetworkStorageSession::registerCookieChangeListenersIfNecessary):
(WebCore::NetworkStorageSession::unregisterCookieChangeListenersIfNecessary):
(WebCore::NetworkStorageSession::startListeningForCookieChangeNotifications):
(WebCore::NetworkStorageSession::stopListeningForCookieChangeNotifications):
(WebCore::NetworkStorageSession::domCookiesForHost):
(WebCore::NetworkStorageSession::supportsCookieChangeListenerAPI const):

Source/WebCore/PAL:

Add new CFNetwork SPI to CFNetworkSPI.h for open source builds and for using respondsToSelector.

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

See WebCore ChangeLog.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::~NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::domCookiesForHost):
(WebKit::NetworkConnectionToWebProcess::unsubscribeFromCookieChangeNotifications):
(WebKit::NetworkConnectionToWebProcess::cookiesAdded):
(WebKit::NetworkConnectionToWebProcess::cookiesDeleted):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • Scripts/webkit/messages.py:
  • Shared/WebPreferences.yaml:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::cookiesAdded):
(WebKit::NetworkProcessConnection::cookiesDeleted):

  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Network/NetworkProcessConnection.messages.in:
  • WebProcess/WebPage/Cocoa/WebCookieCacheCocoa.mm: Copied from Source/WebKit/WebProcess/WebPage/WebCookieJar.h.

(WebKit::WebCookieCache::inMemoryStorageSession):

  • WebProcess/WebPage/WebCookieCache.cpp: Added.

(WebKit::WebCookieCache::isFunctional):
(WebKit::WebCookieCache::cookiesForDOM):
(WebKit::WebCookieCache::setCookiesFromDOM):
(WebKit::WebCookieCache::cookiesAdded):
(WebKit::WebCookieCache::cookiesDeleted):
(WebKit::WebCookieCache::clear):
(WebKit::WebCookieCache::clearForHost):
(WebKit::WebCookieCache::pruneCacheIfNecessary):

  • WebProcess/WebPage/WebCookieCache.h: Copied from Source/WebKit/WebProcess/WebPage/WebCookieJar.h.
  • WebProcess/WebPage/WebCookieJar.cpp:

(WebKit::WebCookieJar::isEligibleForCache const):
(WebKit::WebCookieJar::cookies const):
(WebKit::WebCookieJar::setCookies):
(WebKit::WebCookieJar::cookiesAdded):
(WebKit::WebCookieJar::cookiesDeleted):
(WebKit::WebCookieJar::clearCache):
(WebKit::WebCookieJar::clearCacheForHost):

  • WebProcess/WebPage/WebCookieJar.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_overriddenMediaType):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::cookieJar):

Source/WTF:

Add build time flags for new feature.

  • wtf/PlatformEnable.h:
  • wtf/PlatformHave.h:

LayoutTests:

Add layout test coverage.

  • http/tests/cookies/document-cookie-after-showModalDialog-expected.txt: Added.
  • http/tests/cookies/document-cookie-after-showModalDialog.html: Added.
  • http/tests/cookies/document-cookie-during-iframe-parsing-expected.txt: Added.
  • http/tests/cookies/document-cookie-during-iframe-parsing.html: Added.
  • http/tests/cookies/resources/close-modal-dialog.html: Added.
  • http/tests/cookies/resources/document-cookie-during-iframe-parsing-iframe.html: Added.
  • http/tests/cookies/resources/set-cookie-and-serve.php: Added.
10:10 PM Changeset in webkit [256819] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256584. rdar://problem/59449390

MediaToolbox may not be available; check before calling MTOverrideShouldPlayHDRVideo()
https://bugs.webkit.org/show_bug.cgi?id=207733
<rdar://problem/59441647>

Reviewed by Maciej Stachowiak.

  • platform/mac/PlatformScreenMac.mm: (WebCore::setShouldOverrideScreenSupportsHighDynamicRange):

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

10:10 PM Changeset in webkit [256818] by Alan Coon
  • 11 edits in branches/safari-609-branch/Source

Cherry-pick r255881. rdar://problem/59447271

Adopt MTOverrideShouldPlayHDRVideo()
https://bugs.webkit.org/show_bug.cgi?id=207275
<rdar://problem/58837093>

Reviewed by Eric Carlson.

Source/WebCore:

  • platform/PlatformScreen.h:
  • platform/mac/PlatformScreenMac.mm: (WebCore::setShouldOverrideScreenSupportsHighDynamicRange):

Source/WebCore/PAL:

  • pal/cocoa/MediaToolboxSoftLink.cpp:
  • pal/cocoa/MediaToolboxSoftLink.h:

Source/WebKit:

The WebProcess sandbox can block access to the services necessary for MediaToolbox to determine whether
the current display is capable of displaying HDR. Rather than opening up the sandbox, provide the information
gathered by the UIProcess by way of MTOverrideShouldPlayHDRVideo().

  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::windowScreenDidChange): (WebKit::WebPage::displayID const):
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::setScreenProperties): Deleted.
  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::setScreenProperties): (WebKit::WebProcess::updatePageScreenProperties):

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

10:10 PM Changeset in webkit [256817] by Alan Coon
  • 26 edits in branches/safari-609-branch

Cherry-pick r256632. rdar://problem/59478906

NetworkLoadMetrics should be shared by multiple ResourceResponse instances
https://bugs.webkit.org/show_bug.cgi?id=207747

Reviewed by Keith Miller.

Source/WebCore:

ResourceResponse is value data, and it is copied multiple times in various places, (1) to create a new ResourceResponse
which has slightly different fields, or (1) to hold ResourceResponse even after loading finishes. For example, DocumentLoader
has Vector<ResourceResponse> to replay response dispatching in the case of loading from BackForwardCache. The problem is
that ResourceResponse is very large: 440 bytes.

While we sometimes copy ResourceResponse to modify some part of it, NetworkLoadMetrics is immutable. It is set when response is created,
and is never changed. And NetworkLoadMetrics is large: sizeof(NetworkLoadMetrics) is 184 bytes. Given that we have multiple
copies of ResourceResponse in WebCore, we should share NetworkLoadMetrics by them.

This patch puts Box<NetworkLoadMetrics> in ResourceResponse to share it with all copied ResourceResponses. We do not make NetworkLoadMetrics
RefCounted<> for now since some legit data structures embed NetworkLoadMetrics. This patch adds ArgumentCoder for Box so that we
can encode / decode Box<NetworkLoadMetrics> in ResourceResponse in IPC. To ensure NetworkLoadMetrics in ResourceResponse immutable,
we add ResourceResponse::setDeprecatedNetworkLoadMetrics instead of modifying NetworkLoadMetrics already created in ResourceResponse.

We also attempt to compact ResourceResponse more by using bit-fields. And removing m_isValid field in ParsedContentRange since
this can be represented by the different field. These changes make sizeof(ResourceResponse) from 440 to 248.

No behavior change.

  • inspector/agents/InspectorNetworkAgent.cpp: (WebCore::InspectorNetworkAgent::buildObjectForTiming): (WebCore::InspectorNetworkAgent::buildObjectForResourceResponse):
  • inspector/agents/InspectorNetworkAgent.h:
  • loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::loadRequest):
  • loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::didFinishLoading):
  • page/PerformanceTiming.cpp: (WebCore::PerformanceTiming::domainLookupStart const): (WebCore::PerformanceTiming::domainLookupEnd const): (WebCore::PerformanceTiming::connectStart const): (WebCore::PerformanceTiming::connectEnd const): (WebCore::PerformanceTiming::secureConnectionStart const): (WebCore::PerformanceTiming::requestStart const): (WebCore::PerformanceTiming::responseStart const):
  • platform/network/NetworkLoadMetrics.h:
  • platform/network/ParsedContentRange.cpp: (WebCore::areContentRangeValuesValid): (WebCore::parseContentRange): (WebCore::ParsedContentRange::ParsedContentRange): (WebCore::ParsedContentRange::headerValue const):
  • platform/network/ParsedContentRange.h: (WebCore::ParsedContentRange::isValid const): (WebCore::ParsedContentRange::invalidValue): (WebCore::ParsedContentRange::MarkableTraits::isEmptyValue): (WebCore::ParsedContentRange::MarkableTraits::emptyValue): (WebCore::ParsedContentRange::ParsedContentRange): Deleted.
  • platform/network/ResourceHandle.h:
  • platform/network/ResourceResponseBase.cpp: (WebCore::ResourceResponseBase::ResourceResponseBase): (WebCore::ResourceResponseBase::crossThreadData const): (WebCore::ResourceResponseBase::fromCrossThreadData): (WebCore::ResourceResponseBase::compare):
  • platform/network/ResourceResponseBase.h: (WebCore::ResourceResponseBase::deprecatedNetworkLoadMetricsOrNull const): (WebCore::ResourceResponseBase::setDeprecatedNetworkLoadMetrics): (WebCore::ResourceResponseBase::encode const): (WebCore::ResourceResponseBase::decode): (WebCore::ResourceResponseBase::deprecatedNetworkLoadMetrics const): Deleted.
  • platform/network/cf/ResourceResponse.h: (WebCore::ResourceResponse::ResourceResponse):
  • platform/network/cocoa/NetworkLoadMetrics.mm: (WebCore::copyTimingData):
  • platform/network/curl/CurlResourceHandleDelegate.cpp: (WebCore::CurlResourceHandleDelegate::curlDidReceiveResponse):
  • platform/network/curl/ResourceResponse.h:
  • platform/network/curl/ResourceResponseCurl.cpp: (WebCore::ResourceResponse::setDeprecatedNetworkLoadMetrics): Deleted.
  • platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::getConnectionTimingData):
  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm: (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):

Source/WebKit:

Add ArgumentCoder support for Box<T>.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
  • NetworkProcess/soup/NetworkDataTaskSoup.cpp: (WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):
  • Platform/IPC/ArgumentCoders.h: (IPC::ArgumentCoder<Box<T>>::encode): (IPC::ArgumentCoder<Box<T>>::decode):

Tools:

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

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

10:09 PM Changeset in webkit [256816] by Alan Coon
  • 2 edits in branches/safari-609-branch/LayoutTests

Cherry-pick r256435. rdar://problem/59446986

REGRESSION: (256400) tiled-drawing/scrolling/fixed/fixed-during-rubberband.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207631

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:

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

10:09 PM Changeset in webkit [256815] by Alan Coon
  • 15 edits in branches/safari-609-branch/Source/JavaScriptCore

Apply patch. rdar://problem/59446991

This is a custom patch Yusuke did for the JazzkonE branch which contains content from r255540, r255987, and r256015,
in addition to whatever he saw fit for integration.

10:09 PM Changeset in webkit [256814] by Alan Coon
  • 17 edits
    2 copies in branches/safari-609-branch/Source/WebCore

Cherry-pick r256610. rdar://problem/59478918

[Web Animations] Make all animation event types inherit from the same base class
https://bugs.webkit.org/show_bug.cgi?id=207629

Reviewed by Simon Fraser.

Currently we dispatch events CSS Transitions and CSS Animations events using a dedicated event queue on DeclarativeAnimation, while the events
added by the Web Animations specification (of type AnimationPlaybackEvent) are dispatched using a shared queue on the DocumentTimeline that is
processed during the "update animations and send events procedure". The Web Animations specification dictates that all events should be dispatched
during that procedure, which includes sorting of such events based on their timeline time and associated animation relative composite order.

In this patch, we prepare the work towards spec compliance for animation events dispatch by making all event types (AnimationPlaybackEvent,
TransitionEvent and AnimationEvent) inherit from a single AnimationEventBase interface. This will allow DocumentTimeline to enqueue, sort and
dispatch all such events with a single queue in a future patch.

Due to CSSAnimationController, we must make the "timeline time" and "animation" parameters optional. When we drop support for CSSAnimationController
we'll be able to enforce stronger requirements for these.

No new test since this should not introduce any behavior change.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/AnimationEventBase.cpp: Added. (WebCore::AnimationEventBase::AnimationEventBase):
  • animation/AnimationEventBase.h: Added. (WebCore::AnimationEventBase::create): (WebCore::AnimationEventBase::isAnimationPlaybackEvent const): (WebCore::AnimationEventBase::isAnimationEvent const): (WebCore::AnimationEventBase::isTransitionEvent const): (WebCore::AnimationEventBase::timelineTime const): (WebCore::AnimationEventBase::animation const):
  • animation/AnimationPlaybackEvent.cpp: (WebCore::AnimationPlaybackEvent::AnimationPlaybackEvent): (WebCore::AnimationPlaybackEvent::bindingsTimelineTime const):
  • animation/AnimationPlaybackEvent.h:
  • animation/CSSAnimation.cpp: (WebCore::CSSAnimation::createEvent):
  • animation/CSSAnimation.h:
  • animation/CSSTransition.cpp: (WebCore::CSSTransition::createEvent):
  • animation/CSSTransition.h:
  • animation/DeclarativeAnimation.cpp: (WebCore::DeclarativeAnimation::enqueueDOMEvent):
  • animation/DeclarativeAnimation.h:
  • animation/WebAnimation.cpp: (WebCore::WebAnimation::enqueueAnimationPlaybackEvent):
  • dom/AnimationEvent.cpp: (WebCore::AnimationEvent::AnimationEvent):
  • dom/AnimationEvent.h:
  • dom/TransitionEvent.cpp: (WebCore::TransitionEvent::TransitionEvent):
  • dom/TransitionEvent.h:
  • page/animation/CSSAnimationController.cpp: (WebCore::CSSAnimationControllerPrivate::fireEventsAndUpdateStyle):

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

10:09 PM Changeset in webkit [256813] by Alan Coon
  • 4 edits
    2 adds in branches/safari-609-branch

Cherry-pick r256513. rdar://problem/59446986

REGRESSION (r255037): Zooming in and out on Quip in macOS Safari can cause the content to be offset to the side
https://bugs.webkit.org/show_bug.cgi?id=207674
rdar://problem/59404866

Reviewed by Antti Koivisto.

Source/WebCore:

Remove the early return in ScrollingStateScrollingNode::setRequestedScrollData(); comparing
with the last m_requestedScrollData is wrong, because requested scroll positions are not "state"
in the scrolling tree, they are requests to scroll. Ideally, they would be represented in some
different way in the scrolling tree.

Test: fast/scrolling/programmatic-scroll-to-zero-zero.html

  • page/scrolling/ScrollingStateScrollingNode.cpp: (WebCore::ScrollingStateScrollingNode::setRequestedScrollData):

LayoutTests:

Test that does a programmatic scroll to 0,0, does a user scroll, then a second programmatic scroll to 0,0,
which is expected to work.

  • fast/scrolling/programmatic-scroll-to-zero-zero-expected.html: Added.
  • fast/scrolling/programmatic-scroll-to-zero-zero.html: Added.
  • platform/ios/TestExpectations: Skip the new test on iOS (it relies on eventSender) and sort the grouping.

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

10:09 PM Changeset in webkit [256812] by Alan Coon
  • 4 edits in branches/safari-609-branch

Cherry-pick r256432. rdar://problem/59446974

WebSWServerConnection::registerServiceWorkerClient is not sending IPC message to UIProcess when it should
https://bugs.webkit.org/show_bug.cgi?id=207537

Reviewed by Chris Dumez.

Source/WebKit:

Covered by added API test.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: (WebKit::WebSWServerConnection::registerServiceWorkerClient): Fix use after move so that we can get the context connection and send the IPC message to UIProcess as expected.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

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

10:09 PM Changeset in webkit [256811] by Alan Coon
  • 3 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256400. rdar://problem/59446986

Unreviewed, partial rollout of r255037.
<rdar://problem/59240559>

  • page/scrolling/cocoa/ScrollingTreeFixedNode.mm: (WebCore::ScrollingTreeFixedNode::applyLayerPositions):
  • page/scrolling/cocoa/ScrollingTreeStickyNode.mm: (WebCore::ScrollingTreeStickyNode::computeLayerPosition const):

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

10:09 PM Changeset in webkit [256810] by Alan Coon
  • 4 edits in branches/safari-609-branch

Cherry-pick r256383. rdar://problem/59446974

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

It is breaking an API test (Requested by youenn on #webkit).

Reverted changeset:

"WebSWServerConnection::registerServiceWorkerClient is not
sending IPC message to UIProcess when it should"
https://bugs.webkit.org/show_bug.cgi?id=207537
https://trac.webkit.org/changeset/256314

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

10:09 PM Changeset in webkit [256809] by Alan Coon
  • 45 edits
    5 adds in branches/safari-609-branch

Cherry-pick r255037. rdar://problem/59446986

Fixed elements no longer stay fixed with elastic overscroll
https://bugs.webkit.org/show_bug.cgi?id=206227
rdar://problem/58707084

Reviewed by Antti Koivisto.
Source/WebCore:

Intended behavior on iOS and macOS is for position:fixed and sticky elements to maintain
their position relative to the view bounds when rubber-banding ("overscrolling"). This broke
some time back. This change restores the correct behavior with the call to layoutViewportRespectingRubberBanding()
in ScrollingTreeFixedNode::applyLayerPositions() and ScrollingTreeStickyNode::computeLayerPosition().
layoutViewportRespectingRubberBanding() computes a layout viewport without clamping.

The rest of the changes are to support testing. internals.unconstrainedScrollTo()
didn't work for main frame scrolling because of scroll position clamping in various places,
so propagate ScrollClamping in more places (and replace the redundant ScrollPositionClamp with ScrollClamping).

"requested scroll position" updates now carry along both clamping and "is programmatic" data, wrapped in a struct
which is passed around the scrolling tree. This allows us to not clamp the scroll position (for testing) in more places.

Internals::unconstrainedScrollTo() needs one weird hack to trigger a layout (and thus a scrolling tree commit),
because the layout is normally triggered by a layout viewport change, but when rubber-banding we clamp the layoutViewport
used for layout, so those layouts are never triggered.

Tests: tiled-drawing/scrolling/fixed/fixed-during-rubberband.html

tiled-drawing/scrolling/sticky/sticky-during-rubberband.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Element.cpp: (WebCore::Element::scrollTo):
  • page/DOMWindow.cpp: (WebCore::DOMWindow::scrollTo const):
  • page/FrameView.cpp: (WebCore::FrameView::setScrollPosition): (WebCore::FrameView::requestScrollPositionUpdate):
  • page/FrameView.h:
  • page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.cpp:
  • page/scrolling/ScrollingCoordinator.h: (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
  • page/scrolling/ScrollingStateScrollingNode.cpp: (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): (WebCore::ScrollingStateScrollingNode::setRequestedScrollData): (WebCore::ScrollingStateScrollingNode::dumpProperties const): (WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition): Deleted.
  • page/scrolling/ScrollingStateScrollingNode.h: (WebCore::RequestedScrollData::operator== const): (WebCore::ScrollingStateScrollingNode::requestedScrollData const): (WebCore::ScrollingStateScrollingNode::requestedScrollPosition const): Deleted. (WebCore::ScrollingStateScrollingNode::requestedScrollPositionRepresentsProgrammaticScroll const): Deleted.
  • page/scrolling/ScrollingTree.h: (WebCore::ScrollingTree::scrollingTreeNodeRequestsScroll):
  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp: (WebCore::ScrollingTreeFrameScrollingNode::layoutViewportForScrollPosition const): (WebCore::ScrollingTreeFrameScrollingNode::layoutViewportRespectingRubberBanding const):
  • page/scrolling/ScrollingTreeFrameScrollingNode.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp: (WebCore::ScrollingTreeScrollingNode::commitStateAfterChildren): (WebCore::ScrollingTreeScrollingNode::adjustedScrollPosition const): (WebCore::ScrollingTreeScrollingNode::scrollBy): (WebCore::ScrollingTreeScrollingNode::scrollTo): (WebCore::ScrollingTreeScrollingNode::wasScrolledByDelegatedScrolling):
  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/cocoa/ScrollingTreeFixedNode.mm: (WebCore::ScrollingTreeFixedNode::applyLayerPositions):
  • page/scrolling/cocoa/ScrollingTreeStickyNode.mm: (WebCore::ScrollingTreeStickyNode::computeLayerPosition const):
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: (WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateAfterChildren): (WebCore::ScrollingTreeFrameScrollingNodeMac::adjustedScrollPosition const):
  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm: (WebCore::ScrollingTreeOverflowScrollingNodeMac::commitStateAfterChildren): (WebCore::ScrollingTreeOverflowScrollingNodeMac::adjustedScrollPosition const):
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm: (WebCore::ScrollingTreeScrollingNodeDelegateMac::immediateScrollByWithoutContentEdgeConstraints):
  • platform/ScrollTypes.cpp: Added. (WebCore::operator<<):
  • platform/ScrollTypes.h:
  • platform/ScrollView.cpp: (WebCore::ScrollView::setContentsScrollPosition): (WebCore::ScrollView::setScrollPosition):
  • platform/ScrollView.h:
  • platform/ScrollableArea.cpp: (WebCore::ScrollableArea::setScrollOffsetFromAnimation):
  • platform/ScrollableArea.h: (WebCore::ScrollableArea::requestScrollPositionUpdate):
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollToOffset):
  • testing/Internals.cpp: (WebCore::Internals::unconstrainedScrollTo):

Source/WebKit:

Intended behavior on iOS and macOS is for position:fixed and sticky elements to maintain
their position relative to the view bounds when rubber-banding ("overscrolling"). This broke
some time back. This change restores the correct behavior with the call to layoutViewportRespectingRubberBanding()
in ScrollingTreeFixedNode::applyLayerPositions() and ScrollingTreeStickyNode::computeLayerPosition().
layoutViewportRespectingRubberBanding() computes a layout viewport without clamping.

The rest of the changes are to support testing. internals.unconstrainedScrollTo()
didn't work for main frame scrolling because of scroll position clamping in various places,
so propagate ScrollClamping in more places (and replace the redundant ScrollPositionClamp with ScrollClamping).

"requested scroll position" updates now carry along both clamping and "is programmatic" data, wrapped in a struct
which is passed around the scrolling tree. This allows us to not clamp the scroll position (for testing) in more places.

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: (ArgumentCoder<ScrollingStateScrollingNode>::encode): (ArgumentCoder<ScrollingStateScrollingNode>::decode): (ArgumentCoder<RequestedScrollData>::encode): (ArgumentCoder<RequestedScrollData>::decode): (WebKit::dump):
  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeRequestsScroll):
  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp: (WebKit::RemoteScrollingTree::scrollingTreeNodeRequestsScroll):
  • UIProcess/RemoteLayerTree/RemoteScrollingTree.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm: (WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateAfterChildren):
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: (WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):

LayoutTests:

  • tiled-drawing/scrolling/fixed/fixed-during-rubberband-expected.html: Added.
  • tiled-drawing/scrolling/fixed/fixed-during-rubberband.html: Added.
  • tiled-drawing/scrolling/sticky/sticky-during-rubberband-expected.html: Added.
  • tiled-drawing/scrolling/sticky/sticky-during-rubberband.html: Added.

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

7:12 PM Changeset in webkit [256808] by Chris Dumez
  • 14 edits in trunk

Defer execution of async scripts until until the document is loaded
https://bugs.webkit.org/show_bug.cgi?id=207698
<rdar://problem/57625747>

LayoutTests/imported/w3c:

Reviewed by Antti Koivisto.

Rebaseline WPT test to reflect behavior change. Some tests start passing and some other are now failing because
they rely on specific ordering at network level.

  • web-platform-tests/content-security-policy/script-src/scripthash-changed-1-expected.txt:
  • web-platform-tests/content-security-policy/script-src/scripthash-changed-2-expected.txt:
  • web-platform-tests/content-security-policy/script-src/scriptnonce-changed-1-expected.txt:
  • web-platform-tests/content-security-policy/script-src/scriptnonce-changed-2-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/async_005-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/execution-timing/085-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-text-modifications-expected.txt:

Source/WebCore:

Reviewed Antti Koivisto.

Defer execution of async scripts until until the document is loaded by default to reduce time
to first paint.

  • dom/ScriptElement.h:
  • dom/ScriptRunner.cpp:

(WebCore::ScriptRunner::timerFired):
Make sure we do not defer scripts that were not added by the parser and that do not have the
'async' attribute set.

  • page/Settings.yaml:

Source/WebKit:

Reviewed by Antti Koivisto.

Defer execution of async scripts until until the document is loaded by default to reduce time
to first paint.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):

7:04 PM Changeset in webkit [256807] by zhifei_fang@apple.com
  • 4 edits in trunk/Tools

[Webkit.css] Adding popover style element
This help to prevent us reinventing the wheel ever again
https://bugs.webkit.org/show_bug.cgi?id=207787

Reviewed by Dean Jackson.

  • resultsdbpy/resultsdbpy/view/static/library/css/docs.yaml:
  • resultsdbpy/resultsdbpy/view/static/library/css/index.html:
  • resultsdbpy/resultsdbpy/view/static/library/css/webkit.css:

(.popover):
(.popover>.content):
(.popover.display):
(.popover .arrow):
(.popover .arrow.point-top):
(.popover .arrow.point-bottom):
(.popover .arrow.point-left):
(.popover .arrow.point-right):
(@media (prefers-color-scheme: dark) .popover>.content):
(@media (prefers-color-scheme: dark) .popover.display):
(@media (prefers-color-scheme: dark) .popover .arrow):
(.popover>.content>.section): Deleted.
(.popover:focus>.content, .popover:hover>.content): Deleted.
(.popover.right>.content): Deleted.
(.popover.right :focus>.content, .popover.right:hover>.content): Deleted.
(.popover.left>.content): Deleted.
(.popover.left :focus>.content, .popover.left:hover>.content): Deleted.
(.popover.bottom>.content): Deleted.
(.popover.bottom :focus>.content, .popover.bottom:hover>.content): Deleted.

6:51 PM Changeset in webkit [256806] by timothy_horton@apple.com
  • 5 edits in trunk/Source

Add and adopt HAVE(LOOKUP_GESTURE_RECOGNIZER)
https://bugs.webkit.org/show_bug.cgi?id=207876

Reviewed by Wenson Hsieh.

  • wtf/PlatformHave.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):
(-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
For symmetry's sake, introduce a HAVE for this gesture.

6:48 PM Changeset in webkit [256805] by youenn@apple.com
  • 4 edits in trunk/Source

Do not call whenReady callbacks in case of network process crash
https://bugs.webkit.org/show_bug.cgi?id=207661

Reviewed by Chris Dumez.

Source/WebCore:

  • workers/service/WorkerSWClientConnection.cpp:

(WebCore::WorkerSWClientConnection::~WorkerSWClientConnection):
The callback is a Function so it is fine not calling it and calling it with a default value is not safe.

Source/WebKit:

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::clear):
The callback is a Function so it is fine not calling it and calling it with a default value is not safe.

6:31 PM Changeset in webkit [256804] by Peng Liu
  • 3 edits in trunk/Source/WebCore

MediaSource.isTypeSupported() says "video/mp4;codecs=\"avc3.42C015\"" is not supported, but it is
https://bugs.webkit.org/show_bug.cgi?id=207622

Reviewed by Eric Carlson.

Revert the behavior change of MediaPlayerPrivateMediaSourceAVFObjC::supportsType() in r253952.

  • platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:

(WebCore::AVAssetMIMETypeCache::canDecodeExtendedType):

6:24 PM Changeset in webkit [256803] by Alan Coon
  • 3 edits in branches/safari-609-branch/LayoutTests

Cherry-pick r255384. rdar://problem/59447276

REGRESSION: (253807) [ macOS iOS ] storage/indexeddb/intversion-long-queue-private.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=206965

Unreviewed test gardening.

Patch by Jacob Uphoff <Jacob Uphoff> on 2020-01-29

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:

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

5:52 PM Changeset in webkit [256802] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Changed results due to ANGLE use
https://bugs.webkit.org/show_bug.cgi?id=207858

Unreviewed test gardening.

Mark fast/canvas/webgl/program-test.html and webgl/1.0.3/conformance/programs/program-test.html as failing.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
5:35 PM Changeset in webkit [256801] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

WebSocketChannelInspector.cpp should include ProgressTracker.h
https://bugs.webkit.org/show_bug.cgi?id=207862

Unreviewed, build fix.

  • Modules/websockets/WebSocketChannelInspector.cpp:
5:21 PM Changeset in webkit [256800] by Russell Epstein
  • 34 edits
    2 adds in branches/safari-609-branch/Source

Apply patch. rdar://problem/59447004

Apply content from rdar://problem/59447004

5:21 PM Changeset in webkit [256799] by Russell Epstein
  • 4 edits in branches/safari-609-branch/LayoutTests

Cherry-pick r256235. rdar://problem/59447276

REGRESSION: (253807) [ macOS iOS ] storage/indexeddb/intversion-long-queue-private.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=206965
<rdar://problem/59005652>

Reviewed by Ryosuke Niwa.

Modify a test to make it less flaky. Based on our current implementation, there is no guarantee that Block event on
delete request would be fired before Complete event on transaction from connection2 in this test. The events
sequence we are sure are:

  1. UpgradeNeeded event on openRequest2 -> VersionChange event on connection2 -> Complete event on VersionChange transaction on connection2 -> Success event on openRequest2.
  2. VersionChange event on connection2 -> Block event on delete request. Therefore I am changing the test to ensure sequence 1.
  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
  • storage/indexeddb/intversion-long-queue-expected.txt:
  • storage/indexeddb/intversion-long-queue-private-expected.txt:
  • storage/indexeddb/resources/intversion-long-queue.js: (connection2Blocked): (connection2UpgradeNeeded): (connection2VersionChangeCallback): (deleteDatabaseBlockedCallback): Deleted.

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

5:21 PM Changeset in webkit [256798] by Russell Epstein
  • 4 edits
    1 add in branches/safari-609-branch

Cherry-pick r256225. rdar://problem/59446983

[watchOS] Notification listener is never unregistered
https://bugs.webkit.org/show_bug.cgi?id=207459
Source/WebKit:

<rdar://problem/58923393>

Reviewed by Maciej Stachowiak.

On watchOS, the backlight changed notification is registered in WebProcessPool::registerNotificationObservers(),
but not unregistered in WebProcessPool::unregisterNotificationObservers().

API test: WebKit.BacklightLevelNotificationCrash

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::unregisterNotificationObservers):

Tools:

Reviewed by Maciej Stachowiak.

Add a test which tests that posting a backlight level change notification will not cause a crash.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/BacklightLevelNotification.mm: Added. (TEST):

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

5:21 PM Changeset in webkit [256797] by Russell Epstein
  • 2 edits in branches/safari-609-branch/LayoutTests

Cherry-pick r256213. rdar://problem/59447008

[ Mac Debug wk2 ] imported/w3c/web-platform-tests/fetch/api/request/destination/fetch-destination-worker.https.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=207509

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:

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

5:21 PM Changeset in webkit [256796] by Russell Epstein
  • 29 edits
    4 copies
    6 adds in branches/safari-609-branch

Cherry-pick r256191. rdar://problem/59447003

Disallow setting base URL to a data or JavaScript URL
https://bugs.webkit.org/show_bug.cgi?id=207136

Source/WebCore:

Reviewed by Brent Fulgham.

Inspired by <https://bugs.chromium.org/p/chromium/issues/detail?id=679318>.

Block setting the base URL to a data URL or JavaScript URL as such usage is questionable.
This makes WebKit match the behavior of Chrome and Firefox and is in the spirit of the
discussion in <https://github.com/whatwg/html/issues/2249>.

On Mac and iOS, this restriction is applied only to apps linked against a future SDK to
avoid breaking shipped apps.

For all other ports, this restriction is enabled by default.

Tests: fast/url/relative2.html

fast/url/segments-from-data-url2.html
http/tests/security/allowed-base-url-data-url-via-setting.html
http/tests/security/denied-base-url-data-url.html
http/tests/security/denied-base-url-javascript-url.html

  • dom/Document.cpp: (WebCore::Document::processBaseElement): Condition updating the parsed base URL on whether is has an allowed scheme, if restrictions are enabled. Otherwise, do what we do now. If the scheme is disallowed then log a message to the console to explain this to web developers.
  • html/parser/HTMLPreloadScanner.cpp: (WebCore::TokenPreloadScanner::scan): Pass whether to apply restrictons to the base URL to updatePredictedBaseURL(). This depends on whether the setting is enabled or not. (WebCore::TokenPreloadScanner::updatePredictedBaseURL): Modifed to take a boolean as to whether to apply restrictions. If restrictions are not to be applied do what we do now. Otherwise, only do what we do now if the scheme for the predicated base URL is allowed.
  • html/parser/HTMLPreloadScanner.h:
  • page/SecurityPolicy.cpp: (WebCore::SecurityPolicy::isBaseURLSchemeAllowed): Added.
  • page/SecurityPolicy.h:
  • page/Settings.yaml: Add a setting to toggle restrictions on the base URL scheme.

Source/WebKit:

Reviewed by Brent Fulgham.

Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/Cocoa/WKWebView.mm: (shouldRestrictBaseURLSchemes): Added. (-[WKWebView _setupPageConfiguration:]): Update settings.
  • UIProcess/Cocoa/VersionChecks.h:

Source/WebKitLegacy/mac:

Reviewed by Brent Fulgham.

Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.

  • Misc/WebKitVersionChecks.h:
  • WebView/WebView.mm: (shouldRestrictBaseURLSchemes): Added. (-[WebView _commonInitializationWithFrameName:groupName:]): Update settings.

Source/WTF:

Reviewed by Brent Fulgham.

Add some more macro definitions.

  • wtf/spi/darwin/dyldSPI.h:

LayoutTests:

RReviewed by Brent Fulgham.

Add some tests. Update others to toggle the setting to apply or unapply the new behavior.

The test denied-base-url-javascript-url.html is derived from the test base-url-javascript.html,
included in <https://chromium.googlesource.com/chromium/src.git/+/c133efa0b915430701930b76a7cfe35608b9a403>.

  • fast/url/relative-expected.txt:
  • fast/url/relative.html:
  • fast/url/relative2-expected.txt: Copied from LayoutTests/fast/url/relative-expected.txt.
  • fast/url/relative2.html: Copied from LayoutTests/fast/url/relative.html.
  • fast/url/resources/utilities.js: (setShouldEllipsizeFileURLPaths): Added. Toggles ellipsizing the path portion of a file URL to simplify matching. Otherwise, file URLs could be machine-specific. (canonicalizedPathname): Added. (segments): Modified to optionally call canonicalizedPathname. (canonicalize): Ditto.
  • fast/url/segments-from-data-url-expected.txt:
  • fast/url/segments-from-data-url.html:
  • fast/url/segments-from-data-url2-expected.txt: Copied from LayoutTests/fast/url/segments-from-data-url-expected.txt.
  • fast/url/segments-from-data-url2.html: Copied from LayoutTests/fast/url/segments-from-data-url.html.
  • fetch/fetch-url-serialization-expected.txt:
  • http/tests/plugins/navigation-during-load-embed.html:
  • http/tests/plugins/navigation-during-load.html:
  • http/tests/security/allowed-base-url-data-url-via-setting-expected.txt: Added.
  • http/tests/security/allowed-base-url-data-url-via-setting.html: Added.
  • http/tests/security/denied-base-url-data-url-expected.txt: Added.
  • http/tests/security/denied-base-url-data-url.html: Added.
  • http/tests/security/denied-base-url-javascript-url-expected.txt: Added.
  • http/tests/security/denied-base-url-javascript-url.html: Added.

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

5:21 PM Changeset in webkit [256795] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r256426. rdar://problem/59447008

[ Mac Debug wk2 ] ASSERTION FAILED: m_wasConstructedOnMainThread == isMainThread()
https://bugs.webkit.org/show_bug.cgi?id=207509
<rdar://problem/59325466>

Reviewed by Chris Dumez.

Covered by existing tests.

  • NetworkProcess/cache/CacheStorageEngine.cpp: (WebKit::CacheStorage::Engine::writeSizeFile): Make sure completion handler is always called on the main thread. Minor refactoring to make things more efficient.

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

5:21 PM Changeset in webkit [256794] by Russell Epstein
  • 4 edits in branches/safari-609-branch

Cherry-pick r256314. rdar://problem/59446974

WebSWServerConnection::registerServiceWorkerClient is not sending IPC message to UIProcess when it should
https://bugs.webkit.org/show_bug.cgi?id=207537

Reviewed by Chris Dumez.

Source/WebKit:

Covered by added API test.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: (WebKit::WebSWServerConnection::registerServiceWorkerClient): Fix use after move so that we can get the context connection and send the IPC message to UIProcess as expected.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

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

5:21 PM Changeset in webkit [256793] by Russell Epstein
  • 1 edit in branches/safari-609-branch/Source/JavaScriptCore/runtime/OptionsList.h

Apply patch. rdar://problem/59447266

5:19 PM Changeset in webkit [256792] by achristensen@apple.com
  • 4 edits in trunk/Source

Ephemeral session data leaks between processes
https://bugs.webkit.org/show_bug.cgi?id=207404

Patch by Alex Christensen <achristensen@webkit.org> and Pavel Feldman <pavel.feldman@gmail.com> on 2020-02-17
Reviewed by Darin Adler.

Source/WebKit:

If two processes with the same bundle identifier create an ephemeral WKWebsiteDataStore, we were calling
_CFURLStorageSessionCreate with the same string, which caused our cookies to be shared. To prevent this,
add a UUID to the identifier to make them truly unique.

We don't have test infrastructure for multiple UI processes at the same time, but I manually verified
that this fixes the bug.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::ensureSession):

Source/WebKitLegacy:

  • WebCoreSupport/NetworkStorageSessionMap.cpp:

(NetworkStorageSessionMap::ensureSession):

5:07 PM Changeset in webkit [256791] by mark.lam@apple.com
  • 62 edits in trunk/Source

getVTablePointer() should return a const void*.
https://bugs.webkit.org/show_bug.cgi?id=207871
<rdar://problem/59525721>

Reviewed by Yusuke Suzuki.

Source/WebCore:

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

Source/WTF:

  • wtf/PointerPreparations.h:

(WTF::getVTablePointer):

4:50 PM Changeset in webkit [256790] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Data detectors do not trigger on macCatalyst
https://bugs.webkit.org/show_bug.cgi?id=207860
<rdar://problem/59038913>

Reviewed by Tim Horton.

The lookup gesture which run data detection needs touch information to function. Allow touches to be sent to the gesture.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView gestureRecognizer:shouldReceiveTouch:]):

4:43 PM Changeset in webkit [256789] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

macCatalyst: I-beam is still too aggressive in non-editable content, shows up beyond the end of text
https://bugs.webkit.org/show_bug.cgi?id=207867
<rdar://problem/59528927>

Reviewed by Wenson Hsieh.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::populateCaretContext):
Only expand the I-beam region to the end of the line in editable text.
This better matches the macOS behavior.

4:26 PM Changeset in webkit [256788] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Add "outline focused element" debug setting
https://bugs.webkit.org/show_bug.cgi?id=207819
<rdar://problem/59489993>

Reviewed by Timothy Hatcher.

When debugging accessibility issues of Web Inspector, it's helpful
to know what element is focused. Many elements have outline: none
and no clear indication of what's focused.

Add a debug setting to display a bright purple outline for all focused
elements.

  • UserInterface/Base/Main.js:

(WI.contentLoaded):

  • UserInterface/Base/Setting.js:
  • UserInterface/Views/Main.css:

(body.focus-debug *:focus):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createDebugSettingsView):

3:45 PM Changeset in webkit [256787] by youenn@apple.com
  • 7 edits in trunk/Source/WebKit

Fix regression in NSURLSessionWebSocketTask WSS support
https://bugs.webkit.org/show_bug.cgi?id=207855

Reviewed by Alex Christensen.

Covered by http/tests/websocket/tests/hybi/simple-wss.html passing with NSURLSessionWebSocketTask code path.
When having an authentication challenge, we need to get the session from the task.
This was not working for websocket tasks.
Fix this by retrieving the session from the web socket data task, which is retrieved from the task identifier.

  • NetworkProcess/Downloads/DownloadID.h:

(WebKit::DownloadID::operator bool const):
Add operator bool for convenience.

  • NetworkProcess/NetworkSocketChannel.cpp:

(WebKit::NetworkSocketChannel::session):

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

(-[WKNetworkSessionDelegate sessionFromTask:]):
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):

  • NetworkProcess/cocoa/WebSocketTaskCocoa.h:
  • NetworkProcess/cocoa/WebSocketTaskCocoa.mm:

(WebKit::WebSocketTask::networkSession):

3:21 PM Changeset in webkit [256786] by commit-queue@webkit.org
  • 28 edits
    8 copies
    67 adds
    1 delete in trunk

Main implementation for lazy image loading
https://bugs.webkit.org/show_bug.cgi?id=200764

Patch by Rob Buis <rbuis@igalia.com> on 2020-02-17
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Set correct test option and import lazyload WPT tests into
semantics/embedded-content/the-img-element while removing
loading/lazyload directory.

  • resources/import-expectations.json:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/below-viewport-image-loading-lazy-load-event-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/below-viewport-image-loading-lazy-load-event.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/common.js: Added.

(ElementLoadPromise):
(ElementLoadPromise.prototype.element):
(is_image_fully_loaded):

  • web-platform-tests/html/semantics/embedded-content/the-img-element/disconnected-image-loading-lazy-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/disconnected-image-loading-lazy.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/iframe-loading-eager-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/loading/lazyload/iframe-loading-eager.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/iframe-loading-eager.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/loading/lazyload/iframe-loading-eager.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/iframe-loading-lazy-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/iframe-loading-lazy.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/loading/lazyload/iframe-loading-lazy.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-eager-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/loading/lazyload/image-loading-eager.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-eager.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/loading/lazyload/image-loading-eager.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-below-viewport-dynamic-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-below-viewport-dynamic.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-cross-origin-ifame-001.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-cross-origin-ifame-001.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-cross-origin-ifame-002.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-cross-origin-ifame-002.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-script-disabled-iframe-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-script-disabled-iframe.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-viewport-dynamic-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-viewport-dynamic.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-load-event-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-load-event.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-move-document-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-move-document.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-move-into-script-disabled-iframe-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-move-into-script-disabled-iframe.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-multicol-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-multicol.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/loading/lazyload/image-loading-lazy.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/invisible-image-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/invisible-image.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/move-element-and-scroll-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/move-element-and-scroll.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/not-rendered-below-viewport-image-loading-lazy-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/not-rendered-below-viewport-image-loading-lazy.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/not-rendered-image-loading-lazy-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/not-rendered-image-loading-lazy.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-2-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-2.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-iframe-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-iframe.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-crossorigin-applied.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-crossorigin-applied.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-referrer-policy-applied.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/original-referrer-policy-applied.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/picture-loading-lazy-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/picture-loading-lazy.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/remove-element-and-scroll-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/remove-element-and-scroll.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/resources/image-loading-lazy-below-viewport-iframe.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/resources/image-loading-lazy-in-viewport-iframe.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/resources/image.png: Renamed from LayoutTests/imported/w3c/web-platform-tests/loading/lazyload/resources/image.png.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/resources/newwindow.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/resources/referrer-checker-img.py: Added.

(main):

  • web-platform-tests/html/semantics/embedded-content/the-img-element/resources/subframe.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/loading/lazyload/resources/subframe.html.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/resources/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log:
  • web-platform-tests/loading/lazyload/resources/w3c-import.log: Removed.
  • web-platform-tests/loading/lazyload/w3c-import.log: Removed.

Source/WebCore:

Implement lazy image loading as specified here [1]. Lazy image loading
is controlled by the loading attribute on <img>. When the loading attribute is
not specified, the behavior is like before this patch, i.e. loading is
eager.

Not all loading=lazy requests will turn into actual lazy image loads, when
scripting is turned off they will not be deferred [2].

This implementation relies on Intersection Observer and hence works on WK2 only.

Deferred images are painted using a simple outline until fully loaded.

[1] https://html.spec.whatwg.org/#attr-img-loading
[2] https://html.spec.whatwg.org/#will-lazy-load-image-steps

Tests: http/tests/lazyload/attribute.html

http/tests/lazyload/js-image.html
http/tests/lazyload/lazy-image-load-in-iframes-scripting-disabled.html
http/tests/lazyload/lazy-image-load-in-iframes-scripting-enabled.html
http/tests/lazyload/lazy.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/below-viewport-image-loading-lazy-load-event.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/disconnected-image-loading-lazy.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/iframe-loading-eager.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/iframe-loading-lazy.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-eager.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-below-viewport-dynamic.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-cross-origin-ifame-001.sub.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-cross-origin-ifame-002.sub.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-script-disabled-iframe.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-viewport-dynamic.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-load-event.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-move-document.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-move-into-script-disabled-iframe.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-multicol.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/invisible-image.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/move-element-and-scroll.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/not-rendered-below-viewport-image-loading-lazy.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/not-rendered-image-loading-lazy.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-2.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-iframe.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/original-crossorigin-applied.sub.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/original-referrer-policy-applied.sub.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/picture-loading-lazy.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/remove-element-and-scroll.html

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::lazyLoadImageObserver):

  • dom/Document.h:
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::HTMLImageElement):
(WebCore::HTMLImageElement::create):
(WebCore::HTMLImageElement::hasLazyLoadableAttributeValue):
(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::loadDeferredImage):
(WebCore::HTMLImageElement::didMoveToNewDocument):
(WebCore::HTMLImageElement::loadingForBindings const):
(WebCore::HTMLImageElement::setLoadingForBindings):
(WebCore::HTMLImageElement::isDeferred const):
(WebCore::HTMLImageElement::isLazyLoadable const):

  • html/HTMLImageElement.h:

(WebCore::HTMLImageElement::createdByParser const): Deleted.

  • html/HTMLImageElement.idl:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::didMoveToNewDocument):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::didMoveToNewDocument):

  • html/HTMLTagNames.in:
  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::didMoveToNewDocument):

  • html/LazyLoadImageObserver.cpp: Added.

(WebCore::LazyLoadImageObserver::observe):
(WebCore::LazyLoadImageObserver::unobserve):
(WebCore::LazyLoadImageObserver::intersectionObserver):
(WebCore::LazyLoadImageObserver::isObserved const):

  • html/LazyLoadImageObserver.h: Added.

(WebCore::LazyLoadImageObserver::create):

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::notifyFinished):
(WebCore::ImageLoader::elementDidMoveToNewDocument):
(WebCore::ImageLoader::loadDeferredImage):

  • loader/ImageLoader.h:

(WebCore::ImageLoader::isDeferred const):

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

(WebCore::CachedResourceLoader::requestImage):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::determineRevalidationPolicy const):
(WebCore::CachedResourceLoader::clientDefersImage const):
(WebCore::CachedResourceLoader::shouldDeferImageLoad const):
(WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):

  • loader/cache/CachedResourceLoader.h:
  • rendering/RenderImage.cpp:

(WebCore::isDeferredImage):
(WebCore::RenderImage::paintReplaced):

  • svg/SVGImageElement.cpp:

(WebCore::SVGImageElement::didMoveToNewDocument):

LayoutTests:

Import relevant tests into http/tests/lazyload.
Skip lazy image load tests for WK1 and windows, which
has IntersectionObserver turned off by default.

  • TestExpectations:
  • http/tests/lazyload/attribute-expected.txt: Added.
  • http/tests/lazyload/attribute.html: Added.
  • http/tests/lazyload/js-image-expected.txt: Added.
  • http/tests/lazyload/js-image.html: Added.
  • http/tests/lazyload/lazy-expected.txt: Added.
  • http/tests/lazyload/lazy-image-load-in-iframes-scripting-disabled-expected.txt: Added.
  • http/tests/lazyload/lazy-image-load-in-iframes-scripting-disabled.html: Added.
  • http/tests/lazyload/lazy-image-load-in-iframes-scripting-enabled-expected.txt: Added.
  • http/tests/lazyload/lazy-image-load-in-iframes-scripting-enabled.html: Added.
  • http/tests/lazyload/lazy.html: Added.
  • http/tests/lazyload/placeholder.js: Added.

(is_image_fully_loaded):

  • http/tests/lazyload/resources/lazy-load-in-iframe.html: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
3:19 PM Changeset in webkit [256785] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] webgpu/whlsl/do-while-loop-continue.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207864

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:10 PM Changeset in webkit [256784] by dino@apple.com
  • 25 edits
    1 delete in trunk

[WebGL] Enable ANGLE by default for Cocoa platforms
https://bugs.webkit.org/show_bug.cgi?id=205483
rdar://56925821

Reviewed by Simon Fraser.

Source/WTF:

  • wtf/Platform.h:

LayoutTests:

Rebaseline a bunch of tests and mark expectations.

  • fast/canvas/webgl/copy-tex-image-and-sub-image-2d-bad-input-expected.txt:
  • fast/canvas/webgl/draw-elements-out-of-bounds-uint-index-expected.txt:
  • fast/canvas/webgl/drawElements-empty-vertex-data-expected.txt:
  • fast/canvas/webgl/readPixels-float-expected.txt:
  • fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies-expected.txt:
  • fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies.html:
  • fast/canvas/webgl/vertexAttribPointer-with-bad-offset-expected.txt:
  • fast/canvas/webgl/webgl-drawarrays-crash-2-expected.txt:
  • fast/canvas/webgl/webgl-drawarrays-crash-expected.txt:
  • fast/canvas/webgl/webgl2-texture-upload-enums-expected.txt:
  • platform/ios-device/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios/webgl/1.0.3/conformance/extensions/oes-texture-float-expected.txt: Removed.
  • platform/mac/TestExpectations:
  • webgl/1.0.3/conformance/context/context-lost-restored-expected.txt:
  • webgl/1.0.3/conformance/extensions/oes-texture-float-expected.txt:
  • webgl/1.0.3/conformance/extensions/oes-texture-half-float-expected.txt:
  • webgl/1.0.3/conformance/glsl/misc/shader-struct-scope-expected.txt:
  • webgl/1.0.3/conformance/glsl/misc/shaders-with-invariance-expected.txt:
  • webgl/1.0.3/conformance/glsl/misc/shaders-with-name-conflicts-expected.txt:
  • webgl/1.0.3/conformance/misc/webgl-specific-expected.txt:
  • webgl/1.0.3/conformance/rendering/point-no-attributes-expected.txt:
  • webgl/1.0.3/conformance/textures/texture-copying-feedback-loops-expected.txt:
3:05 PM Changeset in webkit [256783] by Alan Coon
  • 1 copy in tags/Safari-609.1.19.1

Tag Safari-609.1.19.1.

3:02 PM Changeset in webkit [256782] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-2d-overflow.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=148405

RUnreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:02 PM Changeset in webkit [256781] by Alan Coon
  • 1 copy in branches/safari-610.1.4-branch

New branch.

3:00 PM Changeset in webkit [256780] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Allow suffixes on com.apple.WebKit.WebContent XPC service name
https://bugs.webkit.org/show_bug.cgi?id=207856
<rdar://problem/59455881>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-02-17
Reviewed by Chris Dumez.

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceEventHandler):

2:58 PM Changeset in webkit [256779] by ysuzuki@apple.com
  • 9 edits
    1 add in trunk

[JSC] JITThunk should be HashSet<Weak<NativeExecutable>> with appropriate GC weakness handling
https://bugs.webkit.org/show_bug.cgi?id=207715

Reviewed by Darin Adler.

JSTests:

  • stress/stress-jitthunks.js: Added.

(let.set newGlobal):
(set catch):

Source/JavaScriptCore:

This patch refines JITThunks GC-aware Weak hash map for NativeExecutable. Previously, we have
HashMap<std::tuple<TaggedNativeFunction, TaggedNativeFunction, String>, Weak<NativeExecutable>> table.
But this is not good because the first tuple's information is already in NativeExecutable.
But we were using this design since Weak<NativeExecutable> can be nullified because of Weak<>. If this
happens, we could have invalid Entry in HashMap which does not have corresponding values. This will
cause crash when rehasing requires hash code for this entry.

But this HashMap is very bad in terms of memory usage. Each entry has 32 bytes, and this table gets enough
large. We identified that this table is consuming much memory in Membuster. So it is worth designing
carefully crafted data structure which only holds Weak<NativeExecutable> by leveraging the deep interaction
with our GC implementation.

This patch implements new design of JITThunks, which uses HashSet<Weak<NativeExecutable>> and carefully crafted
HashTraits / KeyTraits to handle Weak<> well.

  1. Each Weak should have finalizer, and this finalizer should remove dead Weak<NativeExecutable> from HashSet.

This is ensuring that all the keys in HashSet is, even if Weak<> is saying it is Dead, it still has an way
to access content of NativeExecutable if the content is not a JS objects. For example, we can get function
pointer from dead Weak<NativeExecutable> if it is not yet finalized. Since we remove all finalized Weak<>
from the table, this finalizer mechanism allows us to access function pointers etc. from Weak<NativeExecutable>
so long as it is held in this table.

  1. Getting NativeExecutable* from JITThunks should have special protocol.

When getting NativeExecutable* from JITThunks, we do the following,

  1. First, we check we have an Entry in JITThunks. If it does not exist, we should insert it anyway.

1.1. If it exists, we should check whether this Weak<NativeExecutable> is dead or not. It is possible that

dead one is still in the table because "dead" does not mean that it is "finalized". Until finalizing happens (and
it can be delayed by incremental-sweeper), Weak<NativeExecutable> can be dead but still accessible. So the table
is still holding dead one. If we get dead one, we should insert a new one.

1.2. If it is not dead, we return it.

  1. Second, we create a new NativeExecutable and insert it. In that case, it is possible that the table already has Weak<NativeExecutable>, but it is dead. In that case, we need to explicitly replace it with newly created one since old one is holding old content. If we replaced, finalizer of Weak<> will not be invoked since it immediately deallocates Weak<>. So, it does not happen that this newly inserted NativeExecutable* is removed by the finalizer registered by the old Weak<>.

This change makes memory usage of JITThunks table 1/4.

  • heap/Weak.cpp:

(JSC::weakClearSlowCase):

  • heap/Weak.h:

(JSC::Weak::Weak):
(JSC::Weak::isHashTableEmptyValue const):
(JSC::Weak::unsafeImpl const):
(WTF::HashTraits<JSC::Weak<T>>::isEmptyValue):

  • heap/WeakInlines.h:

(JSC::Weak<T>::Weak):

  • jit/JITThunks.cpp:

(JSC::JITThunks::JITThunks):
(JSC::JITThunks::WeakNativeExecutableHash::hash):
(JSC::JITThunks::WeakNativeExecutableHash::equal):
(JSC::JITThunks::HostKeySearcher::hash):
(JSC::JITThunks::HostKeySearcher::equal):
(JSC::JITThunks::NativeExecutableTranslator::hash):
(JSC::JITThunks::NativeExecutableTranslator::equal):
(JSC::JITThunks::NativeExecutableTranslator::translate):
(JSC::JITThunks::finalize):
(JSC::JITThunks::hostFunctionStub):
(JSC::JITThunks::clearHostFunctionStubs): Deleted.

  • jit/JITThunks.h:
  • runtime/NativeExecutable.h:
  • tools/JSDollarVM.cpp:

(JSC::functionGCSweepAsynchronously):
(JSC::functionCreateEmptyFunctionWithName):
(JSC::JSDollarVM::finishCreation):

2:56 PM Changeset in webkit [256778] by Alan Coon
  • 1 copy in tags/Safari-610.1.3.1

Tag Safari-610.1.3.1.

2:54 PM Changeset in webkit [256777] by Brent Fulgham
  • 5 edits
    1 add in trunk/Tools

Update WebKit Tools to issue mach extensions as needed
https://bugs.webkit.org/show_bug.cgi?id=207850
<rdar://problem/59521019>

Reviewed by Per Arne Vollan.

Revise the codesign settings for our testing tools to allow the process to vend mach extensions
to its child processes (WebContent, GPU, Network, etc.) as needed.

  • MiniBrowser/MiniBrowser.entitlements:
  • TestWebKitAPI/Configurations/TestWebKitAPI-macOS.entitlements: Added.
  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • WebKitTestRunner/Configurations/WebKitTestRunner.entitlements:
2:53 PM Changeset in webkit [256776] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207861

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:47 PM Changeset in webkit [256775] by Alan Coon
  • 8 edits in branches/safari-610.1.3-branch/Source

Versioning.

2:40 PM Changeset in webkit [256774] by Jon Davis
  • 29 edits
    9 adds in trunk/Source/WebInspectorUI

Update resource, type, and instrument icons for light, dark, and override colors
https://bugs.webkit.org/show_bug.cgi?id=207587

Reviewed by Timothy Hatcher.

  • UserInterface/Images/ApplicationCacheManifest.svg: Added.
  • UserInterface/Images/Beacon.svg:
  • UserInterface/Images/ClippingIcons.svg: Added.
  • UserInterface/Images/Cookie.svg: Added.
  • UserInterface/Images/Database.svg: Added.
  • UserInterface/Images/DocumentIcons.svg: Added.
  • UserInterface/Images/FolderGeneric.svg: Added.
  • UserInterface/Images/InstrumentIcons.svg: Added.
  • UserInterface/Images/Origin.svg:
  • UserInterface/Images/Stopwatch.svg:
  • UserInterface/Images/TableIcons.svg: Added.
  • UserInterface/Images/TypeIcons.svg: Added.
  • UserInterface/Views/AuditTreeElement.css:

(.audit.test-case .icon):
(.audit.test-group .icon):
(.audit.test-case-result .icon):
(.audit.test-group-result .icon):
(@media (prefers-color-scheme: dark) .audit.test-case .icon):
(@media (prefers-color-scheme: dark) .audit.test-group .icon):
(@media (prefers-color-scheme: dark) .audit.test-case-result .icon):
(@media (prefers-color-scheme: dark) .audit.test-group-result .icon):

  • UserInterface/Views/BreakpointTreeElement.css:

(.breakpoint-exception-icon .icon):
(.breakpoint-assertion-icon .icon):
(.breakpoint-microtask-icon .icon):
(.breakpoint-paused-icon .icon):
(@media (prefers-color-scheme: dark) .breakpoint-exception-icon .icon):
(@media (prefers-color-scheme: dark) .breakpoint-assertion-icon .icon):
(@media (prefers-color-scheme: dark) .breakpoint-microtask-icon .icon):
(@media (prefers-color-scheme: dark) .breakpoint-paused-icon .icon):

  • UserInterface/Views/CallFrameIcons.css:

(.program-icon .icon):
(.function-icon .icon):
(.event-listener-icon .icon):
(.native-icon .icon):
(.tail-deleted .icon):
(@media (prefers-color-scheme: dark) .program-icon .icon):
(@media (prefers-color-scheme: dark) .function-icon .icon):
(@media (prefers-color-scheme: dark) .event-listener-icon .icon):
(@media (prefers-color-scheme: dark) .native-icon .icon):
(@media (prefers-color-scheme: dark) .tail-deleted .icon):

  • UserInterface/Views/CanvasSidebarPanel.css:

(.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.folder-icon > .icon):
(@media (prefers-color-scheme: dark) .sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.folder-icon > .icon):

  • UserInterface/Views/DOMBreakpointTreeElement.css:

(.breakpoint.dom.breakpoint-for-subtree-modified:not(.breakpoint-paused-icon) .icon):
(.breakpoint.dom.breakpoint-for-attribute-modified:not(.breakpoint-paused-icon) .icon):
(.breakpoint.dom.breakpoint-for-node-removed:not(.breakpoint-paused-icon) .icon):
(@media (prefers-color-scheme: dark) .breakpoint.dom.breakpoint-for-subtree-modified:not(.breakpoint-paused-icon) .icon):
(@media (prefers-color-scheme: dark) .breakpoint.dom.breakpoint-for-attribute-modified:not(.breakpoint-paused-icon) .icon):
(@media (prefers-color-scheme: dark) .breakpoint.dom.breakpoint-for-node-removed:not(.breakpoint-paused-icon) .icon):

  • UserInterface/Views/DOMNodeTreeElement.css:

(.tree-outline .item.dom-node .icon):
(@media (prefers-color-scheme: dark) .tree-outline .item.dom-node .icon):

  • UserInterface/Views/FolderIcon.css:

(.folder-icon .icon):
(.tree-outline:focus .folder-icon.selected .icon):
(.origin-icon .icon):
(.tree-outline:focus .origin-icon.selected .icon):
(@media (prefers-color-scheme: dark) .folder-icon .icon):
(@media (prefers-color-scheme: dark) .origin-icon .icon):

  • UserInterface/Views/HeapAllocationsTimelineOverviewGraph.css:

(.timeline-overview-graph.heap-allocations > img.snapshot):
(@media (prefers-color-scheme: dark) .timeline-overview-graph.heap-allocations > img.snapshot):

  • UserInterface/Views/HeapAllocationsTimelineView.css:

(.timeline-view.heap-allocations > .data-grid td .icon.heap-snapshot):
(@media (prefers-color-scheme: dark) .timeline-view.heap-allocations > .data-grid td .icon.heap-snapshot):

  • UserInterface/Views/HeapSnapshotInstancesContentView.css:

(.heap-snapshot .icon):
(.heap-snapshot .icon.native):
(.heap-snapshot .icon.boolean):
(.heap-snapshot .icon.function):
(.heap-snapshot .icon.number):
(.heap-snapshot .icon.bigint):
(.heap-snapshot .icon.object):
(.heap-snapshot .icon.node):
(.heap-snapshot .icon.regex):
(.heap-snapshot .icon.string):
(.heap-snapshot .icon.symbol):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.native):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.boolean):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.function):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.number):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.bigint):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.object):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.node):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.regex):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.string):
(@media (prefers-color-scheme: dark) .heap-snapshot .icon.symbol):

  • UserInterface/Views/IdleTreeElement.css:

(.details-section.call-stack .idle .icon):
(@media (prefers-color-scheme: dark) .details-section.call-stack .idle .icon):

  • UserInterface/Views/LayerDetailsSidebarPanel.css:

(.panel.details.layer .name-column .icon):
(.panel.details.layer tr.reflection .name-column .icon):
(.panel.details.layer tr.pseudo-element .name-column .icon):
(@media (prefers-color-scheme: dark) .panel.details.layer .name-column .icon):
(@media (prefers-color-scheme: dark) .panel.details.layer tr.reflection .name-column .icon):
(@media (prefers-color-scheme: dark) .panel.details.layer tr.pseudo-element .name-column .icon):

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.css:

(.panel.details.layer-tree .name-column .icon):
(.panel.details.layer-tree tr.reflection .name-column .icon):
(.panel.details.layer-tree tr.pseudo-element .name-column .icon):
(@media (prefers-color-scheme: dark) .panel.details.layer-tree .name-column .icon):
(@media (prefers-color-scheme: dark) .panel.details.layer-tree tr.reflection .name-column .icon):
(@media (prefers-color-scheme: dark) .panel.details.layer-tree tr.pseudo-element .name-column .icon):

  • UserInterface/Views/NetworkTableContentView.css:

(.network-table > .table li:not(.selected) .cell:not(.current-session)):
(.network-table > .table .cell.dom-node.name .icon):
(@media (prefers-color-scheme: dark) .breakpoint-assertion-icon .icon):
(@media (prefers-color-scheme: dark) .network-table > .table .cell.dom-node.name .icon):
(.network-table .cell.dom-node.name .icon): Deleted.

  • UserInterface/Views/ObjectTreePropertyTreeElement.css:

(.object-tree-property.boolean > .icon):
(.object-tree-property.function > .icon):
(.object-tree-property.number > .icon):
(.object-tree-property.bigint > .icon):
(.object-tree-property.object > .icon):
(.object-tree-property.object.null > .icon):
(.object-tree-property.object.node > .icon):
(.object-tree-property.regex > .icon):
(.object-tree-property.string > .icon):
(.object-tree-property.symbol > .icon):
(.object-tree-property.accessor > .icon,):
(.object-tree-property.had-error > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.boolean > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.function > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.number > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.bigint > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.object > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.object.null > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.object.node > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.regex > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.string > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.symbol > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.accessor > .icon,):
(@media (prefers-color-scheme: dark) .object-tree-property.had-error > .icon):

  • UserInterface/Views/PathComponentIcons.css:

(.request-icon .icon):
(.response-icon .icon):
(.heap-snapshot-summary-icon .icon):
(.heap-snapshot-instances-icon .icon):
(.heap-snapshot-object-graph-icon .icon):
(.dom-element-icon .icon):
(.dom-pseudo-element-icon .icon):
(.dom-text-node-icon .icon):
(.dom-comment-icon .icon):
(.dom-document-type-icon .icon):
(.dom-document-icon .icon):
(.dom-character-data-icon .icon):
(.dom-node-icon .icon):
(.object-icon .icon):
(.function-icon .icon):
(.native-icon .icon):
(.program-icon .icon):
(.events-icon .icon):
(.call-trees-icon .icon):
(.snapshot-list-icon .icon):
(.snapshot-diff-icon .icon):
(.image-icon .icon):
(.source-icon .icon):
(@media (prefers-color-scheme: dark) .request-icon .icon):
(@media (prefers-color-scheme: dark) .response-icon .icon):
(@media (prefers-color-scheme: dark) .heap-snapshot-summary-icon .icon):
(@media (prefers-color-scheme: dark) .heap-snapshot-instances-icon .icon):
(@media (prefers-color-scheme: dark) .heap-snapshot-object-graph-icon .icon):
(@media (prefers-color-scheme: dark) .dom-element-icon .icon):
(@media (prefers-color-scheme: dark) .dom-pseudo-element-icon .icon):
(@media (prefers-color-scheme: dark) .dom-text-node-icon .icon):
(@media (prefers-color-scheme: dark) .dom-comment-icon .icon):
(@media (prefers-color-scheme: dark) .dom-document-type-icon .icon):
(@media (prefers-color-scheme: dark) .dom-document-icon .icon):
(@media (prefers-color-scheme: dark) .dom-character-data-icon .icon):
(@media (prefers-color-scheme: dark) .dom-node-icon .icon):
(@media (prefers-color-scheme: dark) .object-icon .icon):
(@media (prefers-color-scheme: dark) .function-icon .icon):
(@media (prefers-color-scheme: dark) .native-icon .icon):
(@media (prefers-color-scheme: dark) .program-icon .icon):
(@media (prefers-color-scheme: dark) .events-icon .icon):
(@media (prefers-color-scheme: dark) .call-trees-icon .icon):
(@media (prefers-color-scheme: dark) .snapshot-list-icon .icon):
(@media (prefers-color-scheme: dark) .snapshot-diff-icon .icon):
(@media (prefers-color-scheme: dark) .source-icon .icon):

  • UserInterface/Views/ProfileView.css:

(.profile > .data-grid td .icon.function-icon):
(.profile > .data-grid td .icon.native-icon):
(.profile > .data-grid td .icon.program-icon):
(@media (prefers-color-scheme: dark) .profile > .data-grid td .icon.function-icon):
(@media (prefers-color-scheme: dark) .profile > .data-grid td .icon.native-icon):
(@media (prefers-color-scheme: dark) .profile > .data-grid td .icon.program-icon):

  • UserInterface/Views/ResourceIcons.css:

(.resource-icon .icon):
(.resource-icon.override .icon):
(.resource-icon.resource-type-document .icon):
(.resource-icon.resource-type-document.override .icon):
(.resource-icon.resource-type-image .icon):
(.resource-icon.resource-type-image.override .icon):
(.resource-icon.resource-type-font .icon):
(.resource-icon.resource-type-font.override .icon):
(:matches(.resource-icon.resource-type-style-sheet, .style-sheet-icon) .icon):
(:matches(.resource-icon.resource-type-style-sheet.override, .style-sheet-icon.override) .icon):
(.resource-icon.resource-type-script .icon):
(.resource-icon.resource-type-script.override .icon):
(.anonymous-script-icon .icon):
(.source-map-resource.resource-icon .icon):
(.source-map-resource.resource-icon.resource-type-style-sheet .icon):
(.source-map-resource.resource-icon.resource-type-script .icon):
(.script.worker-icon .icon):
(.script.worker-icon.override .icon):
(.resource-icon.resource-type-websocket .icon):
(.resource-icon.resource-type-ping .icon,):
(.resource-icon.resource-type-range .icon):
(@media (prefers-color-scheme: dark) .resource-icon .icon):
(@media (prefers-color-scheme: dark) .resource-icon.override .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-document .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-document.override .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-image .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-image.override .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-font .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-font.override .icon):
(@media (prefers-color-scheme: dark) :matches(.resource-icon.resource-type-style-sheet, .style-sheet-icon) .icon):
(@media (prefers-color-scheme: dark) :matches(.resource-icon.resource-type-style-sheet.override, .style-sheet-icon.override) .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-script .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-script.override .icon):
(@media (prefers-color-scheme: dark) .anonymous-script-icon .icon):
(@media (prefers-color-scheme: dark) .source-map-resource.resource-icon .icon):
(@media (prefers-color-scheme: dark) .source-map-resource.resource-icon.resource-type-style-sheet .icon):
(@media (prefers-color-scheme: dark) .source-map-resource.resource-icon.resource-type-script .icon):
(@media (prefers-color-scheme: dark) .script.worker-icon .icon):
(@media (prefers-color-scheme: dark) .script.worker-icon.override .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-websocket .icon):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-ping .icon,):
(@media (prefers-color-scheme: dark) .resource-icon.resource-type-range .icon):
(.large .resource-icon .icon): Deleted.
(.large .resource-icon.resource-type-document .icon): Deleted.
(.large .resource-icon.resource-type-image .icon): Deleted.
(.large .resource-icon.resource-type-font .icon): Deleted.
(.large :matches(.resource-icon.resource-type-style-sheet, .style-sheet-icon) .icon): Deleted.
(.large .resource-icon.resource-type-script .icon): Deleted.
(.large .anonymous-script-icon .icon): Deleted.
(.large .source-map-resource.resource-icon .icon): Deleted.
(.large .source-map-resource.resource-icon.resource-type-style-sheet .icon): Deleted.
(.large .source-map-resource.resource-icon.resource-type-script .icon): Deleted.
(.large .script.worker-icon .icon): Deleted.
(.large .resource-icon.resource-type-websocket .icon): Deleted.
(.large .resource-icon.resource-type-range .icon): Deleted.

  • UserInterface/Views/SearchIcons.css:

(.dom-match-element-icon .icon):
(.dom-match-text-node-icon .icon):
(.dom-match-comment-icon .icon):
(.dom-match-document-type-icon .icon):
(.dom-match-character-data-icon .icon):
(.dom-match-node-icon .icon):
(.source-code-match .icon):
(@media (prefers-color-scheme: dark) .dom-match-element-icon .icon):
(@media (prefers-color-scheme: dark) .dom-match-text-node-icon .icon):
(@media (prefers-color-scheme: dark) .dom-match-comment-icon .icon):
(@media (prefers-color-scheme: dark) .dom-match-document-type-icon .icon):
(@media (prefers-color-scheme: dark) .dom-match-character-data-icon .icon):
(@media (prefers-color-scheme: dark) .dom-match-node-icon .icon):
(@media (prefers-color-scheme: dark) .source-code-match .icon):

  • UserInterface/Views/StorageIcons.css:

(.application-cache-manifest .icon):
(.application-cache-frame .icon):
(.cookie-icon .icon):
(.local-storage-icon .icon):
(.session-storage-icon .icon):
(.database-icon .icon):
(.database-table-icon .icon):
(@media (prefers-color-scheme: dark) .application-cache-manifest .icon):
(@media (prefers-color-scheme: dark) .application-cache-frame .icon):
(@media (prefers-color-scheme: dark) .local-storage-icon .icon):
(@media (prefers-color-scheme: dark) .session-storage-icon .icon):
(@media (prefers-color-scheme: dark) .database-icon .icon):
(@media (prefers-color-scheme: dark) .database-table-icon .icon):

  • UserInterface/Views/StyleRuleIcons.css:

(.author-style-rule-icon .icon):
(.author-style-rule-icon.pseudo-selector .icon):
(.user-style-rule-icon .icon):
(.user-style-rule-icon.pseudo-selector .icon):
(.user-agent-style-rule-icon .icon):
(.user-agent-style-rule-icon.pseudo-selector .icon):
(.inspector-style-rule-icon .icon):
(.inspector-style-rule-icon.pseudo-selector .icon):
(.inherited-style-rule-icon .icon):
(.inherited-element-style-rule-icon .icon):
(@media (prefers-color-scheme: dark) .author-style-rule-icon .icon):
(@media (prefers-color-scheme: dark) .author-style-rule-icon.pseudo-selector .icon):
(@media (prefers-color-scheme: dark) .user-style-rule-icon .icon):
(@media (prefers-color-scheme: dark) .user-style-rule-icon.pseudo-selector .icon):
(@media (prefers-color-scheme: dark) .user-agent-style-rule-icon .icon):
(@media (prefers-color-scheme: dark) .user-agent-style-rule-icon.pseudo-selector .icon):
(@media (prefers-color-scheme: dark) .inspector-style-rule-icon .icon):
(@media (prefers-color-scheme: dark) .inspector-style-rule-icon.pseudo-selector .icon):
(@media (prefers-color-scheme: dark) .inherited-style-rule-icon .icon):
(@media (prefers-color-scheme: dark) .inherited-element-style-rule-icon .icon):

  • UserInterface/Views/TimelineIcons.css:

(.network-icon .icon):
(.script-icon .icon):
(.cpu-icon .icon):
(.memory-icon .icon):
(.heap-allocations-icon .icon):
(.layout-icon .icon):
(.rendering-frame-icon .icon):
(.media-icon .icon):
(.stopwatch-icon .icon):
(.style-record .icon):
(.layout-record .icon):
(.paint-record .icon):
(.composite-record .icon):
(.rendering-frame-record .icon):
(.api-record .icon):
(.evaluated-record .icon):
(.event-record .icon):
(.probe-record .icon):
(.console-profile-record .icon):
(.garbage-collection-profile-record .icon):
(.timer-record .icon):
(.animation-frame-record .icon):
(.css-animation-record .icon):
(.css-transition-record .icon):
(.media-element-record .icon):
(.heap-snapshot-record .icon):
(@media (prefers-color-scheme: dark) .network-icon .icon):
(@media (prefers-color-scheme: dark) .script-icon .icon):
(@media (prefers-color-scheme: dark) .cpu-icon .icon):
(@media (prefers-color-scheme: dark) .memory-icon .icon):
(@media (prefers-color-scheme: dark) .heap-allocations-icon .icon):
(@media (prefers-color-scheme: dark) .layout-icon .icon):
(@media (prefers-color-scheme: dark) .rendering-frame-icon .icon):
(@media (prefers-color-scheme: dark) .media-icon .icon):
(@media (prefers-color-scheme: dark) .stopwatch-icon .icon):
(@media (prefers-color-scheme: dark) .style-record .icon):
(@media (prefers-color-scheme: dark) .layout-record .icon):
(@media (prefers-color-scheme: dark) .paint-record .icon):
(@media (prefers-color-scheme: dark) .composite-record .icon):
(@media (prefers-color-scheme: dark) .rendering-frame-record .icon):
(@media (prefers-color-scheme: dark) .api-record .icon):
(@media (prefers-color-scheme: dark) .evaluated-record .icon):
(@media (prefers-color-scheme: dark) .event-record .icon):
(@media (prefers-color-scheme: dark) .probe-record .icon):
(@media (prefers-color-scheme: dark) .console-profile-record .icon):
(@media (prefers-color-scheme: dark) .garbage-collection-profile-record .icon):
(@media (prefers-color-scheme: dark) .timer-record .icon):
(@media (prefers-color-scheme: dark) .animation-frame-record .icon):
(@media (prefers-color-scheme: dark) .css-animation-record .icon):
(@media (prefers-color-scheme: dark) .css-transition-record .icon):
(@media (prefers-color-scheme: dark) .media-element-record .icon):
(@media (prefers-color-scheme: dark) .heap-snapshot-record .icon):

  • UserInterface/Views/URLBreakpointTreeElement.css:

(.breakpoint.url:not(.breakpoint-paused-icon) .icon):
(@media (prefers-color-scheme: dark) .breakpoint.url:not(.breakpoint-paused-icon) .icon):

2:23 PM Changeset in webkit [256773] by Alan Bujtas
  • 5 edits
    4 adds in trunk

Inline boxes for images that represent nothing should collapse to empty.
https://bugs.webkit.org/show_bug.cgi?id=207740
<rdar://problem/57339992>

Reviewed by Darin Adler.

Source/WebCore:

Tests: fast/images/inline-image-box-with-no-alt-should-collapse-no-quirks.html

fast/images/inline-image-box-with-no-alt-should-collapse-quirks.html

Let's collapse inline boxes when we would display a broken image only and

  1. alt attribute is explicitly set to empty and
  2. both height and width are auto or we are in standards mode.

https://html.spec.whatwg.org/multipage/rendering.html#images-3

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::shouldCollapseToEmpty const):
(WebCore::RenderImage::computeReplacedLogicalWidth const):
(WebCore::RenderImage::computeReplacedLogicalHeight const):
(WebCore::RenderImage::imageChanged):
(WebCore::RenderImage::layout):

  • rendering/RenderImage.h:

LayoutTests:

  • fast/images/inline-image-box-with-no-alt-should-collapse-no-quirks-expected.txt: Added.
  • fast/images/inline-image-box-with-no-alt-should-collapse-no-quirks.html: Added.
  • fast/images/inline-image-box-with-no-alt-should-collapse-quirks-expected.txt: Added.
  • fast/images/inline-image-box-with-no-alt-should-collapse-quirks.html: Added.
  • tables/mozilla/bugs/bug56201.html:
2:19 PM Changeset in webkit [256772] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac ] fast/images/webp-as-image.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=207718

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:00 PM Changeset in webkit [256771] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] fast/images/slower-decoding-than-animation-image.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207859

Unreviewed test gardening

  • platform/mac/TestExpectations:
1:55 PM Changeset in webkit [256770] by Peng Liu
  • 20 edits
    1 move in trunk

Fix check-webkit-style errors related to AVFoundationSPI.h
https://bugs.webkit.org/show_bug.cgi?id=207834

Reviewed by Eric Carlson.

Source/WebCore:

No new tests, no functional change.

This patch fixes check-webkit-style errors, especially the ones related to soft-link headers.
The soft-link headers should be included after other headers.

  • platform/audio/ios/AudioSessionIOS.mm:
  • platform/audio/ios/MediaSessionManagerIOS.mm:
  • platform/graphics/avfoundation/MediaPlaybackTargetCocoa.mm:
  • platform/graphics/avfoundation/objc/AVStreamDataParserMIMETypeCache.mm:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
  • platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:
  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

Source/WebCore/PAL:

Move AVFoundationSPI.h from folder "mac" to "cocoa" because it is used by both iOS and Mac.

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/AVFoundationSPI.h: Renamed from Source/WebCore/PAL/pal/spi/mac/AVFoundationSPI.h.

Source/WTF:

Add HAVE_VIDEO_PERFORMANCE_METRICS and USE_AV_SAMPLE_BUFFER_DISPLAY_LAYER to fix check-webkit-style errors.

  • wtf/PlatformHave.h:
  • wtf/PlatformUse.h:

Tools:

We need to use case-insensitive comparison to check whether the headers are alphabetically sorted in each header section.
Soft-link headers can be included as either "file.h" or <file.h>.

  • Scripts/webkitpy/style/checkers/cpp.py:

(_classify_include):
(check_include_line):

1:49 PM Changeset in webkit [256769] by Ryan Haddad
  • 2 edits in branches/safari-609-branch/Tools

Cherry-pick r255566. rdar://problem/59524417

Unreviewed, disable ResponsivenessTimer test in Debug / ASAN

The ResponsivenessTimer is disabled for those configurations as of r255518.

  • TestWebKitAPI/Tests/WebKit/ResponsivenessTimerCrash.mm:

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

1:45 PM Changeset in webkit [256768] by Ryan Haddad
  • 2 edits in branches/safari-609-branch/Tools

Unreviewed build fix. rdar://59461287

  • TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
1:44 PM Changeset in webkit [256767] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ Mojave wk1 ] fast/canvas/webgl/texImage2D-mse-flipY-false.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207857

Unreviewed test gardening

  • platform/mac-wk1/TestExpectations:
1:24 PM Changeset in webkit [256766] by Tadeu Zagallo
  • 3 edits
    1 add in trunk

[Wasm] REGRESSION(r256665): Wasm->JS call IC needs to save memory size register
https://bugs.webkit.org/show_bug.cgi?id=207849

Reviewed by Mark Lam.

JSTests:

  • wasm/regress/regress-256665.js: Added.

(f):

Source/JavaScriptCore:

When generating the call IC, we should select the callee saves using BoundsChecking mode in order
to obey to the calling conventions described in r256665. Currently, we won't restore the memory size
register when calling the Wasm LLInt through the call IC.

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::calleeSaves const):

1:22 PM Changeset in webkit [256765] by Keith Rollin
  • 2 edits in trunk/Tools

Unreviewed build fix after r256715.

Fix tvOS and watchOS builds.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:
1:13 PM Changeset in webkit [256764] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Null Ptr Deref @ WebCore::Node::Treescope
https://bugs.webkit.org/show_bug.cgi?id=207748

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-02-17
Reviewed by Darin Adler.

Source/WebCore:

Added a check for isTextField after updateLayoutIgnorePendingStylesheets as that could cause modification of input element type.

Test: editing/selection/ignore-selection-range-on-input-style-change.html

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setSelectionRange):

LayoutTests:

Added a regression test provided by Ryosuke Niwa to verify the fix.

  • editing/selection/ignore-selection-range-on-input-style-change-expected.txt: Added.
  • editing/selection/ignore-selection-range-on-input-style-change.html: Added.
1:06 PM Changeset in webkit [256763] by Alan Bujtas
  • 3 edits
    186 copies
    1 add
    1 delete in trunk/LayoutTests

[LFC] Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=207846

Move LFC regression tests under fast/layoutformattingcontext/ and skip them on iOS for now.

  • fast/layoutformattingcontext/block-only/abs-pos-with-border-padding-and-float-child-expected.html: Renamed from LayoutTests/fast/block/block-only/abs-pos-with-border-padding-and-float-child-expected.html.
  • fast/layoutformattingcontext/block-only/abs-pos-with-border-padding-and-float-child.html: Renamed from LayoutTests/fast/block/block-only/abs-pos-with-border-padding-and-float-child.html.
  • fast/layoutformattingcontext/block-only/absolute-auto-with-sibling-margin-bottom-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-auto-with-sibling-margin-bottom-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-auto-with-sibling-margin-bottom.html: Renamed from LayoutTests/fast/block/block-only/absolute-auto-with-sibling-margin-bottom.html.
  • fast/layoutformattingcontext/block-only/absolute-height-stretch-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-height-stretch-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-height-stretch.html: Renamed from LayoutTests/fast/block/block-only/absolute-height-stretch.html.
  • fast/layoutformattingcontext/block-only/absolute-left-auto-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-left-auto-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-left-auto.html: Renamed from LayoutTests/fast/block/block-only/absolute-left-auto.html.
  • fast/layoutformattingcontext/block-only/absolute-left-right-top-bottom-auto-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-left-right-top-bottom-auto-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-left-right-top-bottom-auto.html: Renamed from LayoutTests/fast/block/block-only/absolute-left-right-top-bottom-auto.html.
  • fast/layoutformattingcontext/block-only/absolute-nested-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-nested-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-nested.html: Renamed from LayoutTests/fast/block/block-only/absolute-nested.html.
  • fast/layoutformattingcontext/block-only/absolute-nested2-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-nested2-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-nested2.html: Renamed from LayoutTests/fast/block/block-only/absolute-nested2.html.
  • fast/layoutformattingcontext/block-only/absolute-position-left-right-margin-expected.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-left-right-margin-expected.html.
  • fast/layoutformattingcontext/block-only/absolute-position-left-right-margin.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-left-right-margin.html.
  • fast/layoutformattingcontext/block-only/absolute-position-min-max-height-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-position-min-max-height-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-position-min-max-height.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-min-max-height.html.
  • fast/layoutformattingcontext/block-only/absolute-position-min-max-width-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-position-min-max-width-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-position-min-max-width.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-min-max-width.html.
  • fast/layoutformattingcontext/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context.html.
  • fast/layoutformattingcontext/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context2-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context2-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context2.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context2.html.
  • fast/layoutformattingcontext/block-only/absolute-position-with-margin-auto-simple-expected.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-with-margin-auto-simple-expected.html.
  • fast/layoutformattingcontext/block-only/absolute-position-with-margin-auto-simple.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-with-margin-auto-simple.html.
  • fast/layoutformattingcontext/block-only/absolute-position-with-margin-auto-simple2-expected.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-with-margin-auto-simple2-expected.html.
  • fast/layoutformattingcontext/block-only/absolute-position-with-margin-auto-simple2.html: Renamed from LayoutTests/fast/block/block-only/absolute-position-with-margin-auto-simple2.html.
  • fast/layoutformattingcontext/block-only/absolute-positioned-min-max-percentage-with-parent-padding-expected.html: Renamed from LayoutTests/fast/block/block-only/absolute-positioned-min-max-percentage-with-parent-padding-expected.html.
  • fast/layoutformattingcontext/block-only/absolute-positioned-min-max-percentage-with-parent-padding.html: Renamed from LayoutTests/fast/block/block-only/absolute-positioned-min-max-percentage-with-parent-padding.html.
  • fast/layoutformattingcontext/block-only/absolute-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-simple.html: Renamed from LayoutTests/fast/block/block-only/absolute-simple.html.
  • fast/layoutformattingcontext/block-only/absolute-width-shrink-to-fit-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-width-shrink-to-fit-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-width-shrink-to-fit.html: Renamed from LayoutTests/fast/block/block-only/absolute-width-shrink-to-fit.html.
  • fast/layoutformattingcontext/block-only/absolute-width-stretch-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-width-stretch-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-width-stretch.html: Renamed from LayoutTests/fast/block/block-only/absolute-width-stretch.html.
  • fast/layoutformattingcontext/block-only/absolute-with-static-block-position-nested-expected.txt: Renamed from LayoutTests/fast/block/block-only/absolute-with-static-block-position-nested-expected.txt.
  • fast/layoutformattingcontext/block-only/absolute-with-static-block-position-nested.html: Renamed from LayoutTests/fast/block/block-only/absolute-with-static-block-position-nested.html.
  • fast/layoutformattingcontext/block-only/almost-intruding-left-float-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/almost-intruding-left-float-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/almost-intruding-left-float-simple.html: Renamed from LayoutTests/fast/block/block-only/almost-intruding-left-float-simple.html.
  • fast/layoutformattingcontext/block-only/block-replaced-with-vertical-margins-expected.html: Renamed from LayoutTests/fast/block/block-only/block-replaced-with-vertical-margins-expected.html.
  • fast/layoutformattingcontext/block-only/block-replaced-with-vertical-margins.html: Renamed from LayoutTests/fast/block/block-only/block-replaced-with-vertical-margins.html.
  • fast/layoutformattingcontext/block-only/body-height-with-auto-html-height-quirk-expected.txt: Renamed from LayoutTests/fast/block/block-only/body-height-with-auto-html-height-quirk-expected.txt.
  • fast/layoutformattingcontext/block-only/body-height-with-auto-html-height-quirk.html: Renamed from LayoutTests/fast/block/block-only/body-height-with-auto-html-height-quirk.html.
  • fast/layoutformattingcontext/block-only/body-height-with-auto-html-height-quirk2-expected.txt: Renamed from LayoutTests/fast/block/block-only/body-height-with-auto-html-height-quirk2-expected.txt.
  • fast/layoutformattingcontext/block-only/body-height-with-auto-html-height-quirk2.html: Renamed from LayoutTests/fast/block/block-only/body-height-with-auto-html-height-quirk2.html.
  • fast/layoutformattingcontext/block-only/body-height-with-non-auto-html-height-quirk-expected.txt: Renamed from LayoutTests/fast/block/block-only/body-height-with-non-auto-html-height-quirk-expected.txt.
  • fast/layoutformattingcontext/block-only/body-height-with-non-auto-html-height-quirk.html: Renamed from LayoutTests/fast/block/block-only/body-height-with-non-auto-html-height-quirk.html.
  • fast/layoutformattingcontext/block-only/body-height-with-non-auto-html-height-quirk2-expected.txt: Renamed from LayoutTests/fast/block/block-only/body-height-with-non-auto-html-height-quirk2-expected.txt.
  • fast/layoutformattingcontext/block-only/body-height-with-non-auto-html-height-quirk2.html: Renamed from LayoutTests/fast/block/block-only/body-height-with-non-auto-html-height-quirk2.html.
  • fast/layoutformattingcontext/block-only/border-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/border-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/border-simple.html: Renamed from LayoutTests/fast/block/block-only/border-simple.html.
  • fast/layoutformattingcontext/block-only/box-sizing-inflow-out-of-flow-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/box-sizing-inflow-out-of-flow-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/box-sizing-inflow-out-of-flow-simple.html: Renamed from LayoutTests/fast/block/block-only/box-sizing-inflow-out-of-flow-simple.html.
  • fast/layoutformattingcontext/block-only/collapsed-margin-with-min-height-expected.txt: Renamed from LayoutTests/fast/block/block-only/collapsed-margin-with-min-height-expected.txt.
  • fast/layoutformattingcontext/block-only/collapsed-margin-with-min-height.html: Renamed from LayoutTests/fast/block/block-only/collapsed-margin-with-min-height.html.
  • fast/layoutformattingcontext/block-only/collapsed-through-siblings-expected.txt: Renamed from LayoutTests/fast/block/block-only/collapsed-through-siblings-expected.txt.
  • fast/layoutformattingcontext/block-only/collapsed-through-siblings.html: Renamed from LayoutTests/fast/block/block-only/collapsed-through-siblings.html.
  • fast/layoutformattingcontext/block-only/collapsed-through-with-parent-expected.txt: Renamed from LayoutTests/fast/block/block-only/collapsed-through-with-parent-expected.txt.
  • fast/layoutformattingcontext/block-only/collapsed-through-with-parent.html: Renamed from LayoutTests/fast/block/block-only/collapsed-through-with-parent.html.
  • fast/layoutformattingcontext/block-only/fixed-nested-expected.txt: Renamed from LayoutTests/fast/block/block-only/fixed-nested-expected.txt.
  • fast/layoutformattingcontext/block-only/fixed-nested.html: Renamed from LayoutTests/fast/block/block-only/fixed-nested.html.
  • fast/layoutformattingcontext/block-only/float-and-siblings-with-margins-expected.txt: Renamed from LayoutTests/fast/block/block-only/float-and-siblings-with-margins-expected.txt.
  • fast/layoutformattingcontext/block-only/float-and-siblings-with-margins.html: Renamed from LayoutTests/fast/block/block-only/float-and-siblings-with-margins.html.
  • fast/layoutformattingcontext/block-only/float-avoider-multiple-roots-expected.txt: Renamed from LayoutTests/fast/block/block-only/float-avoider-multiple-roots-expected.txt.
  • fast/layoutformattingcontext/block-only/float-avoider-multiple-roots.html: Renamed from LayoutTests/fast/block/block-only/float-avoider-multiple-roots.html.
  • fast/layoutformattingcontext/block-only/float-avoider-simple-left-expected.txt: Renamed from LayoutTests/fast/block/block-only/float-avoider-simple-left-expected.txt.
  • fast/layoutformattingcontext/block-only/float-avoider-simple-left.html: Renamed from LayoutTests/fast/block/block-only/float-avoider-simple-left.html.
  • fast/layoutformattingcontext/block-only/float-avoider-simple-right-expected.txt: Renamed from LayoutTests/fast/block/block-only/float-avoider-simple-right-expected.txt.
  • fast/layoutformattingcontext/block-only/float-avoider-simple-right.html: Renamed from LayoutTests/fast/block/block-only/float-avoider-simple-right.html.
  • fast/layoutformattingcontext/block-only/float-avoider-with-margins-expected.txt: Renamed from LayoutTests/fast/block/block-only/float-avoider-with-margins-expected.txt.
  • fast/layoutformattingcontext/block-only/float-avoider-with-margins.html: Renamed from LayoutTests/fast/block/block-only/float-avoider-with-margins.html.
  • fast/layoutformattingcontext/block-only/float-left-when-container-has-padding-margin-expected.txt: Renamed from LayoutTests/fast/block/block-only/float-left-when-container-has-padding-margin-expected.txt.
  • fast/layoutformattingcontext/block-only/float-left-when-container-has-padding-margin.html: Renamed from LayoutTests/fast/block/block-only/float-left-when-container-has-padding-margin.html.
  • fast/layoutformattingcontext/block-only/float-min-max-height-expected.txt: Renamed from LayoutTests/fast/block/block-only/float-min-max-height-expected.txt.
  • fast/layoutformattingcontext/block-only/float-min-max-height.html: Renamed from LayoutTests/fast/block/block-only/float-min-max-height.html.
  • fast/layoutformattingcontext/block-only/float-min-max-width-expected.txt: Renamed from LayoutTests/fast/block/block-only/float-min-max-width-expected.txt.
  • fast/layoutformattingcontext/block-only/float-min-max-width.html: Renamed from LayoutTests/fast/block/block-only/float-min-max-width.html.
  • fast/layoutformattingcontext/block-only/floating-and-next-previous-inflow-with-margin-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-and-next-previous-inflow-with-margin-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-and-next-previous-inflow-with-margin-with-no-border-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-and-next-previous-inflow-with-margin-with-no-border-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-and-next-previous-inflow-with-margin-with-no-border.html: Renamed from LayoutTests/fast/block/block-only/floating-and-next-previous-inflow-with-margin-with-no-border.html.
  • fast/layoutformattingcontext/block-only/floating-and-next-previous-inflow-with-margin.html: Renamed from LayoutTests/fast/block/block-only/floating-and-next-previous-inflow-with-margin.html.
  • fast/layoutformattingcontext/block-only/floating-box-clear-both-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-clear-both-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-clear-both-simple.html: Renamed from LayoutTests/fast/block/block-only/floating-box-clear-both-simple.html.
  • fast/layoutformattingcontext/block-only/floating-box-clear-right-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-clear-right-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-clear-right-simple.html: Renamed from LayoutTests/fast/block/block-only/floating-box-clear-right-simple.html.
  • fast/layoutformattingcontext/block-only/floating-box-left-and-right-multiple-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-left-and-right-multiple-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-left-and-right-multiple-with-top-offset-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-left-and-right-multiple-with-top-offset-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-left-and-right-multiple-with-top-offset.html: Renamed from LayoutTests/fast/block/block-only/floating-box-left-and-right-multiple-with-top-offset.html.
  • fast/layoutformattingcontext/block-only/floating-box-left-and-right-multiple.html: Renamed from LayoutTests/fast/block/block-only/floating-box-left-and-right-multiple.html.
  • fast/layoutformattingcontext/block-only/floating-box-right-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-right-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-right-simple.html: Renamed from LayoutTests/fast/block/block-only/floating-box-right-simple.html.
  • fast/layoutformattingcontext/block-only/floating-box-with-clear-siblings-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-with-clear-siblings-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-with-clear-siblings.html: Renamed from LayoutTests/fast/block/block-only/floating-box-with-clear-siblings.html.
  • fast/layoutformattingcontext/block-only/floating-box-with-clear-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-with-clear-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-with-clear-simple.html: Renamed from LayoutTests/fast/block/block-only/floating-box-with-clear-simple.html.
  • fast/layoutformattingcontext/block-only/floating-box-with-new-formatting-context-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-with-new-formatting-context-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-with-new-formatting-context.html: Renamed from LayoutTests/fast/block/block-only/floating-box-with-new-formatting-context.html.
  • fast/layoutformattingcontext/block-only/floating-box-with-relative-positioned-sibling-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-box-with-relative-positioned-sibling-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-box-with-relative-positioned-sibling.html: Renamed from LayoutTests/fast/block/block-only/floating-box-with-relative-positioned-sibling.html.
  • fast/layoutformattingcontext/block-only/floating-left-and-right-with-clearance-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-left-and-right-with-clearance-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-left-and-right-with-clearance.html: Renamed from LayoutTests/fast/block/block-only/floating-left-and-right-with-clearance.html.
  • fast/layoutformattingcontext/block-only/floating-left-right-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-left-right-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-left-right-simple.html: Renamed from LayoutTests/fast/block/block-only/floating-left-right-simple.html.
  • fast/layoutformattingcontext/block-only/floating-left-right-with-all-margins-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-left-right-with-all-margins-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-left-right-with-all-margins.html: Renamed from LayoutTests/fast/block/block-only/floating-left-right-with-all-margins.html.
  • fast/layoutformattingcontext/block-only/floating-lefts-and-rights-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-lefts-and-rights-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-lefts-and-rights-simple.html: Renamed from LayoutTests/fast/block/block-only/floating-lefts-and-rights-simple.html.
  • fast/layoutformattingcontext/block-only/floating-multiple-lefts-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-multiple-lefts-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-multiple-lefts-in-body-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-multiple-lefts-in-body-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-multiple-lefts-in-body.html: Renamed from LayoutTests/fast/block/block-only/floating-multiple-lefts-in-body.html.
  • fast/layoutformattingcontext/block-only/floating-multiple-lefts-multiple-lines-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-multiple-lefts-multiple-lines-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-multiple-lefts-multiple-lines.html: Renamed from LayoutTests/fast/block/block-only/floating-multiple-lefts-multiple-lines.html.
  • fast/layoutformattingcontext/block-only/floating-multiple-lefts.html: Renamed from LayoutTests/fast/block/block-only/floating-multiple-lefts.html.
  • fast/layoutformattingcontext/block-only/floating-with-new-block-formatting-context-expected.txt: Renamed from LayoutTests/fast/block/block-only/floating-with-new-block-formatting-context-expected.txt.
  • fast/layoutformattingcontext/block-only/floating-with-new-block-formatting-context.html: Renamed from LayoutTests/fast/block/block-only/floating-with-new-block-formatting-context.html.
  • fast/layoutformattingcontext/block-only/floats-and-block-formatting-roots-expected.html: Renamed from LayoutTests/fast/block/block-only/floats-and-block-formatting-roots-expected.html.
  • fast/layoutformattingcontext/block-only/floats-and-block-formatting-roots.html: Renamed from LayoutTests/fast/block/block-only/floats-and-block-formatting-roots.html.
  • fast/layoutformattingcontext/block-only/inflow-min-max-height-expected.txt: Renamed from LayoutTests/fast/block/block-only/inflow-min-max-height-expected.txt.
  • fast/layoutformattingcontext/block-only/inflow-min-max-height.html: Renamed from LayoutTests/fast/block/block-only/inflow-min-max-height.html.
  • fast/layoutformattingcontext/block-only/inflow-min-max-width-expected.txt: Renamed from LayoutTests/fast/block/block-only/inflow-min-max-width-expected.txt.
  • fast/layoutformattingcontext/block-only/inflow-min-max-width.html: Renamed from LayoutTests/fast/block/block-only/inflow-min-max-width.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-bottom-bottom-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-bottom-bottom-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-bottom-bottom.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-bottom-bottom.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-bottom-nested-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-bottom-nested-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-bottom-nested.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-bottom-nested.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-first-last-are-floating-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-first-last-are-floating-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-first-last-are-floating.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-first-last-are-floating.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-simple.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-simple.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-top-nested-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-top-nested-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-top-nested.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-top-nested.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-when-child-has-padding-border-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-when-child-has-padding-border-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-when-child-has-padding-border.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-when-child-has-padding-border.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-with-block-formatting-context-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-with-block-formatting-context-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-with-block-formatting-context.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-with-block-formatting-context.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-with-block-formatting-context2-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-with-block-formatting-context2-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-with-block-formatting-context2.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-with-block-formatting-context2.html.
  • fast/layoutformattingcontext/block-only/margin-collapse-with-clearance-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-collapse-with-clearance-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-collapse-with-clearance.html: Renamed from LayoutTests/fast/block/block-only/margin-collapse-with-clearance.html.
  • fast/layoutformattingcontext/block-only/margin-left-right-sizing-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-left-right-sizing-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-left-right-sizing-out-of-flow-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-left-right-sizing-out-of-flow-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-left-right-sizing-out-of-flow.html: Renamed from LayoutTests/fast/block/block-only/margin-left-right-sizing-out-of-flow.html.
  • fast/layoutformattingcontext/block-only/margin-left-right-sizing.html: Renamed from LayoutTests/fast/block/block-only/margin-left-right-sizing.html.
  • fast/layoutformattingcontext/block-only/margin-propagation-simple-content-height-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-propagation-simple-content-height-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-propagation-simple-content-height.html: Renamed from LayoutTests/fast/block/block-only/margin-propagation-simple-content-height.html.
  • fast/layoutformattingcontext/block-only/margin-sibling-collapse-propagated-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-sibling-collapse-propagated-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-sibling-collapse-propagated.html: Renamed from LayoutTests/fast/block/block-only/margin-sibling-collapse-propagated.html.
  • fast/layoutformattingcontext/block-only/margin-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/margin-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/margin-simple.html: Renamed from LayoutTests/fast/block/block-only/margin-simple.html.
  • fast/layoutformattingcontext/block-only/min-max-and-preferred-width-simple-expected.html: Renamed from LayoutTests/fast/block/block-only/min-max-and-preferred-width-simple-expected.html.
  • fast/layoutformattingcontext/block-only/min-max-and-preferred-width-simple.html: Renamed from LayoutTests/fast/block/block-only/min-max-and-preferred-width-simple.html.
  • fast/layoutformattingcontext/block-only/min-max-height-percentage-expected.txt: Renamed from LayoutTests/fast/block/block-only/min-max-height-percentage-expected.txt.
  • fast/layoutformattingcontext/block-only/min-max-height-percentage.html: Renamed from LayoutTests/fast/block/block-only/min-max-height-percentage.html.
  • fast/layoutformattingcontext/block-only/negative-margin-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/negative-margin-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/negative-margin-simple.html: Renamed from LayoutTests/fast/block/block-only/negative-margin-simple.html.
  • fast/layoutformattingcontext/block-only/non-auto-top-bottom-height-with-auto-margins-expected.txt: Renamed from LayoutTests/fast/block/block-only/non-auto-top-bottom-height-with-auto-margins-expected.txt.
  • fast/layoutformattingcontext/block-only/non-auto-top-bottom-height-with-auto-margins.html: Renamed from LayoutTests/fast/block/block-only/non-auto-top-bottom-height-with-auto-margins.html.
  • fast/layoutformattingcontext/block-only/non-auto-top-bottom-height-with-margins-expected.txt: Renamed from LayoutTests/fast/block/block-only/non-auto-top-bottom-height-with-margins-expected.txt.
  • fast/layoutformattingcontext/block-only/non-auto-top-bottom-height-with-margins.html: Renamed from LayoutTests/fast/block/block-only/non-auto-top-bottom-height-with-margins.html.
  • fast/layoutformattingcontext/block-only/non-auto-top-bottom-left-right-widht-height-out-of-flow-expected.txt: Renamed from LayoutTests/fast/block/block-only/non-auto-top-bottom-left-right-widht-height-out-of-flow-expected.txt.
  • fast/layoutformattingcontext/block-only/non-auto-top-bottom-left-right-widht-height-out-of-flow.html: Renamed from LayoutTests/fast/block/block-only/non-auto-top-bottom-left-right-widht-height-out-of-flow.html.
  • fast/layoutformattingcontext/block-only/out-of-flow-is-never-float-box-expected.html: Renamed from LayoutTests/fast/block/block-only/out-of-flow-is-never-float-box-expected.html.
  • fast/layoutformattingcontext/block-only/out-of-flow-is-never-float-box.html: Renamed from LayoutTests/fast/block/block-only/out-of-flow-is-never-float-box.html.
  • fast/layoutformattingcontext/block-only/out-of-flow-with-containing-block-border-padding-expected.txt: Renamed from LayoutTests/fast/block/block-only/out-of-flow-with-containing-block-border-padding-expected.txt.
  • fast/layoutformattingcontext/block-only/out-of-flow-with-containing-block-border-padding.html: Renamed from LayoutTests/fast/block/block-only/out-of-flow-with-containing-block-border-padding.html.
  • fast/layoutformattingcontext/block-only/padding-nested-expected.txt: Renamed from LayoutTests/fast/block/block-only/padding-nested-expected.txt.
  • fast/layoutformattingcontext/block-only/padding-nested.html: Renamed from LayoutTests/fast/block/block-only/padding-nested.html.
  • fast/layoutformattingcontext/block-only/padding-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/padding-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/padding-simple.html: Renamed from LayoutTests/fast/block/block-only/padding-simple.html.
  • fast/layoutformattingcontext/block-only/relative-auto-expected.txt: Renamed from LayoutTests/fast/block/block-only/relative-auto-expected.txt.
  • fast/layoutformattingcontext/block-only/relative-auto-with-parent-offset-expected.txt: Renamed from LayoutTests/fast/block/block-only/relative-auto-with-parent-offset-expected.txt.
  • fast/layoutformattingcontext/block-only/relative-auto-with-parent-offset.html: Renamed from LayoutTests/fast/block/block-only/relative-auto-with-parent-offset.html.
  • fast/layoutformattingcontext/block-only/relative-auto.html: Renamed from LayoutTests/fast/block/block-only/relative-auto.html.
  • fast/layoutformattingcontext/block-only/relative-bottom-expected.txt: Renamed from LayoutTests/fast/block/block-only/relative-bottom-expected.txt.
  • fast/layoutformattingcontext/block-only/relative-bottom.html: Renamed from LayoutTests/fast/block/block-only/relative-bottom.html.
  • fast/layoutformattingcontext/block-only/relative-position-when-containing-block-is-not-in-the-formatting-context-expected.txt: Renamed from LayoutTests/fast/block/block-only/relative-position-when-containing-block-is-not-in-the-formatting-context-expected.txt.
  • fast/layoutformattingcontext/block-only/relative-position-when-containing-block-is-not-in-the-formatting-context.html: Renamed from LayoutTests/fast/block/block-only/relative-position-when-containing-block-is-not-in-the-formatting-context.html.
  • fast/layoutformattingcontext/block-only/relative-right-expected.txt: Renamed from LayoutTests/fast/block/block-only/relative-right-expected.txt.
  • fast/layoutformattingcontext/block-only/relative-right.html: Renamed from LayoutTests/fast/block/block-only/relative-right.html.
  • fast/layoutformattingcontext/block-only/relative-siblings-expected.txt: Renamed from LayoutTests/fast/block/block-only/relative-siblings-expected.txt.
  • fast/layoutformattingcontext/block-only/relative-siblings.html: Renamed from LayoutTests/fast/block/block-only/relative-siblings.html.
  • fast/layoutformattingcontext/block-only/relative-simple-expected.txt: Renamed from LayoutTests/fast/block/block-only/relative-simple-expected.txt.
  • fast/layoutformattingcontext/block-only/relative-simple.html: Renamed from LayoutTests/fast/block/block-only/relative-simple.html.
  • fast/layoutformattingcontext/block-only/replaced-intrinsic-width-simple-expected.html: Renamed from LayoutTests/fast/block/block-only/replaced-intrinsic-width-simple-expected.html.
  • fast/layoutformattingcontext/block-only/replaced-intrinsic-width-simple.html: Renamed from LayoutTests/fast/block/block-only/replaced-intrinsic-width-simple.html.
  • platform/ios-wk2/TestExpectations:
12:46 PM Changeset in webkit [256762] by youenn@apple.com
  • 8 edits
    2 adds in trunk/Source

Add WebInspector support to WebKit::WebSocketChannel
https://bugs.webkit.org/show_bug.cgi?id=207794

Reviewed by Darin Adler.

Source/WebCore:

Add a wrapper around Inspector for using it in WebInspector.
This allows getting preliminary support of WebInspector for the new WebSocket path.

  • Modules/websockets/WebSocketChannelInspector.cpp: Added.

(WebCore::WebSocketChannelInspector::WebSocketChannelInspector):
(WebCore::WebSocketChannelInspector::didCreateWebSocket):
(WebCore::WebSocketChannelInspector::willSendWebSocketHandshakeRequest):
(WebCore::WebSocketChannelInspector::didReceiveWebSocketHandshakeResponse):
(WebCore::WebSocketChannelInspector::didCloseWebSocket):
(WebCore::WebSocketChannelInspector::didReceiveWebSocketFrame):
(WebCore::WebSocketChannelInspector::didSendWebSocketFrame):
(WebCore::WebSocketChannelInspector::didReceiveWebSocketFrameError):

  • Modules/websockets/WebSocketChannelInspector.h: Added.
  • Modules/websockets/WebSocketFrame.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

Call WebInspector hooks wherever needed.
We do not have access to frames so we make as if a message is part of one frame.
We do not have yet a response so provide an empty one as well.

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::notifySendFrame):
(WebKit::WebSocketChannel::createMessageQueue):
(WebKit::WebSocketChannel::WebSocketChannel):
(WebKit::WebSocketChannel::connect):
(WebKit::WebSocketChannel::sendMessage):
(WebKit::WebSocketChannel::disconnect):
(WebKit::WebSocketChannel::didConnect):
(WebKit::createWebSocketFrameForWebInspector):
(WebKit::WebSocketChannel::didReceiveText):
(WebKit::WebSocketChannel::didReceiveBinaryData):
(WebKit::WebSocketChannel::didClose):
(WebKit::WebSocketChannel::didReceiveMessageError):

  • WebProcess/Network/WebSocketChannel.h:
12:42 PM Changeset in webkit [256761] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Validate scopeURL is valid when reading it from the database
https://bugs.webkit.org/show_bug.cgi?id=207721

Reviewed by Darin Adler.

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::importRecords):
In case scopeURL is not good, skip the registration, as done for other registration parameters.

12:29 PM Changeset in webkit [256760] by Alan Bujtas
  • 8 edits
    2 adds in trunk

[LFC][Out-of-flow] FormattingContext::computeOutOfFlowHorizontalGeometry needs verticalConstraints
https://bugs.webkit.org/show_bug.cgi?id=207832
<rdar://problem/59499844>

Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/layoutformattingcontext/simple-absolute-positioned-replaced-inline-element-with-percentage-height.html

Inline replaced width computation needs the value of the computed content height. In case of percentage value, in order to
resolve it we need the containing block's height. At this point the containing block's vertical values are usually not
computed yet, unless the current box happens to be an out-of-flow.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):

LayoutTests:

  • fast/layoutformattingcontext/simple-absolute-positioned-replaced-inline-element-with-percentage-height-expected.html: Added.
  • fast/layoutformattingcontext/simple-absolute-positioned-replaced-inline-element-with-percentage-height.html: Added.
12:23 PM Changeset in webkit [256759] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][IFC] LineLayoutContext::nextContentForLine should be able to handle regular inline boxes
https://bugs.webkit.org/show_bug.cgi?id=207829
<rdar://problem/59498031>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/simple-inline-block.html

Add missing inline box handling.

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::nextContentForLine):

LayoutTests:

  • fast/layoutformattingcontext/simple-inline-block-expected.html: Added.
  • fast/layoutformattingcontext/simple-inline-block.html: Added.
12:08 PM Changeset in webkit [256758] by commit-queue@webkit.org
  • 7 edits
    2 deletes in trunk

ANGLE: Fix object deletion behavior.
https://bugs.webkit.org/show_bug.cgi?id=205610

Source/WebCore:

Fixes WebGL conformance tests object-deletion-behavior.html and vertex-array-object.html.

Patch by James Darpinian <James Darpinian> on 2020-02-17
Reviewed by Dean Jackson.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter):

No error when getting attachment name with a null attachment.

  • html/canvas/WebGLObject.cpp:

(WebCore::WebGLObject::deleteObject):

Don't delay deleting objects when using ANGLE, becuase ANGLE handles object
deletion correctly with WebGL semantics. This fixes some conformance tests
including vertex-array-object.html.

  • html/canvas/WebGLObject.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::checkObjectToBeBound):

Always generate INVALID_OPERATION when the object is deleted.

(WebCore::WebGLRenderingContextBase::validateAndCacheBufferBinding):
(WebCore::WebGLRenderingContextBase::bindFramebuffer):
(WebCore::WebGLRenderingContextBase::bindRenderbuffer):
(WebCore::WebGLRenderingContextBase::bindTexture):
(WebCore::WebGLRenderingContextBase::useProgram):

  • html/canvas/WebGLRenderingContextBase.h:

LayoutTests:

Remove incorrect (out-of-date) test. This correct version of this test is still present in the WebGL
conformance tests.

Patch by James Darpinian <James Darpinian> on 2020-02-17
Reviewed by Dean Jackson.

  • fast/canvas/webgl/object-deletion-behaviour-expected.txt: Removed.
  • fast/canvas/webgl/object-deletion-behaviour.html: Removed.
11:59 AM Changeset in webkit [256757] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Release ] fast/scrolling/latching/scroll-iframe-fragment.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207848

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:50 AM Changeset in webkit [256756] by pvollan@apple.com
  • 20 edits
    4 adds in trunk

Use CF prefs direct mode in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=203420

Reviewed by Brent Fulgham.

Source/WebCore:

Add Internals functions to read preferences.

API tests: Tests added in PreferenceChanges.mm.

  • testing/Internals.cpp:

(WebCore::Internals::readPreferenceInteger):
(WebCore::Internals::encodedPreferenceValue):

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

(WebCore::Internals::encodedPreferenceValue):

Source/WebCore/PAL:

Add SPI to enable CF prefs direct mode and declare method called when preference are changed.

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cf/CFUtilitiesSPI.h:
  • pal/spi/cocoa/NSUserDefaultsSPI.h: Added.

Source/WebKit:

Enable CF prefs direct mode, in order to avoid connecting to the CF prefs daemon in the WebContent process.
In direct mode, the prefs files will be accessed directly, and not through the CF prefs daemon. A preference
observer is added in the UI process, which will notify the WebContent process about preferences changes to a
domain. After a preference change, the WebContent process will set the new preference value for the changed
key/domain.

API tests: Tests added in PreferenceChanges.mm.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceMain):

  • UIProcess/Cocoa/PreferenceObserver.h: Added.

(attribute):

  • UIProcess/Cocoa/PreferenceObserver.mm: Added.

(-[WKUserDefaults _notifyObserversOfChangeFromValuesForKeys:toValuesForKeys:]):
(-[WKUserDefaults observeValueForKeyPath:ofObject:change:context:]):
(-[WKUserDefaults initWithSuiteName:]):
(+[WKPreferenceObserver sharedInstance]):
(-[WKPreferenceObserver init]):
(-[WKPreferenceObserver preferenceDidChange:key:encodedValue:]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::notifyPreferencesChanged):

  • UIProcess/WebProcessPool.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::notifyPreferencesChanged):

  • WebProcess/com.apple.WebProcess.sb.in:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm: Added.

(TEST):

11:40 AM Changeset in webkit [256755] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

EWS should be able to file Bugzilla bugs
https://bugs.webkit.org/show_bug.cgi?id=207845

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/ews-build/steps.py:

(BugzillaMixin.create_bug): Method to file bugzilla bug using bugzilla REST API.

11:28 AM Changeset in webkit [256754] by Russell Epstein
  • 54 edits
    4 deletes in branches/safari-609.1.19-branch

Revert r256385. rdar://problem/59408870

11:28 AM Changeset in webkit [256753] by Russell Epstein
  • 5 edits in branches/safari-609.1.19-branch/Source/WebKit

Cherry-pick r256396. rdar://problem/59298180

Unreviewed, revert r255662 as it seems to cause blank views in SVC.
https://bugs.webkit.org/show_bug.cgi?id=207144
<rdar://problem/59334011>

  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::initializeNewWebProcess):
  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess):
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:

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

11:28 AM Changeset in webkit [256752] by Russell Epstein
  • 4 edits in branches/safari-609.1.19-branch

Cherry-pick r256317. rdar://problem/59408870

REGRESSION (r256009): [ Mojave wk2 Debug ] ASSERTION FAILED: Completion handler should always be called under WebKit::WebMDNSRegister::PendingRegistration
https://bugs.webkit.org/show_bug.cgi?id=207521
<rdar://problem/59331313>

Reviewed by Eric Carlson.

Source/WebKit:

Covered by debug assertion not hit in layout tests.

  • WebProcess/Network/webrtc/WebMDNSRegister.cpp: (WebKit::WebMDNSRegister::finishedRegisteringMDNSName): Call completion handler even if the document entry has been cleared, which can happen in suspend/destruction case. If the entry is not there, all MDNS names for the document have been unregistered. We then report a registration error.

LayoutTests:

  • platform/mac-wk2/TestExpectations:

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

11:28 AM Changeset in webkit [256751] by Russell Epstein
  • 2 edits in branches/safari-609.1.19-branch/LayoutTests

Cherry-pick r256231. rdar://problem/59408870

Regression: (r256009?) [ Mojave wk2 Debug ] webrtc/peerconnection-page-cache-long.html is crashing.
https://bugs.webkit.org/show_bug.cgi?id=207521

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:

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

11:24 AM Changeset in webkit [256750] by dino@apple.com
  • 3 edits in trunk/LayoutTests

Removing expectations for tests that no longer exist + fixing a typo.

  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
11:23 AM Changeset in webkit [256749] by youenn@apple.com
  • 12 edits in trunk/Source

Do not send the client URL to network process
https://bugs.webkit.org/show_bug.cgi?id=207803

Reviewed by Darin Adler.

Source/WebCore:

Instead of sending the client URL through threads and IPC, we can retrieve it in NetworkProcess from the client identifier.
Implement this, as this is more efficient and safer.
No change of behavior.

  • workers/service/SWClientConnection.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::unregisterRegistration):

  • workers/service/WorkerSWClientConnection.cpp:

(WebCore::WorkerSWClientConnection::scheduleUnregisterJobInServer):

  • workers/service/WorkerSWClientConnection.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::scheduleUnregisterJob):

  • workers/service/server/SWServer.h:

Source/WebKit:

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::scheduleUnregisterJobInServer):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::scheduleUnregisterJobInServer):

  • WebProcess/Storage/WebSWClientConnection.h:
11:17 AM Changeset in webkit [256748] by Alan Coon
  • 8 edits in branches/safari-609-branch/Source

Versioning.

11:13 AM Changeset in webkit [256747] by Alan Coon
  • 4 edits in branches/safari-609-branch

Revert r256693. rdar://problem/59478981

10:52 AM Changeset in webkit [256746] by achristensen@apple.com
  • 2 edits in branches/safari-609-branch/Source/WebCore

Fix build after r256689

  • css/StyleProperties.h:

Add missing include that wasn't on the branch.

10:47 AM Changeset in webkit [256745] by commit-queue@webkit.org
  • 16 edits in trunk/Source

a lot gcc warnings because of %{public}s format specifier
https://bugs.webkit.org/show_bug.cgi?id=207478

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-02-17
Reviewed by Darin Adler.

Add PUBLIC_LOG_STRING macro which is defined depending on if
os_log()[1] is used or rather old printf().

OS Logging processes format specifiers for privacy matters, for
example dynamic strings, which demands %{public}s. But these
specifiers are not valid for printf().

Calls to logging with this specifier, if they are not Mac/Darwing
exclusive, use this new macro to avoid gcc warnings.

  1. https://developer.apple.com/documentation/os/logging?language=objc

Source/WebCore:

No new tests. Covered by existing tests.

  • loader/AdClickAttribution.cpp:

(WebCore::AdClickAttribution::parseConversionRequest):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:

(WebCore::doReleaseLogging):

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::openSQLiteDatabase):

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::isCorrectTableSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::createUniqueIndices):
(WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements):

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccess):
(WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccessUnderOpener):
(WebKit::ResourceLoadStatisticsMemoryStore::ensurePrevalentResourcesForDebugMode):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::removeDataRecords):
(WebKit::ResourceLoadStatisticsStore::debugLogDomainsInBatches):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::start):
(WebKit::NetworkResourceLoader::startNetworkLoad):
(WebKit::NetworkResourceLoader::didReceiveResponse):

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::didReceiveResponse):
(WebKit::ServiceWorkerFetchTask::didFail):

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::logInvalidMessage):

  • UIProcess/ProcessThrottler.h:

(WebKit::ProcessThrottler::Activity::Activity):
(WebKit::ProcessThrottler::Activity::invalidate):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedNavigationPolicyDecision):

Source/WTF:

  • wtf/Assertions.h:
  • wtf/MemoryPressureHandler.cpp:

(WTF::MemoryPressureHandler::ReliefLogger::logMemoryUsageChange):

10:33 AM Changeset in webkit [256744] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r256232?) [ Mac wk1 Release ] resize-observer/delete-observers-in-callbacks.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207847

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
10:31 AM Changeset in webkit [256743] by Russell Epstein
  • 8 edits in branches/safari-609.1.19-branch/Source

Versioning.

10:29 AM Changeset in webkit [256742] by pvollan@apple.com
  • 18 edits in trunk/Source

Mach lookup to com.apple.webinspector should not be allowed in WebKit's WebContent process
https://bugs.webkit.org/show_bug.cgi?id=203214

Reviewed by Brent Fulgham.

Source/JavaScriptCore:

Add static flag in RemoteInspector to indicate whether a sandbox extension is needed. The remote inspector will only be
started if the sandbox extension is not needed. Only the WebContent process will need a sandbox extension, since this
patch removes mach access to 'com.apple.webinspector' for this process. Also add name and domain for the
'Enable Remote Inspector' setting, since this will be used in the UI process.

  • inspector/remote/RemoteInspector.cpp:
  • inspector/remote/RemoteInspector.h:
  • inspector/remote/RemoteInspectorConstants.h:
  • inspector/remote/cocoa/RemoteInspectorCocoa.mm:

(Inspector::RemoteInspector::singleton):

Source/WebKit:

If the Web inspector is enabled when the WebContent process is started, a sandbox extension is created
for 'com.apple.webinspector' and a message is sent to the WebContent process, where the extension will
be consumed, and the remote Web inspector will be started. The same happens if Web inspector is enabled
by the user while Safari is running. When RemoteInspector::singleton() is called in the UI process there
is no need for an extension, since access to the Web inspector daemon is already allowed.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::backlightLevelDidChangeCallback):
(WebKit::WebProcessPool::remoteWebInspectorEnabledCallback):
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::enableRemoteInspectorIfNeeded):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::mayBecomeUnresponsive):

  • UIProcess/WebProcessProxy.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::enableRemoteWebInspector):

  • WebProcess/com.apple.WebProcess.sb.in:
10:23 AM Changeset in webkit [256741] by Russell Epstein
  • 1 copy in branches/safari-609.1.19-branch

New branch.

10:18 AM Changeset in webkit [256740] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Add telemetry with backtrace for specific rules
https://bugs.webkit.org/show_bug.cgi?id=207494

Reviewed by Brent Fulgham.

For specific sandbox mach lookup rules in the WebContent process, add telemetry with backtrace.

No new tests, no behavior change.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
10:02 AM Changeset in webkit [256739] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] storage/indexeddb/detached-iframe.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207844

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:44 AM Changeset in webkit [256738] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

IndexedDB: index cursor iteration is slow when there are a lot of index records from different object stores
https://bugs.webkit.org/show_bug.cgi?id=207377
<rdar://problem/59288679>

Reviewed by Brady Eidson.

Make the Index of IndexRecords table include indexID since we always perform search with indexID.
This would let SQLite optimize the index statement in SQLiteCursor with Covering Index and fix the slowness.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsIndex):
(WebCore::IDBServer::v1IndexRecordsIndexSchema): Deleted.

8:48 AM Changeset in webkit [256737] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

EWS should be able to comment on Bugzilla
https://bugs.webkit.org/show_bug.cgi?id=201927

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(BugzillaMixin.comment_on_bug): Method to comment on bugzilla bug.
(BugzillaMixin.remove_flags_on_patch): Drive-by fix to correctly identify failure based on status code.
(BugzillaMixin.close_bug): Ditto.
(CommentOnBug): Build step to comment on bugzilla bug.

8:45 AM Changeset in webkit [256736] by Antti Koivisto
  • 7 edits in trunk

[macOS] Add trace points for layer flush runloop observer
https://bugs.webkit.org/show_bug.cgi?id=207837

Reviewed by Sam Weinig.

Source/WebKit:

Add trace points to see how much scheduled layer flushes get delayed by timers and other runloop activities.

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::setLayerTreeStateIsFrozen):

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::setLayerTreeStateIsFrozen):

Also add trace points for layer tree freezing (iOS too).

(WebKit::TiledCoreAnimationDrawingArea::layerFlushRunLoopCallback):
(WebKit::TiledCoreAnimationDrawingArea::invalidateLayerFlushRunLoopObserver):
(WebKit::TiledCoreAnimationDrawingArea::scheduleLayerFlushRunLoopObserver):

Source/WTF:

  • wtf/SystemTracing.h:

Tools:

  • Tracing/SystemTracePoints.plist:
8:40 AM Changeset in webkit [256735] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r256712?) [ iOS wk2 ] fast/block/block-only/floats-and-block-formatting-roots.html is crashing.
https://bugs.webkit.org/show_bug.cgi?id=207841

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
8:16 AM Changeset in webkit [256734] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] webgpu/whlsl/loops-break.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207839

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
8:03 AM Changeset in webkit [256733] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC] Remove ReplacedBox::m_layoutBox
https://bugs.webkit.org/show_bug.cgi?id=207830
<rdar://problem/59498829>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/simple-absolute-positioned-inline-element.html

This is not needed after r256380 ([LFC] Introduce Layout::ReplacedBox).

  • layout/layouttree/LayoutReplacedBox.cpp:

(WebCore::Layout::ReplacedBox::hasIntrinsicWidth const):
(WebCore::Layout::ReplacedBox::hasIntrinsicHeight const):
(WebCore::Layout::ReplacedBox::intrinsicWidth const):
(WebCore::Layout::ReplacedBox::intrinsicHeight const):
(WebCore::Layout::ReplacedBox::hasAspectRatio const):

  • layout/layouttree/LayoutReplacedBox.h:

LayoutTests:

  • fast/layoutformattingcontext/simple-absolute-positioned-inline-element-expected.html: Added.
  • fast/layoutformattingcontext/simple-absolute-positioned-inline-element.html: Added.
7:53 AM Changeset in webkit [256732] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC] The initial containing block does not necessarily have in-flow content.
https://bugs.webkit.org/show_bug.cgi?id=207833
<rdar://problem/59500650>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/html-is-absolute-positioned.html

When the <html> is out-of-flow positioned, the initial containing block has no in-flow direct children.

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):

LayoutTests:

  • fast/layoutformattingcontext/html-is-absolute-positioned-expected.html: Added.
  • fast/layoutformattingcontext/html-is-absolute-positioned.html: Added.
7:37 AM Changeset in webkit [256731] by don.olmstead@sony.com
  • 29 edits
    1 add
    1 delete in trunk

[CMake] Use builtin targets
https://bugs.webkit.org/show_bug.cgi?id=205166

Reviewed by Darin Adler.

.:

Add WebKitFindPackage.cmake which wraps CMake's find_package to provide targets
for common libraries.

Rationale:

  1. There are a number of libraries which are found using CMake's internal Find modules that contain targets but not all of them are available in the minimum version of CMake we support, 3.10.
  2. Updating to CMake 3.12 or higher is not possible due to the WebKit GTK's support policy. It looks like the next time we can bump the version is spring 2021.
  3. Apple builds, both Mac and Windows, have libraries that won't be found using the stock CMake modules. AppleWin also has internal builds where all libraries have a DEBUG_SUFFIX of _debug that would not be picked up.

In the implementation of find_package any Apple specific requirements are dealt with
and the expected CMake values are populated. For all other cases CMake's original
find_package is called so there's no behavior change. Afterwards if there is a library
that has a target but the target was not created it is created from the definitions
that are present from the find module at CMake 3.10.

This makes it so all ports consistently have targets across all versions of CMake
above the current minimum.

  • Source/cmake/OptionsAppleWin.cmake:
  • Source/cmake/OptionsPlayStation.cmake:
  • Source/cmake/WebKitCommon.cmake:
  • Source/cmake/WebKitFindPackage.cmake: Added.
  • Source/cmake/target/icu.cmake: Removed.

PerformanceTests:

  • MallocBench/MallocBench/CMakeLists.txt:

Source/WebCore:

  • CMakeLists.txt:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • platform/Curl.cmake:
  • platform/FreeType.cmake:
  • platform/ImageDecoders.cmake:

Source/WebCore/PAL:

  • pal/PlatformPlayStation.cmake:

Source/WebKit:

  • PlatformFTW.cmake:
  • PlatformWPE.cmake:
  • PlatformWin.cmake:

Source/WebKitLegacy:

  • PlatformFTW.cmake:
  • PlatformWin.cmake:

Source/WTF:

  • wtf/PlatformGTK.cmake:
  • wtf/PlatformJSCOnly.cmake:
  • wtf/PlatformPlayStation.cmake:
  • wtf/PlatformWPE.cmake:

Tools:

  • TestWebKitAPI/PlatformWin.cmake:
7:30 AM Changeset in webkit [256730] by clopez@igalia.com
  • 123 edits
    9 copies
    14 moves
    221 adds
    11 deletes in trunk/LayoutTests

Update WPT tests for encoding
https://bugs.webkit.org/show_bug.cgi?id=207644

Rubber-stamped by Youenn Fablet.

LayoutTests/imported/w3c:

Update from WPT ToT (c8671a2d15)

On top of the automatic import this:

  • removes imported/w3c/web-platform-tests/encoding/reftest.list and moves the -ref.html expectations to -expected.html (see bug 203783)
  • manually fixes the broken imported tests with byte truncated secuences (see bug 207731)
  • manually fixes the test resources of imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode* (see bug 207736)
  • web-platform-tests/encoding/META.yml: Added.
  • web-platform-tests/encoding/OWNERS: Removed.
  • web-platform-tests/encoding/api-basics.any-expected.txt: Added.
  • web-platform-tests/encoding/api-basics.any.html: Added.
  • web-platform-tests/encoding/api-basics.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/api-basics.html.
  • web-platform-tests/encoding/api-basics.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/api-basics.any.worker.html: Added.
  • web-platform-tests/encoding/api-invalid-label.any-expected.txt: Added.
  • web-platform-tests/encoding/api-invalid-label.any.html: Added.
  • web-platform-tests/encoding/api-invalid-label.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/api-invalid-label.html.

(tests.forEach):

  • web-platform-tests/encoding/api-invalid-label.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/api-invalid-label.any.worker.html: Added.
  • web-platform-tests/encoding/api-replacement-encodings.any-expected.txt: Added.
  • web-platform-tests/encoding/api-replacement-encodings.any.html: Added.
  • web-platform-tests/encoding/api-replacement-encodings.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/api-replacement-encodings.html.

(encodings_table.forEach):

  • web-platform-tests/encoding/api-replacement-encodings.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/api-replacement-encodings.any.worker.html: Added.
  • web-platform-tests/encoding/api-surrogates-utf8.any-expected.txt: Added.
  • web-platform-tests/encoding/api-surrogates-utf8.any.html: Added.
  • web-platform-tests/encoding/api-surrogates-utf8.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/api-surrogates-utf8.html.

(badStrings.forEach):

  • web-platform-tests/encoding/api-surrogates-utf8.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/api-surrogates-utf8.any.worker.html: Added.
  • web-platform-tests/encoding/big5-encoder-expected.txt:
  • web-platform-tests/encoding/big5-encoder.html:
  • web-platform-tests/encoding/encodeInto.any-expected.txt: Added.
  • web-platform-tests/encoding/encodeInto.any.html: Added.
  • web-platform-tests/encoding/encodeInto.any.js: Added.

(forEach.testData.forEach.destinationData.string_appeared_here.forEach.arrayBufferOrSharedArrayBuffer.test):
(Float64Array.forEach.view.string_appeared_here.forEach):
(string_appeared_here.forEach):
(test):

  • web-platform-tests/encoding/encodeInto.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/encodeInto.any.worker.html: Added.
  • web-platform-tests/encoding/eof-shift_jis-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/eof-shift_jis-ref.html.
  • web-platform-tests/encoding/eof-utf-8-one-ref.html: Removed.
  • web-platform-tests/encoding/eof-utf-8-three-ref.html: Removed.
  • web-platform-tests/encoding/eof-utf-8-two-ref.html: Removed.
  • web-platform-tests/encoding/gbk-encoder-expected.txt:
  • web-platform-tests/encoding/gbk-encoder.html:
  • web-platform-tests/encoding/idlharness.any-expected.txt: Added.
  • web-platform-tests/encoding/idlharness.any.html: Added.
  • web-platform-tests/encoding/idlharness.any.js: Added.
  • web-platform-tests/encoding/idlharness.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/idlharness.any.worker.html: Added.
  • web-platform-tests/encoding/idlharness.html: Removed.
  • web-platform-tests/encoding/iso-2022-jp-decoder.any-expected.txt: Added.
  • web-platform-tests/encoding/iso-2022-jp-decoder.any.html: Added.
  • web-platform-tests/encoding/iso-2022-jp-decoder.any.js: Added.

(decode):

  • web-platform-tests/encoding/iso-2022-jp-decoder.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/iso-2022-jp-decoder.any.worker.html: Added.
  • web-platform-tests/encoding/iso-2022-jp-decoder.html: Removed.
  • web-platform-tests/encoding/iso-2022-jp-encoder-expected.txt:
  • web-platform-tests/encoding/iso-2022-jp-encoder.html:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-errors-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decoder.js: Added.

(dec2char):
(eucjpDecoder):

  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc-expected.txt.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han-expected.txt.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul-expected.txt.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc-expected.txt.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encoder.js: Added.

(chars2cps):
(eucjpEncoder):
(convertToHex):
(normalizeStr):

  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_chars-cseucpkdfmtjapanese.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_chars-cseucpkdfmtjapanese.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_chars-x-euc-jp.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_chars-x-euc-jp.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_chars.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_chars.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp_errors.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/jis0208_index.js: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/jis0212_index.js: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/w3c-import.log: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-errors-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decoder.js: Added.

(dec2char):
(getIndexPtr):
(iso2022jpDecoder):

  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-stateful-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-stateful.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han-expected.txt.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul-expected.txt.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc-expected.txt.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encoder.js: Added.

(chars2cps):
(iso2022jpEncoder):
(convertToHex):
(normalizeStr):

  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp_errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp_errors.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/jis0208_index.js: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/w3c-import.log: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decoder.js:

(sjisDecoder):

  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html:
  • 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-han.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html:
  • 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-errors-misc.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html:
  • 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-han.html:
  • 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-hangul.html:
  • 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-errors-misc.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encoder.js:

(sjisEncoder):

  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/w3c-import.log:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-korean.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decoder.js:

(euckrDecoder):

  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html:
  • 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-han.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul-expected.txt: Removed.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html: Removed.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html.headers: Removed.
  • 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-errors-misc.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html:
  • 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-han.html:
  • 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-errors-misc.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/w3c-import.log:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-extra.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decoder.js:

(big5Decoder):

  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-enc-ascii-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-enc-ascii.html:
  • 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-big5-hkscs.html:
  • 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-cn-big5.html:
  • 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-csbig5.html:
  • 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-extBa.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html:
  • 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-han.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html:
  • 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-misc.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html:
  • 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-form-x-x-big5.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href.html:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/w3c-import.log:
  • web-platform-tests/encoding/reftest.list: Removed.
  • web-platform-tests/encoding/remove-only-one-bom-expected.txt: Added.
  • web-platform-tests/encoding/remove-only-one-bom.html: Added.
  • web-platform-tests/encoding/resources/decode-common.js: Added.

(showNodes):

  • web-platform-tests/encoding/resources/encode-form-common.js: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html.

(setup):
(runNext.iframe.onload):

  • web-platform-tests/encoding/resources/encode-href-common.js: Added.

(encode):

  • web-platform-tests/encoding/resources/ranges.js: Added.
  • web-platform-tests/encoding/resources/single-byte-raw.py:

(main):

  • web-platform-tests/encoding/resources/two-boms-utf-16be.html: Added.
  • web-platform-tests/encoding/resources/two-boms-utf-16le.html: Added.
  • web-platform-tests/encoding/resources/two-boms-utf-8.html: Added.
  • web-platform-tests/encoding/resources/utf-32-big-endian-bom.html:
  • web-platform-tests/encoding/resources/utf-32-big-endian-bom.xml:
  • web-platform-tests/encoding/resources/utf-32-big-endian-nobom.html:
  • web-platform-tests/encoding/resources/utf-32-big-endian-nobom.xml:
  • web-platform-tests/encoding/resources/utf-32-little-endian-bom.html:
  • web-platform-tests/encoding/resources/utf-32-little-endian-bom.xml:
  • web-platform-tests/encoding/resources/utf-32-little-endian-nobom.html:
  • web-platform-tests/encoding/resources/utf-32-little-endian-nobom.xml:
  • web-platform-tests/encoding/resources/w3c-import.log:
  • web-platform-tests/encoding/single-byte-decoder.html:
  • web-platform-tests/encoding/sniffing-expected.txt: Added.
  • web-platform-tests/encoding/sniffing.html: Added.
  • web-platform-tests/encoding/streams/backpressure.any.js: Added.

(input.new.Uint8Array):

  • web-platform-tests/encoding/streams/backpressure.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/backpressure.any.worker.html: Added.
  • web-platform-tests/encoding/streams/decode-attributes.any.js: Added.

(const.label.of.Object.keys):
(null.test):
(null.setting.fatal.to.string_appeared_here.should.set the):
(null.setting.ignoreBOM.to.string_appeared_here.should.set the):
(string_appeared_here.setting.fatal.to.string_appeared_here.should.set the):
(string_appeared_here.setting.ignoreBOM.to.string_appeared_here.should.set the):

  • web-platform-tests/encoding/streams/decode-attributes.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/decode-attributes.any.worker.html: Added.
  • web-platform-tests/encoding/streams/decode-bad-chunks.any.js: Added.

(const.chunk.of.badChunks.promise_test.async t):

  • web-platform-tests/encoding/streams/decode-bad-chunks.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/decode-bad-chunks.any.worker.html: Added.
  • web-platform-tests/encoding/streams/decode-ignore-bom.any.js: Added.

(async pipeAndAssemble):

  • web-platform-tests/encoding/streams/decode-ignore-bom.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/decode-ignore-bom.any.worker.html: Added.
  • web-platform-tests/encoding/streams/decode-incomplete-input.any.js: Added.

(promise_test.async t):

  • web-platform-tests/encoding/streams/decode-incomplete-input.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/decode-incomplete-input.any.worker.html: Added.
  • web-platform-tests/encoding/streams/decode-non-utf8.any.js: Added.

(const.encoding.of.encodings.promise_test.async const):
(const.encoding.of.encodings.promise_test):
(const.encoding.of.encodings.promise_test.async t):

  • web-platform-tests/encoding/streams/decode-non-utf8.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/decode-non-utf8.any.worker.html: Added.
  • web-platform-tests/encoding/streams/decode-split-character.any.js: Added.
  • web-platform-tests/encoding/streams/decode-split-character.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/decode-split-character.any.worker.html: Added.
  • web-platform-tests/encoding/streams/decode-utf8.any.js: Added.

(string_appeared_here.forEach.async promise_test):
(string_appeared_here.forEach):
(async promise_test):

  • web-platform-tests/encoding/streams/decode-utf8.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/decode-utf8.any.worker.html: Added.
  • web-platform-tests/encoding/streams/encode-bad-chunks.any.js: Added.

(promise_test.t.const.writePromise.writer.write.toString):

  • web-platform-tests/encoding/streams/encode-bad-chunks.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/encode-bad-chunks.any.worker.html: Added.
  • web-platform-tests/encoding/streams/encode-utf8.any.js: Added.

(of.testCases.promise_test.async const):
(of.testCases.promise_test):

  • web-platform-tests/encoding/streams/encode-utf8.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/encode-utf8.any.worker.html: Added.
  • web-platform-tests/encoding/streams/readable-writable-properties.any.js: Added.

(test):

  • web-platform-tests/encoding/streams/readable-writable-properties.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/streams/readable-writable-properties.any.worker.html: Added.
  • web-platform-tests/encoding/streams/realms.window-expected.txt: Added.
  • web-platform-tests/encoding/streams/realms.window.html: Added.
  • web-platform-tests/encoding/streams/realms.window.js: Added.

(createRealm):
(async createRealms):
(const.id):
(evalInRealm):
(async evalInRealmAndWait):
(async evalInRealmAndReturn):
(async constructAndStore):
(readInReadRealm):
(writeInWriteRealm):
(window.onload):
(runGenericTests.async promise_test):
(async runTextEncoderStreamTests.async promise_test):
(async runTextEncoderStreamTests):
(async runTextDecoderStreamTests.async promise_test):
(async runTextDecoderStreamTests):

  • web-platform-tests/encoding/streams/resources/readable-stream-from-array.js: Added.

(readableStreamFromArray):

  • web-platform-tests/encoding/streams/resources/readable-stream-to-array.js: Added.

(readableStreamToArray):

  • web-platform-tests/encoding/streams/resources/w3c-import.log: Added.
  • web-platform-tests/encoding/streams/w3c-import.log: Added.
  • web-platform-tests/encoding/textdecoder-byte-order-marks.any-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-byte-order-marks.any.html: Added.
  • web-platform-tests/encoding/textdecoder-byte-order-marks.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textdecoder-byte-order-marks.html.

(testCases.forEach):

  • web-platform-tests/encoding/textdecoder-byte-order-marks.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-byte-order-marks.any.worker.html: Added.
  • web-platform-tests/encoding/textdecoder-copy.any-expected.txt:
  • web-platform-tests/encoding/textdecoder-copy.any.js:

(string_appeared_here.forEach.arrayBufferOrSharedArrayBuffer.test):

  • web-platform-tests/encoding/textdecoder-copy.any.worker-expected.txt:
  • web-platform-tests/encoding/textdecoder-fatal-single-byte.any-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-fatal-single-byte.any.html: Added.
  • web-platform-tests/encoding/textdecoder-fatal-single-byte.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textdecoder-fatal-single-byte.html.

(singleByteEncodings.forEach):

  • web-platform-tests/encoding/textdecoder-fatal-single-byte.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-fatal-single-byte.any.worker.html: Added.
  • web-platform-tests/encoding/textdecoder-fatal-streaming.any-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-fatal-streaming.any.html: Added.
  • web-platform-tests/encoding/textdecoder-fatal-streaming.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textdecoder-fatal-streaming.html.

(test):

  • web-platform-tests/encoding/textdecoder-fatal-streaming.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-fatal-streaming.any.worker.html: Added.
  • web-platform-tests/encoding/textdecoder-fatal.any-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-fatal.any.html: Added.
  • web-platform-tests/encoding/textdecoder-fatal.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textdecoder-fatal.html.

(bad.forEach):
(test):

  • web-platform-tests/encoding/textdecoder-fatal.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-fatal.any.worker.html: Added.
  • web-platform-tests/encoding/textdecoder-ignorebom.any-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-ignorebom.any.html: Added.
  • web-platform-tests/encoding/textdecoder-ignorebom.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textdecoder-ignorebom.html.

(cases.forEach):
(test):

  • web-platform-tests/encoding/textdecoder-ignorebom.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-ignorebom.any.worker.html: Added.
  • web-platform-tests/encoding/textdecoder-labels.any-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-labels.any.html: Added.
  • web-platform-tests/encoding/textdecoder-labels.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textdecoder-labels.html.

(encodings_table.forEach):

  • web-platform-tests/encoding/textdecoder-labels.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-labels.any.worker.html: Added.
  • web-platform-tests/encoding/textdecoder-streaming.any-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-streaming.any.html: Added.
  • web-platform-tests/encoding/textdecoder-streaming.any.js: Added.

(string_appeared_here.forEach.):
(string_appeared_here.forEach):

  • web-platform-tests/encoding/textdecoder-streaming.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-streaming.any.worker.html: Added.
  • web-platform-tests/encoding/textdecoder-streaming.html: Removed.
  • web-platform-tests/encoding/textdecoder-utf16-surrogates.any-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-utf16-surrogates.any.html: Added.
  • web-platform-tests/encoding/textdecoder-utf16-surrogates.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textdecoder-utf16-surrogates.html.

(bad.forEach):

  • web-platform-tests/encoding/textdecoder-utf16-surrogates.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-utf16-surrogates.any.worker.html: Added.
  • web-platform-tests/encoding/textencoder-constructor-non-utf.any-expected.txt: Added.
  • web-platform-tests/encoding/textencoder-constructor-non-utf.any.html: Added.
  • web-platform-tests/encoding/textencoder-constructor-non-utf.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textencoder-constructor-non-utf.html.

(encodings_table.forEach):

  • web-platform-tests/encoding/textencoder-constructor-non-utf.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textencoder-constructor-non-utf.any.worker.html: Added.
  • web-platform-tests/encoding/textencoder-utf16-surrogates.any-expected.txt: Added.
  • web-platform-tests/encoding/textencoder-utf16-surrogates.any.html: Added.
  • web-platform-tests/encoding/textencoder-utf16-surrogates.any.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/encoding/textencoder-utf16-surrogates.html.

(test):

  • web-platform-tests/encoding/textencoder-utf16-surrogates.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textencoder-utf16-surrogates.any.worker.html: Added.
  • web-platform-tests/encoding/utf-32-expected.txt:
  • web-platform-tests/encoding/utf-32-from-win1252-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/encoding/utf-32-expected.txt.
  • web-platform-tests/encoding/utf-32-from-win1252.html: Added.
  • web-platform-tests/encoding/utf-32.html:
  • web-platform-tests/encoding/w3c-import.log:

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/encoding/textdecoder-fatal-single-byte.any-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/encoding/textdecoder-fatal-single-byte.any.worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/encoding/textdecoder-fatal-single-byte.any-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/encoding/textdecoder-fatal-single-byte.any.worker-expected.txt: Added.
7:09 AM Changeset in webkit [256729] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] add SetBuildSummary step for Windows EWS
https://bugs.webkit.org/show_bug.cgi?id=207556

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories.py:

(WindowsFactory.init):
(GTKBuildAndTestFactory.init):

  • BuildSlaveSupport/ews-build/factories_unittest.py:

(TestBuildAndTestsFactory.test_windows_factory): Added unit-test.

6:27 AM WebKitGTK/2.28.x edited by Philippe Normand
(diff)
4:07 AM Changeset in webkit [256728] by commit-queue@webkit.org
  • 6 edits
    4 adds in trunk/Source/WebCore

[Curl] Use shared single thread for WebSocket connections
https://bugs.webkit.org/show_bug.cgi?id=187984

Patch by Takashi Komori <Takashi.Komori@sony.com> on 2020-02-17
Reviewed by Fujii Hironori.

This patch suppresses invoking worker threads for websocket connections.
CurlStreamScheduler starts up to one worker thread.

No new tests. Covered by existing WebSocket tests.

  • platform/Curl.cmake:
  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlContext::streamScheduler):
(WebCore::CurlHandle::getActiveSocket):
(WebCore::CurlHandle::send):
(WebCore::CurlHandle::receive):
(WebCore::CurlSocketHandle::CurlSocketHandle): Deleted.
(WebCore::CurlSocketHandle::connect): Deleted.
(WebCore::CurlSocketHandle::send): Deleted.
(WebCore::CurlSocketHandle::receive): Deleted.
(WebCore::CurlSocketHandle::wait): Deleted.

  • platform/network/curl/CurlContext.h:
  • platform/network/curl/CurlStream.cpp: Added.

(WebCore::CurlStream::CurlStream):
(WebCore::CurlStream::~CurlStream):
(WebCore::CurlStream::destroyHandle):
(WebCore::CurlStream::send):
(WebCore::CurlStream::appendMonitoringFd):
(WebCore::CurlStream::tryToTransfer):
(WebCore::CurlStream::tryToReceive):
(WebCore::CurlStream::tryToSend):
(WebCore::CurlStream::notifyFailure):

  • platform/network/curl/CurlStream.h: Added.

(WebCore::CurlStream::create):

  • platform/network/curl/CurlStreamScheduler.cpp: Added.

(WebCore::CurlStreamScheduler::CurlStreamScheduler):
(WebCore::CurlStreamScheduler::~CurlStreamScheduler):
(WebCore::CurlStreamScheduler::createStream):
(WebCore::CurlStreamScheduler::destroyStream):
(WebCore::CurlStreamScheduler::send):
(WebCore::CurlStreamScheduler::callOnWorkerThread):
(WebCore::CurlStreamScheduler::callClientOnMainThread):
(WebCore::CurlStreamScheduler::startThreadIfNeeded):
(WebCore::CurlStreamScheduler::stopThreadIfNoMoreJobRunning):
(WebCore::CurlStreamScheduler::executeTasks):
(WebCore::CurlStreamScheduler::workerThread):

  • platform/network/curl/CurlStreamScheduler.h: Added.
  • platform/network/curl/SocketStreamHandleImpl.h:

(WebCore::SocketStreamHandleImpl::isStreamInvalidated):

  • platform/network/curl/SocketStreamHandleImplCurl.cpp:

(WebCore::SocketStreamHandleImpl::SocketStreamHandleImpl):
(WebCore::SocketStreamHandleImpl::~SocketStreamHandleImpl):
(WebCore::SocketStreamHandleImpl::platformSendInternal):
(WebCore::SocketStreamHandleImpl::platformClose):
(WebCore::SocketStreamHandleImpl::didOpen):
(WebCore::SocketStreamHandleImpl::didSendData):
(WebCore::SocketStreamHandleImpl::didReceiveData):
(WebCore::SocketStreamHandleImpl::didFail):
(WebCore::SocketStreamHandleImpl::destructStream):
(WebCore::SocketStreamHandleImpl::threadEntryPoint): Deleted.
(WebCore::SocketStreamHandleImpl::handleError): Deleted.
(WebCore::SocketStreamHandleImpl::stopThread): Deleted.
(WebCore::SocketStreamHandleImpl::callOnWorkerThread): Deleted.
(WebCore::SocketStreamHandleImpl::executeTasks): Deleted.

2:54 AM Changeset in webkit [256727] by berto@igalia.com
  • 5 edits in trunk

[WPE] Change the QML plugin install path
https://bugs.webkit.org/show_bug.cgi?id=207761

Reviewed by Philippe Normand.

Source/WebKit:

This way there's no need to set QML2_IMPORT_PATH manually.

  • PlatformWPE.cmake:

Tools:

  • Scripts/run-qt-wpe-minibrowser:
  • glib/api_test_runner.py:

(TestRunner._run_test_qt):

2:13 AM Changeset in webkit [256726] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

[WPE] Use custom theme style to render buttons
https://bugs.webkit.org/show_bug.cgi?id=207471

Reviewed by Adrian Perez de Castro.

This includes push, check and radio buttons.

  • platform/wpe/RenderThemeWPE.cpp:

(WebCore::RenderThemeWPE::supportsFocusRing const): Return true for buttons.
(WebCore::RenderThemeWPE::paintMenuList): Move mthe code to Theme and use ThemeWPE::paintButton() +
ThemeWPE::paintFocus().

  • platform/wpe/ThemeWPE.cpp:

(WebCore::ThemeWPE::paintFocus): Moved from RenderThemeWPE, adding the offset as a parameter.
(WebCore::ThemeWPE::paint): Remove part parameter from call to paintButton().
(WebCore::ThemeWPE::paintCheckbox):
(WebCore::ThemeWPE::paintRadio):
(WebCore::ThemeWPE::paintButton):

  • platform/wpe/ThemeWPE.h:
1:37 AM Changeset in webkit [256725] by Carlos Garcia Campos
  • 5 edits
    2 adds in trunk

Search cancel button becomes visible when there's a hover effect in CSS
https://bugs.webkit.org/show_bug.cgi?id=207328

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Use a custom style resolver for search cancel button element to ensure it's always hidden when the input element
is empty.

Test: fast/forms/search-cancel-button-hover.html

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement): Call setHasCustomStyleResolveCallbacks().
(WebCore::SearchFieldCancelButtonElement::resolveCustomStyle): Set the render style visibility depending on
input current value.

  • html/shadow/TextControlInnerElements.h:

LayoutTests:

  • fast/forms/search-cancel-button-hover-expected.html: Added.
  • fast/forms/search-cancel-button-hover.html: Added.
1:07 AM Changeset in webkit [256724] by Carlos Garcia Campos
  • 4 edits
    1 add in trunk/Source/WebCore

[WPE] Use custom theme style to render text fields
https://bugs.webkit.org/show_bug.cgi?id=207379

Reviewed by Adrian Perez de Castro.

This includes text entries, text areas and search fields. The search field icons are rendered using an extra
default style sheet for the theme, using Adwaita svg icons in the CSS.

  • PlatformWPE.cmake:
  • css/themeAdwaita.css: Added.

(input[type="search"]::-webkit-search-results-button,):
(input[type="search"]::-webkit-search-results-button:hover,):
(input[type="search"]::-webkit-search-cancel-button):
(body[dir="rtl"] input[type="search"]::-webkit-search-cancel-button):
(input[type="search"]::-webkit-search-cancel-button:hover):

  • platform/wpe/RenderThemeWPE.cpp:

(WebCore::RenderThemeWPE::supportsFocusRing const): Return true for TextFieldPart, TextAreaPart and SearchFieldPart.
(WebCore::RenderThemeWPE::extraDefaultStyleSheet): Return themeAdwaita.css.
(WebCore::RenderThemeWPE::paintTextField):
(WebCore::RenderThemeWPE::paintTextArea):
(WebCore::RenderThemeWPE::paintSearchField):

  • platform/wpe/RenderThemeWPE.h:
1:03 AM Changeset in webkit [256723] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

Updated Simplified Chinese translation
https://bugs.webkit.org/show_bug.cgi?id=207685

Patch by Yuchen Guo <egyc@live.com> on 2020-02-17
Rubber-stamped by Carlos Garcia Campos.

  • zh_CN.po:

Feb 16, 2020:

8:35 PM Changeset in webkit [256722] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK] More debug build timeouts gardening
https://bugs.webkit.org/show_bug.cgi?id=207831

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
8:31 PM Changeset in webkit [256721] by Peng Liu
  • 4 edits
    1 delete in trunk/Source/WebCore

Remove class VideoLayerManager since it is not used
https://bugs.webkit.org/show_bug.cgi?id=207800

Reviewed by Eric Carlson.

No behavior change.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/VideoLayerManager.h: Removed.
  • platform/graphics/avfoundation/objc/VideoLayerManagerObjC.h:
  • platform/graphics/avfoundation/objc/VideoLayerManagerObjC.mm:

(WebCore::VideoLayerManagerObjC::VideoLayerManagerObjC):

6:49 PM Changeset in webkit [256720] by Fujii Hironori
  • 12 edits in trunk

Remove remaining WTF_EXPORT and WTF_IMPORT by replacing them with WTF_EXPORT_DECLARATION and WTF_IMPORT_DECLARATION
https://bugs.webkit.org/show_bug.cgi?id=207746

Reviewed by Don Olmstead.

Source/JavaScriptCore:

  • runtime/JSExportMacros.h:

Source/WebCore:

  • platform/PlatformExportMacros.h:

Source/WebCore/PAL:

Removed unused PAL_TESTSUPPORT_EXPORT.

  • pal/ExportMacros.h:

Source/WebKit:

  • WebProcess/win/WebProcessWin.cpp:

(loadResourceIntoBuffer): Removed WTF_EXPORT. loadResourceIntoBuffer is used from WebCore which is in same DLL.

Source/WTF:

I removed WTF_EXPORT from function declarations in r256420 (Bug 207453).
WTF_EXPORT is still used mostly in *ExportMacros.h. However, there is no
difference between WTF_EXPORT and WTF_EXPORT_DECLARATION.

Removed WTF_EXPORT and WTF_IMPORT by replacing them with
WTF_EXPORT_DECLARATION and WTF_IMPORT_DECLARATION

Removed unused WTF_HIDDEN.

Defined WTF_EXPORT_DECLARATION, WTF_IMPORT_DECLARATION and WTF_HIDDEN_DECLARATION empty
in case of !USE(EXPORT_MACROS) to simplify *ExportMacros.h.

  • wtf/ExportMacros.h:

Tools:

  • MiniBrowser/win/stdafx.h:
6:11 PM Changeset in webkit [256719] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Log WebSocket failure in case of network crash
https://bugs.webkit.org/show_bug.cgi?id=207801

Reviewed by Darin Adler.

Covered by http/tests/websocket/tests/hybi/network-process-crash-error.html.

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::didReceiveMessageError):
(WebKit::WebSocketChannel::networkProcessCrashed):
Add a console log message in case of error coming from network process.

6:06 PM Changeset in webkit [256718] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Remove nonArgGPR1 for ARMv7 and ARM64 (unused)
https://bugs.webkit.org/show_bug.cgi?id=207753

Patch by Paulo Matos <Paulo Matos> on 2020-02-16
Reviewed by Darin Adler.

Cleanup commit - nonArgGPR1 is unused for both ARMv7
and ARM64.

  • jit/GPRInfo.h:
5:54 PM Changeset in webkit [256717] by ap@apple.com
  • 4 edits in trunk/LayoutTests

[ Mac wk2 ] fast/events/keydown-1.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=154297
https://bugs.webkit.org/show_bug.cgi?id=207785
<rdar://problem/59469424>

Reviewed by Wenson Hsieh.

  • fast/events/keydown-1.html: Attempt to deflake by using onload instead of a 200 ms timer.
  • platform/mac-wk1/TestExpectations: Removed flaky expectation.
  • platform/mac-wk2/TestExpectations: Removed flaky expectation. Also corrected a

conflict that was landed in r256656 today.

5:41 PM Changeset in webkit [256716] by Alexey Shvayka
  • 32 edits
    2 adds
    1 delete in trunk

Implement EventTarget constructor
https://bugs.webkit.org/show_bug.cgi?id=174313

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/WebIDL/ecmascript-binding/constructors-expected.txt:
  • web-platform-tests/dom/events/Event-subclasses-constructors-expected.txt:
  • web-platform-tests/dom/events/EventTarget-constructible.any-expected.txt:
  • web-platform-tests/dom/events/EventTarget-constructible.any.worker-expected.txt:
  • web-platform-tests/dom/events/event-global-extra.window-expected.txt:
  • web-platform-tests/dom/idlharness.any.worker-expected.txt:
  • web-platform-tests/dom/idlharness.window-expected.txt:

Source/WebCore:

Currently, EventTarget can't be directly constructed or be subclassed in JavaScript.
The spec for EventTarget was updated (https://github.com/whatwg/dom/pull/467) to allow
constructing and subclassing EventTarget. This feature was shipped in Chrome 64 and Firefox 59.

This patch introduces EventTargetConcrete class, a user-constructable version of EventTarget,
exposed as "EventTarget" to JavaScript. We don't use EventTarget directly because it is an abstract
class and making it non-abstract is unfavorable due to size increase of EventTarget and all of its
subclasses with code that is mostly unnecessary for them, resulting in a performance decrease.

To prevent definition of specific to EventTargetConcrete toJS and toJSNewlyCreated functions,
we don't define EventTargetConcrete interface type, but rather tweak make_event_factory.pl to
default to base interface (like it does for Event).

To allow subclassing of all DOM constructors, non-custom ones replace structures of newly created
wrapper objects with ones returned by InternalFunction::createSubclassStructure. Per WebIDL spec [1],
setSubclassStructureIfNeeded helper uses realm of newTarget for default prototypes.

This approach was chosen because a) detecting Construct? with callFrame->newTarget() is
unreliable outside constructor, and b) passing newTarget down to createWrapper via
toJSNewlyCreated is quite awkward and would result in massive code change.

[1] https://heycam.github.io/webidl/#internally-create-a-new-object-implementing-the-interface
(step 3.3.2)

Tests: fast/dom/dom-constructors.html

imported/w3c/web-platform-tests/WebIDL/ecmascript-binding/constructors.html
imported/w3c/web-platform-tests/dom/events/Event-subclasses-constructors.html
imported/w3c/web-platform-tests/dom/events/EventTarget-constructible.any.html
imported/w3c/web-platform-tests/dom/idlharness.window.html

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMWrapperCache.h:

(WebCore::setSubclassStructureIfNeeded):

  • bindings/js/JSEventTargetCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorDefinition):

  • bindings/scripts/InFilesCompiler.pm:

(generateInterfacesHeader):

  • bindings/scripts/test/JS/*: Adjust bindings expectations.
  • dom/EventTarget.cpp:

(WebCore::EventTarget::create):

  • dom/EventTarget.h:
  • dom/EventTarget.idl:
  • dom/EventTargetConcrete.cpp: Added.
  • dom/EventTargetConcrete.h: Added.
  • dom/make_event_factory.pl:

(generateImplementation):

LayoutTests:

  • fast/dom/dom-constructors-expected.txt:
  • fast/dom/dom-constructors.html:
  • platform/ios/imported/w3c/web-platform-tests/dom/events/Event-subclasses-constructors-expected.txt: Removed.
5:35 PM Changeset in webkit [256715] by beidson@apple.com
  • 29 edits in trunk

Expose "allowsContentJavaScript" on WKWebpagePreferences
<rdar://problem/51534967> and https://bugs.webkit.org/show_bug.cgi?id=207427

Reviewed by Darin Adler.

Source/WebCore:

Covered by new API tests.

  • dom/Document.cpp:

(WebCore::Document::allowsContentJavaScript const):

  • dom/Document.h:
  • dom/ScriptableDocumentParser.cpp:

(WebCore::ScriptableDocumentParser::ScriptableDocumentParser):

  • loader/FrameLoaderClient.h:
  • loader/FrameLoaderTypes.h:
  • page/Settings.yaml:
  • xml/XMLHttpRequest.cpp: Make sure the context document is set BEFORE we parse the document contents.

Source/WebKit:

This utiizes the pre-existing WebCore::Settings::setScriptMarkupEnabled() mechanism.

This also deprecates the global "disable JavaScript" WKPreference as it doesn't make much sense anymore.

  • Shared/WebsitePoliciesData.cpp:

(WebKit::WebsitePoliciesData::encode const):
(WebKit::WebsitePoliciesData::decode):

  • Shared/WebsitePoliciesData.h:
  • UIProcess/API/APIWebsitePolicies.cpp:

(API::WebsitePolicies::data):

  • UIProcess/API/APIWebsitePolicies.h:
  • UIProcess/API/Cocoa/WKPreferences.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences encodeWithCoder:]):
(-[WKPreferences initWithCoder:]):
(-[WKPreferences javaScriptEnabled]):
(-[WKPreferences setJavaScriptEnabled:]):

  • UIProcess/API/Cocoa/WKWebpagePreferences.h:
  • UIProcess/API/Cocoa/WKWebpagePreferences.mm:

(-[WKWebpagePreferences setAllowsContentJavaScript:]):
(-[WKWebpagePreferences allowsContentJavaScript]):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::allowsContentJavaScriptFromMostRecentNavigation const):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::didReceivePolicyDecision):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updateWebsitePolicies):
(WebKit::WebPage::createDocumentLoader):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::allowsContentJavaScriptFromMostRecentNavigation const):
(WebKit::WebPage::setAllowsContentJavaScriptFromMostRecentNavigation):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(-[WebsitePoliciesNavigationDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(TEST):
(-[WebsitePoliciesNavigationDelegate _webView:decidePolicyForNavigationAction:preferences:userInfo:decisionHandler:]): Deleted.

  • TestWebKitAPI/cocoa/TestNavigationDelegate.h:
  • TestWebKitAPI/cocoa/TestNavigationDelegate.mm:

(-[TestNavigationDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(-[TestNavigationDelegate waitForDidFinishNavigationWithPreferences:]):
(-[WKWebView _test_waitForDidFinishNavigationWithPreferences:]):
(-[TestNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]): Deleted.

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView synchronouslyLoadHTMLString:preferences:]):

1:47 PM Changeset in webkit [256714] by Wenson Hsieh
  • 1 edit
    2 adds in trunk/LayoutTests

Add a layout test for <rdar://problem/59090510>
https://bugs.webkit.org/show_bug.cgi?id=207824

Reviewed by Anders Carlsson.

Add a layout test to verify that tapping near the caret rect in a focused input field still dispatches a click
event and brings up the keyboard.

  • fast/events/ios/click-in-autofocused-input-when-tapping-near-caret-expected.txt: Added.
  • fast/events/ios/click-in-autofocused-input-when-tapping-near-caret.html: Added.
12:58 PM Changeset in webkit [256713] by dino@apple.com
  • 2 edits in trunk/LayoutTests

Fix a typo and some merge conflict markers that
were checked in a few days ago.

  • platform/mac-wk2/TestExpectations:
7:43 AM Changeset in webkit [256712] by Alan Bujtas
  • 103 edits in trunk/LayoutTests

[LFC] Enable LFC regression testing on fast/block/block-only
https://bugs.webkit.org/show_bug.cgi?id=207825
<rdar://problem/59491089>

Reviewed by Antti Koivisto.

This helps to catch full LFC regressions while working on the integration part.

  • fast/block/block-only/abs-pos-with-border-padding-and-float-child-expected.html:
  • fast/block/block-only/abs-pos-with-border-padding-and-float-child.html:
  • fast/block/block-only/absolute-auto-with-sibling-margin-bottom.html:
  • fast/block/block-only/absolute-height-stretch.html:
  • fast/block/block-only/absolute-left-auto.html:
  • fast/block/block-only/absolute-left-right-top-bottom-auto.html:
  • fast/block/block-only/absolute-nested.html:
  • fast/block/block-only/absolute-nested2.html:
  • fast/block/block-only/absolute-position-left-right-margin.html:
  • fast/block/block-only/absolute-position-min-max-height.html:
  • fast/block/block-only/absolute-position-min-max-width.html:
  • fast/block/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context.html:
  • fast/block/block-only/absolute-position-when-containing-block-is-not-in-the-formatting-context2.html:
  • fast/block/block-only/absolute-position-with-margin-auto-simple-expected.html:
  • fast/block/block-only/absolute-position-with-margin-auto-simple.html:
  • fast/block/block-only/absolute-position-with-margin-auto-simple2-expected.html:
  • fast/block/block-only/absolute-position-with-margin-auto-simple2.html:
  • fast/block/block-only/absolute-positioned-min-max-percentage-with-parent-padding-expected.html:
  • fast/block/block-only/absolute-positioned-min-max-percentage-with-parent-padding.html:
  • fast/block/block-only/absolute-simple.html:
  • fast/block/block-only/absolute-width-shrink-to-fit.html:
  • fast/block/block-only/absolute-width-stretch.html:
  • fast/block/block-only/absolute-with-static-block-position-nested.html:
  • fast/block/block-only/almost-intruding-left-float-simple.html:
  • fast/block/block-only/block-replaced-with-vertical-margins-expected.html:
  • fast/block/block-only/block-replaced-with-vertical-margins.html:
  • fast/block/block-only/body-height-with-auto-html-height-quirk.html:
  • fast/block/block-only/body-height-with-auto-html-height-quirk2.html:
  • fast/block/block-only/body-height-with-non-auto-html-height-quirk.html:
  • fast/block/block-only/body-height-with-non-auto-html-height-quirk2.html:
  • fast/block/block-only/border-simple.html:
  • fast/block/block-only/box-sizing-inflow-out-of-flow-simple.html:
  • fast/block/block-only/collapsed-margin-with-min-height.html:
  • fast/block/block-only/collapsed-through-siblings.html:
  • fast/block/block-only/collapsed-through-with-parent.html:
  • fast/block/block-only/fixed-nested.html:
  • fast/block/block-only/float-and-siblings-with-margins.html:
  • fast/block/block-only/float-avoider-multiple-roots.html:
  • fast/block/block-only/float-avoider-simple-left.html:
  • fast/block/block-only/float-avoider-simple-right.html:
  • fast/block/block-only/float-avoider-with-margins.html:
  • fast/block/block-only/float-left-when-container-has-padding-margin.html:
  • fast/block/block-only/float-min-max-height.html:
  • fast/block/block-only/float-min-max-width.html:
  • fast/block/block-only/floating-and-next-previous-inflow-with-margin-with-no-border.html:
  • fast/block/block-only/floating-and-next-previous-inflow-with-margin.html:
  • fast/block/block-only/floating-box-clear-both-simple.html:
  • fast/block/block-only/floating-box-clear-right-simple.html:
  • fast/block/block-only/floating-box-left-and-right-multiple-with-top-offset.html:
  • fast/block/block-only/floating-box-left-and-right-multiple.html:
  • fast/block/block-only/floating-box-right-simple.html:
  • fast/block/block-only/floating-box-with-clear-siblings.html:
  • fast/block/block-only/floating-box-with-clear-simple.html:
  • fast/block/block-only/floating-box-with-new-formatting-context.html:
  • fast/block/block-only/floating-box-with-relative-positioned-sibling.html:
  • fast/block/block-only/floating-left-and-right-with-clearance.html:
  • fast/block/block-only/floating-left-right-simple.html:
  • fast/block/block-only/floating-left-right-with-all-margins.html:
  • fast/block/block-only/floating-lefts-and-rights-simple.html:
  • fast/block/block-only/floating-multiple-lefts-in-body.html:
  • fast/block/block-only/floating-multiple-lefts-multiple-lines.html:
  • fast/block/block-only/floating-multiple-lefts.html:
  • fast/block/block-only/floating-with-new-block-formatting-context.html:
  • fast/block/block-only/floats-and-block-formatting-roots-expected.html:
  • fast/block/block-only/floats-and-block-formatting-roots.html:
  • fast/block/block-only/inflow-min-max-height.html:
  • fast/block/block-only/inflow-min-max-width.html:
  • fast/block/block-only/margin-collapse-bottom-bottom.html:
  • fast/block/block-only/margin-collapse-bottom-nested.html:
  • fast/block/block-only/margin-collapse-first-last-are-floating.html:
  • fast/block/block-only/margin-collapse-simple.html:
  • fast/block/block-only/margin-collapse-top-nested.html:
  • fast/block/block-only/margin-collapse-when-child-has-padding-border.html:
  • fast/block/block-only/margin-collapse-with-block-formatting-context.html:
  • fast/block/block-only/margin-collapse-with-block-formatting-context2.html:
  • fast/block/block-only/margin-collapse-with-clearance.html:
  • fast/block/block-only/margin-left-right-sizing-out-of-flow.html:
  • fast/block/block-only/margin-left-right-sizing.html:
  • fast/block/block-only/margin-propagation-simple-content-height.html:
  • fast/block/block-only/margin-sibling-collapse-propagated.html:
  • fast/block/block-only/margin-simple.html:
  • fast/block/block-only/min-max-and-preferred-width-simple-expected.html:
  • fast/block/block-only/min-max-and-preferred-width-simple.html:
  • fast/block/block-only/min-max-height-percentage.html:
  • fast/block/block-only/negative-margin-simple.html:
  • fast/block/block-only/non-auto-top-bottom-height-with-auto-margins.html:
  • fast/block/block-only/non-auto-top-bottom-height-with-margins.html:
  • fast/block/block-only/non-auto-top-bottom-left-right-widht-height-out-of-flow.html:
  • fast/block/block-only/out-of-flow-is-never-float-box-expected.html:
  • fast/block/block-only/out-of-flow-is-never-float-box.html:
  • fast/block/block-only/out-of-flow-with-containing-block-border-padding.html:
  • fast/block/block-only/padding-nested.html:
  • fast/block/block-only/padding-simple.html:
  • fast/block/block-only/relative-auto-with-parent-offset.html:
  • fast/block/block-only/relative-auto.html:
  • fast/block/block-only/relative-bottom.html:
  • fast/block/block-only/relative-position-when-containing-block-is-not-in-the-formatting-context.html:
  • fast/block/block-only/relative-right.html:
  • fast/block/block-only/relative-siblings.html:
  • fast/block/block-only/relative-simple.html:
  • fast/block/block-only/replaced-intrinsic-width-simple-expected.html:
  • fast/block/block-only/replaced-intrinsic-width-simple.html:
7:38 AM Changeset in webkit [256711] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Float] Simplify BlockFormattingContext::usedAvailableWidthForFloatAvoider
https://bugs.webkit.org/show_bug.cgi?id=207823
<rdar://problem/59490669>

Reviewed by Antti Koivisto.

The containing block of this float avoider is either a non-avoider or a formatting context root avoider,
so we don't have to map the left position (and now LFC passes fast/block/block-only again).

  • layout/FormattingContext.cpp:

(WebCore::Layout::mapHorizontalPositionToAncestor): Deleted.
(WebCore::Layout::FormattingContext::mapTopToFormattingContextRoot const): Deleted.
(WebCore::Layout::FormattingContext::mapLeftToFormattingContextRoot const): Deleted.
(WebCore::Layout::FormattingContext::mapRightToFormattingContextRoot const): Deleted.

  • layout/FormattingContext.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):

7:23 AM Changeset in webkit [256710] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][BFC] Formatting context roots position their own relative children
https://bugs.webkit.org/show_bug.cgi?id=207822
<rdar://problem/59490353>

Reviewed by Antti Koivisto.

Since FCs are responsible for positioning their relative positioned children, we
don't have to do it as part of the final positioning.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):

  • layout/blockformatting/BlockFormattingContext.h:
7:18 AM Changeset in webkit [256709] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] A box establishing an independent formatting context is not a float avoider
https://bugs.webkit.org/show_bug.cgi?id=207820
<rdar://problem/59490056>

Reviewed by Antti Koivisto.

Since the independent formatting context does not inherit the parent's floating context,
the box's content essentially ignores the floats and the box itself does not avoid them either
(aka its position is independent of the floats in the same context).

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::isFloatAvoider const):

7:14 AM Changeset in webkit [256708] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][Floats] FloatingContext::positionForFloat needs the horizontal constrains
https://bugs.webkit.org/show_bug.cgi?id=207818
<rdar://problem/59489777>

Reviewed by Antti Koivisto.

We need to access the containing block's geometry (horizontal constraints) to align a floating positioned
box in an empty floating context.

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::positionForFloat const):

7:09 AM Changeset in webkit [256707] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][BFC] Fix horizontal/verticalConstraintsForAncestor in BlockFormattingContext::precomputeVerticalPositionForAncestors
https://bugs.webkit.org/show_bug.cgi?id=207817
<rdar://problem/59489735>

Reviewed by Antti Koivisto.

horizontalConstraintsForAncestor/verticalConstraintsForAncestor should return the constraints (containing block's content box width etc)
of the ancestor.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForAncestors):

Feb 15, 2020:

2:20 PM Changeset in webkit [256706] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

[GStreamer] Build failure with Clang/libc++ due to missing WallTime→float for std::isnan()
https://bugs.webkit.org/show_bug.cgi?id=207757

Unreviewed build fix.

No new tests needed.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(CachedResourceStreamingClient::dataReceived): Add std:: namespace to overloaded
std::isnan() function call to ensure that the overloaded version for WTF::WallTime
is used.

2:02 PM Changeset in webkit [256705] by Adrian Perez de Castro
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix for non-unified builds.

No new tests needed.

  • animation/AnimationEventBase.cpp: Add missing include.
  • animation/DeclarativeAnimation.cpp: Ditto.
2:01 PM Changeset in webkit [256704] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][BFC] ConstraintsPair is only needed for the pre-computed vertical position
https://bugs.webkit.org/show_bug.cgi?id=207814
<rdar://problem/59485612>

Reviewed by Antti Koivisto.

After r256099 (Pre-compute vertical position only when we really need it), ConstraintsPair<> is only
needed in few functions.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
1:30 PM WebKitGTK/2.26.x edited by Adrian Perez de Castro
(diff)
1:29 PM WebKitGTK/2.28.x edited by Adrian Perez de Castro
(diff)
1:26 PM WebKitGTK/2.26.x edited by Adrian Perez de Castro
(diff)
1:24 PM Changeset in webkit [256703] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[Geoclue] Avoid usage of provider in callbacks after it has been destroyed
https://bugs.webkit.org/show_bug.cgi?id=207420

GeoclueGeolocationProvider was making non-cancelable g_dbus_proxy_call(s) with
bare |this| pointer.

Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-02-15
Reviewed by Carlos Garcia Campos.

  • UIProcess/geoclue/GeoclueGeolocationProvider.cpp:

(WebKit::GeoclueGeolocationProvider::start):
(WebKit::GeoclueGeolocationProvider::stop):
(WebKit::GeoclueGeolocationProvider::setupManager):
(WebKit::GeoclueGeolocationProvider::createClient):
(WebKit::GeoclueGeolocationProvider::startClient):
(WebKit::GeoclueGeolocationProvider::didFail):

  • UIProcess/geoclue/GeoclueGeolocationProvider.h:
7:17 AM Changeset in webkit [256702] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC] Introduce OutOfFlowHorizontalConstraints
https://bugs.webkit.org/show_bug.cgi?id=207805
<rdar://problem/59482286>

Reviewed by Antti Koivisto.

Borders and paddings are resolved against the containing block's content box as if the box was an in-flow box.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::horizontalConstraintsForOutOfFlow):

  • layout/LayoutContext.cpp:

(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):

  • layout/LayoutUnits.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):

6:15 AM Changeset in webkit [256701] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Anonymous inline boxes/line break boxes do not generate Display::Boxes
https://bugs.webkit.org/show_bug.cgi?id=207802
<rdar://problem/59480138>

Reviewed by Antti Koivisto.

  1. Painting should not expect a Display::Box per Layout::Box.
  2. Do not generate empty Display::Boxes for anonymous inline text boxes/line breaks.
  • layout/FormattingState.cpp:

(WebCore::Layout::FormattingState::displayBox):

  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::paintSubtree):
(WebCore::Display::collectPaintRootsAndContentRect):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):

Feb 14, 2020:

10:54 PM Changeset in webkit [256700] by commit-queue@webkit.org
  • 17 edits in trunk

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

4% memory regression in new Membuster, possibly some leaking
in WebKit Malloc? (Requested by yusukesuzuki on #webkit).

Reverted changeset:

"[Win] Implement NetworkCache::Data by using
FileSystem::MappedFileData"
https://bugs.webkit.org/show_bug.cgi?id=197684
https://trac.webkit.org/changeset/256633

8:25 PM Changeset in webkit [256699] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK] Layout test imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/event_timeupdate_noautoplay.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=160129

Last timeout was in r251772 and before that in r217571. Updating
expectation to reflect the new flaky crash affecting media tests
tracked in bug198830.

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
7:19 PM Changeset in webkit [256698] by Tadeu Zagallo
  • 3 edits in trunk/JSTests

Unreviewed: fix broken tests added in r256665
https://bugs.webkit.org/show_bug.cgi?id=207727

Our inline WAT doesn't seem to like named blocks/branch targets.

  • wasm/regress/llint-callee-saves-with-fast-memory.js:
  • wasm/regress/llint-callee-saves-without-fast-memory.js:
7:19 PM Changeset in webkit [256697] by jonlee@apple.com
  • 12 edits
    3 adds in trunk

Mask WebGL strings
https://bugs.webkit.org/show_bug.cgi?id=207608

Reviewed by Dean Jackson.

Source/WebCore:

Test: platform/mac/webgl/fingerprinting-strings.html

Add new experimental feature to mask WebGL vendor, renderer, and shading language strings.

  • html/canvas/WebGL2RenderingContext.cpp: Whitespace cleanup also.

(WebCore::WebGL2RenderingContext::getParameter): Check against the runtime feature to return the
old string.

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getParameter): Ditto.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setMaskWebGLStringsEnabled):
(WebCore::RuntimeEnabledFeatures::maskWebGLStringsEnabled const):

Source/WebKit:

Test: platform/mac/webgl/fingerprinting-strings.html

  • Shared/WebPreferences.yaml: Add new experimental feature.

Source/WebKitLegacy/mac:

Test: platform/mac/webgl/fingerprinting-strings.html

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:
  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

LayoutTests:

  • platform/mac/webgl/fingerprinting-strings-expected.txt: Added.
  • platform/mac/webgl/fingerprinting-strings.html: Added.
7:02 PM Changeset in webkit [256696] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256636. rdar://problem/59478734

[Web Animations] Missing call to DocumentTimeline::resumeAnimations() in Frame::resumeActiveDOMObjectsAndAnimations()
https://bugs.webkit.org/show_bug.cgi?id=207784
<rdar://problem/59251858>

Patch by Antoine Quint <graouts@webkit.org> on 2020-02-14
Reviewed by Dean Jackson.

After auditing the code, there was one call to CSSAnimationController::resumeAnimationsForDocument() that missed a matching DocumentTimeline::resumeAnimations()
call should the Web Animations flag be on.

  • page/Frame.cpp: (WebCore::Frame::resumeActiveDOMObjectsAndAnimations):

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

7:02 PM Changeset in webkit [256695] by Russell Epstein
  • 4 edits in branches/safari-609-branch

Cherry-pick r256629. rdar://problem/59478949

Allow UIDNAInfo.errors from uidna_nameToUnicode that would not cause URL parsing failures
https://bugs.webkit.org/show_bug.cgi?id=207360
<rdar://problem/57825317>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-02-14
Reviewed by Ryosuke Niwa.

Source/WTF:

  • wtf/URLHelpers.cpp: (WTF::URLHelpers::mapHostName):

Tools:

  • TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm: (TestWebKitAPI::TEST):

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

7:02 PM Changeset in webkit [256694] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-609-branch

Cherry-pick r256623. rdar://problem/59478938

Ensure animations that lose their effect don't schedule an animation update
https://bugs.webkit.org/show_bug.cgi?id=207713
rdar://59174840

Patch by Sunny He <sunny_he@apple.com> on 2020-02-14
Reviewed by Antoine Quint.

Source/WebCore:
An active animation for which the effect is removed may be considered for
an upcoming animation resolution. However, WebAnimation::timeToNextTick()
expects a valid effect to be available to be able to determine timing.
We now check an animation is relevant before calling timeToNextTick() and
add an ASSERT() in that function to catch cases where an animation effect
might not be available.

Source/WebCore:

Test: webanimations/animation-null-effect.html

  • animation/DocumentTimeline.cpp: (WebCore::DocumentTimeline::scheduleNextTick):
  • animation/WebAnimation.cpp: (WebCore::WebAnimation::timeToNextTick const):

LayoutTests:

  • webanimations/animation-null-effect-expected.txt: Added.
  • webanimations/animation-null-effect.html: Added.

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

7:02 PM Changeset in webkit [256693] by Russell Epstein
  • 4 edits in branches/safari-609-branch

Cherry-pick r256580. rdar://problem/59478981

Dark Mode: In Notes, list item becomes invisible in dark mode after outdenting
https://bugs.webkit.org/show_bug.cgi?id=207676

Reviewed by Wenson Hsieh and Timothy Hatcher.

Source/WebCore:

The bug was caused by EditingStyle::inverseTransformColorIfNeeded converting -apple-system-label to
transparent color in ReplaceSelectionCommand when InsertListCommand invokes moveParagraphs.

This patch fixes the bug in EditingStyle::inverseTransformColorIfNeeded by treating any semantic color
name or semantic RGB color value as if the color was not specified.

It also fixes the bug that removeStyleFromRulesAndContext was incapable of removing superflous semantic
color names that appear in the inline since the context's computed style only contain RGB values by
replacing the inline style's color values with that of the computed style. This fix is necessary to
eliminate -apple-system-label in the pasted content, which can cause issues when such a content is
sync'ed to other devices via iCloud, etc...

Tests: PasteHTML.TransformColorsOfDarkContentButNotSemanticColor

PasteHTML.DoesNotTransformColorsOfLightContentDuringOutdent

  • editing/EditingStyle.cpp: (WebCore::EditingStyle::removeStyleFromRulesAndContext): (WebCore::EditingStyle::inverseTransformColorIfNeeded):

Tools:

Added regression tests for pasting content with -apple-system-label and outdenting content.

  • TestWebKitAPI/Tests/WebKitCocoa/PasteHTML.mm: (PasteHTML.TransformColorsOfDarkContentButNotSemanticColor): (PasteHTML.DoesNotTransformColorsOfLightContentDuringOutdent):

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

7:02 PM Changeset in webkit [256692] by Russell Epstein
  • 5 edits in branches/safari-609-branch/Source

Cherry-pick r256498. rdar://problem/59478929

[JSC] Compact JITCodeMap by storing BytecodeIndex and CodeLocation separately
https://bugs.webkit.org/show_bug.cgi?id=207673

Reviewed by Mark Lam.

Source/JavaScriptCore:

While BytecodeIndex is 4 bytes, CodeLocation is 8 bytes. So the tuple of them "JITCodeMap::Entry"
becomes 16 bytes because it adds 4 bytes padding. We should store BytecodeIndex and CodeLocation separately
to avoid this padding.

This patch introduces JITCodeMapBuilder. We use this to build JITCodeMap data structure as a immutable final result.

  • jit/JIT.cpp: (JSC::JIT::link):
  • jit/JITCodeMap.h: (JSC::JITCodeMap::JITCodeMap): (JSC::JITCodeMap::find const): (JSC::JITCodeMap::operator bool const): (JSC::JITCodeMap::codeLocations const): (JSC::JITCodeMap::indexes const): (JSC::JITCodeMapBuilder::append): (JSC::JITCodeMapBuilder::finalize): (JSC::JITCodeMap::Entry::Entry): Deleted. (JSC::JITCodeMap::Entry::bytecodeIndex const): Deleted. (JSC::JITCodeMap::Entry::codeLocation): Deleted. (JSC::JITCodeMap::append): Deleted. (JSC::JITCodeMap::finish): Deleted.

Source/WTF:

  • wtf/MallocPtr.h:

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

7:02 PM Changeset in webkit [256691] by Russell Epstein
  • 16 edits in branches/safari-609-branch/Source

Cherry-pick r256482. rdar://problem/59478881

Shrink CachedResource
https://bugs.webkit.org/show_bug.cgi?id=207618

Reviewed by Mark Lam.

Source/WebCore:

This patch shrinks sizeof(CachedResource) by 80 bytes by aggressively using bit-fields and Markable<>.
For each enum class, we define bitsOfXXX value, which indicates # of bits to represent it. And using
this value for bit-field's width.

No behavior change.

  • loader/FetchOptions.h: (WebCore::FetchOptions::encode const):
  • loader/ResourceLoaderOptions.h: (WebCore::ResourceLoaderOptions::ResourceLoaderOptions): (WebCore::ResourceLoaderOptions::loadedFromOpaqueSource):
  • loader/cache/CachedImage.cpp: (WebCore::CachedImage::CachedImage): (WebCore::CachedImage::shouldDeferUpdateImageData const): (WebCore::CachedImage::didUpdateImageData):
  • loader/cache/CachedImage.h:
  • loader/cache/CachedResource.cpp: (WebCore::CachedResource::CachedResource): (WebCore::CachedResource::load): (WebCore::CachedResource::finish):
  • loader/cache/CachedResource.h: (WebCore::CachedResource::setStatus):
  • page/csp/ContentSecurityPolicyResponseHeaders.h: (WebCore::ContentSecurityPolicyResponseHeaders::MarkableTraits::isEmptyValue): (WebCore::ContentSecurityPolicyResponseHeaders::MarkableTraits::emptyValue): (WebCore::ContentSecurityPolicyResponseHeaders::ContentSecurityPolicyResponseHeaders):
  • platform/network/NetworkLoadMetrics.h: (WebCore::NetworkLoadMetrics::isolatedCopy const): (WebCore::NetworkLoadMetrics::clearNonTimingData): (WebCore::NetworkLoadMetrics::operator== const): (WebCore::NetworkLoadMetrics::encode const): (WebCore::NetworkLoadMetrics::decode):
  • platform/network/ResourceLoadPriority.h:
  • platform/network/ResourceRequestBase.h: (WebCore::ResourceRequestBase::ResourceRequestBase):
  • platform/network/ResourceResponseBase.h:
  • platform/network/StoredCredentialsPolicy.h:

Source/WTF:

  • wtf/Markable.h: (WTF::Markable::asOptional const): Add helper method to get Optional easily from Markable.
  • wtf/ObjectIdentifier.h: (WTF::ObjectIdentifier::MarkableTraits::isEmptyValue): (WTF::ObjectIdentifier::MarkableTraits::emptyValue): (WTF::ObjectIdentifier::ObjectIdentifier): Add MarkableTraits for ObjectIdentifier.

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

7:02 PM Changeset in webkit [256690] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/JavaScriptCore

Cherry-pick r256467. rdar://problem/59478994

[JSC] Make RegExpCache small
https://bugs.webkit.org/show_bug.cgi?id=207619

Reviewed by Mark Lam.

We can compact RegExpKey by using PackedRefPtr, so that we can shrink memory consumption of RegExpCache.

  • runtime/RegExpKey.h:

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

7:02 PM Changeset in webkit [256689] by Russell Epstein
  • 3 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256423. rdar://problem/59478731

Compress ImmutableStyleProperties by using PackedPtr
https://bugs.webkit.org/show_bug.cgi?id=207604

Reviewed by Mark Lam.

ImmutableStyleProperties is kept so long and consumes enough memory.
We already attempted to compact it by storing CSSProperty's members separately.
But we can compact further by using PackedPtr. This patch makes,

  1. Use PackedPtr for CSSValue* in ImmutableStyleProperties so that we can cut some bytes
  2. Reorder CSSValue* and StylePropertyMetadata arrays since StylePropertyMetadata requires alignment while PackedPtr<CSSValue> is not.

No behavior change.

  • css/StyleProperties.cpp: (WebCore::sizeForImmutableStylePropertiesWithPropertyCount): (WebCore::ImmutableStyleProperties::ImmutableStyleProperties): (WebCore::ImmutableStyleProperties::~ImmutableStyleProperties): (WebCore::ImmutableStyleProperties::findCustomPropertyIndex const):
  • css/StyleProperties.h: (WebCore::ImmutableStyleProperties::valueArray const): (WebCore::ImmutableStyleProperties::metadataArray const): (WebCore::ImmutableStyleProperties::propertyAt const):

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

7:02 PM Changeset in webkit [256688] by Russell Epstein
  • 13 edits
    2 adds in branches/safari-609-branch

Cherry-pick r254681. rdar://problem/59474790

[Win] Fix AppleWin build
https://bugs.webkit.org/show_bug.cgi?id=206299

Reviewed by Brent Fulgham.

.:

This patch has been created by don.olmstead@sony.com and pvollan@apple.com. Add target files for WTF and
JavaScriptCore. Also, to make sure headers are copied to the forwarding headers directory, add the CMake
keywork ALL when adding custom target for copying files.

  • Source/cmake/TargetJavaScriptCore.cmake: Added.
  • Source/cmake/TargetWTF.cmake: Added.
  • Source/cmake/WebKitMacros.cmake:

Source/JavaScriptCore:

Include required target. Build internal builds with VS2019.

Source/WebCore:

Include required targets. Build internal builds with VS2019.

  • CMakeLists.txt:
  • WebCore.vcxproj/WebCore.proj:

Source/WebKitLegacy:

Include required targets. Build internal builds with VS2019.

  • CMakeLists.txt:
  • WebKitLegacy.vcxproj/WebKitLegacy.proj:

Source/WTF:

Build internal builds with VS2019.

  • WTF.vcxproj/WTF.proj:

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

7:02 PM Changeset in webkit [256687] by Russell Epstein
  • 3 edits in branches/safari-609-branch/Source

Cherry-pick r252849. rdar://problem/59446998

Crash in WebCore::ServiceWorkerRegistrationKey::hash() const
https://bugs.webkit.org/show_bug.cgi?id=204497
<rdar://problem/57348603>

Reviewed by Alex Christensen.

Source/WebCore:

Update ServiceWorkerContainer::jobResolvedWithRegistration to handle the case of a
ServiceWorkerContainer that might have a job whose promise is not related to the same context.
In that case, the ServiceWorkerContainer might get stopped, thus its m_ongoingSettledRegistrations be cleared.
But the promise may get settled shortly after since its context is not stopped and will then retrieve an empty registration data key.
This is difficult to test given we do not control when the resolvedWithRegistration task is posted to the client.

  • workers/service/ServiceWorkerContainer.cpp: (WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
  • workers/service/ServiceWorkerRegistrationKey.h: (WebCore::ServiceWorkerRegistrationKey::encode const): Add release asserts to make sure we do not store/transfer empty registration keys.

Source/WebKit:

  • WebProcess/Storage/WebSWClientConnection.cpp: (WebKit::WebSWClientConnection::scheduleJobInServer): Add a release assert to be able to further debug the crash.

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

7:02 PM Changeset in webkit [256686] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WTF

Cherry-pick r256203. rdar://problem/59446995

Unreviewed, speculative build fix on watchOS simulator
https://bugs.webkit.org/show_bug.cgi?id=207183

  • wtf/HashTable.h: (WTF::HashTableCapacityForSize::capacityForSize):

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

7:02 PM Changeset in webkit [256685] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WTF

Cherry-pick r256194. rdar://problem/59446995

Unreviewed, fix build failure on watchOS simulator
https://bugs.webkit.org/show_bug.cgi?id=207183

  • wtf/HashTable.h: (WTF::HashTableCapacityForSize::capacityForSize):

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

7:02 PM Changeset in webkit [256684] by Russell Epstein
  • 4 edits in branches/safari-609-branch

Cherry-pick r256093. rdar://problem/59446995

[WTF] Try using 75% load factor for HashTable
https://bugs.webkit.org/show_bug.cgi?id=207183

Reviewed by Mark Lam.

Source/WTF:

We know that hash-table is one of the most memory consuming part in WebKit.
By analyzing many production hash-table implementations[1], I found that many
of them are using 75% load-factor while our one is 50%.

This patch changes the load-factor from 50% to 75%. But we pick 75% only for
small tables which capacity is <= 1024 based on collected data by micro-benchmarking.
The collected data is telling that longer probe-length affects on performance if table
size gets larger.

[1]: LLVM DenseMap, Abseil's, rust's, and so on.

  • wtf/HashTable.h: (WTF::HashTableCapacityForSize::shouldExpand): (WTF::HashTableCapacityForSize::capacityForSize): (WTF::HashTable::shouldExpand const): (WTF::KeyTraits>::computeBestTableSize):

Tools:

  • TestWebKitAPI/Tests/WTF/HashSet.cpp: (TestWebKitAPI::testInitialCapacity):

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

7:02 PM Changeset in webkit [256683] by Russell Epstein
  • 4 edits in branches/safari-609-branch

Cherry-pick r256011. rdar://problem/59446995

Unreviewed, revert 75% load-factor because of JetStream2/string-unpack-code-SP regression
https://bugs.webkit.org/show_bug.cgi?id=207183

Source/WTF:

  • wtf/HashTable.h: (WTF::HashTable::shouldExpand const): (WTF::KeyTraits>::computeBestTableSize): (WTF::HashTable::shouldExpand): Deleted. (WTF::HashTableCapacityForSize::capacityForSize): Deleted.

Tools:

  • TestWebKitAPI/Tests/WTF/HashSet.cpp: (TestWebKitAPI::testInitialCapacity):

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

7:02 PM Changeset in webkit [256682] by Russell Epstein
  • 6 edits in branches/safari-609-branch

Cherry-pick r255889. rdar://problem/59446995

[WTF] Try using 75% load factor for HashTable
https://bugs.webkit.org/show_bug.cgi?id=207183

Reviewed by Mark Lam.

Source/WTF:

We know that hash-table is one of the most memory consuming part in WebKit.
By analyzing many production hash-table implementations[1], I found that many
of them are using 75% load-factor while our one is 50%.

A/B test shows that 75% load-factor is performance-neutral in Speedometer2 and
JetStream2, while it offers 2~% improvement in Membuster. This means that we are
wasting too much memory for no-performance-improvement.

This patch changes the load-factor from 50% to 75%.

[1]: LLVM DenseMap, Abseil's, rust's, and so on.

  • wtf/HashTable.h: (WTF::HashTable::shouldExpand): (WTF::HashTable::shouldExpand const): (WTF::HashTableCapacityForSize::capacityForSize): (WTF::KeyTraits>::computeBestTableSize):

Tools:

Fix load-factor assumption in existing tests.

  • TestWebKitAPI/Tests/WTF/HashSet.cpp: (TestWebKitAPI::testInitialCapacity):

LayoutTests:

It seems that this test is relying on hash-table's order.

  • http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-expected.txt:

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

7:02 PM Changeset in webkit [256681] by Russell Epstein
  • 5 edits in branches/safari-609-branch

Cherry-pick r255611. rdar://problem/59446995

Reduce size of HashMap and HashSet
https://bugs.webkit.org/show_bug.cgi?id=207138

Reviewed by Yusuke Suzuki.

Source/WTF:

This reduces sizeof(HashMap) and sizeof(HashSet) from 24 to 8 on 64-bit systems.
I measured that the overwhelming majority of HashMaps and HashSets never see more than 0 elements,
so I moved the table metadata (tableSize, tableSizeMask, keyCount, deletedCount) to inside the
dynamically allocated memory. This makes another branch in size() for non-empty tables
and an additional read and write when rehashing in exchange for fewer writes in the constructor
and increased cache locality of everything that uses HashMap and HashSet, which is basically everything.

  • wtf/HashTable.h: (WTF::HashTable::~HashTable): (WTF::HashTable::end): (WTF::HashTable::end const): (WTF::HashTable::random): (WTF::HashTable::size const): (WTF::HashTable::capacity const): (WTF::HashTable::isEmpty const): (WTF::HashTable::reserveInitialCapacity): (WTF::HashTable::shouldExpand const): (WTF::HashTable::mustRehashInPlace const): (WTF::HashTable::shouldShrink const): (WTF::HashTable::shrink): (WTF::HashTable::makeIterator): (WTF::HashTable::makeConstIterator const): (WTF::HashTable::makeKnownGoodIterator): (WTF::HashTable::makeKnownGoodConstIterator const): (WTF::HashTable::tableSize const): (WTF::HashTable::setTableSize const): (WTF::HashTable::tableSizeMask const): (WTF::HashTable::setTableSizeMask): (WTF::HashTable::keyCount const): (WTF::HashTable::setKeyCount const): (WTF::HashTable::deletedCount const): (WTF::HashTable::setDeletedCount const): (WTF::KeyTraits>::HashTable): (WTF::KeyTraits>::inlineLookup): (WTF::KeyTraits>::lookupForWriting): (WTF::KeyTraits>::fullLookupForWriting): (WTF::KeyTraits>::addUniqueForInitialization): (WTF::KeyTraits>::add): (WTF::KeyTraits>::addPassingHashCode): (WTF::KeyTraits>::remove): (WTF::KeyTraits>::removeIf): (WTF::KeyTraits>::allocateTable): (WTF::KeyTraits>::deallocateTable): (WTF::KeyTraits>::expand): (WTF::KeyTraits>::shrinkToBestSize): (WTF::KeyTraits>::deleteReleasedWeakBuckets): (WTF::KeyTraits>::rehash): (WTF::KeyTraits>::clear): (WTF::KeyTraits>::swap): (WTF::KeyTraits>::checkTableConsistencyExceptSize const):

Tools:

  • TestWebKitAPI/Tests/WTF/HashMap.cpp: (TestWebKitAPI::TEST):
  • TestWebKitAPI/Tests/WTF/HashSet.cpp: (TestWebKitAPI::TEST):

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

7:02 PM Changeset in webkit [256680] by Russell Epstein
  • 3 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r256578. rdar://problem/59447009

Protect WebSWServerConnection::scheduleJobInServer from bad scopeURL
https://bugs.webkit.org/show_bug.cgi?id=207722

Reviewed by Chris Dumez.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: (WebKit::WebSWServerConnection::scheduleJobInServer): In case of bad scope, fail the job early on.
  • WebProcess/Storage/WebSWClientConnection.cpp: (WebKit::WebSWClientConnection::scheduleJobInServer): Remove the RELEASE_ASSERT from now since we defend in Network process. We will add it back in ServiceWorkerRegistration::getOrCreate as a follow-up.

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

7:01 PM Changeset in webkit [256679] by Russell Epstein
  • 11 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256494. rdar://problem/59446989

CSSValuePool's constant CSS values should not be allocated dynamically (and same for Vectors)
https://bugs.webkit.org/show_bug.cgi?id=207666

Reviewed by Mark Lam.

r252785 changes contents (CSSValues and Vectors) of CSSValuePool from static ones to
dynamically allocated ones. This was done since we would like to use static CSSValues
even in the other threads (workers etc.) for OffscreenCanvas feature.

But this causes memory regression in Membuster since we allocates many CSSValues and
large Vectors, and they are kept persistently.

This patch removes dynamic allocation part of r252785 to recover memory regression.
The key of this patch is introducing Static CSSValue feature. When incrementing / decrementing
m_refCount of CSSValue, we add / subtract by 0x2. And we put 0x1 as a static-flag. So, even if
this CSSValue is used by multiple threads, we never see that CSSValue gets 0 m_refCount if
it is marked as static (having 0x1). This is the same design to our static StringImpl.

No behavior change.

  • css/CSSInheritedValue.h:
  • css/CSSInitialValue.h:
  • css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
  • css/CSSPrimitiveValue.h:
  • css/CSSRevertValue.h:
  • css/CSSUnsetValue.h:
  • css/CSSValue.cpp:
  • css/CSSValue.h: (WebCore::CSSValue::ref const): (WebCore::CSSValue::hasOneRef const): (WebCore::CSSValue::refCount const): (WebCore::CSSValue::hasAtLeastOneRef const): (WebCore::CSSValue::deref): (WebCore::CSSValue::makeStatic):
  • css/CSSValuePool.cpp: (WebCore::StaticCSSValuePool::StaticCSSValuePool): (WebCore::StaticCSSValuePool::init): (WebCore::CSSValuePool::CSSValuePool): (WebCore::CSSValuePool::singleton): (WebCore::CSSValuePool::createIdentifierValue): (WebCore::CSSValuePool::createColorValue): (WebCore::CSSValuePool::createValue):
  • css/CSSValuePool.h: (WebCore::CSSValuePool::createInheritedValue): (WebCore::CSSValuePool::createImplicitInitialValue): (WebCore::CSSValuePool::createExplicitInitialValue): (WebCore::CSSValuePool::createUnsetValue): (WebCore::CSSValuePool::createRevertValue):

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

7:01 PM Changeset in webkit [256678] by Russell Epstein
  • 3 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256474. rdar://problem/59446973

Web Inspector: inspector/cpu-profiler/threads.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=207588
<rdar://problem/57458123>

Reviewed by Yusuke Suzuki.

  • page/cocoa/ResourceUsageThreadCocoa.mm: (WebCore::ResourceUsageThread::platformCollectCPUData): Use a fence to force Thread to be completely ready for use by other threads prior to storing it. Otherwise, ResourceUsageThread may see it too early.
  • workers/WorkerThread.cpp: (WebCore::WorkerThread::start): Ignore worker threads that are not fully initialized.

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

7:01 PM Changeset in webkit [256677] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256470. rdar://problem/59446998

ServiceWorkerContainer::jobResolvedWithRegistration scopeExit should capture all lambda parameters by value
https://bugs.webkit.org/show_bug.cgi?id=207657

Reviewed by Chris Dumez.

shouldNotifyWhenResolved is captured by reference in the notifyIfExitEarly ScopeExit lambda.
The ScopeExit is not always called synchronously so it is unsafe to capture values by reference here.

  • workers/service/ServiceWorkerContainer.cpp: (WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

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

7:01 PM Changeset in webkit [256676] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r256452. rdar://problem/59446979

Pages that trigger a redirect will sometimes be left blank
https://bugs.webkit.org/show_bug.cgi?id=207614
rdar://problem/59077740

Reviewed by Tim Horton.

TiledCoreAnimationDrawingArea::setRootCompositingGraphicsLayer() can be called when the layer tree
is frozen, in which case we stash away the layer in m_pendingRootLayer to be parented later at flush
time. However, this sequence of calls had a bug:

setRootCompositingGraphicsLayer() when frozen

-> stash in m_pendingRootLayer

setRootCompositingGraphicsLayer() when not frozen

-> set the root layer

flushLayers()

-> set the root layer to the (old) m_pendingRootLayer

So we need to clear m_pendingRootLayer at step 2.

Very timing dependent, hard to test.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):

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

7:01 PM Changeset in webkit [256675] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r256447. rdar://problem/59446998

RELEASE_ASSERT() under WebSWClientConnection::didResolveRegistrationPromise()
https://bugs.webkit.org/show_bug.cgi?id=207637
<rdar://problem/59093490>

Reviewed by Youenn Fablet.

We were capturing data by reference in the notifyIfExitEarly ScopeExit lambda and then capturing it
in the task posted to the event loop, which was unsafe.

  • workers/service/ServiceWorkerContainer.cpp: (WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

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

7:01 PM Changeset in webkit [256674] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-609-branch

Cherry-pick r256427. rdar://problem/59447029

Fix crash due to uninitialized currentStyle in CSSTransition
https://bugs.webkit.org/show_bug.cgi?id=205959
<rdar://57073673>

Patch by Sunny He <sunny_he@apple.com> on 2020-02-12
Reviewed by Antoine Quint.

Source/WebCore:

Test: legacy-animation-engine/transitions/svg-bad-scale-crash.html

  • animation/CSSTransition.cpp: (WebCore::CSSTransition::create): (WebCore::CSSTransition::CSSTransition):
  • animation/CSSTransition.h:

LayoutTests:

Fix crash due to uninitialized currentStyle in CSSTransition

  • legacy-animation-engine/transitions/svg-bad-scale-crash-expected.txt: Added.
  • legacy-animation-engine/transitions/svg-bad-scale-crash.html: Added.

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

7:01 PM Changeset in webkit [256673] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r256401. rdar://problem/59447020

WebPage::getFocusedElementInformation should be robust when the focused element changes during layout
https://bugs.webkit.org/show_bug.cgi?id=207582
<rdar://problem/47634344>

Reviewed by Tim Horton.

This is a speculative fix for <rdar://problem/47634344>, wherein the …
getFocusedElementInformation may cause the currently focused element to disappear (or change). In the case where m_focusedElement becomes nil, we end up crashing with a null pointer deref, since the rest of the method assumes that m_focusedElement exists.

To patch this crash, bail early (after the first layout update) if m_focusedElement changed during the layout
pass. Since the rest of the function my trigger even more layout updates that could nuke m_focusedElement, I
also changed the rest of the function to use the locally stored focusedElement variable instead of
m_focusedElement, on WebPage.

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getFocusedElementInformation):

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

7:01 PM Changeset in webkit [256672] by Russell Epstein
  • 4 edits in branches/safari-609-branch

Cherry-pick r256395. rdar://problem/59447024

Bug 207424: Crash in WebCore::ParsedContentType::parseContentType when parsing invalid MIME type
<https://webkit.org/b/207424>
<rdar://problem/59250384>

Patch by Rob Buis <rbuis@igalia.com> and David Kilzer <ddkilzer@apple.com> on 2020-02-11
Reviewed by Rob Buis.

Source/WebCore:

Return StringView directly rather than wrapping
it in Optional, since StringView's can be null tested.

Tests: TestWebKitAPI.ParsedContentType

  • platform/network/ParsedContentType.cpp: (WebCore::parseToken): (WebCore::parseQuotedString): (WebCore::ParsedContentType::parseContentType): Don't set type parameter if parameterName is null string. Remove unneeded parameterName variable; use keyRange.toString() instead.

Tools:

  • TestWebKitAPI/Tests/WebCore/ParsedContentType.cpp: (TestWebKitAPI::TEST): Add more tests.

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

7:01 PM Changeset in webkit [256671] by Russell Epstein
  • 5 edits in branches/safari-609-branch

Cherry-pick r256377. rdar://problem/59446971

Regression: RTCRtpSender.getCapabilities("video") returns null on iOS 13.4 (17E5223h)
https://bugs.webkit.org/show_bug.cgi?id=207325
<rdar://problem/59224810>

Reviewed by Eric Carlson.

Source/WebCore:

Manually tested and covered by API test.

  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp: (WebCore::LibWebRTCProvider::webRTCAvailable): Return true unconditionally on iOS since libwebrtc.dylib is always available.

Tools:

  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm: (TestWebKitAPI::TEST): Add a test validating that RTCRtpSender.getCapabilities does not return null.
  • TestWebKitAPI/Tests/WebKit/getUserMedia.html:

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

7:01 PM Changeset in webkit [256670] by Russell Epstein
  • 4 edits
    2 adds in branches/safari-609-branch

Cherry-pick r256346. rdar://problem/59446984

video.currentTime is not being updated in iOS 13.4 Beta
https://bugs.webkit.org/show_bug.cgi?id=207489
<rdar://problem/59322640>

Reviewed by Youenn Fablet.

Source/WebKit:

Allow the Web process and the GPU process to communicate with
'com.apple.coremedia.audiodeviceclock.xpc' because it is necessary to use a
CMTimeBase, which is used by MediaPlayerPrivateMediaStreamAVFObjC for currentTime.

Test: fast/mediastream/media-element-current-time.html

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

LayoutTests:

  • fast/mediastream/media-element-current-time.html: Added.

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

7:01 PM Changeset in webkit [256669] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore/PAL

Cherry-pick r256320. rdar://problem/59447006

AX: Wrong includes for internal SDK
https://bugs.webkit.org/show_bug.cgi?id=207554

Reviewed by Chris Dumez.

  • pal/spi/mac/HIServicesSPI.h:

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

7:01 PM Changeset in webkit [256668] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r256233. rdar://problem/59447027

WebKit::WebProcessPool::initializeClassesForParameterCoding() should keep a copy of CString
<https://webkit.org/b/207519>
<rdar://problem/59043436>

Reviewed by Brent Fulgham.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::initializeClassesForParameterCoding):
  • Change className to keep a copy of the CString object.

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

7:01 PM Changeset in webkit [256667] by Russell Epstein
  • 8 edits in branches/safari-609-branch

Cherry-pick r256207. rdar://problem/59447263

Don't update selection when calling setSelectionRange on a disconnected input element
https://bugs.webkit.org/show_bug.cgi?id=207357

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Rebaselined the test that progressed a little. The test now passes offset checks but still fails direction check.

  • web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea-expected.txt:

Source/WebCore:

Don't update FrameSelection when the text form control element is disconnected from document.

  • html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::setSelectionRange):

LayoutTests:

Rebaselined the test that has progressed with this change.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:

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

7:01 PM Changeset in webkit [256666] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r256187. rdar://problem/59446994

Crash under WebProcessProxy::shouldSendPendingMessage()
https://bugs.webkit.org/show_bug.cgi?id=207464
<rdar://problem/59293825>

Reviewed by Alex Christensen.

I suspect the WebProcessProxy object is getting destroyed as we are iterating over the
pending messages in AuxiliaryProcessProxy::didFinishLaunching(), thus crashing when
calling WebProcessProxy::shouldSendPendingMessage() inside the loop. As a speculative
fix, protect |this| at the beginning of WebProcessProxy::didFinishLaunching().

  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didFinishLaunching):

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

6:57 PM Changeset in webkit [256665] by Tadeu Zagallo
  • 9 edits
    2 adds in trunk

[WASM] Wasm interpreter's calling convention doesn't match Wasm JIT's convention.
https://bugs.webkit.org/show_bug.cgi?id=207727

JSTests:

Reviewed by Mark Lam.

  • wasm/regress/llint-callee-saves-with-fast-memory.js: Added.
  • wasm/regress/llint-callee-saves-without-fast-memory.js: Added.

Source/JavaScriptCore:

Reviewed by Mark Lam.

The Wasm JIT has unusual calling conventions, which were further complicated by the addition
of the interpreter, and the interpreter did not correctly follow these conventions (by incorrectly
saving and restoring the callee save registers used for the memory base and size). Here's a summary
of the calling convention:

  • When entering Wasm from JS, the wrapper must:
    • Preserve the base and size when entering LLInt regardless of the mode. (Prior to this patch we only preserved the base in Signaling mode)
    • Preserve the memory base in either mode, and the size for BoundsChecking.
  • Both tiers must preserve every *other* register they use. e.g. the LLInt must preserve PB and wasmInstance, but must *not* preserve memoryBase and memorySize.
  • Changes to memoryBase and memorySize are visible to the caller. This means that:
    • Intra-module calls can assume these registers are up-to-date even if the memory was resized. The only exception here is if the LLInt calls a signaling JIT, in which case the JIT will not update the size register, since it won't be using it.
    • Inter-module and JS calls require the caller to reload these registers. These calls may result in memory changes (e.g. the callee may call memory.grow).
    • A Signaling JIT caller must be aware that the LLInt may trash the size register, since it always bounds checks.
  • llint/WebAssembly.asm:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addCall):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addCall):

  • wasm/WasmCallee.cpp:

(JSC::Wasm::LLIntCallee::calleeSaveRegisters):

  • wasm/WasmCallingConvention.h:
  • wasm/WasmLLIntPlan.cpp:

(JSC::Wasm::LLIntPlan::didCompleteCompilation):

  • wasm/WasmMemoryInformation.cpp:

(JSC::Wasm::PinnedRegisterInfo::get):
(JSC::Wasm::getPinnedRegisters): Deleted.

6:36 PM Changeset in webkit [256664] by youenn@apple.com
  • 20 edits in trunk/Source

Simplify WebProcess handling of unregistering of service workers
https://bugs.webkit.org/show_bug.cgi?id=207669

Reviewed by Chris Dumez.

Source/WebCore:

Instead of creating a job in WebProcess, we now create it at SWServer level.
This allows the ServiceWorkerContainer to only provide the service worker registration identifier
to start the unregistering process.
To simplify things, a completion handler is used to resolve the promise once the unregister job run.

This allows to send less information from ServiceWorkerContainer to SWServer through IPC.

No observable change of behavior.

  • workers/service/SWClientConnection.cpp:

(WebCore::SWClientConnection::unregistrationJobResolvedInServer): Deleted.

  • workers/service/SWClientConnection.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::unregisterRegistration):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerJobData.cpp:

(WebCore::serviceWorkerOrClientIdentifier):
(WebCore::ServiceWorkerJobData::ServiceWorkerJobData):

  • workers/service/ServiceWorkerJobData.h:
  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::unregister):

  • workers/service/WorkerSWClientConnection.cpp:

(WebCore::WorkerSWClientConnection::scheduleUnregisterJobInServer):

  • workers/service/WorkerSWClientConnection.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::scheduleUnregisterJob):

  • workers/service/server/SWServer.h:

Source/WebKit:

Use Async Reply IPC for scheduling an unregister job.

Make WebSWServerConnection own a map of CompletionHandler keyed by unregister job identifiers.
WebSWServerConnection then asks SWServer to schedule the unregister job.
When job is run, WebSWServerConnection will call the corresponding completion handler.
The completion handler will trigger an IPC response that will trigger the unregister promise to be resolved.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::resolveUnregistrationJobInClient):
(WebKit::WebSWServerConnection::scheduleUnregisterJobInServer):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • Scripts/webkit/messages.py:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::scheduleUnregisterJobInServer):

  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebSWClientConnection.messages.in:
6:20 PM Changeset in webkit [256663] by Russell Epstein
  • 8 edits in branches/safari-609-branch/Source

Versioning.

6:15 PM Changeset in webkit [256662] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Improve NSURLSession WebSocket message handling in case of error
https://bugs.webkit.org/show_bug.cgi?id=207799

Reviewed by Alex Christensen.

Tested by running layout tests with NSURLSession WebSocket code path enabled..

  • NetworkProcess/cocoa/WebSocketTaskCocoa.mm:

(WebKit::WebSocketTask::readNextMessage):
readNextMessage completion handler may be called when the connection is closed or in case of real error.
We discriminate this case by checking closeCode and if not null, we do nothing since the connection is being closed.
Otherwise, we communicate the error to WebProcess and close the connection.
(WebKit::WebSocketTask::sendString):
Add workaround until this gets fixed underneath.
(WebKit::WebSocketTask::sendData):
Add workaround until this gets fixed underneath.

5:20 PM Changeset in webkit [256661] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

[WebAuthn] Make Local Authenticator appear as an experimental feature
https://bugs.webkit.org/show_bug.cgi?id=207797
<rdar://problem/59475709>

Reviewed by Brent Fulgham.

  • Shared/WebPreferences.yaml:
5:20 PM Changeset in webkit [256660] by Brent Fulgham
  • 7 edits in trunk/Source/WebKit

Dynamically generate media-related mach connections when not using the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=207743
<rdar://problem/59449750>

Reviewed by Per Arne Vollan.

Stop using permanent sandbox permissions to connect to media-related XPC services. Instead,
create them dynamically in the UIProcess and vend them to the relevant WebContent process
as needed. If all media features are active in the GPU process, do not emit extensions since
they should not be needed in the WebContent process at that point.

Tested by existing media and GPU process tests.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Remove permanet rules in

preference for dynamic extensions.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const): Serialize new service connections.
(WebKit::WebProcessCreationParameters::decode): Ditto.

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::mediaRelatedMachServices): Helper function listing needed services.
(WebKit::WebProcessPool::platformInitializeWebProcess): Create service connections when
needed.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess): Consume media-related connections
when needed.

  • WebProcess/com.apple.WebProcess.sb.in: Remove permanet rules in preference for

dynamic extensions.

5:18 PM Changeset in webkit [256659] by commit-queue@webkit.org
  • 26 edits
    2 adds in trunk

new FontFace() should not throw when failing to parse arguments
https://bugs.webkit.org/show_bug.cgi?id=205770

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-14
Reviewed by Myles Maxfield.

Source/WebCore:

Change FontFace constructor to conform to API specification:
https://drafts.csswg.org/css-font-loading/#dom-fontface-fontface.
No longer throws. For parsing failure, now rejects promise, sets
status to error, and sets FontFace members to default string.

Test: http/tests/css/font-face-constructor.html

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::setErrorState):

  • css/CSSFontFace.h:
  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::addToFacesLookupTable):
(WebCore::CSSFontFaceSet::remove):
(WebCore::CSSFontFaceSet::fontFace):

  • css/CSSSegmentedFontFace.cpp:

(WebCore::CSSSegmentedFontFace::fontRanges):

  • css/FontFace.cpp:

(WebCore::FontFace::setErrorState):
(WebCore::FontFace::create):
(WebCore::FontFace::family const):
(WebCore::FontFace::style const):
(WebCore::FontFace::weight const):
(WebCore::FontFace::stretch const):
(WebCore::FontFace::unicodeRange const):
(WebCore::FontFace::featureSettings const):
(WebCore::FontFace::display const):
(WebCore::FontFace::fontStateChanged):

  • css/FontFace.h:
  • css/FontFace.idl:

LayoutTests:

Tests that constructor doesn't throw, sets members to corresponding default strings.

  • http/tests/css/font-face-constructor-expected.txt: Added.
  • http/tests/css/font-face-constructor.html: Added.
5:01 PM Changeset in webkit [256658] by youenn@apple.com
  • 10 edits
    1 copy in trunk/Source

Introduce MediaStreamPrivate::forEachTrack
https://bugs.webkit.org/show_bug.cgi?id=207773

Reviewed by Eric Carlson.

Source/WebCore:

Introduce forEachTrack to allow read-only iterating through the tracks.
This is more efficient than copying the tracks.
Add a helper routine to select the tracks to record in MediaRecorderPrivate.
No change of behavior.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentReadyState):

  • platform/mediarecorder/MediaRecorderPrivate.cpp: Added.

(WebCore::MediaRecorderPrivate::selectTracks):

  • platform/mediarecorder/MediaRecorderPrivate.h:
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:

(WebCore::MediaRecorderPrivateAVFImpl::create):

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::forEachTrack const):

  • platform/mediastream/MediaStreamPrivate.h:

Source/WebKit:

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:

(WebKit::MediaRecorderPrivate::MediaRecorderPrivate):
Use helper routine instead of MediaStreamPrviate::streamTracks().

5:01 PM Changeset in webkit [256657] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Fix flaky tests that scroll before first paint
https://bugs.webkit.org/show_bug.cgi?id=207780

After https://bugs.webkit.org/show_bug.cgi?id=207516, a couple of tests are now flaky. This
is because that patch delays first paint until there is enough content to render, and some
of these tests are issuing scroll events on controls before those controls render. To fix
this, we delay issuing the events until after the page loads.

Patch by Ben Nham <Ben Nham> on 2020-02-14
Reviewed by Simon Fraser.

  • fast/events/scroll-in-scaled-page-with-overflow-hidden.html:
  • fast/scrolling/scroll-container-horizontally.html:
3:51 PM Changeset in webkit [256656] by Truitt Savell
  • 3 edits in trunk/LayoutTests

[ Mac wk2 ] fast/html/marquee-child-wrap.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207793

Unreviewed test fix.

Increased the scrolldelay on this test to stop the flakiness.

  • fast/html/marquee-child-wrap.html:
  • platform/mac-wk2/TestExpectations:
3:45 PM Changeset in webkit [256655] by Jason_Lawrence
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

Need a short description (OOPS!).
Need the bug URL (OOPS!).

Reviewed by NOBODY (OOPS!).

  • platform/mac-wk2/TestExpectations:
3:45 PM Changeset in webkit [256654] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Release ] webrtc/connection-state.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207798

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:23 PM Changeset in webkit [256653] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Release ] fast/box-shadow/hidpi-box-shadow.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207796

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:18 PM Changeset in webkit [256652] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: VoiceOver doesn't read selected panel tab
https://bugs.webkit.org/show_bug.cgi?id=207735
<rdar://problem/59445157>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/NavigationBar.js:

(WI.NavigationBar):
(WI.NavigationBar.prototype._mouseDown):
(WI.NavigationBar.prototype._mouseUp):
Navigation bar itself shouldn't receive focus - its items should.

  • UserInterface/Views/RadioButtonNavigationItem.js:

(WI.RadioButtonNavigationItem):
"tab" was passed as a label by mistake. VoiceOver read every tab as "tab" instead of it's actual label.

(WI.RadioButtonNavigationItem.prototype.set selected):
When clicking on a tab, focus on it so VoiceOver could read it.

3:17 PM Changeset in webkit [256651] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

[Curl] Implement NetworkStorageSession::get/set/deleteCookie
https://bugs.webkit.org/show_bug.cgi?id=207450

Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-02-14
Reviewed by Don Olmstead.

  • platform/network/curl/CookieJarCurl.cpp:

(WebCore::CookieJarCurl::getAllCookies const):
(WebCore::CookieJarCurl::setCookie const):
(WebCore::CookieJarCurl::deleteCookie const):

  • platform/network/curl/CookieJarCurl.h:
  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::getAllCookies):

  • platform/network/curl/CookieJarDB.h:
  • platform/network/curl/NetworkStorageSessionCurl.cpp:

(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::setCookie):
(WebCore::NetworkStorageSession::deleteCookie):
(WebCore::NetworkStorageSession::getAllCookies):

3:05 PM Changeset in webkit [256650] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] fast/html/marquee-child-wrap.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207793

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:02 PM Changeset in webkit [256649] by commit-queue@webkit.org
  • 2 edits
    2 moves in trunk/LayoutTests

[css-grid] Move grid-gutters-and-alignment test to WPT folder
https://bugs.webkit.org/show_bug.cgi?id=207751

Patch by Rossana Monteriso <rmonteriso@igalia.com> on 2020-02-14
Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

Add grid-gutters-and-alignment test, checked and adapted to WPT, with its expected.txt file.
Imported to WPT with this PR: https://github.com/web-platform-tests/wpt/pull/21717

  • web-platform-tests/css/css-grid/alignment/grid-gutters-and-alignment-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-gutters-and-alignment.html:

LayoutTests:

Remove grid-gutters-and-alignment test and its expected.txt file. The test is being replaced
by an adapted test in the corresponding WPT test folder.

  • fast/css-grid-layout/grid-gutters-and-alignment-expected.txt: Removed.
  • fast/css-grid-layout/grid-gutters-and-alignment.html: Removed.
3:01 PM Changeset in webkit [256648] by commit-queue@webkit.org
  • 15 edits in trunk

WebKit support for Apple Pay Buttons with custom corner radii
https://bugs.webkit.org/show_bug.cgi?id=207664
Source/WebCore:

<rdar://problem/43718114>

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-14
Reviewed by Andy Estes.

Added support for border-radius css property for apple pay
button drawing.

Modified old tests to test this new behavior.

  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::paintApplePayButton):

Source/WebCore/PAL:

<rdar://problem/43718114>

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-14
Reviewed by Andy Estes.

Added link for PKDrawApplePayButtonWithCornerRadius and
PKApplePayButtonDefaultCornerRadius.

  • pal/cocoa/PassKitSoftLink.h:
  • pal/cocoa/PassKitSoftLink.mm:
  • pal/spi/cocoa/PassKitSPI.h:

LayoutTests:

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-14
Reviewed by Andy Estes.

Modified both tests to test new functionality for setting custom corner
radii.

  • http/tests/ssl/applepay/ApplePayButton.html:
  • http/tests/ssl/applepay/ApplePayButtonV4.html:
  • platform/mac-highsierra/http/tests/ssl/applepay/ApplePayButton-expected.png:
  • platform/mac-highsierra/http/tests/ssl/applepay/ApplePayButton-expected.txt:
  • platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.png:
  • platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.txt:
  • platform/mac/http/tests/ssl/applepay/ApplePayButtonV4-expected.png:
  • platform/mac/http/tests/ssl/applepay/ApplePayButtonV4-expected.txt:
2:45 PM Changeset in webkit [256647] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Bezier editor popover should be strictly LTR
https://bugs.webkit.org/show_bug.cgi?id=206968
<rdar://problem/59007065>

Reviewed by Timothy Hatcher.

webkitConvertPointFromPageToNode does not work correctly with the zoom level other than 1.
Replace all uses of webkitConvertPointFromPageToNode with getBoundingClientRect.

  • UserInterface/Models/Geometry.js:

(WI.Point.fromEventInElement):

  • UserInterface/Views/ColorSquare.js:

(WI.ColorSquare.prototype._updateColorForMouseEvent):

  • UserInterface/Views/GradientSlider.js:

(WI.GradientSlider.prototype._updateShadowKnob):

  • UserInterface/Views/Slider.js:

(WI.Slider.prototype._localPointForEvent):
(WI.Slider):

2:37 PM Changeset in webkit [256646] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

WKWebView._setResourceLoadDelegate should clear the WebPageProxy's ResourceLoadClient
https://bugs.webkit.org/show_bug.cgi?id=205887

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setResourceLoadDelegate:]):
WebPageProxy::setResourceLoadClient has some special logic to possibly clear a bit in the web process that will reduce IPCs.
This is a small oversight in my original implementation.

2:27 PM Changeset in webkit [256645] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[Web Animations] Unflake web-animations/timing-model/timelines/update-and-send-events.html WPT test
https://bugs.webkit.org/show_bug.cgi?id=202109

Unreviewed test gardening.

1:59 PM Changeset in webkit [256644] by Alan Coon
  • 1 copy in tags/Safari-610.1.3

Tag Safari-610.1.3.

1:59 PM Changeset in webkit [256643] by Alan Coon
  • 1 delete in tags/Safari-610.1.3

Delete tag.

1:56 PM Changeset in webkit [256642] by Russell Epstein
  • 1 copy in tags/Safari-609.1.18

Tag Safari-609.1.18.

1:55 PM Changeset in webkit [256641] by Alan Coon
  • 1 copy in tags/Safari-610.1.3

Tag Safari-610.1.3.

1:36 PM Changeset in webkit [256640] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/IndexedDB-private-browsing are all flaky timeouts
https://bugs.webkit.org/show_bug.cgi?id=207786

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations: Fixed the bug number.
1:30 PM Changeset in webkit [256639] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] fast/events/keydown-1.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207785

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:27 PM Changeset in webkit [256638] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] http/tests/misc/form-submit-file-cross-site-redirect.html fails with incomplete form data
https://bugs.webkit.org/show_bug.cgi?id=207016

After bug206517 was fixed, this test has been passing in all GTK bots.

Unreviewed test gardening.

Patch by Lauro Moura <Lauro Moura> on 2020-02-14

  • platform/gtk/TestExpectations:
1:22 PM Changeset in webkit [256637] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/IndexedDB-private-browsing are all flaky timeouts
https://bugs.webkit.org/show_bug.cgi?id=207786

Updatating expectations for all IndexedDP-private-browsing tests.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
1:19 PM Changeset in webkit [256636] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[Web Animations] Missing call to DocumentTimeline::resumeAnimations() in Frame::resumeActiveDOMObjectsAndAnimations()
https://bugs.webkit.org/show_bug.cgi?id=207784
<rdar://problem/59251858>

Patch by Antoine Quint <graouts@webkit.org> on 2020-02-14
Reviewed by Dean Jackson.

After auditing the code, there was one call to CSSAnimationController::resumeAnimationsForDocument() that missed a matching DocumentTimeline::resumeAnimations()
call should the Web Animations flag be on.

  • page/Frame.cpp:

(WebCore::Frame::resumeActiveDOMObjectsAndAnimations):

1:13 PM Changeset in webkit [256635] by Ryan Haddad
  • 3 edits in branches/safari-609-branch/Tools

Cherry-pick r256297. rdar://problem/59442308

[iOS] Non-internal API test runners frequently crash due to Objective-C exceptions
https://bugs.webkit.org/show_bug.cgi?id=207525
<rdar://problem/59110543>

Reviewed by Tim Horton.

After the fix for <rdar://problem/56301207>, some scroll view content offset changes will attempt to call into
CoreAnalytics API to try and report data about scrolling velocities. In the iOS 13.3 simulator, this involves
creating a dictionary, of which one of the keys is the bundle identifier of the application. The value is
unconditionally inserted into the dictionary. Since TestWebKitAPI does not run in the context of a
UIApplication, the bundle identifier (that is, NSBundle.mainBundle.bundleIdentifier) ends up being nil,
causing us to crash upon trying to create the dictionary.

While it would make things easier, we can't just swizzle -bundleIdentifier for the entirely of every test, since
some tests expect the bundle identifier to be nil (or call into system frameworks that expect the bundle
identifier to be nil). These tests fail or time out when -bundleIdentifier is unconditionally swizzled
throughout the test run. To work around this bug for the time being, simply pretend that we have a bundle
identifier when running API tests on iOS, by swizzling -[NSBundle bundleIdentifier] to return a string at the
beginning of each API test.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/cocoa/TestWKWebView.mm: (overrideBundleIdentifier):

Move this to the top of the file, so it can be shared.

(+[WKWebView initialize]):

At the start of each test, force UIKit to cache a fake value for _UIMainBundleIdentifier() by invoking an
internal class method that calls into the internal helper function, with no other side effects.

  • TestWebKitAPI/ios/UIKitSPI.h:

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

1:09 PM Changeset in webkit [256634] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix the iOS 13.1 build after r256520

These two methods are not in the internal iOS 13.1 SDK.

  • Platform/spi/ios/UIKitSPI.h:
12:06 PM Changeset in webkit [256633] by chris.reid@sony.com
  • 17 edits in trunk

[Win] Implement NetworkCache::Data by using FileSystem::MappedFileData
https://bugs.webkit.org/show_bug.cgi?id=197684

Reviewed by Fujii Hironori.

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

Ensure that the CacheStorage directory is actually being created.

  • NetworkProcess/cache/NetworkCacheData.cpp:
  • NetworkProcess/cache/NetworkCacheData.h:
  • NetworkProcess/cache/NetworkCacheDataCocoa.mm:
  • NetworkProcess/cache/NetworkCacheDataSoup.cpp:
  • NetworkProcess/cache/NetworkCacheFileSystem.cpp:

Use more FileSystem functionality to share code across platforms.

  • NetworkProcess/cache/NetworkCacheDataCurl.cpp:

Use Optional<Vector> for m_buffer since we need to differentiate isEmpty and isNull.

Source/WTF:

  • wtf/FileSystem.cpp:
  • wtf/FileSystem.h:

Added FileAccessPermission flag when opening files.
Remove default argument for the listDirectory filter since the defaut
String() filter doesn't match all files on Mac and Windows.

  • wtf/glib/FileSystemGlib.cpp:
  • wtf/posix/FileSystemPOSIX.cpp:

Added (S_IRUSR | S_IWUSR) file open modes.

  • wtf/win/FileSystemWin.cpp:

Implement getVolumeFreeSpace since some of the tests use it when toggling cache.

  • wtf/win/PathWalker.cpp:

LayoutTests:

  • platform/wincairo/TestExpectations:
11:53 AM Changeset in webkit [256632] by ysuzuki@apple.com
  • 26 edits in trunk

NetworkLoadMetrics should be shared by multiple ResourceResponse instances
https://bugs.webkit.org/show_bug.cgi?id=207747

Reviewed by Keith Miller.

Source/WebCore:

ResourceResponse is value data, and it is copied multiple times in various places, (1) to create a new ResourceResponse
which has slightly different fields, or (1) to hold ResourceResponse even after loading finishes. For example, DocumentLoader
has Vector<ResourceResponse> to replay response dispatching in the case of loading from BackForwardCache. The problem is
that ResourceResponse is very large: 440 bytes.

While we sometimes copy ResourceResponse to modify some part of it, NetworkLoadMetrics is immutable. It is set when response is created,
and is never changed. And NetworkLoadMetrics is large: sizeof(NetworkLoadMetrics) is 184 bytes. Given that we have multiple
copies of ResourceResponse in WebCore, we should share NetworkLoadMetrics by them.

This patch puts Box<NetworkLoadMetrics> in ResourceResponse to share it with all copied ResourceResponses. We do not make NetworkLoadMetrics
RefCounted<> for now since some legit data structures embed NetworkLoadMetrics. This patch adds ArgumentCoder for Box so that we
can encode / decode Box<NetworkLoadMetrics> in ResourceResponse in IPC. To ensure NetworkLoadMetrics in ResourceResponse immutable,
we add ResourceResponse::setDeprecatedNetworkLoadMetrics instead of modifying NetworkLoadMetrics already created in ResourceResponse.

We also attempt to compact ResourceResponse more by using bit-fields. And removing m_isValid field in ParsedContentRange since
this can be represented by the different field. These changes make sizeof(ResourceResponse) from 440 to 248.

No behavior change.

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::buildObjectForTiming):
(WebCore::InspectorNetworkAgent::buildObjectForResourceResponse):

  • inspector/agents/InspectorNetworkAgent.h:
  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didFinishLoading):

  • page/PerformanceTiming.cpp:

(WebCore::PerformanceTiming::domainLookupStart const):
(WebCore::PerformanceTiming::domainLookupEnd const):
(WebCore::PerformanceTiming::connectStart const):
(WebCore::PerformanceTiming::connectEnd const):
(WebCore::PerformanceTiming::secureConnectionStart const):
(WebCore::PerformanceTiming::requestStart const):
(WebCore::PerformanceTiming::responseStart const):

  • platform/network/NetworkLoadMetrics.h:
  • platform/network/ParsedContentRange.cpp:

(WebCore::areContentRangeValuesValid):
(WebCore::parseContentRange):
(WebCore::ParsedContentRange::ParsedContentRange):
(WebCore::ParsedContentRange::headerValue const):

  • platform/network/ParsedContentRange.h:

(WebCore::ParsedContentRange::isValid const):
(WebCore::ParsedContentRange::invalidValue):
(WebCore::ParsedContentRange::MarkableTraits::isEmptyValue):
(WebCore::ParsedContentRange::MarkableTraits::emptyValue):
(WebCore::ParsedContentRange::ParsedContentRange): Deleted.

  • platform/network/ResourceHandle.h:
  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::ResourceResponseBase):
(WebCore::ResourceResponseBase::crossThreadData const):
(WebCore::ResourceResponseBase::fromCrossThreadData):
(WebCore::ResourceResponseBase::compare):

  • platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::deprecatedNetworkLoadMetricsOrNull const):
(WebCore::ResourceResponseBase::setDeprecatedNetworkLoadMetrics):
(WebCore::ResourceResponseBase::encode const):
(WebCore::ResourceResponseBase::decode):
(WebCore::ResourceResponseBase::deprecatedNetworkLoadMetrics const): Deleted.

  • platform/network/cf/ResourceResponse.h:

(WebCore::ResourceResponse::ResourceResponse):

  • platform/network/cocoa/NetworkLoadMetrics.mm:

(WebCore::copyTimingData):

  • platform/network/curl/CurlResourceHandleDelegate.cpp:

(WebCore::CurlResourceHandleDelegate::curlDidReceiveResponse):

  • platform/network/curl/ResourceResponse.h:
  • platform/network/curl/ResourceResponseCurl.cpp:

(WebCore::ResourceResponse::setDeprecatedNetworkLoadMetrics): Deleted.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::getConnectionTimingData):

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):

Source/WebKit:

Add ArgumentCoder support for Box<T>.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):

  • Platform/IPC/ArgumentCoders.h:

(IPC::ArgumentCoder<Box<T>>::encode):
(IPC::ArgumentCoder<Box<T>>::decode):

Tools:

  • TestWebKitAPI/Tests/WebCore/ParsedContentRange.cpp:

(TestWebKitAPI::TEST):

11:29 AM Changeset in webkit [256631] by Andres Gonzalez
  • 6 edits in trunk/Source/WebCore

Implementation of AXIsolatedObject::isDescendantOfObject.
https://bugs.webkit.org/show_bug.cgi?id=207697

Reviewed by Chris Fleizach.

  • Moved the implementation of AccessibilityObject::isDescendantOfObject

and isAncestorOfObject to the base class AXCoreObject.

  • Implemented AXIsolatedObject::hasChildren by caching the value from

the associated AXObject. It is used in isDescendantOfObject.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isDescendantOfObject const): MOved to AXCoreObject.
(WebCore::AccessibilityObject::isAncestorOfObject const): Moved to AXCoreObject.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:

(WebCore::AXCoreObject::isDescendantOfObject const):
(WebCore::AXCoreObject::isAncestorOfObject const):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData): Sets the HasChildren attribute.
(WebCore::AXIsolatedObject::hasChildren const): Deleted.
(WebCore::AXIsolatedObject::isDescendantOfObject const): Deleted.
(WebCore::AXIsolatedObject::isAncestorOfObject const): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.h:
11:22 AM Changeset in webkit [256630] by Andres Gonzalez
  • 6 edits in trunk/Source/WebCore

When updating a subtree of the IsolatedTree, first remove the entire subtree, not just the subtree root.
https://bugs.webkit.org/show_bug.cgi?id=207759

Reviewed by Chris Fleizach.

When updating an IsolatedTree subtree, we were removing just the root
of the subtree. Added AXIsolatedTree::removeSubtree that is now used in
updateIsolatedTree.

  • accessibility/AXObjectCache.cpp:

(WebCore::createIsolatedTreeHierarchy): If the wrapper is attached
during creation, set it to null in the NodeChange so that it is not
re-attached on the AX thread.
(WebCore::AXObjectCache::updateIsolatedTree): removeSubtree instead of
removeNode.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::~AXIsolatedObject): When an IsolatedObject
is destroyed, it must have been detached from its wrapper.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::NodeChange::NodeChange): Constructors now
take an IsolatedObject instead of a Ref.
(WebCore::AXIsolatedTree::removeNode):
(WebCore::AXIsolatedTree::removeSubtree):
(WebCore::AXIsolatedTree::applyPendingChanges): Attach wrappers only if
not null. The IsolatedObject refCount must be 2 at that point.

  • accessibility/isolatedtree/AXIsolatedTree.h:
11:09 AM Changeset in webkit [256629] by commit-queue@webkit.org
  • 4 edits in trunk

Allow UIDNAInfo.errors from uidna_nameToUnicode that would not cause URL parsing failures
https://bugs.webkit.org/show_bug.cgi?id=207360
<rdar://problem/57825317>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-02-14
Reviewed by Ryosuke Niwa.

Source/WTF:

  • wtf/URLHelpers.cpp:

(WTF::URLHelpers::mapHostName):

Tools:

  • TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:

(TestWebKitAPI::TEST):

11:05 AM Changeset in webkit [256628] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

LayoutTests/imported/w3c:
[Web Animations] Style changes due to Web Animations should not trigger CSS Transitions
https://bugs.webkit.org/show_bug.cgi?id=207760
<rdar://problem/59458111>

Patch by Antoine Quint <graouts@webkit.org> on 2020-02-14
Reviewed by Simon Fraser.

Mark Web Platform Tests progressions.

  • web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/style-change-events-expected.txt:
  • web-platform-tests/web-animations/interfaces/DocumentTimeline/style-change-events-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt:

Source/WebCore:
[Web Animations] Style changes due to Web Animations should not trigger CSS Transitions
https://bugs.webkit.org/show_bug.cgi?id=207760
<rdar://problem/59458111>

Patch by Antoine Quint <graouts@webkit.org> on 2020-02-14
Reviewed by Simon Fraser.

While we would consider the unanimated style of CSS Animations specifically when considering what the "start" style values (before-change style in spec terminology)
should be when considering whether to start a CSS Transition during style resolution, we would not consider other types of animations, specifically JS-created Web
Animations. However, Web Platform Tests specifically test whether changes made using the Web Animations API may trigger transitions, and until now they would because
the RenderStyle used to determine the before-change style was the style from the previous resolution, which would include animated values.

To fix this, we make it so that KeyframeEffect objects now keep a copy of the unanimated style used when blending animated values for the very first time. That style
is cleared each time keyframes change, which is rare, but may happen through the Web Animations API. Then in AnimationTimeline::updateCSSTransitionsForElementAndProperty(),
we look for a KeyframeEffect currently affecting the property for which we're considering starting a CSS Transition, and use its unanimated style.

If that unanimated style has not been set yet, this is because the KeyframeEffect has not had a chance to apply itself with a non-null progress. In this case, the before-change
and after-change styles should be the same in order to prevent a transition from being triggered as the unanimated style for this keyframe effect will most likely be this
after-change style, or any future style change that may happen before the keyframe effect starts blending animated values.

Finally, tracking the unanimated style at the KeyframeEffect level means we no longer to track it specifically for CSSAnimation.

  • animation/AnimationTimeline.cpp:

(WebCore::keyframeEffectForElementAndProperty):
(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):

  • animation/AnimationTimeline.h:
  • animation/CSSAnimation.cpp:

(WebCore::CSSAnimation::create):
(WebCore::CSSAnimation::CSSAnimation):

  • animation/CSSAnimation.h:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::animatesProperty const): Because the backing KeyframeList object may not have been created by the first time we query a KeyframeEffect during
CSS Transitions resolution, we provide a method that will check the values provided by the Web Animations API to determine whether it targets a given CSS property.
(WebCore::KeyframeEffect::clearBlendingKeyframes):
(WebCore::KeyframeEffect::computeDeclarativeAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::apply):

  • animation/KeyframeEffect.h:

(WebCore::KeyframeEffect::unanimatedStyle const):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

LayoutTests:
[ macOS wk2 ] webgpu/whlsl/dereference-pointer-should-type-check.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207779

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:00 AM Changeset in webkit [256627] by graouts@webkit.org
  • 15 edits in trunk

[Web Animations] Style changes due to Web Animations should not trigger CSS Transitions
https://bugs.webkit.org/show_bug.cgi?id=207760
<rdar://problem/59458111>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Mark Web Platform Tests progressions.

  • web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/style-change-events-expected.txt:
  • web-platform-tests/web-animations/interfaces/DocumentTimeline/style-change-events-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt:

Source/WebCore:

While we would consider the unanimated style of CSS Animations specifically when considering what the "start" style values (before-change style in spec terminology)
should be when considering whether to start a CSS Transition during style resolution, we would not consider other types of animations, specifically JS-created Web
Animations. However, Web Platform Tests specifically test whether changes made using the Web Animations API may trigger transitions, and until now they would because
the RenderStyle used to determine the before-change style was the style from the previous resolution, which would include animated values.

To fix this, we make it so that KeyframeEffect objects now keep a copy of the unanimated style used when blending animated values for the very first time. That style
is cleared each time keyframes change, which is rare, but may happen through the Web Animations API. Then in AnimationTimeline::updateCSSTransitionsForElementAndProperty(),
we look for a KeyframeEffect currently affecting the property for which we're considering starting a CSS Transition, and use its unanimated style.

If that unanimated style has not been set yet, this is because the KeyframeEffect has not had a chance to apply itself with a non-null progress. In this case, the before-change
and after-change styles should be the same in order to prevent a transition from being triggered as the unanimated style for this keyframe effect will most likely be this
after-change style, or any future style change that may happen before the keyframe effect starts blending animated values.

Finally, tracking the unanimated style at the KeyframeEffect level means we no longer to track it specifically for CSSAnimation.

  • animation/AnimationTimeline.cpp:

(WebCore::keyframeEffectForElementAndProperty):
(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):

  • animation/AnimationTimeline.h:
  • animation/CSSAnimation.cpp:

(WebCore::CSSAnimation::create):
(WebCore::CSSAnimation::CSSAnimation):

  • animation/CSSAnimation.h:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::animatesProperty const): Because the backing KeyframeList object may not have been created by the first time we query a KeyframeEffect during
CSS Transitions resolution, we provide a method that will check the values provided by the Web Animations API to determine whether it targets a given CSS property.
(WebCore::KeyframeEffect::clearBlendingKeyframes):
(WebCore::KeyframeEffect::computeDeclarativeAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::apply):

  • animation/KeyframeEffect.h:

(WebCore::KeyframeEffect::unanimatedStyle const):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

LayoutTests:

Mark that a couple of tests are no longer flaky.

10:54 AM Changeset in webkit [256626] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] http/tests/media/now-playing-info.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=206699

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:47 AM Changeset in webkit [256625] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

LayoutTest fast/scrolling/scroll-container-horizontally.html frequently times out & fails
https://bugs.webkit.org/show_bug.cgi?id=158237

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:37 AM Changeset in webkit [256624] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] IndexedDB tests are flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=207778

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:29 AM Changeset in webkit [256623] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Ensure animations that lose their effect don't schedule an animation update
https://bugs.webkit.org/show_bug.cgi?id=207713
rdar://59174840

Patch by Sunny He <sunny_he@apple.com> on 2020-02-14
Reviewed by Antoine Quint.

Source/WebCore:
An active animation for which the effect is removed may be considered for
an upcoming animation resolution. However, WebAnimation::timeToNextTick()
expects a valid effect to be available to be able to determine timing.
We now check an animation is relevant before calling timeToNextTick() and
add an ASSERT() in that function to catch cases where an animation effect
might not be available.

Source/WebCore:

Test: webanimations/animation-null-effect.html

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::scheduleNextTick):

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::timeToNextTick const):

LayoutTests:

  • webanimations/animation-null-effect-expected.txt: Added.
  • webanimations/animation-null-effect.html: Added.
10:23 AM Changeset in webkit [256622] by cturner@igalia.com
  • 2 edits in trunk/LayoutTests

[EME][GStreamer] REGRESSION(r256429): Several encrypted-media tests are crashing or failing
https://bugs.webkit.org/show_bug.cgi?id=207741

Skip WPT encrypted-media tests, in-line with the expectations of
the GTK port until they have been properly triaged.

Unreviewed gardening.

  • platform/wpe/TestExpectations: Skip all WPT encrypted-media

tests. They behave in incompliant ways and need time for correct
triage.

10:08 AM Changeset in webkit [256621] by sihui_liu@apple.com
  • 27 edits in trunk/Source/WebCore

IndexedDB: prefetch cursor records on client side
https://bugs.webkit.org/show_bug.cgi?id=207602
<rdar://problem/58483927>

Reviewed by Brady Eidson.

Cache cursor records on client side and use those records for iterate operations.

This makes cursor continue/advance tests in PerformanceTests/IndexedDB/basics ~3x faster.

  • Headers.cmake:
  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::setGetResult): Record the ID of TransactionOperation that updates cached record.
(WebCore::IDBCursor::iterateWithPrefetchedRecords): IDBCursor uses cached records for iterate opertaions if
there is no write operation between last cached records update and current iteration operation.
(WebCore::IDBCursor::clearPrefetchedRecords):

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

(WebCore::IDBGetResult::isolatedCopy):

  • Modules/indexeddb/IDBGetResult.h:

(WebCore::IDBGetResult::IDBGetResult):
(WebCore::IDBGetResult::prefetchedRecords const):
(WebCore::IDBGetResult::encode const):
(WebCore::IDBGetResult::decode):

  • Modules/indexeddb/IDBRequest.cpp: Record corresponding TransactionOperation ID in request.

(WebCore::IDBRequest::didOpenOrIterateCursor):

  • Modules/indexeddb/IDBRequest.h:

(WebCore::IDBRequest::pendingCursor const):
(WebCore::IDBRequest::setTransactionOperationID):

  • Modules/indexeddb/IDBTransaction.cpp: If a cursor iterate request can be handled with cached records,

IDBClient does not need to send request to IDBServer and wait for response. But requests before that iterate
request may need to wait server to answer, and spec requires to handle requests in order. Therefore, we now keep
all the results in m_transactionOperationResultMap and handle them according to the ordering in
m_transactionOperationsInProgressQueue.
(WebCore::IDBTransaction::abortInProgressOperations):
(WebCore::IDBTransaction::removeRequest): Because result of a cursor request can be answered sooner, it is
possible that in finishedDispatchEventForRequest, m_currentlyCompletingRequest (which is a cursor request) is
set to nullptr, and then it is set back to the same cursor request in handleOperationsCompletedOnServer right
after. This happens in dispatchEvent of the cursor request, where request would remove itself from request list
of transaction at the end.
In this case, when request list becomes empty, transaction may commit automatically. But transaction should not
because that request is still valid as m_currentlyCompletingRequest and should not be removed from list.
(WebCore::IDBTransaction::scheduleOperation):
(WebCore::IDBTransaction::operationCompletedOnServer):
(WebCore::IDBTransaction::handleOperationsCompletedOnServer): All requests were sent to IDBServer and the
response/result ordering would naturally be the same as request order. Now that results can be created in both
IDBClient and IDBServer, we no longer handle requests using m_completedOnServerQueue.
(WebCore::IDBTransaction::createObjectStore): Mark as write operation to track last write operation.
(WebCore::IDBTransaction::renameObjectStore): Ditto.
(WebCore::IDBTransaction::createIndex): Ditto.
(WebCore::IDBTransaction::renameIndex): Ditto.
(WebCore::IDBTransaction::requestDeleteRecord): Ditto.
(WebCore::IDBTransaction::requestClearObjectStore): Ditto.
(WebCore::IDBTransaction::requestPutOrAdd): Ditto.
(WebCore::IDBTransaction::deleteObjectStore): Ditto.
(WebCore::IDBTransaction::deleteIndex): Ditto.
(WebCore::IDBTransaction::iterateCursorOnServer): Only use cached records if the request does not specify target
key. If cursor is iterated successfully with cache, send a message to IDBServer to notify about the progress.
Otherwise, fall back to depend on IDBServer to answer the request.
(WebCore::IDBTransaction::generateOperationID): TransactionOperation ID is unique in a transaction.

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/IndexedDB.h:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::iterateCursor): Don't track result of TransactionOperation in
IDBConnectionProxy if TransactionOperation does not need a reply from IDBServer.

  • Modules/indexeddb/client/TransactionOperation.cpp:

(WebCore::IDBClient::TransactionOperation::TransactionOperation):

  • Modules/indexeddb/client/TransactionOperation.h: Add ID to TransactionOperation.

(WebCore::IDBClient::TransactionOperation::operationID const):
(WebCore::IDBClient::TransactionOperation::TransactionOperation):

  • Modules/indexeddb/server/IDBBackingStore.h: remove prefetchCursor as it is not used now.
  • Modules/indexeddb/server/MemoryIDBBackingStore.h: Ditto. Also this patch only deals with prefetching in

persistent store.

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

(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllIndexRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::getIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::iterateCursor): Only prefetch at when request needs to be answered.
(WebCore::IDBServer::SQLiteIDBBackingStore::prefetchCursor): Deleted.

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

(WebCore::IDBServer::SQLiteIDBCursor::currentData): Provide an option to include prefetched records in result.
(WebCore::IDBServer::SQLiteIDBCursor::objectStoreRecordsChanged): Reset count to prefetch when there is a
change. This is used with increaseCountToPrefetch to make prefetch adaptive.
(WebCore::IDBServer::SQLiteIDBCursor::objectStoreRecordsChanged):
(WebCore::IDBServer::SQLiteIDBCursor::prefetchOneRecord):
(WebCore::IDBServer::SQLiteIDBCursor::increaseCountToPrefetch):
(WebCore::IDBServer::SQLiteIDBCursor::prefetch): Count to prefetch is decided by SQLiteCursor now.
(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):
(WebCore::IDBServer::SQLiteIDBCursor::currentValue const):

  • Modules/indexeddb/server/SQLiteIDBCursor.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::iterateCursor): Move call to prefetch cursor to SQLiteIDBBackingStore.
(WebCore::IDBServer::UniqueIDBDatabase::prefetchCursor): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::iterateCursor):

  • Modules/indexeddb/shared/IDBCursorRecord.h: Stop using pointer for IDBValue for easier encoding and decoding.

(WebCore::IDBCursorRecord::size const):
(WebCore::IDBCursorRecord::isolatedCopy const):

  • Modules/indexeddb/shared/IDBIterateCursorData.cpp:

(WebCore::IDBIterateCursorData::isolatedCopy const):

  • Modules/indexeddb/shared/IDBIterateCursorData.h: Add an option to let IDBServer know whether it should answer

the cursor request.
(WebCore::IDBIterateCursorData::encode const):
(WebCore::IDBIterateCursorData::decode):

  • WebCore.xcodeproj/project.pbxproj:
10:05 AM Changeset in webkit [256620] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer][EME] Fix warnings in LOG_DISABLED build
https://bugs.webkit.org/show_bug.cgi?id=207691

Unreviewed build fix.

  • platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp: It would

be nice if the LOG macros could arrange for the VA_ARGS to be
UNUSED_VARIABLE's. Not sure if that is possible, so be ugly with
the ifdef's instead.
(WebCore::CDMProxyClearKey::cencSetCounterVector):
(WebCore::CDMProxyClearKey::cencSetDecryptionKey):
(WebCore::CDMProxyClearKey::cencDecryptFullSample):

9:52 AM Changeset in webkit [256619] by graouts@webkit.org
  • 18 edits in trunk

[Web Animations] Ensure CSS Transition and CSS Animation events are queued, sorted and dispatched by their timeline
https://bugs.webkit.org/show_bug.cgi?id=207364
<rdar://problem/59370413>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

There are some progressions but also some "regressions". The progressions are real, showing the delivery of all animation events at the correct
time. However, the regressions are misleading. The fact that the "style change" tests would work was due to a design issue in the test which would
only wait one frame to detect whether a CSS Transition was started after a change made through the Web Animations API. These would work because
events were queued in the next frame, but delivered later due to the dedicated per-animation queue used, which meant the test was fooled into
thinking the CSS Transition did not start, as expected. Changing those test to use more than one frame to test for the lack of a CSS Transition
would have shown the FAIL results.

However, in order to not regress our WPT score, the issue of "style change" events will be addressed in a follow-up patch.

  • web-platform-tests/css/css-transitions/CSSTransition-startTime.tentative-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/style-change-events-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt:
  • web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-expected.txt:

Source/WebCore:

Until now, AnimationPlaybackEvent events, which are new events introduced by the Web Animations spec, were enqueued in a shared queue on the DocumentTimeline
and dispatched during the "update animations and send events" procedure. However, AnimationEvent and TransitionEvent events, dispatched by CSS Animations
and CSS Transitions, were dispatched via a dedicated per-animation queue, which meant typically that those events were dispathed one runloop after the
AnimationPlaybackEvent events.

We now remove the dedicated per-animation queue and enqueue all events in the shared DocumentTimeline queue for dispatch during the "update animations and send
events" procedure. To do this correctly, we need to do a couple of other things that ensure we don't regress tests.

First, we update the DocumentTimeline::shouldRunUpdateAnimationsAndSendEventsIgnoringSuspensionState() to account for whether there are pending animation events,
guaranteeing that an animation update is scheduled should there be any.

Second, when animation events are enqueued in DocumentTimeline::enqueueAnimationEvent() we schedule an animation update if needed, since we know we now
have pending events that will need to be delivered in an upcoming update. We also maintain a flag between the start of the "update animations and send events"
procedure and the moment when the pending animation events queue is cleared prior to dispatching events so that events enqueued in the meantime do not
prematurely schedule animation resolution. The need for a new animation resolution will be checked at the end of the procedure.

Finally, declarative animations used to have a special suclass of WebAnimation::needsTick() that would check whether they had any pending events, ensuring
they would not be removed prematurely. We now reset a flag to false as WebAnimation::tick() is called (as part of the "update animations and send events"
procedure) and set it to true in case an animation is enqueued. This flag is then used in needsTick() to guarantee the animation is not removed before
the DocumentTimeline has had a chance to dispatch the enqueued event.

Note also that, for clarity, the DocumentTimeline::unscheduleAnimationResolution() was renamed to DocumentTimeline::clearTickScheduleTimer() since it wouldn't
actually cancel a previous animation resolution schedule.

  • animation/CSSTransition.h: Fix a newly found build error due to the missing wtf/MonotonicTime.h header.
  • animation/DeclarativeAnimation.cpp: Remove all code related to the dedicated per-animation queue and instead call the new WebAnimation::enqueueAnimationEvent()

method to enqueue events on the DocumentTimeline.
(WebCore::DeclarativeAnimation::DeclarativeAnimation):
(WebCore::DeclarativeAnimation::tick):
(WebCore::DeclarativeAnimation::enqueueDOMEvent):

  • animation/DeclarativeAnimation.h:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::detachFromDocument): Ensure the pending events queue is cleared when the timeline is detached from a document, ensuring that there no
longer events that would cause a ref-cycle (DocumentTimeline -> AnimationPlaybackEvent -> WebAnimation -> DocumentTimeline).
(WebCore::DocumentTimeline::suspendAnimations):
(WebCore::DocumentTimeline::removeAnimation):
(WebCore::DocumentTimeline::scheduleAnimationResolution):
(WebCore::DocumentTimeline::clearTickScheduleTimer):
(WebCore::DocumentTimeline::shouldRunUpdateAnimationsAndSendEventsIgnoringSuspensionState const):
(WebCore::DocumentTimeline::updateCurrentTime):
(WebCore::DocumentTimeline::updateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::internalUpdateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::scheduleNextTick):
(WebCore::DocumentTimeline::animationAcceleratedRunningStateDidChange):
(WebCore::DocumentTimeline::enqueueAnimationEvent):

  • animation/DocumentTimeline.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::enqueueAnimationPlaybackEvent):
(WebCore::WebAnimation::enqueueAnimationEvent):
(WebCore::WebAnimation::needsTick const):
(WebCore::WebAnimation::tick):

  • animation/WebAnimation.h:

LayoutTests:

Fix a couple of tests that made some incorrect assumptions.

  • TestExpectations: imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events.html is no longer flaky.
  • compositing/backing/animate-into-view.html: Because the "animationstart" event is now dispatched during the "update animations and send events" procedure, which happens

during page rendering _before_ rAF callbacks are serviced, we must remove the rAF callback used prior to adding the "animationstart" event listener or else we would never
get it and the test would time out.

  • webanimations/css-transition-in-flight-reversal-accelerated.html: We must wait for the initial transition to start and then two frames before reversing the transition,

to be certain that the animation did start. Indeed, the "transitionstart" event will be fired right before the next rAF callback is called, as the animation starts in that
very same frame, and so progress will be 0 and the transition wouldn't be reversable until the next frame when the animation has progress > 0.

9:49 AM Changeset in webkit [256618] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

N[ iOS ] imported/w3c/IndexedDB-private-browsing/idbcursor_advance_index3.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207776

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:39 AM Changeset in webkit [256617] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/IndexedDB-private-browsing/cursor-overloads.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207775

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:22 AM Changeset in webkit [256616] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/third-party-cookie.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207774

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:06 AM Changeset in webkit [256615] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/persistent-importScripts.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207771

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
8:52 AM Changeset in webkit [256614] by Jacob Uphoff
  • 3 edits in trunk/LayoutTests

[ iOS ] http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207647

Updating expectations

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
8:44 AM Changeset in webkit [256613] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/tests/cache/disk-cache/disk-cache-vary-cookie.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207770

Unreviewed test gardening.

  • platform/ios/TestExpectations:
8:43 AM Changeset in webkit [256612] by berto@igalia.com
  • 3 edits in trunk/Source/WebKit

[WPE] WPEQtView.h includes the uninstalled WPEQtViewBackend.h
https://bugs.webkit.org/show_bug.cgi?id=207765

Reviewed by Philippe Normand.

Do a forward declaration instead of including the header.

  • UIProcess/API/wpe/qt/WPEQtView.cpp:
  • UIProcess/API/wpe/qt/WPEQtView.h:
8:35 AM Changeset in webkit [256611] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] crypto/subtle/rsa-indexeddb-non-exportable.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=207769

Unreviewed test gardening.

  • platform/ios/TestExpectations:
8:34 AM Changeset in webkit [256610] by graouts@webkit.org
  • 17 edits
    2 copies in trunk/Source/WebCore

[Web Animations] Make all animation event types inherit from the same base class
https://bugs.webkit.org/show_bug.cgi?id=207629

Reviewed by Simon Fraser.

Currently we dispatch events CSS Transitions and CSS Animations events using a dedicated event queue on DeclarativeAnimation, while the events
added by the Web Animations specification (of type AnimationPlaybackEvent) are dispatched using a shared queue on the DocumentTimeline that is
processed during the "update animations and send events procedure". The Web Animations specification dictates that all events should be dispatched
during that procedure, which includes sorting of such events based on their timeline time and associated animation relative composite order.

In this patch, we prepare the work towards spec compliance for animation events dispatch by making all event types (AnimationPlaybackEvent,
TransitionEvent and AnimationEvent) inherit from a single AnimationEventBase interface. This will allow DocumentTimeline to enqueue, sort and
dispatch all such events with a single queue in a future patch.

Due to CSSAnimationController, we must make the "timeline time" and "animation" parameters optional. When we drop support for CSSAnimationController
we'll be able to enforce stronger requirements for these.

No new test since this should not introduce any behavior change.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/AnimationEventBase.cpp: Added.

(WebCore::AnimationEventBase::AnimationEventBase):

  • animation/AnimationEventBase.h: Added.

(WebCore::AnimationEventBase::create):
(WebCore::AnimationEventBase::isAnimationPlaybackEvent const):
(WebCore::AnimationEventBase::isAnimationEvent const):
(WebCore::AnimationEventBase::isTransitionEvent const):
(WebCore::AnimationEventBase::timelineTime const):
(WebCore::AnimationEventBase::animation const):

  • animation/AnimationPlaybackEvent.cpp:

(WebCore::AnimationPlaybackEvent::AnimationPlaybackEvent):
(WebCore::AnimationPlaybackEvent::bindingsTimelineTime const):

  • animation/AnimationPlaybackEvent.h:
  • animation/CSSAnimation.cpp:

(WebCore::CSSAnimation::createEvent):

  • animation/CSSAnimation.h:
  • animation/CSSTransition.cpp:

(WebCore::CSSTransition::createEvent):

  • animation/CSSTransition.h:
  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::enqueueDOMEvent):

  • animation/DeclarativeAnimation.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::enqueueAnimationPlaybackEvent):

  • dom/AnimationEvent.cpp:

(WebCore::AnimationEvent::AnimationEvent):

  • dom/AnimationEvent.h:
  • dom/TransitionEvent.cpp:

(WebCore::TransitionEvent::TransitionEvent):

  • dom/TransitionEvent.h:
  • page/animation/CSSAnimationController.cpp:

(WebCore::CSSAnimationControllerPrivate::fireEventsAndUpdateStyle):

8:28 AM Changeset in webkit [256609] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

REGRESSION (r253312): imported/w3c/web-platform-tests/content-security-policy/reporting/report-same-origin-with-cookies.html is super flaky
https://bugs.webkit.org/show_bug.cgi?id=205216

Correcting typo.

Unreviewed test gardening.

  • platform/ios/TestExpectations:
8:22 AM Changeset in webkit [256608] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Gardening more debug timeouts
https://bugs.webkit.org/show_bug.cgi?id=207764

From debug bot build 5916.

Unreviewed test gardening.

Patch by Lauro Moura <Lauro Moura> on 2020-02-14

  • platform/gtk/TestExpectations:
8:20 AM Changeset in webkit [256607] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/useragent.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207768

Unreviewed test gardening.

  • platform/ios/TestExpectations:
8:18 AM Changeset in webkit [256606] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ WK2 ] Layout Test http/wpt/service-workers/update-service-worker.https.html is a flaky Timeout
https://bugs.webkit.org/show_bug.cgi?id=187766

Set expectations to include failing.

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
8:01 AM Changeset in webkit [256605] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/online.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207767

Unreviewed test gardening.

  • platform/ios/TestExpectations:
7:54 AM Changeset in webkit [256604] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/header-filtering.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207766

Unreviewed test gardening.

  • platform/ios/TestExpectations:
7:27 AM Changeset in webkit [256603] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/file-upload.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207763

Unreviewed test gardening.

  • platform/ios/TestExpectations:
7:20 AM Changeset in webkit [256602] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/check-service-worker-header.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207762

Unreviewed test gardening.

  • platform/ios/TestExpectations:
6:42 AM Changeset in webkit [256601] by don.olmstead@sony.com
  • 6 edits in trunk

[CMake] Add Fontconfig::Fontconfig target
https://bugs.webkit.org/show_bug.cgi?id=207730

Reviewed by Adrian Perez de Castro.

.:

Redo the Fontconfig find module to export a target.

  • Source/cmake/FindFontconfig.cmake:

Source/WebCore:

Use the Fontconfig::Fontconfig target.

  • platform/FreeType.cmake:

Tools:

Use the Fontconfig::Fontconfig target.

  • WebKitTestRunner/PlatformGTK.cmake:
5:27 AM Changeset in webkit [256600] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.26.4

WPE WebKit 2.26.4

5:26 AM Changeset in webkit [256599] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.26

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.26.4 release

.:

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

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.26.4.
2:08 AM Changeset in webkit [256598] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.26.4

WebKitGTK 2.26.4

2:07 AM Changeset in webkit [256597] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.26

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.26.4 release

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.26.4.
1:40 AM Changeset in webkit [256596] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.26

Merge r254301 - REGRESSION (r253662): Large Data URLs are not being handled properly
https://bugs.webkit.org/show_bug.cgi?id=205979
<rdar://problem/58346124>

Reviewed by Youenn Fablet.

Source/WebCore:

The URL size limitation added in r253662 was too low. We should bump it to handle
reasonable data URI sizes.

Test: fast/url/data-url-large.html.

  • page/SecurityOrigin.cpp:

LayoutTests:

  • fast/url/data-url-large-expected.txt: Added.
  • fast/url/data-url-large.html: Added.
1:40 AM Changeset in webkit [256595] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r253662 - Limit URL to reasonable size
https://bugs.webkit.org/show_bug.cgi?id=203825
<rdar://problem/56878680>

Reviewed by Ryosuke Niwa.

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::canDisplay const): Place an upper bound on the amount of
memory a URL may consume.

1:40 AM Changeset in webkit [256594] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.26

Merge r254220 - Fix specification violation in Font Loading API
https://bugs.webkit.org/show_bug.cgi?id=205901
<rdar://problem/58083743>

Reviewed by Brent Fulgham.

Source/WebCore:

Our Font Loading API does not comply with the spec:

If the parsed value is a CSS-wide keyword, return a syntax error.

Rather than crashing, we should return a syntax error.

Test: fast/text/font-loading-global-keyword.html

  • css/CSSFontFaceSet.cpp:

(WebCore::computeFontSelectionRequest):
(WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):

LayoutTests:

Test all the entry points to the CSS Font Loading API that accept CSS keywords.

  • fast/text/font-loading-global-keyword-expected.txt: Added.
  • fast/text/font-loading-global-keyword.html: Added.
1:40 AM Changeset in webkit [256593] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r253654 - executeIfJavaScriptURL should check requester's security origin
https://bugs.webkit.org/show_bug.cgi?id=205324

Reviewed by Brent Fulgham.

Don't execute the JavaScript in ScriptController::executeIfJavaScriptURL if the security origin
of the current document is no longer accessible from the request originator's security origin.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeIfJavaScriptURL): Added a check.

  • bindings/js/ScriptController.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected): Pass around the security origin of the requester.
(WebCore::FrameLoader::submitForm):

1:40 AM Changeset in webkit [256592] by Carlos Garcia Campos
  • 6 edits
    4 adds in releases/WebKitGTK/webkit-2.26

Merge r253563 - Consider top-level context whose origin is unique as insecure
https://bugs.webkit.org/show_bug.cgi?id=205111
Source/WebCore:

Reviewed by Brent Fulgham.

Tests: http/tests/security/top-level-unique-origin.https.html

http/tests/security/top-level-unique-origin2.https.html

  • dom/Document.cpp:

(WebCore::Document::isSecureContext const):
There is no guarantee that top level unique origin contexts like data URL are SecureContext.
This patch makes them no longer SecureContext.
This helps getting closer to https://w3c.github.io/webappsec-secure-contexts/#is-url-trustworthy
which identifies all unique origins as "Not Trustworthy".
Child unique origin contexts will stay SecureContext if their parents are.

Tools:

<rdar://problem/57834967>

Reviewed by Brent Fulgham.

  • TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm:

(TEST):
Disable secure context checks so that loading directly about:blank from the API test
can call DeviceOrientationEvent.requestPermission() successfully.

LayoutTests:

Reviewed by Brent Fulgham.

  • http/tests/security/top-level-unique-origin.https-expected.txt: Added.
  • http/tests/security/top-level-unique-origin.https.html: Added.
  • http/tests/security/top-level-unique-origin2.https-expected.txt: Added.
  • http/tests/security/top-level-unique-origin2.https.html: Added.
  • platform/win/TestExpectations: Skipping second test as timing out in windows.
1:40 AM Changeset in webkit [256591] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.26

Merge r253544 - SecurityOrigin should be unique for null blob URLs that have been unregistered
https://bugs.webkit.org/show_bug.cgi?id=205169

Reviewed by Darin Adler.

Source/WebCore:

In case we cannot retrieve a cached origin for a null origin, just create a unique one.
This is better than having an origin with an empty host and empty scheme.

Test: http/tests/security/blob-null-url-location-origin.html

  • fileapi/ThreadableBlobRegistry.cpp:

(WebCore::ThreadableBlobRegistry::unregisterBlobURL):
(WebCore::ThreadableBlobRegistry::getCachedOrigin):

LayoutTests:

  • http/tests/security/blob-null-url-location-origin-expected.txt: Added.
  • http/tests/security/blob-null-url-location-origin.html: Added.
  • platform/win/TestExpectations: Skipping test as timing out in windows.
1:39 AM Changeset in webkit [256590] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.26/Source/ThirdParty/ANGLE

Merge r256491 - Multiple GCC 10 build failures in ANGLE
https://bugs.webkit.org/show_bug.cgi?id=207365

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-02-12
Reviewed by Carlos Alberto Lopez Perez.

  • changes.diff: Updated.
  • include/platform/Platform.h: Add missing #include to get size_t.
  • src/common/PackedEnums.h: Remove problematic const_casts.
1:39 AM Changeset in webkit [256589] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit

Merge r255865 - [GTK][WPE] Add more fontconfig paths into the sandbox
https://bugs.webkit.org/show_bug.cgi?id=207293

Reviewed by Michael Catanzaro.

These paths were reported to be used on Debian.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindFonts):

1:39 AM Changeset in webkit [256588] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r255824 - [GTK] Cannot perform most local loads with sandbox enabled
https://bugs.webkit.org/show_bug.cgi?id=202071

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-02-05
Reviewed by Carlos Garcia Campos.

SecurityOrigin::canDisplay is improperly checking whether the target file URL points to a
file on the same "volume" (mount point) as the source file. That can't happen here because
this code is running in the web process, but only the network process has access to the
unsandboxed filesystem. This code can only check whether the target file exists within the
sandbox's mount namespace, but that's not what we want to do because we're not going to load
that file, we're going to ask the network process to load the file with the same path
outside the mount namespace.

We can probably live without this check. But if bringing it back is desired, it has to be
done someplace totally different, in network process code rather than web process code.

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::canDisplay const):

1:39 AM Changeset in webkit [256587] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit

Merge r250077 - [GTK] Compilation errors when GL is disabled
https://bugs.webkit.org/show_bug.cgi?id=200223

Fix following compilation error when building with ENABLE_OPENGL=OFF
../../Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp:123:51: error: use of undeclared identifier 'WaylandCompositor'
parameters.waylandCompositorDisplayName = WaylandCompositor::singleton().displayName();


Patch by Yury Semikhatsky <yurys@chromium.org> on 2019-09-18
Reviewed by Philippe Normand.

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess): only make a call when using EGL, this matches
guards in WaylandCompositor.h. The condition was changed in r245807.

12:40 AM Changeset in webkit [256586] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Gardening, several encrypted-media tests are failing or crashing
https://bugs.webkit.org/show_bug.cgi?id=207742

Unreviewed gardening.

  • platform/wpe/TestExpectations:
Note: See TracTimeline for information about the timeline view.