Timeline



Mar 5, 2020:

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

[LFC][TFC] An absolute positioned <table> should establish a table formatting context
https://bugs.webkit.org/show_bug.cgi?id=208695
<rdar://problem/60122473>

Reviewed by Antti Koivisto.

Not all type of content gets blockified when out-of-flow positioned or floated.

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::establishesBlockFormattingContext const):

10:16 PM Changeset in webkit [257969] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

[iOS] Remove reporting for some well-understood framebuffer routines
https://bugs.webkit.org/show_bug.cgi?id=208686
<rdar://problem/59181061>

Reviewed by Per Arne Vollan.

We have captured backlogs capturing the use of more framebuffer-related rules. We
should remove this reporting to reduce log spam.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
9:59 PM Changeset in webkit [257968] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

GPU Process sandbox errors
https://bugs.webkit.org/show_bug.cgi?id=208688
<rdar://problem/60085171>

Reviewed by Per Arne Vollan.

The new GPU Process needs access to a number of properties to support media playback
features available in our shipping software.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
9:13 PM Changeset in webkit [257967] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[WPE] Garden some webgl 2.0 failures.

Unreviewed test gardening.

  • platform/wpe/TestExpectations:
8:11 PM Changeset in webkit [257966] by Darin Adler
  • 5 edits in trunk/Source/WebCore

Simplify gradient parsing
https://bugs.webkit.org/show_bug.cgi?id=208417

Reviewed by Anders Carlsson.

  • Use Optional<> and invalid Color to represent unspecified positions and colors. This is simpler and easier to get right than separate booleans.
  • Simplified sorting of stops in legacy gradients to remove extra CSS value evaluation and unnecessary "sort in place" technique.
  • Rewrote equals functions for CSS gradient value classes. The new pattern is to compare all the data members that hold parsed CSS data, handling null correctly, since the parser won't set inappropriate ones. The old code had complex logic to only compare certain data members, which was unnecessary and hard to read to tell if it was correct.
  • Added some more use of WTFMove to cut down on reference count churn.
  • css/CSSGradientValue.cpp:

(WebCore::CSSGradientValue::image): Removed unneeded call to get().
(WebCore::compareStops): Deleted.
(WebCore::CSSGradientValue::sortStopsIfNeeded): Deleted.
(WebCore::resolveStopColors): Take advantage of the fact that we know because
of parsing rules that the only stops without colors are midpoints to drastically
simplify this function to a trivial loop.
(WebCore::CSSGradientValue::hasColorDerivedFromElement const): Added.
Checks to see if any of the stop colors is derived from the element. The old
code confusingly would store the answer to this in the stop, but only in the
first stop with this property. Computing it without modifying the stop, and
memoizing it in the gradient preserves the same performance characteristics
as before without requiring a boolean in each stop in the stops vector.
(WebCore::CSSGradientValue::gradientWithStylesResolved): Call the new
hasColorDerivedFromElement function instead of having the logic here.
(WebCore::LinearGradientAdapter::normalizeStopsAndEndpointsOutsideRange):
Update since GradientStop now has optional offsets. By the time this
function is called they are all guaranteed to be filled in, so we can
just use the * operator.
(WebCore::RadialGradientAdapter::normalizeStopsAndEndpointsOutsideRange):
Ditto.
(WebCore::ConicGradientAdapter::normalizeStopsAndEndpointsOutsideRange):
Ditto.
(WebCore::CSSGradientValue::computeStops): Moved the sorting of stops for
the deprecated gradients here. Also updated since Gradient::ColorStop
no longer uses "m_" prefixes on its public struct data members. Some
simplification because we no longer need to explicitly set "specified"
to true since it's no longer a separate boolean.
(WebCore::positionFromValue): Handle a null pointer for value by returning
0, which is what the caller was doing explicitly before. Use float
instead of int for some internal computations that were mixing the two
for no good reason.
(WebCore::computeEndPoint): Removed null checks now that positionFromValue
does them for us, turning this into a one-liner.
(WebCore::CSSGradientValue::isCacheable const): Use hasColorDerivedFromElement.
(WebCore::CSSGradientValue::knownToBeOpaque const): Removed unnnecessary
checking the color both before and after when a color filter is involved.
(WebCore::CSSGradientValue::equals const): Added. Shared by all the equals
functions for derived classes.
(WebCore::appendGradientStops): Updated for changes to CSSGradientColorStop.
(WebCore::appendSpaceSeparatedOptionalCSSPtrText): Added template helper
for writing two optional CSS values with a space between.
(WebCore::writeColorStop): Ditto. Also converted to non-member function,
removed unneeded isMidpoint check, use appendSpaceSeparatedOptionalCSSPtrText.
(WebCore::CSSLinearGradientValue::customCSSText const): Call function
members so we don't have to expose CSSGradientValue data members as
protected things that can be accessed by derived classes. Some other
small refactoring, such as getting rid of extra boolean wroteFirstStop.
(WebCore::CSSLinearGradientValue::createGradient): Updated to use
function members instead of protected data members.
(WebCore::CSSLinearGradientValue::equals const): Compare all data
members and use CSSGradientValue::equals, makes this a 1-liner.
(WebCore::CSSRadialGradientValue::customCSSText const): Call function
members as described above and use appendSpaceSeparatedOptionalCSSPtrText.
(WebCore::CSSRadialGradientValue::createGradient): Ditto.
(WebCore::CSSRadialGradientValue::equals const): Compare all data
members and use CSSGradientValue::equals.
(WebCore::CSSConicGradientValue::customCSSText const): Call function
members as described above and use appendSpaceSeparatedOptionalCSSPtrText.
(WebCore::CSSConicGradientValue::createGradient): Ditto.
(WebCore::CSSConicGradientValue::equals const): Compare all data
members and use CSSGradientValue::equals, makes this a 1-liner.

  • css/CSSGradientValue.h: Removed unneeded includes and forward declarations.

Renamed CSSGradientColorStop data members to not use m_ prefix since this is
a struct with public data members, and WebKit style says not to do that here.
Removed m_colorIsDerivedFromElement and isMidpoint from CSSGradientColorStop,
m_colorIsDerivedFromElement is now stored in the gradient, not the color stop,
and midpoints are any color stop with null color. Replaced the
CSSGradientValue::stopCount function, which mixed size_t and unsigned types,
with a hasTwoStops function, which is all the caller needs. Converted the
isFixedSize, fixedSize, isPending, and loadSubimages into static member
functions: they don't do any work and so don't need an instance. Removed
the unneeded gradient type argument to the cloning constructors. Removed
m_stopsSorted and added m_hasColorDerivedFromElement and
hasColorDerivedFromElement. Added getter functions that are protected so
the data members themselves can be private. Removed sortStopsIfNeeded
and writeColorStop.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradientColorStop):
Updated for CSSGradientColorStop member renaming.
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradient): Use
more WTFMove to save a little bit of reference count churn; in some cases
that means moving the setter calls to the end of the function after all
the error checking.
(WebCore::CSSPropertyParserHelpers::consumeGradientColorStops): Ditto.
Removed code to set isMidpoint and the FIXME-NEWPARSER comment that said
it could be removed. Used lambda to cut down on repeated code. Changed
parsing of stops with a second position to repeat the color instead of
relying on later computation to repeat it; this is required so we can
always treat an omitted color as a midpoint.
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedRadialGradient): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeRadialGradient): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeLinearGradient): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeConicGradient): Ditto.

  • html/HTMLInputElement.cpp:

(WebCore::autoFillStrongPasswordMaskImage): Updated for the renamed
CSSGradientColorStop members, added a missing call to doneAddingStops,
and use some WTFMove to cut down on reference count churn.

7:57 PM Changeset in webkit [257965] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: AXI: annotate tab panels
https://bugs.webkit.org/show_bug.cgi?id=208542

Reviewed by Devin Rousso.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Main.js:

Remove role=main since it was providing very generic and not useful description to VoiceOver.

7:00 PM Changeset in webkit [257964] by beidson@apple.com
  • 3 edits in trunk/Source/WebKit

Pre-fetch first page in new PDF loading model.
https://bugs.webkit.org/show_bug.cgi?id=208669

Reviewed by Alex Christensen.

Also add some logging.

  • Platform/Logging.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::dataProviderGetBytesAtPositionCallback):
(WebKit::dataProviderGetByteRangesCallback):
(WebKit::PDFPlugin::threadEntry):

6:37 PM Changeset in webkit [257963] by achristensen@apple.com
  • 15 edits in trunk

Add WKNavigationDelegatePrivate SPI to inform application of subframe navigations
https://bugs.webkit.org/show_bug.cgi?id=208670

Reviewed by Brady Eidson.

Source/WebKit:

There is no WKNavigation for subframe navigations, so just expose the NSURLRequest directly.
This is equivalent to WKNavigation._request, which is distinct from WKFrameInfo.request.
The former is the currently pending request, the latter is the request that has already loaded.
I needed to move the isMainFrame check to the NavigationClient implementations.
This is needed for <rdar://problem/57201034>.
Covered by API tests.

  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::didStartProvisionalNavigation):
(API::NavigationClient::didFailProvisionalNavigationWithError):
(API::NavigationClient::didCommitNavigation):
(API::NavigationClient::didFinishNavigation):
(API::NavigationClient::didFailNavigationWithError):
(API::NavigationClient::didFailProvisionalLoadInSubframeWithError): Deleted.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageNavigationClient):

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/API/glib/WebKitNavigationClient.cpp:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::didStartProvisionalNavigation):
(WebKit::createErrorWithRecoveryAttempter):
(WebKit::NavigationState::NavigationClient::didFailProvisionalNavigationWithError):
(WebKit::NavigationState::NavigationClient::didCommitNavigation):
(WebKit::NavigationState::NavigationClient::didFinishNavigation):
(WebKit::NavigationState::NavigationClient::didFailNavigationWithError):
(WebKit::NavigationState::NavigationClient::didFailProvisionalLoadInSubframeWithError): Deleted.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::cancel):
(WebKit::ProvisionalPageProxy::didStartProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::didCommitLoadForFrame):

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

(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFailLoad):
(WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:

(-[FrameNavigationDelegate waitForNavigations:]):
(-[FrameNavigationDelegate requests]):
(-[FrameNavigationDelegate frames]):
(-[FrameNavigationDelegate callbacks]):
(-[FrameNavigationDelegate _webView:didStartProvisionalLoadWithRequest:inFrame:]):
(-[FrameNavigationDelegate _webView:didFailProvisionalLoadWithRequest:inFrame:withError:]):
(-[FrameNavigationDelegate _webView:didCommitLoadWithRequest:inFrame:]):
(-[FrameNavigationDelegate _webView:didFailLoadWithRequest:inFrame:withError:]):
(-[FrameNavigationDelegate _webView:didFinishLoadWithRequest:inFrame:]):
(TEST):

6:33 PM Changeset in webkit [257962] by achristensen@apple.com
  • 14 edits in trunk

Add WKFrameInfo._parentFrameHandle SPI
https://bugs.webkit.org/show_bug.cgi?id=208674

Reviewed by Brady Eidson.

Source/WebKit:

I got carried away and removed it in r257872 but it's still needed for <rdar://problem/57201034>
Covered by API tests.

  • Shared/FrameInfoData.cpp:

(WebKit::FrameInfoData::encode const):
(WebKit::FrameInfoData::decode):

  • Shared/FrameInfoData.h:
  • UIProcess/API/APIFrameInfo.cpp:

(API::FrameInfo::parentFrameHandle const):

  • UIProcess/API/APIFrameInfo.h:
  • UIProcess/API/APIFrameTreeNode.cpp:

(API::FrameTreeNode::parentFrameHandle const):

  • UIProcess/API/APIFrameTreeNode.h:
  • UIProcess/API/Cocoa/WKFrameInfo.mm:

(-[WKFrameInfo _parentFrameHandle]):

  • UIProcess/API/Cocoa/WKFrameInfoPrivate.h:
  • UIProcess/API/Cocoa/_WKFrameTreeNode.mm:

(-[_WKFrameTreeNode _parentFrameHandle]):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::info const):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
5:22 PM Changeset in webkit [257961] by Simon Fraser
  • 7 edits in trunk/LayoutTests

REGRESSION (r257938): 5 event-region tests in fast/scrolling/ios are failing
https://bugs.webkit.org/show_bug.cgi?id=208673

Unreviewed test fix.

The code now bails frome event region building by checking settings, so these tests
need to enable async overflow scrolling.

  • fast/scrolling/ios/border-radius-event-region-expected.txt:
  • fast/scrolling/ios/border-radius-event-region.html:
  • fast/scrolling/ios/event-region-pointer-events.html:
  • fast/scrolling/ios/event-region-scale-transform-shared.html:
  • fast/scrolling/ios/event-region-translate-transform-shared.html:
  • fast/scrolling/ios/event-region-visibility-hidden.html:
5:19 PM Changeset in webkit [257960] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Release ] fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208678

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:46 PM Changeset in webkit [257959] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: AXI: can't leave Styles and Computed panels by pressing Tab
https://bugs.webkit.org/show_bug.cgi?id=208549
<rdar://problem/60020149>

Reviewed by Devin Rousso.

Remove focus cycling inside of the Styles and Computed panels.

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:

(WI.GeneralStyleDetailsSidebarPanel.prototype._handleForcedPseudoClassCheckboxKeydown):
(WI.GeneralStyleDetailsSidebarPanel.prototype._handleFilterBarInputFieldKeyDown):

4:30 PM Changeset in webkit [257958] by commit-queue@webkit.org
  • 11 edits in trunk

Remove the optimization for discarding no operation DisplayList items between Save and Restore items
https://bugs.webkit.org/show_bug.cgi?id=208659

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-05
Reviewed by Simon Fraser.

Source/WebCore:

This optimization is wrong in the case of drawing a canvas in general.
The original implementation of the DisplayList assumes balanced Save/
Restore GraphicsContext. In canvas a GraphicsConext 'save' can be issued
in a frame and the corresponding restore is issued many frames later.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::removeItemsFromIndex): Deleted.

  • platform/graphics/displaylists/DisplayList.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::operator<<):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::Save::encode const):
(WebCore::DisplayList::Save::decode):
(WebCore::DisplayList::Save::restoreIndex const): Deleted.
(WebCore::DisplayList::Save::setRestoreIndex): Deleted.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::save):
(WebCore::DisplayList::Recorder::restore):

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::ContextState::cloneForSave const):

LayoutTests:

Re-baseline the DisplayList tests.

  • displaylists/canvas-display-list-expected.txt:
  • displaylists/extent-includes-shadow-expected.txt:
  • displaylists/extent-includes-transforms-expected.txt:
4:21 PM Changeset in webkit [257957] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Add web page additions to WebPageProxy
https://bugs.webkit.org/show_bug.cgi?id=208666
<rdar://problem/60100413>

Reviewed by Brent Fulgham.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::isAppBoundDomain const):
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):

4:06 PM Changeset in webkit [257956] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

[macOS] Create sandbox extension for "com.apple.tccd"
https://bugs.webkit.org/show_bug.cgi?id=208660
<rdar://problem/57666569>

Reviewed by Per Arne Vollan.

Make the same changes for macOS as we did for iOS in Bug 204367. Specifically, remove the
blanket mach-lookup permission for 'com.apple.tccd', and instead make a dynamic extension
only when a camera or microphone request is made.

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest): Update to create the
extensions on macOS, too.

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • WebProcess/com.apple.WebProcess.sb.in: Remove blanket access permissions and move them to

the dynamic access permissions section of the sandbox.

4:02 PM Changeset in webkit [257955] by Ben Nham
  • 2 edits in trunk/Source/WebCore

Add signposts for top-level execution of script elements
https://bugs.webkit.org/show_bug.cgi?id=208548

Reviewed by Alex Christensen.

This adds signposts for initial global scope code evaluation of script elements. This makes
it easier to understand what code is executing and blocking initial HTML parsing from
completing.

In the long run, it would be nice to extend this to all top-level entry points back into JS
(e.g. we should emit an interval if we re-enter a script via setTimeout). However, such
probes have been removed in the past for being too noisy or slow (like in
https://bugs.webkit.org/show_bug.cgi?id=187196), so let's just start with this for now.

Note that we do emit the script URL in the signpost, but the signpost is gated behind both
an environment variable and an Apple-internal check to prevent accidentally leaking
sensitive info.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::executeClassicScript):
(WebCore::ScriptElement::executeModuleScript):

3:58 PM Changeset in webkit [257954] by jiewen_tan@apple.com
  • 17 edits
    1 add in trunk

[WebAuthn] Implement SPI -[_WKWebAuthenticationPanelDelegate panel:selectAssertionResponse:source:completionHandler:]
https://bugs.webkit.org/show_bug.cgi?id=208626
<rdar://problem/60074148>

Reviewed by Brent Fulgham.

Source/WebKit:

The patch adds a parameter (source) to the original SPI such that clients can know where those responses are from.
Besides that this patch also changes the completionHandler to accept a pointer instead of a reference such that clients
can pass a nullptr as a no op. In order to keep WebKitTestRunner running, the patch then overrides this SPI in the C API to
always return the first item.

  • UIProcess/API/APIWebAuthenticationAssertionResponse.h:
  • UIProcess/API/APIWebAuthenticationPanelClient.h:

(API::WebAuthenticationPanelClient::selectAssertionResponse const):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
  • UIProcess/WebAuthentication/Authenticator.h:
  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::selectAssertionResponse):

  • UIProcess/WebAuthentication/AuthenticatorManager.h:
  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::getAssertion):

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.h:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm:

(WebKit::WebAuthenticationPanelClient::WebAuthenticationPanelClient):
(WebKit::wkWebAuthenticationSource):
(WebKit::WebAuthenticationPanelClient::selectAssertionResponse const):

  • UIProcess/WebAuthentication/WebAuthenticationFlags.h:
  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::continueGetNextAssertionAfterResponseReceived):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(-[TestWebAuthenticationPanelDelegate panel:selectAssertionResponse:source:completionHandler:]):
(TestWebKitAPI::TEST):
(-[TestWebAuthenticationPanelDelegate panel:selectAssertionResponse:completionHandler:]): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion-hid-multiple-accounts.html:
  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion-la.html: Added.
3:55 PM Changeset in webkit [257953] by Chris Dumez
  • 6 edits in trunk/Source/WebKit

Running a single layout test makes 28 WebProcessPools (and launches 6 Network processes)
https://bugs.webkit.org/show_bug.cgi?id=208541
<rdar://problem/60018602>

Reviewed by Youenn Fablet.

WebKitTestRunner was contructing a page / process pool and then calling into various
WebsiteDataStore APIs to reset / clear state. Because nothing had been loaded in the
view yet, the page would still be using a dummy process proxy (due to delayed process
launch optimization) at the time the WebsiteDataStore APIs are called. Because the
dummy process proxy would not register itself with the WebsiteDataStore (unlike other
processes), the WebsiteDataStore thought it had no associated process pool and would
thus construct a temporary one every time it needed one.

To address the issue, we now construct one dummy process proxy per session (instead of
one for all sessions). As a result, the dummy process proxy can now behave as a normal
WebProcessProxy and have an associated data store and register / unregister itself from
it, depending on whether or not it has pages.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::launchInitialProcessIfNecessary):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::processForRegistrableDomain):
(WebKit::WebProcessPool::createWebPage):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::isDummyProcessProxy const):
(WebKit::WebProcessProxy::updateRegistrationWithDataStore):
(WebKit::WebProcessProxy::maybeShutDown):

  • UIProcess/WebProcessProxy.h:
3:43 PM Changeset in webkit [257952] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[First paint] Fixed sized SVG content should taken into account when computing VNE status
https://bugs.webkit.org/show_bug.cgi?id=208663
<rdar://problem/60096896>

Reviewed by Simon Fraser.

Let's add fixed sized SVG to the list of content we track as VNE pixel count.
It helps to reach VNE status sooner on youtube.com.

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::reportVisuallyNonEmptyContent):

3:13 PM Changeset in webkit [257951] by Alan Bujtas
  • 3 edits in trunk/LayoutTests

REGRESSION (r257840?) [ Mac wk2 Release ] fast/hidpi/image-srcset-relative-svg-canvas.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208577
<rdar://problem/60043401>

Reviewed by Simon Fraser.

This is very similar to webkit.org/b/206254 [fast/hidpi/image-srcset-relative-svg-canvas-2x.html is a flaky]
These tests seem to be very racy (paint vs. layout).
Let's try to fix it by forcing layout (for details see
https://trac.webkit.org/changeset/255331/webkit/trunk/LayoutTests/ChangeLog)

  • fast/hidpi/image-srcset-relative-svg-canvas-expected.html:
  • fast/hidpi/image-srcset-relative-svg-canvas.html:
3:01 PM Changeset in webkit [257950] by ysuzuki@apple.com
  • 143 edits in trunk/Source/WebCore

Put all generated JSCells in WebCore into IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=205107

Reviewed by Saam Barati.

This patch automatically generates IsoSubspace per WebCore DOM object type.
In preprocess-idls.pl, we collect all the DOM object types and generate DOMIsoSubspaces class,
which contains all the necessary IsoSubspaces. And it is held by WebCoreJSClientData.

CodeGeneratorJS.pm starts putting subspaceFor and subspaceForImpl for each JS DOM wrapper classes.
And we dynamically create IsoSubspace and set it to WebCoreJSClientData's DOMIsoSubspaces. At the same
time, we register IsoSubspace to m_outputConstraintSpaces if the class has output constraits callback.

We also remove stale assertion in JSEventListener. It is saying the following.

  1. If the world is normal.
  2. If m_wrapper is gone.
  3. If m_jsFunction is not gone.

Then, the assertion hits. But this is wrong. We have no guarantee that m_jsFunction is gone when m_wrapper is gone.
We have conservative GC. We have generational GC. Someone can hold m_jsFunction's instance. Everything makes it possible
that m_jsFunction is live while m_wrapper is gone. This patch removes this assertion.

  • CMakeLists.txt:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • WebCoreMacros.cmake:
  • bindings/js/JSDOMWrapper.cpp:

(WebCore::outputConstraintSubspaceFor): Deleted.

  • bindings/js/JSDOMWrapper.h:
  • bindings/js/JSEventListener.h:

(WebCore::JSEventListener::jsFunction const):

  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSVMClientData::JSVMClientData):

  • bindings/js/WebCoreJSClientData.h:

(WebCore::JSVMClientData::forEachOutputConstraintSpace):
(WebCore::JSVMClientData::subspaces):
(WebCore::JSVMClientData::outputConstraintSpace): Deleted.
(WebCore::JSVMClientData::subspaceForJSDOMWindow): Deleted.
(WebCore::JSVMClientData::subspaceForJSDedicatedWorkerGlobalScope): Deleted.
(WebCore::JSVMClientData::subspaceForJSRemoteDOMWindow): Deleted.
(WebCore::JSVMClientData::subspaceForJSWorkerGlobalScope): Deleted.
(WebCore::JSVMClientData::subspaceForJSServiceWorkerGlobalScope): Deleted.
(WebCore::JSVMClientData::subspaceForJSPaintWorkletGlobalScope): Deleted.
(WebCore::JSVMClientData::subspaceForJSWorkletGlobalScope): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):

  • bindings/scripts/generate-bindings-all.pl:
  • bindings/scripts/preprocess-idls.pl:
  • bindings/scripts/test/JS/JSInterfaceName.cpp:

(WebCore::JSInterfaceName::subspaceForImpl):

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

(WebCore::JSInterfaceName::subspaceFor):

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

(WebCore::JSMapLike::subspaceForImpl):

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

(WebCore::JSMapLike::subspaceFor):

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

(WebCore::JSReadOnlyMapLike::subspaceForImpl):

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

(WebCore::JSReadOnlyMapLike::subspaceFor):

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

(WebCore::JSReadOnlySetLike::subspaceForImpl):

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

(WebCore::JSReadOnlySetLike::subspaceFor):

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

(WebCore::JSSetLike::subspaceForImpl):

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

(WebCore::JSSetLike::subspaceFor):

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

(WebCore::JSTestActiveDOMObject::subspaceForImpl):

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

(WebCore::JSTestActiveDOMObject::subspaceFor):

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

(WebCore::JSTestCEReactions::subspaceForImpl):

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

(WebCore::JSTestCEReactions::subspaceFor):

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

(WebCore::JSTestCEReactionsStringifier::subspaceForImpl):

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

(WebCore::JSTestCEReactionsStringifier::subspaceFor):

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

(WebCore::JSTestCallTracer::subspaceForImpl):

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

(WebCore::JSTestCallTracer::subspaceFor):

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

(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceForImpl):

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

(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceFor):

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

(WebCore::JSTestDOMJIT::subspaceForImpl):

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

(WebCore::JSTestDOMJIT::subspaceFor):

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

(WebCore::JSTestEnabledBySetting::subspaceForImpl):

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

(WebCore::JSTestEnabledBySetting::subspaceFor):

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

(WebCore::JSTestEnabledForContext::subspaceForImpl):

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

(WebCore::JSTestEnabledForContext::subspaceFor):

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

(WebCore::JSTestEventConstructor::subspaceForImpl):

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

(WebCore::JSTestEventConstructor::subspaceFor):

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

(WebCore::JSTestEventTarget::subspaceForImpl):

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

(WebCore::JSTestEventTarget::subspaceFor):

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

(WebCore::JSTestException::subspaceForImpl):

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

(WebCore::JSTestException::subspaceFor):

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

(WebCore::JSTestGenerateIsReachable::subspaceForImpl):

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

(WebCore::JSTestGenerateIsReachable::subspaceFor):

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

(WebCore::JSTestGlobalObject::subspaceForImpl):

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

(WebCore::JSTestGlobalObject::subspaceFor):

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

(WebCore::JSTestIndexedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterNoIdentifier::subspaceFor):

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

(WebCore::JSTestIndexedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterThrowingException::subspaceFor):

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

(WebCore::JSTestIndexedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterWithIdentifier::subspaceFor):

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

(WebCore::JSTestInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:

(WebCore::JSTestInterfaceLeadingUnderscore::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:

(WebCore::JSTestInterfaceLeadingUnderscore::subspaceFor):

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

(WebCore::JSTestIterable::subspaceForImpl):

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

(WebCore::JSTestIterable::subspaceFor):

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

(WebCore::JSTestJSBuiltinConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:

(WebCore::JSTestJSBuiltinConstructor::subspaceFor):

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

(WebCore::JSTestMediaQueryListListener::subspaceForImpl):

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

(WebCore::JSTestMediaQueryListListener::subspaceFor):

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

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceFor):

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

(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceFor):

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

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceFor):

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

(WebCore::JSTestNamedConstructor::subspaceForImpl):

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

(WebCore::JSTestNamedConstructor::subspaceFor):

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

(WebCore::JSTestNamedDeleterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterNoIdentifier::subspaceFor):

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

(WebCore::JSTestNamedDeleterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterThrowingException::subspaceFor):

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

(WebCore::JSTestNamedDeleterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterWithIdentifier::subspaceFor):

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

(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceFor):

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

(WebCore::JSTestNamedGetterCallWith::subspaceForImpl):

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

(WebCore::JSTestNamedGetterCallWith::subspaceFor):

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

(WebCore::JSTestNamedGetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedGetterNoIdentifier::subspaceFor):

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

(WebCore::JSTestNamedGetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedGetterWithIdentifier::subspaceFor):

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

(WebCore::JSTestNamedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterNoIdentifier::subspaceFor):

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

(WebCore::JSTestNamedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedSetterThrowingException::subspaceFor):

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

(WebCore::JSTestNamedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIdentifier::subspaceFor):

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

(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceFor):

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

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceFor):

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

(WebCore::JSTestNamedSetterWithOverrideBuiltins::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithOverrideBuiltins::subspaceFor):

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

(WebCore::JSTestNamedSetterWithUnforgableProperties::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithUnforgableProperties::subspaceFor):

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

(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins::subspaceFor):

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

(WebCore::JSTestNode::subspaceForImpl):

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

(WebCore::JSTestObj::subspaceForImpl):

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

(WebCore::JSTestObj::subspaceFor):

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

(WebCore::JSTestOverloadedConstructors::subspaceForImpl):

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

(WebCore::JSTestOverloadedConstructors::subspaceFor):

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

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceForImpl):

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

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceFor):

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

(WebCore::JSTestOverrideBuiltins::subspaceForImpl):

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

(WebCore::JSTestOverrideBuiltins::subspaceFor):

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

(WebCore::JSTestPluginInterface::subspaceForImpl):

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

(WebCore::JSTestPluginInterface::subspaceFor):

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

(WebCore::JSTestPromiseRejectionEvent::subspaceForImpl):

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

(WebCore::JSTestPromiseRejectionEvent::subspaceFor):

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

(WebCore::JSTestSerialization::subspaceForImpl):

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

(WebCore::JSTestSerialization::subspaceFor):

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

(WebCore::JSTestSerializationIndirectInheritance::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.h:

(WebCore::JSTestSerializationIndirectInheritance::subspaceFor):

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

(WebCore::JSTestSerializationInherit::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSerializationInherit.h:

(WebCore::JSTestSerializationInherit::subspaceFor):

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

(WebCore::JSTestSerializationInheritFinal::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSerializationInheritFinal.h:

(WebCore::JSTestSerializationInheritFinal::subspaceFor):

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

(WebCore::JSTestSerializedScriptValueInterface::subspaceForImpl):

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

(WebCore::JSTestSerializedScriptValueInterface::subspaceFor):

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

(WebCore::JSTestStringifier::subspaceForImpl):

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

(WebCore::JSTestStringifier::subspaceFor):

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

(WebCore::JSTestStringifierAnonymousOperation::subspaceForImpl):

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

(WebCore::JSTestStringifierAnonymousOperation::subspaceFor):

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

(WebCore::JSTestStringifierNamedOperation::subspaceForImpl):

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

(WebCore::JSTestStringifierNamedOperation::subspaceFor):

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

(WebCore::JSTestStringifierOperationImplementedAs::subspaceForImpl):

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

(WebCore::JSTestStringifierOperationImplementedAs::subspaceFor):

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

(WebCore::JSTestStringifierOperationNamedToString::subspaceForImpl):

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

(WebCore::JSTestStringifierOperationNamedToString::subspaceFor):

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

(WebCore::JSTestStringifierReadOnlyAttribute::subspaceForImpl):

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

(WebCore::JSTestStringifierReadOnlyAttribute::subspaceFor):

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

(WebCore::JSTestStringifierReadWriteAttribute::subspaceForImpl):

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

(WebCore::JSTestStringifierReadWriteAttribute::subspaceFor):

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

(WebCore::JSTestTypedefs::subspaceForImpl):

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

(WebCore::JSTestTypedefs::subspaceFor):

2:53 PM Changeset in webkit [257949] by Simon Fraser
  • 13 edits in trunk/Source/WebCore

When using the scrolling thread, push ScrollingNodeIDs onto PlatformCALayers
https://bugs.webkit.org/show_bug.cgi?id=208654

Reviewed by Antti Koivisto.

The scrolling thread on macOS will need to be able to associate layers with scrolling nodes,
so push a ScrollingNodeID down through GraphicsLayer to PlatformCALayerCocoa.

We only need one ScrollingNodeID per platform layer, since a given platform layer only
ever has one scrolling role.

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::scrollingTreeAsText):

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::dumpProperties const):

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::scrollingNodeID const):
(WebCore::GraphicsLayer::setScrollingNodeID):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setScrollingNodeID):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateScrollingNode):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/ca/PlatformCALayer.h: setEventRegion() doesn't need to be pure virtual.
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::PlatformCALayerCocoa::setEventRegion):
(WebCore::PlatformCALayerCocoa::eventRegionContainsPoint const):

  • platform/graphics/ca/win/PlatformCALayerWin.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
(WebCore::RenderLayerBacking::setScrollingNodeIDForRole):

  • rendering/RenderLayerBacking.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::ensureRootLayer):
(WebCore::RenderLayerCompositor::attachScrollingNode): For subframe scrolling, the clipLayer
is the layer that gets associated with a scrolling node.
(WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingProxyRole):

2:50 PM Changeset in webkit [257948] by Andres Gonzalez
  • 8 edits in trunk/Source/WebCore

Fix for several failures of LayoutTests in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=208658

Reviewed by Chris Fleizach.

  • Exposes the scrollView method through the AXCoreObject interface so

that wrapper code can use it for both AXObjects and IsolatedObjects.

  • Fix for a crash/assert where InvalidAXID cannot be passed as key to

the HashMap methods.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityScrollView.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::scrollView const):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::applyPendingChanges):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper scrollViewParent]):
(-[WebAccessibilityObjectWrapper _accessibilityShowContextMenu]):

2:32 PM Changeset in webkit [257947] by Jacob Uphoff
  • 7 edits in trunk/Source/WebCore

Unreviewed, rolling out r257945.

This causes tests to fail

Reverted changeset:

"Remove the optimization for discarding no operation
DisplayList items between Save and Restore items"
https://bugs.webkit.org/show_bug.cgi?id=208659
https://trac.webkit.org/changeset/257945

2:25 PM Changeset in webkit [257946] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Windows build fix after r257938.

Surround the event region painting code with #if ENABLE(ASYNC_SCROLLING); Windows
doesn't need to build this code.

  • rendering/RenderLayerBacking.cpp:
  • rendering/RenderLayerBacking.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateBackingAndHierarchy):

2:22 PM Changeset in webkit [257945] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

Remove the optimization for discarding no operation DisplayList items between Save and Restore items
https://bugs.webkit.org/show_bug.cgi?id=208659

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-05
Reviewed by Simon Fraser.

This optimization is wrong in the case of drawing a canvas in general.
The original implementation of the DisplayList assumes balanced Save/
Restore GraphicsContext. In canvas a GraphicsConext 'save' can be issued
in a frame and the corresponding restore is issued many frames later.

  • platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::removeItemsFromIndex): Deleted.

  • platform/graphics/displaylists/DisplayList.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:
  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::Save::encode const):
(WebCore::DisplayList::Save::decode):
(WebCore::DisplayList::Save::restoreIndex const): Deleted.
(WebCore::DisplayList::Save::setRestoreIndex): Deleted.

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::save):
(WebCore::DisplayList::Recorder::restore):

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::ContextState::cloneForSave const):

2:10 PM Changeset in webkit [257944] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

1:51 PM Changeset in webkit [257943] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] scrollingcoordinator/ios/fixed-frame-overflow-swipe.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208587

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
1:30 PM Changeset in webkit [257942] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebKit

Unreviewed unified build fix; forward-declare and include GPUConnectionToWebProcess where it's used.

  • GPUProcess/media/RemoteAudioSessionProxy.cpp:
  • GPUProcess/media/RemoteAudioSessionProxy.h:
1:14 PM Changeset in webkit [257941] by Ben Nham
  • 2 edits in trunk/LayoutTests

REGRESSION (r257862): imported/w3c/web-platform-tests/svg/import/struct-dom-06-b-manual.svg is failing

1:01 PM Changeset in webkit [257940] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] http/tests/security/contentSecurityPolicy/javascript-url-blocked-by-default-src-star.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208662

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
12:44 PM Changeset in webkit [257939] by commit-queue@webkit.org
  • 7 edits in trunk

Page-specific UserStyleSheets should wait until the initial empty document has been removed to be injected
https://bugs.webkit.org/show_bug.cgi?id=208644
<rdar://problem/60042429>

Patch by Antoine Quint <Antoine Quint> on 2020-03-05
Reviewed by Brady Eidson.

Source/WebCore:

When a WKWebView is created and asked to load a URL, it will first load an empty initial document (about:blank) prior
to creating a Document for the requested URL. We need to ensure that page-specific UserStyleSheets are only injected
once the Document for the requested URL starts loading.

When Page::injectUserStyleSheet() is called, if we determine that the empty initial document is visible, we enqueue
the provided UserStyleSheet and wait until the new mainFrameDidChangeToNonInitialEmptyDocument() method is called
to empty that queue and inject the UserStyleSheets then.

This new method is called from Frame::setDocument() for a main frame once we've determined the frame's document has
changed to a non-null value and that the frame loader's state machine indicates that we're no longer displaying the
initial empty document.

  • dom/ExtensionStyleSheets.h:
  • page/Frame.cpp:

(WebCore::Frame::setDocument):

  • page/Page.cpp:

(WebCore::Page::injectUserStyleSheet):
(WebCore::Page::removeInjectedUserStyleSheet):
(WebCore::Page::mainFrameDidChangeToNonInitialEmptyDocument):

  • page/Page.h:

Tools:

Add new tests for -[_WKUserStyleSheet initWithSource:forWKWebView:forMainFrameOnly:userContentWorld:]) that check:

  1. that a _WKUserStyleSheet can be added immediately after a WKWebView's creation and will be injected once the initial empty document has been removed in favor of the document for the requested URL,
  2. that removing a _WKUserStyleSheet immediately after it was added but before the initial empty document was removed correctly does not injected the style sheet.
  • TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm:
12:32 PM Changeset in webkit [257938] by Simon Fraser
  • 5 edits
    5 adds in trunk

Generate layer event regions for async overflow scrolling on macOS
https://bugs.webkit.org/show_bug.cgi?id=208649

Reviewed by Antti Koivisto.

Source/WebCore:

Turn on the existing code for event region generation on macOS, and generate event
regions when async overflow scroll is enabled.

Tweak the region debug color to be more visible.

Tests: fast/scrolling/mac/border-radius-event-region.html

fast/scrolling/mac/event-region-visibility-hidden.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateEventRegion):
(WebCore::RenderLayerBacking::paintDebugOverlays):

LayoutTests:

  • TestExpectations:
  • fast/scrolling/mac/border-radius-event-region-expected.txt: Added.
  • fast/scrolling/mac/border-radius-event-region.html: Added.
  • fast/scrolling/mac/event-region-visibility-hidden-expected.txt: Added.
  • fast/scrolling/mac/event-region-visibility-hidden.html: Added.
  • platform/mac-wk2/TestExpectations:
11:44 AM Changeset in webkit [257937] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r257760?) [ Mac wk2 Debug ] ASSERTION FAILED: child->parentObject() == this in WebCore::AccessibilityObject::insertChild
https://bugs.webkit.org/show_bug.cgi?id=208648

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:43 AM Changeset in webkit [257936] by jer.noble@apple.com
  • 23 edits
    11 adds in trunk/Source

[GPUP] Implement RemoteAudioSession
https://bugs.webkit.org/show_bug.cgi?id=208583

Reviewed by Alex Christensen.

Source/WebCore:

Add EnumTraits for all the enumerations inside AudioSession.

Make many AudioSession methods virtual, so they can be overridden in the case where the
GPU process is enabled.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/AudioSession.cpp:

(WebCore::AudioSession::create):
(WebCore::AudioSession::sharedSession):

  • platform/audio/AudioSession.h:

Source/WebKit:

Add a subclass of AudioSession which, instead of modifying the audio behavior of the current process, modifies the
audio behavior of the GPU Process. And, in the GPU Process, since it represents the audio behavior of potentially
multiple separate WebContent processes.

Override the default shared AudioSession at WebProcess initialization time.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::didClose):
(WebKit::GPUConnectionToWebProcess::audioSessionProxy):
(WebKit::GPUConnectionToWebProcess::ensureAudioSession):
(WebKit::GPUConnectionToWebProcess::legacyCdmFactoryProxy):
(WebKit::GPUConnectionToWebProcess::dispatchMessage):
(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::initializeGPUProcess):
(WebKit::GPUProcess::audioSessionManager const):

  • GPUProcess/GPUProcess.h:
  • GPUProcess/media/RemoteAudioSessionProxy.cpp: Added.

(WebKit::RemoteAudioSessionProxy::create):
(WebKit::RemoteAudioSessionProxy::RemoteAudioSessionProxy):
(WebKit::RemoteAudioSessionProxy::processIdentifier):
(WebKit::RemoteAudioSessionProxy::configuration):
(WebKit::RemoteAudioSessionProxy::setCategory):
(WebKit::RemoteAudioSessionProxy::setPreferredBufferSize):
(WebKit::RemoteAudioSessionProxy::tryToSetActive):
(WebKit::RemoteAudioSessionProxy::beginInterruption):
(WebKit::RemoteAudioSessionProxy::endInterruption):
(WebKit::RemoteAudioSessionProxy::audioSessionManager):
(WebKit::RemoteAudioSessionProxy::connection):

  • GPUProcess/media/RemoteAudioSessionProxy.h: Added.

(WebKit::RemoteAudioSessionProxy::category const):
(WebKit::RemoteAudioSessionProxy::routeSharingPolicy const):
(WebKit::RemoteAudioSessionProxy::preferredBufferSize const):
(WebKit::RemoteAudioSessionProxy::isActive const):

  • GPUProcess/media/RemoteAudioSessionProxy.messages.in:
  • GPUProcess/media/RemoteAudioSessionProxyManager.cpp: Added.

(WebKit::RemoteAudioSessionProxyManager::RemoteAudioSessionProxyManager):
(WebKit::RemoteAudioSessionProxyManager::addProxy):
(WebKit::RemoteAudioSessionProxyManager::removeProxy):
(WebKit::RemoteAudioSessionProxyManager::getProxy):
(WebKit::RemoteAudioSessionProxyManager::setCategoryForProcess):
(WebKit::RemoteAudioSessionProxyManager::setPreferredBufferSizeForProcess):
(WebKit::RemoteAudioSessionProxyManager::tryToSetActiveForProcess):

  • GPUProcess/media/RemoteAudioSessionProxyManager.h:

(WebKit::RemoteAudioSessionProxyManager::session const):

  • GPUProcess/media/RemoteAudioSessionProxyManager.messages.in:
  • Scripts/webkit/messages.py:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/RemoteAudioSession.cpp: Added.

(WebKit::RemoteAudioSession::create):
(WebKit::RemoteAudioSession::RemoteAudioSession):
(WebKit::RemoteAudioSession::connection):
(WebKit::RemoteAudioSession::setCategory):
(WebKit::RemoteAudioSession::setPreferredBufferSize):
(WebKit::RemoteAudioSession::tryToSetActiveInternal):
(WebKit::RemoteAudioSession::configurationChanged):
(WebKit::RemoteAudioSession::beginInterruption):
(WebKit::RemoteAudioSession::endInterruption):

  • WebProcess/GPU/media/RemoteAudioSession.h: Added.
  • WebProcess/GPU/media/RemoteAudioSession.messages.in:
  • WebProcess/GPU/media/RemoteAudioSessionConfiguration.h: Added.

(WebKit::RemoteAudioSessionConfiguration::encode const):
(WebKit::RemoteAudioSessionConfiguration::decode):

  • WebProcess/GPU/media/RemoteAudioSessionIdentifier.h:

Source/WTF:

Add UniqueRef to the list of forward-declared template types.

  • wtf/Forward.h:
11:12 AM Changeset in webkit [257935] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

Sandbox: Allow sysctl read of "kern.ostype"
https://bugs.webkit.org/show_bug.cgi?id=208650
<rdar://problem/60010603>

Reviewed by Alexey Proskuryakov.

NSURLSession needs access to "kern.ostype", so the Networking and WebContent
sandboxes should allow it. I corrected this for the iOS Network sandbox in
Bug 208346. I should have handled macOS and the WebContent process (on both
platforms) at the same time.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
11:08 AM Changeset in webkit [257934] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[ews] Add build step to push commit to WebKit repository
https://bugs.webkit.org/show_bug.cgi?id=208589

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(PushCommitToWebKitRepo): Build step to push the local commit to WebKit repository.
(PushCommitToWebKitRepo.start): Initialize log observer.
(PushCommitToWebKitRepo.evaluateCommand): Check command return status and comment on bug accordingly.
(PushCommitToWebKitRepo.comment_text_for_bug): Generate comment text for commenting on bug.
(PushCommitToWebKitRepo.svn_revision_from_commit_text): Extract the svn revision from commit text.
(PushCommitToWebKitRepo.getResultSummary): Set custom failure message.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
  • BuildSlaveSupport/ews-build/factories.py:
11:06 AM Changeset in webkit [257933] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Make m_viewportConstrainedObjects into a WeakHashSet
https://bugs.webkit.org/show_bug.cgi?id=208625

Reviewed by Ryosuke Niwa.

Use WeakHashSet<> for m_viewportConstrainedObjects.

  • page/FrameView.cpp:

(WebCore::FrameView::didDestroyRenderTree):
(WebCore::FrameView::addViewportConstrainedObject):
(WebCore::FrameView::removeViewportConstrainedObject):
(WebCore::FrameView::scrollContentsFastPath):
(WebCore::FrameView::setViewportConstrainedObjectsNeedLayout):

  • page/FrameView.h:
  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects const):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateCompositingLayers):

  • rendering/RenderLayerModelObject.cpp:

(WebCore::RenderLayerModelObject::willBeDestroyed):
(WebCore::RenderLayerModelObject::styleDidChange):

11:02 AM Changeset in webkit [257932] by commit-queue@webkit.org
  • 5 edits in trunk

REGRESSION: [ Mac ] fast/canvas/webgl/texImage2D-video-flipY-false.html is Timing out
https://bugs.webkit.org/show_bug.cgi?id=205734

Source/WebCore:

Fix two bugs in MediaPlayerPrivateAVFoundationObjC causing the
preferred AVPlayerItemVideoOutput code path to not be taken, in
the situation where GPU-to-GPU copies are not possible because the
video's format doesn't allow them.

Implement currentTime, fixing longstanding bug in the
AVAssetImageGenerator fallback where only the first frame of the
video would be displayed.

Covered by existing layout test.

Patch by Kenneth Russell <kbr@chromium.org> on 2020-03-05
Reviewed by Dean Jackson.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::currentTime const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintCurrentFrameInContext):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):

LayoutTests:

Reenable layout test on macOS.

Patch by Kenneth Russell <kbr@chromium.org> on 2020-03-05
Reviewed by Dean Jackson.

  • platform/mac/TestExpectations:
10:55 AM Changeset in webkit [257931] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS iOS ] storage/indexeddb/modern/transactions-stop-on-navigation.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208656

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
10:51 AM Changeset in webkit [257930] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Add unit tests for ValidateCommiterAndReviewer build step
https://bugs.webkit.org/show_bug.cgi?id=208262

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests for ValidateCommiterAndReviewer.
10:42 AM Changeset in webkit [257929] by youenn@apple.com
  • 4 edits in trunk

In case an activating service worker is terminated, it should go to activated state
https://bugs.webkit.org/show_bug.cgi?id=208440
<rdar://problem/59742332>

Reviewed by Chris Dumez.

Source/WebCore:

Covered by updated test.

  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::setState):
As per spec, if an activated service worker is terminated or its activate event is timing out,
we should move it to activate state.

LayoutTests:

  • http/wpt/service-workers/service-worker-spinning-activate.https.html:
10:38 AM Changeset in webkit [257928] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][Integration] Reset position style on line breaks.
https://bugs.webkit.org/show_bug.cgi?id=208646
<rdar://problem/60086589>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/inline/out-of-flow-positioned-line-break.html

We need to treat line breaks as statically positioned inline content.
In the long run we should do something along these lines:
https://github.com/w3c/csswg-drafts/issues/610

  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::buildTree):

LayoutTests:

  • fast/inline/out-of-flow-positioned-line-break-expected.txt: Added.
  • fast/inline/out-of-flow-positioned-line-break.html: Added.
10:28 AM Changeset in webkit [257927] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

commit-queue should run WK2 tests instead of WK1 tests
https://bugs.webkit.org/show_bug.cgi?id=208544

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories.py:
10:27 AM Changeset in webkit [257926] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

Some media tests crash when run in the GPU process
https://bugs.webkit.org/show_bug.cgi?id=208611
<rdar://problem/60060320>

Reviewed by Jer Noble.

The AVPlayerItemOutputPullDelegate is not called on the main queue, so it can't
use a WeakPtr that is created on the main queue. Rather than having the ObjC
delegate object call back to MediaPlayerPrivateAVFoundationObjC to signal a
semaphore it owns, have the delegate object own the semaphore and expose it
so MediaPlayerPrivateAVFoundationObjC can use it, removing the need for the
WeakPtr completely.

No new tests, this fixes a crash in existing tests.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
Don't allocate m_videoOutputDelegate, it isn't needed immediately.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer): Drive-by
optimization: don't update the current image when the fullscreen layer is set to NULL.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput): Allocate m_videoOutputDelegate.
(WebCore::MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange):
Wait on the deletage's semphore.
(-[WebCoreAVFPullDelegate outputMediaDataWillChange:]):
(WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange): Deleted.
(-[WebCoreAVFPullDelegate initWithPlayer:]): Deleted.

10:16 AM Changeset in webkit [257925] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] ValidateCommiterAndReviewer should validate emails in case insensitive manner
https://bugs.webkit.org/show_bug.cgi?id=208645

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/ews-build/steps.py:

(ValidateCommiterAndReviewer.load_contributors):
(ValidateCommiterAndReviewer.start):

10:10 AM Changeset in webkit [257924] by Simon Fraser
  • 3 edits
    1 move in trunk/Source/WebCore

Change ScrollingTreeMac.cpp to a .mm file
https://bugs.webkit.org/show_bug.cgi?id=208652

Reviewed by Antti Koivisto.

Simple file rename.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/scrolling/mac/ScrollingTreeMac.mm: Renamed from Source/WebCore/page/scrolling/mac/ScrollingTreeMac.cpp.
10:07 AM Changeset in webkit [257923] by clopez@igalia.com
  • 2 edits in trunk/Tools

style-checker: Add UAF to the list of security words to warn about.
https://bugs.webkit.org/show_bug.cgi?id=208643

Reviewed by Jonathan Bedard.

UAF is a common acronym used for use after free.

  • Scripts/webkitpy/style/checkers/changelog.py:

(ChangeLogChecker.check_for_unwanted_security_phrases):

10:02 AM Changeset in webkit [257922] by Jason_Lawrence
  • 142 edits in trunk/Source/WebCore

Unreviewed, rolling out r257905.

This commit caused crashes on Mac wk2 Debug.

Reverted changeset:

"Put all generated JSCells in WebCore into IsoSubspace"
https://bugs.webkit.org/show_bug.cgi?id=205107
https://trac.webkit.org/changeset/257905

9:41 AM Changeset in webkit [257921] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Assertion failed: shouldBeActive() in BackgroundProcessResponsivenessTimer::responsivenessCheckTimerFired()
https://bugs.webkit.org/show_bug.cgi?id=208596

Reviewed by Chris Dumez.

Update state of BackgroundProcessResponsivenessTimer when ServiceWorker is enabled or disabled in web process.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::disableServiceWorkers):
(WebKit::WebProcessProxy::enableServiceWorkers):

9:18 AM Changeset in webkit [257920] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Track "scrolling scope" on RenderLayers
https://bugs.webkit.org/show_bug.cgi?id=208620

Reviewed by Zalan Bujtas.

Keep track of a "scrolling scope" on RenderLayers. Layers that share a scrolling scope
get scrolled by some common async-scrollable containing-block ancestor. The scope is just
a unique identifier.

Each layer has two scopes; a "box" scope that applies to the background/borders, and
a "content" scope that applies to (potentially) scrollable content. For most layers,
these will be the same, and shared with the layer's containing block ancestor layer.

For async-scrollable overflow, "box" scope is shared with the cb ancestor, but "content" scope
will have a new value that applies to all the layers moved by that scroller.

Having this value makes it easy to ask the question "is this layer scrolled by some ancestor",
which is a tricky computation for things like a position:absolute layer inside a non-containing block
stacking context overflow:scroll. Also, position:fixed whose containing block is the root will share
the scrolling scope of the root.

No behavior change.

  • rendering/RenderLayer.cpp:

(WebCore::nextScrollingScope):
(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updateLayerPosition):
(WebCore::outputPaintOrderTreeLegend):
(WebCore::outputPaintOrderTreeRecursive):

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

(WebCore::isScrolledByOverflowScrollLayer):

9:13 AM Changeset in webkit [257919] by youenn@apple.com
  • 10 edits in trunk/Source

Add logging support for capture sources in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=208637

Reviewed by Eric Carlson.

Source/WebCore:

Make sure RealtimeVideoSource propagates its logger to its underlying source and to its clones.
No change of behavior.

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeVideoSource.cpp:

(WebCore::RealtimeVideoSource::clone):
(WebCore::RealtimeVideoSource::setLogger):

  • platform/mediastream/RealtimeVideoSource.h:

Source/WebKit:

Add a logger getter to the ConnectionProxy.
Implement it for GPUProcess and UIProcess.
Set source logger to the connection proxy logger.

  • GPUProcess/GPUConnectionToWebProcess.cpp:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/WebProcessProxy.cpp:
  • UIProcess/WebProcessProxy.h:
8:13 AM Changeset in webkit [257918] by Wenson Hsieh
  • 6 edits in trunk/Source/WebCore

Optimize Path::encode on platforms that support CGPathGetNumberOfElements
https://bugs.webkit.org/show_bug.cgi?id=208266

Reviewed by Darin Adler and Simon Fraser.

Source/WebCore:

When encoding Path objects, we currently first encode the number of elements in the path by iterating over each
path element and incrementing a counter; then, we iterate over each element again, and encode information
(points, angles, etc.) for each path element.

However, on platforms that have the fix for <rdar://problem/59828724>, the first call to CGPathApply can be
skipped, since CoreGraphics can (in constant time, for the most part) simply tell us how many elements are in
the CGPath. See comments below for more details.

There should be no change in behavior.

  • platform/graphics/Path.cpp:
  • platform/graphics/Path.h:

Add an elementCount method on Path, which returns the count of elements in the path. On platforms where
CGPathGetNumberOfElements exists (and the fix for <rdar://problem/59828724> is also present), we return the
result of calling this SPI. Otherwise, fall back to mapping over each path element and incrementing a count.

(WebCore::Path::encode const):

Use the new elementCount method when encoding a WebCore::Path.

  • platform/graphics/cg/PathCG.cpp:

(WebCore::Path::elementCount const):

Source/WebCore/PAL:

Add an SPI declaration for CGPathGetNumberOfElements.

  • pal/spi/cg/CoreGraphicsSPI.h:
8:04 AM Changeset in webkit [257917] by Alan Bujtas
  • 4 edits in trunk

[LFC][Invalidation] Incoming image data should invalidate layout tree content
https://bugs.webkit.org/show_bug.cgi?id=208640
<rdar://problem/60083229>

Reviewed by Antti Koivisto.

Source/WebCore:

This is a forced invalidation (in the least intrusive way) to make sure LFC has up-to-date replaced information.

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::imageChanged):

LayoutTests:

  • platform/mac-wk2/TestExpectations:
8:00 AM Changeset in webkit [257916] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests

[GTK] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208480

Unreviewed gardening.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/text/monospace-width-cache-expected.txt: Update after r257305.
  • platform/gtk/http/tests/navigation/javascriptlink-frames-expected.txt: Update after r257626.
7:51 AM Changeset in webkit [257915] by Antti Koivisto
  • 3 edits in trunk/LayoutTests

REGRESSION (r257839): two fast/forms/textarea are failing after commit r257839 (208576)
https://bugs.webkit.org/show_bug.cgi?id=208627
<rdar://problem/60042801>

Reviewed by Zalan Bujtas.

  • fast/forms/textarea-no-scroll-on-blur.html:
  • fast/forms/textarea-scrolled-type.html:

Update the tests to use rAF instead of zero duration timers.
There must be a rendering update between focus() and blur() for actual scrolling to happen and
zero duration timer doesn't guarantee that.

7:46 AM Changeset in webkit [257914] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Remove CoreAudioCaptureSourceFactory::setCoreAudioActiveSource/unsetCoreAudioActiveSource
https://bugs.webkit.org/show_bug.cgi?id=208632

Reviewed by Eric Carlson.

We can remove this code since suspend/resume is now directly handled
by the AudioSharedUnit singleton instead of going through the source.
No change of behavior.

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::~CoreAudioCaptureSource):
(WebCore::CoreAudioCaptureSource::startProducingData):

  • platform/mediastream/mac/CoreAudioCaptureSource.h:
3:53 AM Changeset in webkit [257913] by youenn@apple.com
  • 28 edits
    1 add in trunk/Source

Export NowPlaying commands to GPUProcess when media playing in GPUProcess is enabled
https://bugs.webkit.org/show_bug.cgi?id=208568

Source/WebCore:

Reviewed by Eric Carlson.

Removed PlatformMediaSessionClient NowPlaying getters since only HTMLMediaElement is eligible.
Let MediaElementSession generates its own NowPlayingInfo when requested by the session manager.
Use platform strategies to abstract out how to execute NowPlaying orders.

Manually tested for NowPlaying functionality.
Also covered by existing tests for the refactoring bits.

  • Headers.cmake:
  • Modules/webaudio/AudioContext.cpp:

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

  • Modules/webaudio/AudioContext.h:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.h:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::allowsPlaybackControlsForAutoplayingAudio const):
(WebCore::MediaElementSession::nowPlayingInfo const):
(WebCore::MediaElementSession::allowsNowPlayingControlsVisibility const): Deleted.

  • html/MediaElementSession.h:
  • platform/MediaStrategy.h:
  • platform/audio/AudioSession.h:
  • platform/audio/NowPlayingInfo.h: Added.

(WebCore::NowPlayingInfo::encode const):
(WebCore::NowPlayingInfo::decode):

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::nowPlayingInfo const):
(WebCore::PlatformMediaSession::uniqueIdentifier const): Deleted.
(WebCore::PlatformMediaSession::title const): Deleted.
(WebCore::PlatformMediaSession::duration const): Deleted.
(WebCore::PlatformMediaSession::currentTime const): Deleted.
(WebCore::PlatformMediaSession::sourceApplicationIdentifier const): Deleted.
(WebCore::PlatformMediaSessionClient::mediaSessionUniqueIdentifier const): Deleted.
(WebCore::PlatformMediaSessionClient::mediaSessionTitle const): Deleted.
(WebCore::PlatformMediaSessionClient::mediaSessionDuration const): Deleted.
(WebCore::PlatformMediaSessionClient::mediaSessionCurrentTime const): Deleted.

  • platform/audio/PlatformMediaSession.h:

(WebCore::PlatformMediaSession::allowsNowPlayingControlsVisibility const): Deleted.

  • platform/audio/cocoa/MediaSessionManagerCocoa.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(MediaSessionManagerCocoa::clearNowPlayingInfo):
(MediaSessionManagerCocoa::setNowPlayingInfo):
(MediaSessionManagerCocoa::nowPlayingEligibleSession):
(MediaSessionManagerCocoa::updateNowPlayingInfo):

  • platform/audio/ios/MediaSessionManagerIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::providePresentingApplicationPIDIfNecessary):
(WebCore::MediaSessionManageriOS::providePresentingApplicationPID):

Source/WebKit:

Reviewed by Eric Carlson.

Export NowPlaying orders to GPU process through IPC if GPUProcess is turned on.
Otherwise use the regular in process implementation.
Make sure to sync the hasAudio state so that it gets set properly in WebProcess.

Remove the use of a PlatformMediaSessionManager for capture since it is now using platform strategies in two places.
Instead use directly static methods of MediaSessionManageriOS to implement pid forwarding and AudioSession to set category and buffer size.
A follow-up refactoring should probably rearchitect AudioSession handling.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::clearNowPlayingInfo):
(WebKit::GPUConnectionToWebProcess::setNowPlayingInfo):
(WebKit::GPUConnectionToWebProcess::sessionManager): Deleted.

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::updateCachedState):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::SourceProxy::SourceProxy):
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::~SourceProxy):
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
(WebKit::UserMediaCaptureManagerProxy::clone):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
  • UIProcess/WebProcessProxy.cpp:
  • WebProcess/GPU/media/WebMediaStrategy.cpp:

(WebKit::WebMediaStrategy::clearNowPlayingInfo):
(WebKit::WebMediaStrategy::setNowPlayingInfo):

  • WebProcess/GPU/media/WebMediaStrategy.h:

Source/WebKitLegacy/mac:

Reviewed by Eric Carlson.

Use in-process now playing implementation.

  • WebCoreSupport/WebPlatformStrategies.mm:
1:51 AM Changeset in webkit [257912] by Carlos Garcia Campos
  • 23 edits in trunk/LayoutTests

Unreviewed GTK gardening. Rebaseline media controls tests after r257775

  • platform/gtk/fast/layers/video-layer-expected.png:
  • platform/gtk/fast/layers/video-layer-expected.txt:
  • platform/gtk/media/audio-controls-rendering-expected.png:
  • platform/gtk/media/audio-controls-rendering-expected.txt:
  • platform/gtk/media/controls-after-reload-expected.png:
  • platform/gtk/media/controls-after-reload-expected.txt:
  • platform/gtk/media/controls-strict-expected.png:
  • platform/gtk/media/controls-strict-expected.txt:
  • platform/gtk/media/media-controls-clone-expected.png:
  • platform/gtk/media/media-controls-clone-expected.txt:
  • platform/gtk/media/video-controls-rendering-expected.png:
  • platform/gtk/media/video-controls-rendering-expected.txt:
  • platform/gtk/media/video-display-toggle-expected.png:
  • platform/gtk/media/video-display-toggle-expected.txt:
  • platform/gtk/media/video-empty-source-expected.png:
  • platform/gtk/media/video-empty-source-expected.txt:
  • platform/gtk/media/video-no-audio-expected.png:
  • platform/gtk/media/video-no-audio-expected.txt:
  • platform/gtk/media/video-playing-and-pause-expected.png:
  • platform/gtk/media/video-playing-and-pause-expected.txt:
  • platform/gtk/media/video-zoom-controls-expected.png:
  • platform/gtk/media/video-zoom-controls-expected.txt:
1:19 AM Changeset in webkit [257911] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore/platform/gtk/po

Merge r257910 - [GTK][l10n] Updated Polish translation of WebKitGTK for 2.28
https://bugs.webkit.org/show_bug.cgi?id=208410

Patch by Piotr Drąg <piotrdrag@gmail.com> on 2020-03-05
Rubber-stamped by Carlos Garcia Campos.

  • pl.po:
1:15 AM Changeset in webkit [257910] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK][l10n] Updated Polish translation of WebKitGTK for 2.28
https://bugs.webkit.org/show_bug.cgi?id=208410

Patch by Piotr Drąg <piotrdrag@gmail.com> on 2020-03-05
Rubber-stamped by Carlos Garcia Campos.

  • pl.po:
1:11 AM Changeset in webkit [257909] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

REGRESSION(r257667): [UNIX] Tests http/tests/incremental/split-hex-entities.pl and http/tests/misc/large-js-program.php are crashing
https://bugs.webkit.org/show_bug.cgi?id=208571

Reviewed by Alex Christensen.

We get a release assert in Connection::processMessage() when trying to get a file descriptor from
m_fileDescriptors array that is empty. The problem is that since r257667, a shared buffer is always used by the
network process to send data to the web process (NetworkResourceLoader::sendBuffer) and shared buffer
encoding/decoding was changed to always use shared memory and send the file descriptor over the IPC. When
sending large data in small chunks like these tests are doing, we easily end up with many messages queued in the
web process receiver (Connection::enqueueIncomingMessage), all of them having one file descriptor open. When the
maximum number of open file descriptors per process is reached, recvmsg doesn't fail but it sets the flag
MSG_CTRUNC in msg_flags and the file descriptor is not actually included as part of the control message. The
message info still claims to include a file descriptor, but it hasn't been created and added to the
m_fileDescriptors array. We could check msg_flags, but only to assert earlier, not to fix the problem, since we
are unable to get the file descriptor sent. So, at least in linux I think it's better to send the data over the
IPC instead of using shared memory. We are already using shared memory for any IPC message bigger than 4096.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::readBytesFromSocket): Consider also a read failure when control data is discarded.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::encodeSharedBuffer): Do not use shared memory to encode a SharedBuffer in Unix.
(IPC::decodeSharedBuffer): Do not use shared memory to decode a SharedBuffer in Unix.

12:54 AM Changeset in webkit [257908] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSCOnly] 32-bits warning on memset of JSValue
https://bugs.webkit.org/show_bug.cgi?id=204411

Patch by Paulo Matos <Paulo Matos> on 2020-03-05
Reviewed by Mark Lam.

Fixes warning on 32bit builds. This is required because GCC knows
it is not safe to use memset on non-POD types and warns against its use.

  • heap/GCMemoryOperations.h:

(JSC::gcSafeZeroMemory):

Mar 4, 2020:

11:57 PM Changeset in webkit [257907] by mark.lam@apple.com
  • 9 edits
    1 add in trunk

Handle an out of memory error while constructing the BytecodeGenerator.
https://bugs.webkit.org/show_bug.cgi?id=208622
<rdar://problem/59341136>

Reviewed by Saam Barati.

JSTests:

  • stress/out-of-memory-while-constructing-BytecodeGenerator.js: Added.

Source/JavaScriptCore:

Added the ability to handle out of memory errors encountered during the
construction of the BytecodeGenerator. Currently, we only use this for the
case where we fail to instantiate a ScopedArgumentsTable.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):

  • bytecompiler/BytecodeGeneratorBase.h:
  • runtime/ScopedArgumentsTable.cpp:

(JSC::ScopedArgumentsTable::tryCreate):

  • runtime/ScopedArgumentsTable.h:
  • runtime/SymbolTable.h:

Source/WTF:

  • wtf/CagedUniquePtr.h:

(WTF::CagedUniquePtr::tryCreate):

11:50 PM Changeset in webkit [257906] by basuke.suzuki@sony.com
  • 1 edit
    2 adds in trunk/Tools

[MSVC] Add .natvis support of WebKit types
https://bugs.webkit.org/show_bug.cgi?id=193119

Reviewed by Don Olmstead.

To help the WebKit developer while debugging, this file defines how
WebKit types are displayed in debugger of Visual Studio.
Very limited set of WebKit types, but it changes the world.

  • VisualStudio/WebKit.natvis: Added.
11:18 PM Changeset in webkit [257905] by ysuzuki@apple.com
  • 142 edits in trunk/Source/WebCore

Put all generated JSCells in WebCore into IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=205107

Reviewed by Saam Barati.

This patch automatically generates IsoSubspace per WebCore DOM object type.
In preprocess-idls.pl, we collect all the DOM object types and generate DOMIsoSubspaces class,
which contains all the necessary IsoSubspaces. And it is held by WebCoreJSClientData.

CodeGeneratorJS.pm starts putting subspaceFor and subspaceForImpl for each JS DOM wrapper classes.
And we dynamically create IsoSubspace and set it to WebCoreJSClientData's DOMIsoSubspaces. At the same
time, we register IsoSubspace to m_outputConstraintSpaces if the class has output constraits callback.

  • CMakeLists.txt:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • WebCoreMacros.cmake:
  • bindings/js/JSDOMWrapper.cpp:

(WebCore::outputConstraintSubspaceFor): Deleted.

  • bindings/js/JSDOMWrapper.h:
  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSVMClientData::JSVMClientData):

  • bindings/js/WebCoreJSClientData.h:

(WebCore::JSVMClientData::forEachOutputConstraintSpace):
(WebCore::JSVMClientData::subspaces):
(WebCore::JSVMClientData::outputConstraintSpace): Deleted.
(WebCore::JSVMClientData::subspaceForJSDOMWindow): Deleted.
(WebCore::JSVMClientData::subspaceForJSDedicatedWorkerGlobalScope): Deleted.
(WebCore::JSVMClientData::subspaceForJSRemoteDOMWindow): Deleted.
(WebCore::JSVMClientData::subspaceForJSWorkerGlobalScope): Deleted.
(WebCore::JSVMClientData::subspaceForJSServiceWorkerGlobalScope): Deleted.
(WebCore::JSVMClientData::subspaceForJSPaintWorkletGlobalScope): Deleted.
(WebCore::JSVMClientData::subspaceForJSWorkletGlobalScope): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):

  • bindings/scripts/generate-bindings-all.pl:
  • bindings/scripts/preprocess-idls.pl:
  • bindings/scripts/test/JS/JSInterfaceName.cpp:

(WebCore::JSInterfaceName::subspaceForImpl):

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

(WebCore::JSInterfaceName::subspaceFor):

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

(WebCore::JSMapLike::subspaceForImpl):

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

(WebCore::JSMapLike::subspaceFor):

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

(WebCore::JSReadOnlyMapLike::subspaceForImpl):

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

(WebCore::JSReadOnlyMapLike::subspaceFor):

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

(WebCore::JSReadOnlySetLike::subspaceForImpl):

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

(WebCore::JSReadOnlySetLike::subspaceFor):

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

(WebCore::JSSetLike::subspaceForImpl):

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

(WebCore::JSSetLike::subspaceFor):

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

(WebCore::JSTestActiveDOMObject::subspaceForImpl):

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

(WebCore::JSTestActiveDOMObject::subspaceFor):

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

(WebCore::JSTestCEReactions::subspaceForImpl):

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

(WebCore::JSTestCEReactions::subspaceFor):

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

(WebCore::JSTestCEReactionsStringifier::subspaceForImpl):

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

(WebCore::JSTestCEReactionsStringifier::subspaceFor):

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

(WebCore::JSTestCallTracer::subspaceForImpl):

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

(WebCore::JSTestCallTracer::subspaceFor):

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

(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceForImpl):

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

(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceFor):

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

(WebCore::JSTestDOMJIT::subspaceForImpl):

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

(WebCore::JSTestDOMJIT::subspaceFor):

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

(WebCore::JSTestEnabledBySetting::subspaceForImpl):

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

(WebCore::JSTestEnabledBySetting::subspaceFor):

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

(WebCore::JSTestEnabledForContext::subspaceForImpl):

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

(WebCore::JSTestEnabledForContext::subspaceFor):

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

(WebCore::JSTestEventConstructor::subspaceForImpl):

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

(WebCore::JSTestEventConstructor::subspaceFor):

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

(WebCore::JSTestEventTarget::subspaceForImpl):

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

(WebCore::JSTestEventTarget::subspaceFor):

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

(WebCore::JSTestException::subspaceForImpl):

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

(WebCore::JSTestException::subspaceFor):

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

(WebCore::JSTestGenerateIsReachable::subspaceForImpl):

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

(WebCore::JSTestGenerateIsReachable::subspaceFor):

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

(WebCore::JSTestGlobalObject::subspaceForImpl):

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

(WebCore::JSTestGlobalObject::subspaceFor):

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

(WebCore::JSTestIndexedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterNoIdentifier::subspaceFor):

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

(WebCore::JSTestIndexedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterThrowingException::subspaceFor):

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

(WebCore::JSTestIndexedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestIndexedSetterWithIdentifier::subspaceFor):

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

(WebCore::JSTestInterface::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:

(WebCore::JSTestInterfaceLeadingUnderscore::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:

(WebCore::JSTestInterfaceLeadingUnderscore::subspaceFor):

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

(WebCore::JSTestIterable::subspaceForImpl):

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

(WebCore::JSTestIterable::subspaceFor):

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

(WebCore::JSTestJSBuiltinConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:

(WebCore::JSTestJSBuiltinConstructor::subspaceFor):

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

(WebCore::JSTestMediaQueryListListener::subspaceForImpl):

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

(WebCore::JSTestMediaQueryListListener::subspaceFor):

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

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceFor):

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

(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceFor):

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

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceFor):

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

(WebCore::JSTestNamedConstructor::subspaceForImpl):

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

(WebCore::JSTestNamedConstructor::subspaceFor):

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

(WebCore::JSTestNamedDeleterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterNoIdentifier::subspaceFor):

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

(WebCore::JSTestNamedDeleterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterThrowingException::subspaceFor):

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

(WebCore::JSTestNamedDeleterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterWithIdentifier::subspaceFor):

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

(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceForImpl):

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

(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceFor):

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

(WebCore::JSTestNamedGetterCallWith::subspaceForImpl):

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

(WebCore::JSTestNamedGetterCallWith::subspaceFor):

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

(WebCore::JSTestNamedGetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedGetterNoIdentifier::subspaceFor):

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

(WebCore::JSTestNamedGetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedGetterWithIdentifier::subspaceFor):

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

(WebCore::JSTestNamedSetterNoIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterNoIdentifier::subspaceFor):

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

(WebCore::JSTestNamedSetterThrowingException::subspaceForImpl):

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

(WebCore::JSTestNamedSetterThrowingException::subspaceFor):

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

(WebCore::JSTestNamedSetterWithIdentifier::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIdentifier::subspaceFor):

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

(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceFor):

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

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceFor):

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

(WebCore::JSTestNamedSetterWithOverrideBuiltins::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithOverrideBuiltins::subspaceFor):

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

(WebCore::JSTestNamedSetterWithUnforgableProperties::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithUnforgableProperties::subspaceFor):

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

(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins::subspaceForImpl):

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

(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins::subspaceFor):

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

(WebCore::JSTestNode::subspaceForImpl):

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

(WebCore::JSTestObj::subspaceForImpl):

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

(WebCore::JSTestObj::subspaceFor):

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

(WebCore::JSTestOverloadedConstructors::subspaceForImpl):

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

(WebCore::JSTestOverloadedConstructors::subspaceFor):

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

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceForImpl):

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

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceFor):

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

(WebCore::JSTestOverrideBuiltins::subspaceForImpl):

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

(WebCore::JSTestOverrideBuiltins::subspaceFor):

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

(WebCore::JSTestPluginInterface::subspaceForImpl):

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

(WebCore::JSTestPluginInterface::subspaceFor):

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

(WebCore::JSTestPromiseRejectionEvent::subspaceForImpl):

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

(WebCore::JSTestPromiseRejectionEvent::subspaceFor):

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

(WebCore::JSTestSerialization::subspaceForImpl):

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

(WebCore::JSTestSerialization::subspaceFor):

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

(WebCore::JSTestSerializationIndirectInheritance::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.h:

(WebCore::JSTestSerializationIndirectInheritance::subspaceFor):

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

(WebCore::JSTestSerializationInherit::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSerializationInherit.h:

(WebCore::JSTestSerializationInherit::subspaceFor):

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

(WebCore::JSTestSerializationInheritFinal::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestSerializationInheritFinal.h:

(WebCore::JSTestSerializationInheritFinal::subspaceFor):

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

(WebCore::JSTestSerializedScriptValueInterface::subspaceForImpl):

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

(WebCore::JSTestSerializedScriptValueInterface::subspaceFor):

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

(WebCore::JSTestStringifier::subspaceForImpl):

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

(WebCore::JSTestStringifier::subspaceFor):

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

(WebCore::JSTestStringifierAnonymousOperation::subspaceForImpl):

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

(WebCore::JSTestStringifierAnonymousOperation::subspaceFor):

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

(WebCore::JSTestStringifierNamedOperation::subspaceForImpl):

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

(WebCore::JSTestStringifierNamedOperation::subspaceFor):

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

(WebCore::JSTestStringifierOperationImplementedAs::subspaceForImpl):

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

(WebCore::JSTestStringifierOperationImplementedAs::subspaceFor):

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

(WebCore::JSTestStringifierOperationNamedToString::subspaceForImpl):

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

(WebCore::JSTestStringifierOperationNamedToString::subspaceFor):

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

(WebCore::JSTestStringifierReadOnlyAttribute::subspaceForImpl):

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

(WebCore::JSTestStringifierReadOnlyAttribute::subspaceFor):

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

(WebCore::JSTestStringifierReadWriteAttribute::subspaceForImpl):

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

(WebCore::JSTestStringifierReadWriteAttribute::subspaceFor):

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

(WebCore::JSTestTypedefs::subspaceForImpl):

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

(WebCore::JSTestTypedefs::subspaceFor):

11:06 PM Changeset in webkit [257904] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

WebsiteDataStore methods often create process pools and launch network processes unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=208619

Reviewed by Alex Christensen.

These methods were potentially creating a temporary WebProcessPool object and launching a network
process only to go change something in memory in the network process. Since the newly created
WebProcessPool is temporary, it gets destroyed as soon as we get out of the for loop and the
network go away too. Therefore, the information in memory of the new network process would not
survive. Those methods should never be created a process pool and this patch fixes this.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setMaxStatisticsEntries):
(WebKit::WebsiteDataStore::setPruneEntriesDownTo):
(WebKit::WebsiteDataStore::setGrandfatheringTime):
(WebKit::WebsiteDataStore::setMinimumTimeBetweenDataRecordsRemoval):
(WebKit::WebsiteDataStore::setPrevalentResource):
(WebKit::WebsiteDataStore::setVeryPrevalentResource):
(WebKit::WebsiteDataStore::setShouldClassifyResourcesBeforeDataRecordsRemoval):
(WebKit::WebsiteDataStore::setNotifyPagesWhenDataRecordsWereScanned):
(WebKit::WebsiteDataStore::setIsRunningResourceLoadStatisticsTest):
(WebKit::WebsiteDataStore::setNotifyPagesWhenTelemetryWasCaptured):
(WebKit::WebsiteDataStore::getAllStorageAccessEntries):
(WebKit::WebsiteDataStore::setTimeToLiveUserInteraction):
(WebKit::WebsiteDataStore::setCacheMaxAgeCapForPrevalentResources):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsDebugMode):
(WebKit::WebsiteDataStore::clearResourceLoadStatisticsInWebProcesses):

11:00 PM Changeset in webkit [257903] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

Fix for test accessibility/mac/aria-liveregions-addedelement.html in IsolatedTree mode.
https://bugs.webkit.org/show_bug.cgi?id=208624

Reviewed by Chris Fleizach.

Test: accessibility/mac/aria-liveregions-addedelement.html

LayoutTests can request the focused element before they call any method
in the WebAccessibilityObjectWrapper through AccessibilityController::focusedElement,
and thus the focused element may be amongst the pending appends of the
IsolatedTree. This change sets the focused element in the isolated
treee during generation, so it can be returned to the AccessibilityController
even if no WebAccessibilityObjectWrapper calls have been made.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::generateIsolatedTree):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::focusedUIElement):
(WebCore::AXIsolatedTree::setFocusedNode):

  • accessibility/isolatedtree/AXIsolatedTree.h:
10:38 PM Changeset in webkit [257902] by Simon Fraser
  • 5 edits in trunk/Source

Make m_slowRepaintObjects a WeakHashSet
https://bugs.webkit.org/show_bug.cgi?id=208623

Reviewed by Ryosuke Niwa.

Source/WebCore:

Use WeakHashSet<> for m_slowRepaintObjects, rather than a HashSet of raw pointers.

  • page/FrameView.cpp:

(WebCore::FrameView::didDestroyRenderTree):
(WebCore::FrameView::addSlowRepaintObject):
(WebCore::FrameView::removeSlowRepaintObject):
(WebCore::FrameView::repaintSlowRepaintObjects):

  • page/FrameView.h:

Source/WebKit:

Fix namespace errors triggered by FrameView include changes.

  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::visitedLinkStore):
(API::PageConfiguration::setVisitedLinkStore):

9:50 PM Changeset in webkit [257901] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebCore

Remove unused variable m_allUniqueIDBDatabases in IDBServer
https://bugs.webkit.org/show_bug.cgi?id=208613

Reviewed by Chris Dumez.

  • Modules/indexeddb/server/IDBServer.h:

(WebCore::IDBServer::IDBServer::addDatabase): Deleted.
(WebCore::IDBServer::IDBServer::removeDatabase): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::~UniqueIDBDatabase):

9:26 PM Changeset in webkit [257900] by beidson@apple.com
  • 5 edits in trunk/Source

Lay initial groundwork for new PDF loading model
https://bugs.webkit.org/show_bug.cgi?id=208599

Reviewed by Alex Christensen.

Source/WebKit:

First piece of adopting some new platform PDF APIs.
Disabled by default even on platforms that support it.
No behavior change for shipping configs.

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

(WebKit::PDFPlugin::PDFPlugin):
(WebKit::dataProviderGetBytesAtPositionCallback):
(WebKit::dataProviderGetByteRangesCallback):
(WebKit::dataProviderReleaseInfoCallback):
(WebKit::PDFPlugin::threadEntry):
(WebKit::PDFPlugin::unconditionalCompleteRangeRequest):
(WebKit::PDFPlugin::getResourceBytesAtPosition):
(WebKit::PDFPlugin::adoptBackgroundThreadDocument):
(WebKit::PDFPlugin::pdfDocumentDidLoad):
(WebKit::PDFPlugin::installPDFDocument):
(WebKit::PDFPlugin::manualStreamDidReceiveData):
(WebKit::PDFPlugin::attemptToUnlockPDF):
(WebKit::PDFPlugin::calculateSizes):
(WebKit::PDFPlugin::handleMouseEvent):
(WebKit::PDFPlugin::saveToPDF):
(WebKit::PDFPlugin::openWithNativeApplication):
(WebKit::PDFPlugin::countFindMatches):
(WebKit::PDFPlugin::nextMatchForString):

Source/WTF:

  • wtf/PlatformHave.h:
7:46 PM Changeset in webkit [257899] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[VNE layout] Move visually non-empty content reporting to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=208606
<rdar://problem/60056951>

Reviewed by Simon Fraser.

Move the VNE reporting logic from the c'tors to the RenderTreeBuilder.

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::RenderEmbeddedObject):

  • rendering/RenderHTMLCanvas.cpp:

(WebCore::RenderHTMLCanvas::RenderHTMLCanvas):

  • rendering/RenderText.cpp:

(WebCore::RenderText::RenderText):

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::attach):
(WebCore::RenderTreeBuilder::attachInternal):
(WebCore::RenderTreeBuilder::attachIgnoringContinuation):
(WebCore::RenderTreeBuilder::reportVisuallyNonEmptyContent):

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::createRenderer):
(WebCore::RenderTreeUpdater::createTextRenderer):

7:33 PM Changeset in webkit [257898] by Wenson Hsieh
  • 6 edits in trunk

Add system trace points around display list replay
https://bugs.webkit.org/show_bug.cgi?id=208616

Reviewed by Simon Fraser.

Source/WebCore:

Surround DisplayList::Replayer::replay with trace points.

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::replay):

Source/WTF:

Add DisplayListReplayStart and DisplayListReplayEnd.

  • wtf/SystemTracing.h:

Tools:

Add a new "Display list replay" trace point.

  • Tracing/SystemTracePoints.plist:
7:33 PM Changeset in webkit [257897] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

Crash in SVGElement::removeEventListener with symbol element
https://bugs.webkit.org/show_bug.cgi?id=207920

Patch by Doug Kelly <Doug Kelly> on 2020-03-04
Reviewed by Ryosuke Niwa.

Source/WebCore:

Resolves a crash in SVGElement::removeEventListener by only attaching the events to the window if the SVG element is both the outermost
SVG element, in addition to ensuring the SVG element is attached to the tree. The symbol element's behavior when referenced by a use
tag actually creates an svg tag instead, so the SVGSVGElement's special behavior for copying attributes is vital.

Note that Chrome and Firefox have a similar behavior for detached SVG elements as to what this change creates: in both other browsers,
onerror is not fired for a detached svg element, and in Firefox, onresize is not fired for a detached svg element (it is however fired
in Chrome).

Tests: fast/events/detached-svg-parent-window-events.html

fast/events/onerror-svg-symbol.html

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::parseAttribute):

LayoutTests:

  • fast/events/detached-svg-parent-window-events-expected.txt: Added.
  • fast/events/detached-svg-parent-window-events.html: Added.
  • fast/events/onerror-svg-symbol-expected.txt: Added.
  • fast/events/onerror-svg-symbol.html: Added.
7:28 PM Changeset in webkit [257896] by Andres Gonzalez
  • 3 edits in trunk/Source/WebCore

Fix for crash in AXIsolatedObject::fillChildrenVectorForProperty.
https://bugs.webkit.org/show_bug.cgi?id=208618

Reviewed by Chris Fleizach.

Reserve capacity of WTF::Vector before using it since constructor
doesn't do it.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::fillChildrenVectorForProperty const):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::objectsForIDs const):

7:14 PM Changeset in webkit [257895] by zhifei_fang@apple.com
  • 2 edits in trunk/Websites/perf.webkit.org

Test-freshness page table heaer misplaced
Some platform name is too long
https://bugs.webkit.org/show_bug.cgi?id=208617

Reviewed by Ryosuke Niwa.

  • public/v3/pages/test-freshness-page.js:

(TestFreshnessPage.cssTemplate):

6:35 PM Changeset in webkit [257894] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver] Update screenshot/user_prompt expectations.

They were marked as FAIL in r239824 due to upstream w3c tests not handling
dialogs correctly and this handling not being in the spec.

The correct handling was added to wpt in
https://github.com/web-platform-tests/wpt/pull/17563, imported to webkit
in r252358, and have been passing since in the GTK test bot.

Also were added to the spec in https://github.com/w3c/webdriver/commit/32165846

Unreviewed test gardening.

6:04 PM Changeset in webkit [257893] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Construct fewer unnecessary temporary WebProcessPool objects in WebsiteDataStore implementation
https://bugs.webkit.org/show_bug.cgi?id=208610

Reviewed by Alex Christensen.

A lot of methods in WebsiteDataStore were calling ensureProcessPools() and then it a loop do something
if the pool already has a network process. When you construct a new process pool, the pool has initially
no network process. As a result, this code should be using processPools() instead of ensureProcessPools()
to avoid unnecessarily constructing a temporary WebProcessPool object.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::dumpResourceLoadStatistics):
(WebKit::WebsiteDataStore::isPrevalentResource):
(WebKit::WebsiteDataStore::isGrandfathered):
(WebKit::WebsiteDataStore::setPrevalentResourceForDebugMode):
(WebKit::WebsiteDataStore::isVeryPrevalentResource):
(WebKit::WebsiteDataStore::setVeryPrevalentResource):
(WebKit::WebsiteDataStore::setSubframeUnderTopFrameDomain):
(WebKit::WebsiteDataStore::isRegisteredAsSubFrameUnder):
(WebKit::WebsiteDataStore::setSubresourceUnderTopFrameDomain):
(WebKit::WebsiteDataStore::isRegisteredAsSubresourceUnder):
(WebKit::WebsiteDataStore::setSubresourceUniqueRedirectTo):
(WebKit::WebsiteDataStore::setSubresourceUniqueRedirectFrom):
(WebKit::WebsiteDataStore::setTopFrameUniqueRedirectTo):
(WebKit::WebsiteDataStore::setTopFrameUniqueRedirectFrom):
(WebKit::WebsiteDataStore::isRegisteredAsRedirectingTo):
(WebKit::WebsiteDataStore::clearPrevalentResource):
(WebKit::WebsiteDataStore::resetParametersToDefaultValues):
(WebKit::WebsiteDataStore::submitTelemetry):
(WebKit::WebsiteDataStore::scheduleClearInMemoryAndPersistent):
(WebKit::WebsiteDataStore::getResourceLoadStatisticsDataSummary):
(WebKit::WebsiteDataStore::scheduleCookieBlockingUpdate):
(WebKit::WebsiteDataStore::scheduleStatisticsAndDataRecordsProcessing):
(WebKit::WebsiteDataStore::setLastSeen):
(WebKit::WebsiteDataStore::mergeStatisticForTesting):
(WebKit::WebsiteDataStore::logUserInteraction):
(WebKit::WebsiteDataStore::hasHadUserInteraction):
(WebKit::WebsiteDataStore::isRelationshipOnlyInDatabaseOnce):
(WebKit::WebsiteDataStore::clearUserInteraction):
(WebKit::WebsiteDataStore::setGrandfathered):
(WebKit::WebsiteDataStore::setUseITPDatabase):
(WebKit::WebsiteDataStore::setCrossSiteLoadWithLinkDecorationForTesting):
(WebKit::WebsiteDataStore::resetCrossSiteLoadsWithLinkDecorationForTesting):
(WebKit::WebsiteDataStore::deleteCookiesForTesting):
(WebKit::WebsiteDataStore::hasLocalStorageForTesting const):
(WebKit::WebsiteDataStore::hasIsolatedSessionForTesting const):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsShouldDowngradeReferrerForTesting):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsShouldBlockThirdPartyCookiesForTesting):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsFirstPartyWebsiteDataRemovalModeForTesting):
(WebKit::WebsiteDataStore::resetCacheMaxAgeCapForPrevalentResources):
(WebKit::WebsiteDataStore::isResourceLoadStatisticsEphemeral const):
(WebKit::WebsiteDataStore::getLocalStorageDetails):
(WebKit::WebsiteDataStore::resetQuota):
(WebKit::WebsiteDataStore::hasAppBoundSession const):
(WebKit::WebsiteDataStore::setInAppBrowserPrivacyEnabled):

5:13 PM Changeset in webkit [257892] by achristensen@apple.com
  • 7 edits
    1 add in trunk

Call globalObjectIsAvailableForFrame before evaluating JavaScript in newly created worlds
https://bugs.webkit.org/show_bug.cgi?id=208615
<rdar://problem/59406743>

Reviewed by Alex Christensen.

Source/WebKit:

globalObjectIsAvailableForFrame is often used for initialization code for a content world.
If we evaluate JavaScript in a content world as the first thing we do in that world,
globalObjectIsAvailableForFrame hadn't been called, so things were not initialized.
So call it when evaluating JavaScript if we create the world to evaluate in.

Covered by new API tests.

  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserContentController::addContentWorld):

  • WebProcess/UserContent/WebUserContentController.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScriptInFrameInScriptWorld):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ContentWorldPlugIn.mm: Added.

(-[ContentWorldPlugIn webProcessPlugIn:didCreateBrowserContextController:]):
(-[ContentWorldPlugIn webProcessPlugInBrowserContextController:globalObjectIsAvailableForFrame:inScriptWorld:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:

(TEST):
Also make a test written in bug 206310 actually run code.

5:02 PM Changeset in webkit [257891] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed, a build fix after r257877

  • UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:

(WebKit::LocalConnection::verifyUser const):
Restricts LAOptionPasscodeTitle to iOS for now.

3:31 PM Changeset in webkit [257890] by Kocsen Chung
  • 1 copy in tags/Safari-609.1.20.4.4

Tag Safari-609.1.20.4.4.

3:30 PM Changeset in webkit [257889] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[build.webkit.org] Remove leaks queue
https://bugs.webkit.org/show_bug.cgi?id=208580

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:
3:28 PM Changeset in webkit [257888] by Chris Dumez
  • 15 edits in trunk/Source

Adopt new and improved CFNetwork SPI for cookie change notifications
https://bugs.webkit.org/show_bug.cgi?id=208594
<rdar://problem/60053313>

Reviewed by Alex Christensen.

Source/WebCore:

Adopt new and improved CFNetwork SPI for cookie change notifications. Notifications are now per domain
and the domain matches one of the domains we listen for cookie changes on.

This also fixes a bug where httpOnly cookies would be sent to the WebContent processes in cookie change
notifications, even though the WebProcesses are not interested in those.

  • platform/network/NetworkStorageSession.h:
  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::registerCookieChangeListenersIfNecessary):

Source/WebCore/PAL:

Add new CFNetwork SPI.

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

Adopt new and improved CFNetwork SPI for cookie change notifications. Notifications are now per domain
and the domain matches one of the domains we listen for cookie changes on.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::cookiesDeleted):
(WebKit::NetworkConnectionToWebProcess::allCookiesDeleted):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::cookiesDeleted):
(WebKit::NetworkProcessConnection::allCookiesDeleted):

  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Network/NetworkProcessConnection.messages.in:
  • WebProcess/WebPage/WebCookieCache.cpp:

(WebKit::WebCookieCache::cookiesDeleted):
(WebKit::WebCookieCache::allCookiesDeleted):

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

(WebKit::WebCookieJar::cookiesDeleted):
(WebKit::WebCookieJar::allCookiesDeleted):

  • WebProcess/WebPage/WebCookieJar.h:
3:28 PM Changeset in webkit [257887] by Kocsen Chung
  • 3 edits in branches/safari-610.1.6-branch/Source/WebKit

Cherry-pick r257879. rdar://problem/60057110

Partially revert r256756, since it introduced bugs related to Accessibility.
<rdar://problem/60005574>

Unreviewed partial revert of r256756.

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

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

3:27 PM Changeset in webkit [257886] by Kocsen Chung
  • 10 edits in branches/safari-610.1.6-branch/Source

Cherry-pick r257875. rdar://problem/60057110

[Cocoa] Add enable flag to disable direct mode for preferences
https://bugs.webkit.org/show_bug.cgi?id=208588

Reviewed by Brent Fulgham.

Source/WebKit:

Add an enable flag for this feature so it can be toggled, and turn it off.

No new tests, since this patch is reverting to previous behavior covered by existing tests.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm: (WebKit::XPCServiceMain):
  • Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode const): (WebKit::WebProcessCreationParameters::decode):
  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformResolvePathsForSandboxExtensions): (WebKit::WebProcessPool::platformInitializeWebProcess):
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):
  • WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

  • wtf/PlatformEnable.h:

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

3:21 PM Changeset in webkit [257885] by Kocsen Chung
  • 1 copy in tags/Safari-610.1.5.3

Tag Safari-610.1.5.3.

3:19 PM Changeset in webkit [257884] by Kocsen Chung
  • 10 edits in branches/safari-610.1.5-branch/Source

Cherry-pick r257875. rdar://problem/60055569

[Cocoa] Add enable flag to disable direct mode for preferences
https://bugs.webkit.org/show_bug.cgi?id=208588

Reviewed by Brent Fulgham.

Source/WebKit:

Add an enable flag for this feature so it can be toggled, and turn it off.

No new tests, since this patch is reverting to previous behavior covered by existing tests.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm: (WebKit::XPCServiceMain):
  • Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode const): (WebKit::WebProcessCreationParameters::decode):
  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformResolvePathsForSandboxExtensions): (WebKit::WebProcessPool::platformInitializeWebProcess):
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):
  • WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

  • wtf/PlatformEnable.h:

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

3:19 PM Changeset in webkit [257883] by Kocsen Chung
  • 3 edits in branches/safari-610.1.5-branch/Source/WebKit

Cherry-pick r257879. rdar://problem/60055569

Partially revert r256756, since it introduced bugs related to Accessibility.
<rdar://problem/60005574>

Unreviewed partial revert of r256756.

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

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

3:18 PM Changeset in webkit [257882] by achristensen@apple.com
  • 13 edits in trunk

Add SPI to evaluate JavaScript in an iframe
https://bugs.webkit.org/show_bug.cgi?id=208605

Reviewed by Brady Eidson.

Source/WebCore:

Covered by new API tests.

  • bindings/js/DOMWrapperWorld.cpp:

(WebCore::DOMWrapperWorld::DOMWrapperWorld):
Remove a now-invalid assertion that was firing during my test.
API::ContentWorld::defaultClientWorld creates a world with no name and type Type::User.
I'm surprised this wasn't hit before.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView evaluateJavaScript:completionHandler:]):
(-[WKWebView evaluateJavaScript:inContentWorld:completionHandler:]):
(-[WKWebView callAsyncJavaScript:arguments:inContentWorld:completionHandler:]):
(-[WKWebView _evaluateJavaScript:asAsyncFunction:withArguments:forceUserGesture:inFrame:inWorld:completionHandler:]):
(-[WKWebView _evaluateJavaScriptWithoutUserGesture:completionHandler:]):
(-[WKWebView _callAsyncJavaScript:arguments:inFrame:inContentWorld:completionHandler:]):
(-[WKWebView _evaluateJavaScript:inFrame:inContentWorld:completionHandler:]):
(-[WKWebView _evaluateJavaScript:asAsyncFunction:withArguments:forceUserGesture:completionHandler:inWorld:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runJavaScriptInMainFrame):
(WebKit::WebPageProxy::runJavaScriptInFrameInScriptWorld):
(WebKit::WebPageProxy::runJavaScriptInMainFrameScriptWorld): Deleted.
(WebKit::WebPageProxy::runJavaScriptInFrame): Deleted.

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

(WebKit::WebPage::runJavaScriptInFrameInScriptWorld):
(WebKit::WebPage::runJavaScriptInMainFrameScriptWorld): Deleted.
(WebKit::WebPage::runJavaScriptInFrame): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
3:10 PM Changeset in webkit [257881] by Kocsen Chung
  • 8 edits in branches/safari-610.1.5-branch/Source

Versioning.

3:09 PM Changeset in webkit [257880] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Debug ] fast/layoutformattingcontext/block-only/replaced-intrinsic-width-simple.html is crashing.
https://bugs.webkit.org/show_bug.cgi?id=208598
<rdar://problem/60054452>

Unreviewed test gardening.

This is LFC failure only. Unrelated to first paint. Skip it for now.

  • platform/mac-wk2/TestExpectations:
2:03 PM Changeset in webkit [257879] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Partially revert r256756, since it introduced bugs related to Accessibility.
<rdar://problem/60005574>

Unreviewed partial revert of r256756.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
1:56 PM Changeset in webkit [257878] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r257840?) [ Mac wk2 Debug ] fast/layoutformattingcontext/block-only/replaced-intrinsic-width-simple.html is crashing.
https://bugs.webkit.org/show_bug.cgi?id=208598

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:42 PM Changeset in webkit [257877] by jiewen_tan@apple.com
  • 28 edits
    1 delete in trunk

[WebAuthn] Implement -[_WKWebAuthenticationPanelDelegate panel:decidePolicyForLocalAuthenticatorWithCompletionHandler:] SPI
https://bugs.webkit.org/show_bug.cgi?id=208533
<rdar://problem/60010184>

Reviewed by Alex Christensen.

Source/WebCore:

Covered by new tests within existing test files.

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

(WebCore::touchIDPromptTitle):
(WebCore::biometricFallbackPromptTitle):

  • platform/LocalizedStrings.h:

Adds localized strings to support the customized LocalAuthentication dialog.

Source/WebKit:

This patch implements the above SPI to replace -[_WKWebAuthenticationPanelDelegate panel:verifyUserWithAccessControl:completionHandler:].
The original SPI is designed on the premise that Safari is going to highly customize the LocalAuthentication UI, and that is not happening
anymore. Therefore, WebKit takes back the invocation of LocalAuthentication and offer a new SPI to tell clients when WebKit is about to
show LocalAuthentication UI. Clients then have the trigger to pull at their pleasure.

This patch implements all plumbings to replace the SPI. Besides that, this patch also:
1) enhances the LocalConnection::verifyUser with a slightly customized LocalAuthentication dialog;
2) adds the SPI used above into the SPI header;
3) makes _WKWebAuthenticationPanelDelegate.transports as a NSSet instead of a NSArray;
4) lets LocalService::isAvailable return false if Apple attestation is not available.

  • Platform/spi/Cocoa/LocalAuthenticationSPI.h:
  • UIProcess/API/APIWebAuthenticationPanelClient.h:

(API::WebAuthenticationPanelClient::decidePolicyForLocalAuthenticator const):
(API::WebAuthenticationPanelClient::verifyUser const): Deleted.

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(-[_WKWebAuthenticationPanel transports]):

  • UIProcess/WebAuthentication/Authenticator.h:
  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::decidePolicyForLocalAuthenticator):
(WebKit::AuthenticatorManager::verifyUser): Deleted.

  • UIProcess/WebAuthentication/AuthenticatorManager.h:
  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.h:
  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterDecidePolicy):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::continueGetAssertionAfterResponseSelected):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserVerification):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserConsented): Deleted.
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented): Deleted.

  • UIProcess/WebAuthentication/Cocoa/LocalConnection.h:
  • UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:

(WebKit::LocalConnection::verifyUser const):
(WebKit::LocalConnection::isUnlocked const): Deleted.

  • UIProcess/WebAuthentication/Cocoa/LocalService.mm:

(WebKit::LocalService::isAvailable):

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.h:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm:

(WebKit::WebAuthenticationPanelClient::WebAuthenticationPanelClient):
(WebKit::localAuthenticatorPolicy):
(WebKit::WebAuthenticationPanelClient::decidePolicyForLocalAuthenticator const):
(WebKit::WebAuthenticationPanelClient::verifyUser const): Deleted.

  • UIProcess/WebAuthentication/Mock/MockLocalConnection.h:
  • UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:

(WebKit::MockLocalConnection::verifyUser const):
(WebKit::MockLocalConnection::isUnlocked const): Deleted.

  • UIProcess/WebAuthentication/WebAuthenticationFlags.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(-[TestWebAuthenticationPanelDelegate panel:decidePolicyForLocalAuthenticatorWithCompletionHandler:]):
(TestWebKitAPI::TEST):
(-[TestWebAuthenticationPanelDelegate panel:verifyUserWithAccessControl:completionHandler:]): Deleted.

  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion-la.html: Removed.
1:35 PM Changeset in webkit [257876] by achristensen@apple.com
  • 4 edits in trunk

callAsyncJavaScript with an invalid parameter and no completionHandler should not crash
https://bugs.webkit.org/show_bug.cgi?id=208593

Reviewed by Brady Eidson.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _evaluateJavaScript:asAsyncFunction:withArguments:forceUserGesture:completionHandler:inWorld:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/AsyncFunction.mm:

(TestWebKitAPI::TEST):

1:26 PM Changeset in webkit [257875] by pvollan@apple.com
  • 10 edits in trunk/Source

[Cocoa] Add enable flag to disable direct mode for preferences
https://bugs.webkit.org/show_bug.cgi?id=208588

Reviewed by Brent Fulgham.

Source/WebKit:

Add an enable flag for this feature so it can be toggled, and turn it off.

No new tests, since this patch is reverting to previous behavior covered by existing tests.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceMain):

  • Shared/WebProcessCreationParameters.cpp:

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

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

(WebKit::WebProcessPool::platformResolvePathsForSandboxExtensions):
(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

  • WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

  • wtf/PlatformEnable.h:
1:17 PM Changeset in webkit [257874] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix for WinCairo
https://bugs.webkit.org/show_bug.cgi?id=208591

  • Shared/FrameTreeNodeData.h: Replaced #import with #include.
12:47 PM Changeset in webkit [257873] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: the execution context picker is shown on pages with only one execution context if there are internal execution contexts
https://bugs.webkit.org/show_bug.cgi?id=208502

Reviewed by Timothy Hatcher.

  • UserInterface/Views/QuickConsole.js:

(WI.QuickConsole.prototype._updateActiveExecutionContextDisplay):
(WI.QuickConsole.prototype._handleEngineeringShowInternalExecutionContextsSettingChanged):

12:35 PM Changeset in webkit [257872] by achristensen@apple.com
  • 25 edits
    6 adds in trunk

WKWebView's frames accessor should return a traversable type
https://bugs.webkit.org/show_bug.cgi?id=208591

Reviewed by Brady Eidson.

Source/WebKit:

Rather than return an array of information that can technically be used to reconstruct a tree,
let's just return the root of a tree. This introduces _WKFrameTreeNode which inherits from WKFrameInfo.
Covered by API tests.

  • Shared/API/APIObject.h:
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • Shared/FrameInfoData.cpp:

(WebKit::FrameInfoData::encode const):
(WebKit::FrameInfoData::decode):

  • Shared/FrameInfoData.h:
  • Shared/FrameTreeNodeData.h: Added.

(WebKit::FrameTreeNodeData::encode const):
(WebKit::FrameTreeNodeData::decode):

  • Sources.txt:
  • SourcesCocoa.txt:
  • UIProcess/API/APIFrameInfo.cpp:

(API::FrameInfo::parentFrameHandle const): Deleted.
(API::FrameInfo::childFrameHandles const): Deleted.

  • UIProcess/API/APIFrameInfo.h:
  • UIProcess/API/APIFrameTreeNode.cpp: Added.

(API::FrameTreeNode::handle const):

  • UIProcess/API/APIFrameTreeNode.h: Added.
  • UIProcess/API/Cocoa/WKFrameInfo.mm:

(-[WKFrameInfo _parentFrameHandle]): Deleted.
(-[WKFrameInfo _childFrameHandles]): Deleted.

  • UIProcess/API/Cocoa/WKFrameInfoPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _frames:]):
(-[WKWebView _allFrames:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/_WKFrameTreeNode.h: Added.
  • UIProcess/API/Cocoa/_WKFrameTreeNode.mm: Added.

(-[_WKFrameTreeNode dealloc]):
(-[_WKFrameTreeNode isMainFrame]):
(-[_WKFrameTreeNode request]):
(-[_WKFrameTreeNode securityOrigin]):
(-[_WKFrameTreeNode webView]):
(-[_WKFrameTreeNode childFrames]):
(-[_WKFrameTreeNode copyWithZone:]):
(-[_WKFrameTreeNode _handle]):
(-[_WKFrameTreeNode _apiObject]):

  • UIProcess/API/Cocoa/_WKFrameTreeNodeInternal.h: Added.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::getAllFrames):

  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::info const):
(WebKit::WebFrame::childFrameIDs const): Deleted.

  • WebProcess/WebPage/WebFrame.h:

(WebKit::WebFrame::frameID const):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::frameTreeNodeData):
(WebKit::WebPage::getAllFrames):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
12:26 PM Changeset in webkit [257871] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(?): Elements: unable to edit a tag name more than once
https://bugs.webkit.org/show_bug.cgi?id=208586

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype._insertInLastAttributePosition):
When inserting a new attribute, don't wipe out the existing DOM structure, which is required
in order for tag name editing to work (specifically having a .html-tag-name node).

12:05 PM Changeset in webkit [257870] by graouts@webkit.org
  • 13 edits in trunk

Add an SPI to allow UserStyleSheet injection to target a specific WKWebView
https://bugs.webkit.org/show_bug.cgi?id=208575
<rdar://problem/59773690>

Reviewed by Brady Eidson.

Source/WebCore:

Add a new Optional<PageIdentifier> member to UserStyleSheet which indicates whether the UserStyleSheet is supposed
to be injected for all WKWebViews, or only a specific top-level WKWebView associated with a Page with the give ID.

In ExtensionStyleSheets::updateInjectedStyleSheetCache(), UserStyleSheets with a specified pageID are ignored. Instead,
we now also consider CSSStyleSheets listed in the new m_pageSpecificStyleSheets which contains page-specific stylesheets
to be injected for the associated Document.

The new Page::injectUserStyleSheet() method allows the addition of a UserStyleSheet on its documents' ExtensionStyleSheets,
and will call this method either for the main frame's Document, or all Documents, depending on the UserStyleSheet's configuration.

Finally, these new targeted UserStyleSheets can be removed via Page::removeInjectedUserStyleSheet() and
ExtensionStyleSheets::removePageSpecificUserStyleSheet().

  • dom/ExtensionStyleSheets.cpp:

(WebCore::ExtensionStyleSheets::updateInjectedStyleSheetCache const):
(WebCore::ExtensionStyleSheets::injectPageSpecificUserStyleSheet):
(WebCore::ExtensionStyleSheets::removePageSpecificUserStyleSheet):
(WebCore::ExtensionStyleSheets::detachFromDocument):

  • dom/ExtensionStyleSheets.h:
  • page/Page.cpp:

(WebCore::Page::injectUserStyleSheet):
(WebCore::Page::removeInjectedUserStyleSheet):

  • page/Page.h:
  • page/UserStyleSheet.h:

(WebCore::UserStyleSheet::UserStyleSheet):
(WebCore::UserStyleSheet::pageID const):

Source/WebKit:

Since WebCore adds a new Optional<PageIdentifier> member to UserStyleSheet, we now encode that member to be preserved
across UI and Web processes.

Using this new member, WebUserContentController now determines that a UserStyleSheet meant to target a specific page
was added in addUserStyleSheetInternal(), finds the matching WebPage, and calls injectUserStyleSheet() on its backing Page
object. Conversely, WebUserContentController::removeUserStyleSheetInternal() will call into Page::removeInjectedUserStyleSheet().

Finally, we offer a new initializer on _WKUserStyleSheet to target a specific WKWebView, and its page's ID will be set on the
backing UserStyleSheet.

  • Shared/WebCoreArgumentCoders.cpp:

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

  • UIProcess/API/Cocoa/_WKUserStyleSheet.h:
  • UIProcess/API/Cocoa/_WKUserStyleSheet.mm:

(-[_WKUserStyleSheet initWithSource:forWKWebView:forMainFrameOnly:userContentWorld:]):

  • WebProcess/UserContent/WebUserContentController.cpp:

(WebKit::WebUserContentController::addUserStyleSheetInternal):
(WebKit::WebUserContentController::removeUserStyleSheetInternal):

Tools:

Add new tests for the new SPI which check:

  1. that specifying forWKWebView: when initializing a _WKUserStyleSheet will inject the provided CSS source in the specified WKWebView alone,
  2. that the same test works with two WKWebViews with a shared WKWebKitConfiguration,
  3. that a WKWebView-specific _WKUserStyleSheet can be removed,
  4. that a WKWebView-specific _WKUserStyleSheet can be added twice and removed once and be removed as expected,
  5. and that a WKWebView-specific _WKUserStyleSheet is automatically removed when navigating to a new page,
  6. and that the same test also works with PSON enabled.
  • TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm:
11:56 AM Changeset in webkit [257869] by Jason_Lawrence
  • 3 edits in trunk/LayoutTests

[ iOS and Mac wk2 Debug ] fast/events/beforeunload-prompt.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=208590

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
11:43 AM Changeset in webkit [257868] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] scrollingcoordinator/ios/fixed-frame-overflow-swipe.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208587

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
11:42 AM Changeset in webkit [257867] by jer.noble@apple.com
  • 29 edits
    9 copies
    17 adds in trunk/Source

[GPUP] Implement Modern EME API in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=208090

Reviewed by Eric Carlson.

Source/WebCore:

Add export macros to CDMFactory::registeredFactories().

  • platform/encryptedmedia/CDMFactory.h:

Source/WebKit:

Add support for RemoteCDMFactory, RemateCDM, RemoteCDMInstance, RemoteCDMInstanceSession, and all
of their associated Proxy objects.

Allow the existing CDMFactory machinery to work normally when the GPU process is disabled,
by making initialization of the CDM factories contingent upon the "use GPU" setting.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::cdmFactoryProxy):
(WebKit::GPUConnectionToWebProcess::didReceiveMessage):
(WebKit::GPUConnectionToWebProcess::didReceiveSyncMessage):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/media/RemoteCDMFactoryProxy.cpp: Added.

(WebKit::RemoteCDMFactoryProxy::RemoteCDMFactoryProxy):
(WebKit::factoryForKeySystem):
(WebKit::RemoteCDMFactoryProxy::createCDM):
(WebKit::RemoteCDMFactoryProxy::supportsKeySystem):
(WebKit::RemoteCDMFactoryProxy::didReceiveCDMMessage):
(WebKit::RemoteCDMFactoryProxy::didReceiveCDMInstanceMessage):
(WebKit::RemoteCDMFactoryProxy::didReceiveCDMInstanceSessionMessage):
(WebKit::RemoteCDMFactoryProxy::didReceiveSyncCDMMessage):
(WebKit::RemoteCDMFactoryProxy::didReceiveSyncCDMInstanceMessage):
(WebKit::RemoteCDMFactoryProxy::didReceiveSyncCDMInstanceSessionMessage):
(WebKit::RemoteCDMFactoryProxy::addProxy):
(WebKit::RemoteCDMFactoryProxy::removeProxy):
(WebKit::RemoteCDMFactoryProxy::addInstance):
(WebKit::RemoteCDMFactoryProxy::removeInstance):
(WebKit::RemoteCDMFactoryProxy::getInstance):
(WebKit::RemoteCDMFactoryProxy::addSession):
(WebKit::RemoteCDMFactoryProxy::removeSession):

  • GPUProcess/media/RemoteCDMFactoryProxy.h: Added.
  • GPUProcess/media/RemoteCDMFactoryProxy.messages.in: Added.
  • GPUProcess/media/RemoteCDMInstanceProxy.cpp: Added.

(WebKit::RemoteCDMInstanceProxy::create):
(WebKit::RemoteCDMInstanceProxy::RemoteCDMInstanceProxy):
(WebKit::RemoteCDMInstanceProxy::initializeWithConfiguration):
(WebKit::RemoteCDMInstanceProxy::setServerCertificate):
(WebKit::RemoteCDMInstanceProxy::setStorageDirectory):
(WebKit::RemoteCDMInstanceProxy::createSession):

  • GPUProcess/media/RemoteCDMInstanceProxy.h: Added.

(WebKit::RemoteCDMInstanceProxy::configuration const):
(WebKit::RemoteCDMInstanceProxy::instance):

  • GPUProcess/media/RemoteCDMInstanceProxy.messages.in: Added.
  • GPUProcess/media/RemoteCDMInstanceSessionProxy.cpp: Added.

(WebKit::RemoteCDMInstanceSessionProxy::create):
(WebKit::RemoteCDMInstanceSessionProxy::RemoteCDMInstanceSessionProxy):
(WebKit::RemoteCDMInstanceSessionProxy::~RemoteCDMInstanceSessionProxy):
(WebKit::RemoteCDMInstanceSessionProxy::requestLicense):
(WebKit::RemoteCDMInstanceSessionProxy::updateLicense):
(WebKit::RemoteCDMInstanceSessionProxy::loadSession):
(WebKit::RemoteCDMInstanceSessionProxy::closeSession):
(WebKit::RemoteCDMInstanceSessionProxy::removeSessionData):
(WebKit::RemoteCDMInstanceSessionProxy::storeRecordOfKeyUsage):
(WebKit::RemoteCDMInstanceSessionProxy::updateKeyStatuses):
(WebKit::RemoteCDMInstanceSessionProxy::sendMessage):
(WebKit::RemoteCDMInstanceSessionProxy::sessionIdChanged):

  • GPUProcess/media/RemoteCDMInstanceSessionProxy.h: Added.
  • GPUProcess/media/RemoteCDMInstanceSessionProxy.messages.in: Added.
  • GPUProcess/media/RemoteCDMProxy.cpp: Added.

(WebKit::RemoteCDMProxy::create):
(WebKit::RemoteCDMProxy::RemoteCDMProxy):
(WebKit::RemoteCDMProxy::supportsInitData):
(WebKit::RemoteCDMProxy::sanitizeResponse):
(WebKit::RemoteCDMProxy::sanitizeSessionId):
(WebKit::RemoteCDMProxy::getSupportedConfiguration):
(WebKit::RemoteCDMProxy::createInstance):
(WebKit::RemoteCDMProxy::loadAndInitialize):

  • GPUProcess/media/RemoteCDMProxy.h: Added.

(WebKit::RemoteCDMProxy::configuration const):
(WebKit::RemoteCDMProxy::factory const):

  • GPUProcess/media/RemoteCDMProxy.messages.in: Added.
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerInitializationDataEncountered):
(WebKit::RemoteMediaPlayerProxy::cdmInstanceAttached):
(WebKit::RemoteMediaPlayerProxy::cdmInstanceDetached):
(WebKit::RemoteMediaPlayerProxy::attemptToDecryptWithInstance):
(WebKit::RemoteMediaPlayerProxy::setShouldContinueAfterKeyNeeded):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<WebCore::CDMInstanceSession::Message>::encode):
(IPC::ArgumentCoder<WebCore::CDMInstanceSession::Message>::decode):
(IPC::ArgumentCoder<WebCore::CDMInstanceSession::KeyStatusVector>::encode):
(IPC::ArgumentCoder<WebCore::CDMInstanceSession::KeyStatusVector>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::didReceiveMessage):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::cdmInstanceAttached):
(WebKit::MediaPlayerPrivateRemote::cdmInstanceDetached):
(WebKit::MediaPlayerPrivateRemote::attemptToDecryptWithInstance):
(WebKit::MediaPlayerPrivateRemote::initializationDataEncountered):
(WebKit::MediaPlayerPrivateRemote::setShouldContinueAfterKeyNeeded):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
  • WebProcess/GPU/media/RemoteCDM.cpp: Added.

(WebKit::RemoteCDM::create):
(WebKit::RemoteCDM::RemoteCDM):
(WebKit::RemoteCDM::getSupportedConfiguration):
(WebKit::RemoteCDM::supportsConfiguration const):
(WebKit::RemoteCDM::supportsConfigurationWithRestrictions const):
(WebKit::RemoteCDM::supportsSessionTypeWithConfiguration const):
(WebKit::RemoteCDM::supportsInitData const):
(WebKit::RemoteCDM::distinctiveIdentifiersRequirement const):
(WebKit::RemoteCDM::persistentStateRequirement const):
(WebKit::RemoteCDM::distinctiveIdentifiersAreUniquePerOriginAndClearable const):
(WebKit::RemoteCDM::createInstance):
(WebKit::RemoteCDM::loadAndInitialize):
(WebKit::RemoteCDM::sanitizeResponse const):
(WebKit::RemoteCDM::sanitizeSessionId const):

  • WebProcess/GPU/media/RemoteCDM.h: Added.
  • WebProcess/GPU/media/RemoteCDMConfiguration.h: Added.

(WebKit::RemoteCDMConfiguration::encode const):
(WebKit::RemoteCDMConfiguration::decode):

  • WebProcess/GPU/media/RemoteCDMFactory.cpp: Added.

(WebKit::RemoteCDMFactory::RemoteCDMFactory):
(WebKit::RemoteCDMFactory::updatePreferences):
(WebKit::RemoteCDMFactory::supplementName):
(WebKit::RemoteCDMFactory::gpuProcessConnection):
(WebKit::RemoteCDMFactory::supportsKeySystem):
(WebKit::RemoteCDMFactory::createCDM):
(WebKit::RemoteCDMFactory::addSession):
(WebKit::RemoteCDMFactory::removeSession):
(WebKit::RemoteCDMFactory::didReceiveSessionMessage):

  • WebProcess/GPU/media/RemoteCDMFactory.h: Added.
  • WebProcess/GPU/media/RemoteCDMIdentifier.h: Added.
  • WebProcess/GPU/media/RemoteCDMInstance.cpp: Added.

(WebKit::RemoteCDMInstance::create):
(WebKit::RemoteCDMInstance::RemoteCDMInstance):
(WebKit::RemoteCDMInstance::initializeWithConfiguration):
(WebKit::RemoteCDMInstance::setServerCertificate):
(WebKit::RemoteCDMInstance::setStorageDirectory):
(WebKit::RemoteCDMInstance::createSession):

  • WebProcess/GPU/media/RemoteCDMInstance.h: Added.
  • WebProcess/GPU/media/RemoteCDMInstanceConfiguration.h: Added.

(WebKit::RemoteCDMInstanceConfiguration::encode const):
(WebKit::RemoteCDMInstanceConfiguration::decode):

  • WebProcess/GPU/media/RemoteCDMInstanceIdentifier.h: Added.
  • WebProcess/GPU/media/RemoteCDMInstanceSession.cpp: Added.

(WebKit::RemoteCDMInstanceSession::create):
(WebKit::RemoteCDMInstanceSession::RemoteCDMInstanceSession):
(WebKit::RemoteCDMInstanceSession::requestLicense):
(WebKit::RemoteCDMInstanceSession::updateLicense):
(WebKit::RemoteCDMInstanceSession::loadSession):
(WebKit::RemoteCDMInstanceSession::closeSession):
(WebKit::RemoteCDMInstanceSession::removeSessionData):
(WebKit::RemoteCDMInstanceSession::storeRecordOfKeyUsage):
(WebKit::RemoteCDMInstanceSession::updateKeyStatuses):
(WebKit::RemoteCDMInstanceSession::sendMessage):
(WebKit::RemoteCDMInstanceSession::sessionIdChanged):

  • WebProcess/GPU/media/RemoteCDMInstanceSession.h: Added.
  • WebProcess/GPU/media/RemoteCDMInstanceSession.messages.in: Added.
  • WebProcess/GPU/media/RemoteCDMInstanceSessionIdentifier.h: Added.
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • WebProcess/WebProcess.cpp:
11:35 AM Changeset in webkit [257866] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Assertion failed: !m_function in CompletionHandler::~CompletionHandler()
https://bugs.webkit.org/show_bug.cgi?id=208457

Reviewed by Chris Dumez.

Ensure completion handler is called in WebsiteDataStore::getResourceLoadStatisticsDataSummary.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::getResourceLoadStatisticsDataSummary):

11:29 AM Changeset in webkit [257865] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-removetrack.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208585

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
11:22 AM Changeset in webkit [257864] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208584

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:18 AM Changeset in webkit [257863] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes-cursors.any.serviceworker.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=206934#add_comment

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
11:04 AM Changeset in webkit [257862] by Ben Nham
  • 15 edits in trunk/Source

Remove initial layout throttler
https://bugs.webkit.org/show_bug.cgi?id=208285

Reviewed by Antti Koivisto.

Source/WebCore:

This removes a throttle that can prevent us from laying out during the first 250 ms of page
load. This throttle is generally not effective (many pages have JS that force a sync layout
before the first 250 ms of loading) and is also extremely outdated (the comment says the
interval is too high for dual G5s). We already have too many throttles in too many places,
so let's remove this one.

  • dom/Document.cpp:

(WebCore::Document::implicitClose):
(WebCore::Document::shouldScheduleLayout const):
(WebCore::Document::isLayoutTimerActive const):
(WebCore::Document::shouldScheduleLayout): Deleted.
(WebCore::Document::isLayoutTimerActive): Deleted.
(WebCore::Document::minimumLayoutDelay): Deleted.
(WebCore::Document::timeSinceDocumentCreation const): Deleted.

  • dom/Document.h:

(WebCore::Document::parsing const):
(WebCore::Document::timeSinceDocumentCreation const):

  • page/FrameViewLayoutContext.cpp:

(WebCore::FrameViewLayoutContext::layout):
(WebCore::FrameViewLayoutContext::reset):
(WebCore::FrameViewLayoutContext::scheduleLayout):
(WebCore::FrameViewLayoutContext::unscheduleLayout):
(WebCore::FrameViewLayoutContext::scheduleSubtreeLayout):

  • page/FrameViewLayoutContext.h:
  • page/SettingsBase.cpp:

(WebCore::SettingsBase::SettingsBase):
(WebCore::SettingsBase::setLayoutInterval): Deleted.

  • page/SettingsBase.h:

(WebCore::SettingsBase::layoutInterval const): Deleted.

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Source/WebKitLegacy/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences _setLayoutInterval:]): Deleted.
(-[WebPreferences _layoutInterval]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:
10:55 AM Changeset in webkit [257861] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/server-trust-evaluation.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208582

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:45 AM Changeset in webkit [257860] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/wpt/service-workers/skipFetchEvent.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208581

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:35 AM Changeset in webkit [257859] by Ryan Haddad
  • 3 edits in trunk/Tools

[macOS] test-lldb-webkit failing on debug bots
https://bugs.webkit.org/show_bug.cgi?id=208545

Reviewed by Jonathan Bedard.

The lldb-webkit-test step must pass in the build configuration as an
argument to the test-lldb-webkit script so that it uses the lldbWebKitTester
binary that is downloaded with the rest of the build products. Without this
argument, the bots expect to find the binary in the 'WebKitBuild/Release' directory
regardless of their actual build configuration.

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(RunLLDBWebKitTests): Pass in the build configuration to the test-lldb-webkit script.

  • Scripts/test-lldb-webkit:

(LldbTester.parse_args): Capitalize the constants for Debug / Release since that is what webkitpy expects.

10:23 AM Changeset in webkit [257858] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Add build step to create local git commit for commit-queue (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=208539

Unreviewed follow-up fix.

  • BuildSlaveSupport/ews-build/steps.py:
10:21 AM Changeset in webkit [257857] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

REGRESSION (r257839): two fast/forms/textarea are failing after commit r257839
https://bugs.webkit.org/show_bug.cgi?id=208576

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:21 AM Changeset in webkit [257856] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

JSC 32bits broken in debug mode by r257399
https://bugs.webkit.org/show_bug.cgi?id=208439

Patch by Paulo Matos <Paulo Matos> on 2020-03-04
Reviewed by Carlos Alberto Lopez Perez.

Use uses() method call instead of gpr() on assert to that it
works for both 64 and 32 bits.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

10:21 AM Changeset in webkit [257855] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Drop WebsiteDataStore::processPools()'s ensureAPoolExists optional parameter and add a ensureProcessPools() method instead
https://bugs.webkit.org/show_bug.cgi?id=208546

Reviewed by Sam Weinig.

Drop WebsiteDataStore::processPools()'s ensureAPoolExists optional parameter and add a ensureProcessPools()
method instead. This was error-prone and we are a lot of code creating process pools unnecessarily as a
result.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::processPoolForCookieStorageOperations):
(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::setMaxStatisticsEntries):
(WebKit::WebsiteDataStore::setPruneEntriesDownTo):
(WebKit::WebsiteDataStore::setGrandfatheringTime):
(WebKit::WebsiteDataStore::setMinimumTimeBetweenDataRecordsRemoval):
(WebKit::WebsiteDataStore::dumpResourceLoadStatistics):
(WebKit::WebsiteDataStore::isPrevalentResource):
(WebKit::WebsiteDataStore::isGrandfathered):
(WebKit::WebsiteDataStore::setPrevalentResource):
(WebKit::WebsiteDataStore::setPrevalentResourceForDebugMode):
(WebKit::WebsiteDataStore::isVeryPrevalentResource):
(WebKit::WebsiteDataStore::setVeryPrevalentResource):
(WebKit::WebsiteDataStore::setShouldClassifyResourcesBeforeDataRecordsRemoval):
(WebKit::WebsiteDataStore::setSubframeUnderTopFrameDomain):
(WebKit::WebsiteDataStore::isRegisteredAsSubFrameUnder):
(WebKit::WebsiteDataStore::setSubresourceUnderTopFrameDomain):
(WebKit::WebsiteDataStore::isRegisteredAsSubresourceUnder):
(WebKit::WebsiteDataStore::setSubresourceUniqueRedirectTo):
(WebKit::WebsiteDataStore::setSubresourceUniqueRedirectFrom):
(WebKit::WebsiteDataStore::setTopFrameUniqueRedirectTo):
(WebKit::WebsiteDataStore::setTopFrameUniqueRedirectFrom):
(WebKit::WebsiteDataStore::isRegisteredAsRedirectingTo):
(WebKit::WebsiteDataStore::clearPrevalentResource):
(WebKit::WebsiteDataStore::resetParametersToDefaultValues):
(WebKit::WebsiteDataStore::submitTelemetry):
(WebKit::WebsiteDataStore::scheduleClearInMemoryAndPersistent):
(WebKit::WebsiteDataStore::getResourceLoadStatisticsDataSummary):
(WebKit::WebsiteDataStore::scheduleCookieBlockingUpdate):
(WebKit::WebsiteDataStore::scheduleStatisticsAndDataRecordsProcessing):
(WebKit::WebsiteDataStore::setLastSeen):
(WebKit::WebsiteDataStore::mergeStatisticForTesting):
(WebKit::WebsiteDataStore::setNotifyPagesWhenDataRecordsWereScanned):
(WebKit::WebsiteDataStore::setIsRunningResourceLoadStatisticsTest):
(WebKit::WebsiteDataStore::setNotifyPagesWhenTelemetryWasCaptured):
(WebKit::WebsiteDataStore::setTimeToLiveUserInteraction):
(WebKit::WebsiteDataStore::logUserInteraction):
(WebKit::WebsiteDataStore::hasHadUserInteraction):
(WebKit::WebsiteDataStore::isRelationshipOnlyInDatabaseOnce):
(WebKit::WebsiteDataStore::clearUserInteraction):
(WebKit::WebsiteDataStore::setGrandfathered):
(WebKit::WebsiteDataStore::setUseITPDatabase):
(WebKit::WebsiteDataStore::setCrossSiteLoadWithLinkDecorationForTesting):
(WebKit::WebsiteDataStore::resetCrossSiteLoadsWithLinkDecorationForTesting):
(WebKit::WebsiteDataStore::deleteCookiesForTesting):
(WebKit::WebsiteDataStore::hasLocalStorageForTesting const):
(WebKit::WebsiteDataStore::hasIsolatedSessionForTesting const):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsShouldDowngradeReferrerForTesting):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsShouldBlockThirdPartyCookiesForTesting):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsFirstPartyWebsiteDataRemovalModeForTesting):
(WebKit::WebsiteDataStore::setCacheMaxAgeCapForPrevalentResources):
(WebKit::WebsiteDataStore::resetCacheMaxAgeCapForPrevalentResources):
(WebKit::WebsiteDataStore::processPools const):
(WebKit::WebsiteDataStore::ensureProcessPools const):
(WebKit::WebsiteDataStore::plugins const):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled):
(WebKit::WebsiteDataStore::setStatisticsTestingCallback):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsDebugMode):
(WebKit::WebsiteDataStore::isResourceLoadStatisticsEphemeral const):
(WebKit::WebsiteDataStore::clearResourceLoadStatisticsInWebProcesses):
(WebKit::WebsiteDataStore::getLocalStorageDetails):
(WebKit::WebsiteDataStore::resetQuota):
(WebKit::WebsiteDataStore::hasAppBoundSession const):
(WebKit::WebsiteDataStore::setInAppBrowserPrivacyEnabled):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
10:07 AM Changeset in webkit [257854] by dbates@webkit.org
  • 2 edits in trunk/Tools

Should use -bounds instead of -frame in RequestTextInputContext.mm tests
https://bugs.webkit.org/show_bug.cgi?id=208565

Reviewed by Wenson Hsieh.

Pass the bounds of the web view to -synchronouslyRequestTextInputContextsInRect: instead
of its frame as a means to find all the editable elements in the visible content area
of the web view.

Coincidentally this makes no difference to the test results right now because the web view
happens to be located at the origin (0, 0) in the window. However if in the future the
web view would be located at some other point then the tests may fail because the rectangle
passed to -synchronouslyRequestTextInputContextsInRect: would no longer represent the
rectangle for the visible content area.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(TEST):

10:06 AM Changeset in webkit [257853] by dbates@webkit.org
  • 2 edits in trunk/Tools

Organize tests in RequestTextInputContext.mm tests under test name RequestTextInputContext
https://bugs.webkit.org/show_bug.cgi?id=208564

Reviewed by Alex Christensen.

Group the tests in RequestTextInputContext.mm under the test case name RequestTextInputContext
to make it easy to run just these tests.

Currently, the tests are organized under the test case name WebKit. This means you need to
pass run-api-tests the name of each sub-test as there is no easy way to run them all without
also running all the TestWebKitAPI.WebKit sub-tests. Instead organize them under RequestTextInputContext
so that a person can run just these test using:

run-api-tests --debug TestWebKitAPI.RequestTextInputContext

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(TEST):

10:05 AM Changeset in webkit [257852] by dbates@webkit.org
  • 4 edits in trunk/Source/WebKit

Implement WKTextSelectionRect in terms of WebCore::SelectionRect and WKTextRange in terms of WKTextSelectionRect
https://bugs.webkit.org/show_bug.cgi?id=208563

Reviewed by Alex Christensen.

It is a layering violation that WebKit2 includes a header from WebKit. Implement
WKTextSelectionRect in terms of WebCore::SelectionRect as a step towards fixing this.
Also avoid the WebCore::SelectionRect -> WebSelectionRect -> WKTextSelectionRect
dance that WKTextRange does so that -[WKTextRange selectionRectsForRange] returns
an array of WKTextSelectionRects by writing WKTextRange in terms of NSArray<WKTextSelectionRect *>*.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _uiTextSelectionRects]):
(-[WKContentView selectedTextRange]):
(-[WKContentView selectionRectsForRange:]):

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

(-[WKTextSelectionRect initWithSelectionRect:]):
(-[WKTextSelectionRect rect]):
(-[WKTextSelectionRect writingDirection]):
(-[WKTextSelectionRect containsStart]):
(-[WKTextSelectionRect containsEnd]):
(-[WKTextSelectionRect isVertical]):
(-[WKTextSelectionRect initWithWebRect:]): Deleted.
(-[WKTextSelectionRect dealloc]): Deleted.
(+[WKTextSelectionRect textSelectionRectsWithWebRects:]): Deleted.

10:04 AM Changeset in webkit [257851] by dbates@webkit.org
  • 4 edits
    2 adds in trunk/Source/WebKit

Move WKTextSelectionRect into its own file
https://bugs.webkit.org/show_bug.cgi?id=208561

Reviewed by Alex Christensen.

WKTextSelectionRect is currently defined in WKContentViewInteraction.mm. Separate it
out into its own file to improve project organization and de-clutter WKContentViewInteraction.mm.

  • SourcesCocoa.txt:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKTextSelectionRect initWithWebRect:]): Deleted.
(-[WKTextSelectionRect dealloc]): Deleted.
(+[WKTextSelectionRect textSelectionRectsWithWebRects:]): Deleted.
(-[WKTextSelectionRect rect]): Deleted.
(-[WKTextSelectionRect writingDirection]): Deleted.
(-[WKTextSelectionRect range]): Deleted.
(-[WKTextSelectionRect containsStart]): Deleted.
(-[WKTextSelectionRect containsEnd]): Deleted.
(-[WKTextSelectionRect isVertical]): Deleted.

  • UIProcess/ios/WKTextSelectionRect.h: Added.
  • UIProcess/ios/WKTextSelectionRect.mm: Added.

(-[WKTextSelectionRect initWithWebRect:]):
(-[WKTextSelectionRect dealloc]):
(+[WKTextSelectionRect textSelectionRectsWithWebRects:]):
(-[WKTextSelectionRect rect]):
(-[WKTextSelectionRect writingDirection]):
(-[WKTextSelectionRect range]):
(-[WKTextSelectionRect containsStart]):
(-[WKTextSelectionRect containsEnd]):
(-[WKTextSelectionRect isVertical]):

  • WebKit.xcodeproj/project.pbxproj:
9:55 AM Changeset in webkit [257850] by Alan Bujtas
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening after r257764.

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

REGRESSION (r257840?) [ Mac wk2 Release ] fast/hidpi/image-srcset-relative-svg-canvas.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208577

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:40 AM Changeset in webkit [257848] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[ews] Add build step to create local git commit for commit-queue
https://bugs.webkit.org/show_bug.cgi?id=208539

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(CreateLocalGITCommit): Build step to create local git commit.
(CreateLocalGITCommit.start):
(CreateLocalGITCommit.getResultSummary): Set custom failure message.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests and restructured imports.
  • BuildSlaveSupport/ews-build/factories.py:
8:53 AM Changeset in webkit [257847] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac ] mathml/scripts-removeChild.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208574

Unreviewed test gardening.

  • platform/mac/TestExpectations:
8:34 AM Changeset in webkit [257846] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Avoid full style resolution on Element::focus()
https://bugs.webkit.org/show_bug.cgi?id=208504
<rdar://problem/60035288>

Unreviewed followup.

  • dom/Element.cpp:

(WebCore::Element::resolveComputedStyle):
(WebCore::Element::isVisibleWithoutResolvingFullStyle const):

Emilio spotted that this neeeds to be a composed ancestor walk to match resolveComputedStyle.

8:31 AM Changeset in webkit [257845] by youenn@apple.com
  • 4 edits in trunk/Source/WebKit

WebChromeClient::createImageBuffer should not create a connection to GPU Process if page does not want remote rendering
https://bugs.webkit.org/show_bug.cgi?id=208567
rdar://problem/60020229

Reviewed by Wenson Hsieh.

Manually tested.

  • WebProcess/GPU/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::createImageBuffer):
Minor refactoring to directly take a ShouldAccelerate instead of a RenderingMode.

  • WebProcess/GPU/graphics/RemoteRenderingBackend.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createImageBuffer const):
In case page does not want to do remote rendering, do not create a remote image buffer.
Instead, return null and let the caller create a local image buffer.

8:17 AM Changeset in webkit [257844] by Simon Fraser
  • 11 edits in trunk

(r256513) [ Mac ] fast/scrolling/programmatic-scroll-to-zero-zero.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207948

Reviewed by Zalan Bujtas.

Source/WebCore:

It was possible for WheelEventTestMonitor to fire the callback before receiving any wheel events, if
no deferral reasons happened before the timer fires. Let's require at least one deferral.

There was no deferral for main-thread iframe wheel event handling, so add that so that tests that
slow-scroll iframes work.

Should de-flake fast/scrolling/programmatic-scroll-to-zero-zero.html and maybe other tests.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEvent):

  • page/WheelEventTestMonitor.cpp:

(WebCore::WheelEventTestMonitor::clearAllTestDeferrals):
(WebCore::WheelEventTestMonitor::deferForReason):
(WebCore::WheelEventTestMonitor::triggerTestTimerFired):
(WebCore::operator<<):

  • page/WheelEventTestMonitor.h:

(WebCore::WheelEventTestMonitorCompletionDeferrer::WheelEventTestMonitorCompletionDeferrer):
(WebCore::WheelEventTestMonitorCompletionDeferrer::~WheelEventTestMonitorCompletionDeferrer):

Tools:

EventSendingController needs to trigger layout so that the WebHTMLView is not 0x0,
so that it receives the wheel events.

  • DumpRenderTree/mac/EventSendingController.mm:

(-[EventSendingController mouseScrollByX:andY:withWheel:andMomentumPhases:]):

  • DumpRenderTree/win/EventSender.cpp:

(mouseScrollBy):

LayoutTests:

Remove line for fast/scrolling/programmatic-scroll-to-zero-zero.html.
Skip two Windows tests that, for unknown reasons, no longer get any scrolling
triggers.

  • platform/mac-wk2/TestExpectations:
  • platform/win/TestExpectations:
8:15 AM Changeset in webkit [257843] by Kocsen Chung
  • 1 edit in branches/safari-610.1.6-branch/Source/WebKit/Shared/WebPreferencesDefaultValues.h

Apply Patch. rdar://problem/60019706.

7:52 AM Changeset in webkit [257842] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] webrtc/video-replace-track.html has been flaky failing on iOS
https://bugs.webkit.org/show_bug.cgi?id=208573

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
7:19 AM Changeset in webkit [257841] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Display::Run::TextContent::expand(unsigned) is called with the value of -1.
https://bugs.webkit.org/show_bug.cgi?id=208558
<rdar://problem/60026658>

Reviewed by Antti Koivisto.

  • layout/displaytree/DisplayRun.h:

(WebCore::Display::Run::TextContent::shrink):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::Run::removeTrailingWhitespace):

6:53 AM Changeset in webkit [257840] by Alan Bujtas
  • 19 edits in trunk

[First paint] Going from visually empty to non-empty should immediately trigger layer unfreezing
https://bugs.webkit.org/show_bug.cgi?id=208385
<rdar://problem/59895900>

Reviewed by Antti Koivisto.
Source/WebCore:

Now that VNE check and layout are decoupled, we should also decouple the VNE layout milestone and
layer unfreezing.
In many cases a style change does not initiate synchronous layout (see Document::updateStyleIfNeeded) which
potentially delays the first paint. This patch ensure that we unfreeze the layer tree and issue paint soon after
the style change produced a VNE content.

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::didReachVisuallyNonEmptyState):

  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:
  • page/FrameView.cpp:

(WebCore::FrameView::styleAndRenderTreeDidChange):
(WebCore::FrameView::checkAndDispatchDidReachVisuallyNonEmptyState):
(WebCore::FrameView::fireLayoutRelatedMilestonesIfNeeded):
(WebCore::FrameView::qualifiesAsVisuallyNonEmpty const): Deleted.

  • page/FrameView.h:

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidReachLayoutMilestone):
(WebKit::WebFrameLoaderClient::dispatchDidReachVisuallyNonEmptyState):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didCompletePageTransition):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::resetIdempotentTextAutosizingIfNeeded): We don't have this case anymore.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::scheduleRenderingUpdate):

LayoutTests:

  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked-expected.txt:
  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html:
  • fast/scrolling/scroll-animator-overlay-scrollbars-hovered-expected.txt:
  • fast/scrolling/scroll-animator-overlay-scrollbars-hovered.html:
4:11 AM Changeset in webkit [257839] by Antti Koivisto
  • 15 edits
    2 adds in trunk

Avoid full style resolution on Element::focus()
https://bugs.webkit.org/show_bug.cgi?id=208504

Reviewed by Zalan Bujtas.

Source/WebCore:

Element::focus() currently triggers full style resolution both before (to compute element visibility)
and after (for no particular reason).

Resolving style can be costly if there are further DOM mutations that end up invalidating it again.
This patch adds a cheaper single-element way to computing visibility and uses it for focus().

This appears to be 3-4% Speedometer progression.

Test: fast/forms/focus-after-visibility-change.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::focusedUIElementForPage):

AX code assumes renderers have exist for focused element so ensure style is up to date.

  • dom/Document.cpp:

(WebCore::Document::setFocusedElement):

Remove style resolution.

  • dom/Element.cpp:

(WebCore::Element::isFocusable const):

Use isVisibleWithoutResolvingFullStyle helper.

(WebCore::Element::focus):

Avoid style resolution if the element is in a subtree that doesn't have renderers yet.

(WebCore::Element::resolveComputedStyle):

Add a mode where we bail out when we figure out we are in display:none subtree.

(WebCore::Element::hasValidStyle const):

See if we already have valid style.

(WebCore::Element::isVisibleWithoutResolvingFullStyle const):

Use computed style mechanism for subtrees that have no renderers yet.

(WebCore::Element::computedStyle):

  • dom/Element.h:
  • html/HTMLAreaElement.cpp:

(WebCore::HTMLAreaElement::isFocusable const):

Use isVisibleWithoutResolvingFullStyle here too.

  • html/HTMLSelectElement.cpp:

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

Update style after explicit focus() calls to keep the existing behavior.

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setRangeText):

Ensure the renderer is created.

  • html/shadow/SpinButtonElement.cpp:

(WebCore::SpinButtonElement::forwardEvent):

Remove unneeded renderer test.

LayoutTests:

  • fast/events/keypress-removed-node-expected.txt:
  • fast/events/keypress-removed-node.html:

Modify the test so it is not sensitive to non-rendered whitespace changes
(caused by timing of render tree updates).

  • fast/forms/autofocus-input-css-style-change.html:

Read the <input autofocus> :focus style in rAF as focusing happens asynchronously. This matches other browsers.

  • fast/forms/focus-after-visibility-change-expected.txt: Added.
  • fast/forms/focus-after-visibility-change.html: Added.

Add a simple test for visibility style change after renderer has already be created.

3:47 AM Changeset in webkit [257838] by Andres Gonzalez
  • 2 edits in trunk/Tools

REGRESSION (r257739): two fast/events/autoscroll test have started to fail
https://bugs.webkit.org/show_bug.cgi?id=208520
<rdar://problem/60000214>

Reviewed by Chris Fleizach.

Calling InjectedBundle::singleton().page()->page() in the constructor
of the AccessibilityController is having this side effect on iOS.
So #if to MAC where it's actually being used.

  • WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:

(WTR::AccessibilityController::AccessibilityController):

12:56 AM Changeset in webkit [257837] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[GTK][WPE] Use restore view icon for exit fullscreen button in media controls
https://bugs.webkit.org/show_bug.cgi?id=208511

Reviewed by Xabier Rodriguez-Calvar.

We currently use view fullscreen for both entering and leaving.

  • Modules/mediacontrols/mediaControlsAdwaita.css:

(video::-webkit-media-controls-fullscreen-button.exit):
(audio::-webkit-media-controls-fullscreen-button,): Deleted.
(audio::-webkit-media-controls-fullscreen-button.hidden,): Deleted.

  • Modules/mediacontrols/mediaControlsAdwaita.js:

(Controller.prototype.handleFullscreenChange):

12:54 AM Changeset in webkit [257836] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK][WPE] Stop adding volume-box class to volume box element
https://bugs.webkit.org/show_bug.cgi?id=208510

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

The class was removed in r257705 because it's not used by our css.

  • Modules/mediacontrols/mediaControlsAdwaita.js:

(Controller.prototype.createControls):

LayoutTests:

Update expectations of http/tests/media/hls/video-controls-live-stream.html.

  • platform/gtk/http/tests/media/hls/video-controls-live-stream-expected.txt:

Mar 3, 2020:

10:31 PM Changeset in webkit [257835] by Devin Rousso
  • 38 edits in trunk/Source

Web Inspector: re-add InspectorFrontendHost support for moving the inspected window
https://bugs.webkit.org/show_bug.cgi?id=208555

Reviewed by Timothy Hatcher.

Partially revert r257759, as the design changed enough such that this code is still useful.

Source/WebCore:

Allow the Web Inspector frontend to ask the containing app (via InspectorFrontendClient)
whether it supports the given docking configuration.

  • inspector/InspectorFrontendHost.idl:
  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.cpp:

(WebCore::dockSideFromString): Added.
(WebCore::InspectorFrontendHost::supportsDockSide): Added.
(WebCore::InspectorFrontendHost::requestSetDockSide):
(WebCore::InspectorFrontendHost::startWindowDrag): Added.
(WebCore::InspectorFrontendHost::moveWindowBy const): Added.

  • inspector/InspectorFrontendClient.h:
  • inspector/InspectorFrontendClientLocal.cpp:
  • inspector/InspectorFrontendClientLocal.h:

(WebCore::InspectorFrontendClientLocal::moveWindowBy): Added.

  • testing/Internals.cpp:

(WebCore::InspectorStubFrontend::supportsDockSide): Added.

Source/WebInspectorUI:

  • UserInterface/Base/Main.js:

(WI.loaded):
(WI.updateDockedState):
(WI.resizeDockedFrameMouseDown): Added.
(WI.moveUndockedWindowMouseDown): Added.
(WI.dockedConfigurationSupportsSplitContentBrowser):
(WI._windowFocused):
(WI._windowBlurred):
(WI._updateDockNavigationItems):
(WI._handleDockedResizerMouseDown):
(WI._handleUndockedTitleAreaMouseDown):
(WI._updateTabBarDividers):
(WI.setLayoutDirection):
Don't create tab bar navigation items for the various docking configurations if the platform
doesn't support that particular configuration.

  • UserInterface/Views/TabBar.js:

(WI.TabBar):
(WI.TabBar.get horizontalPadding):
(WI.TabBar.prototype._handleMouseDown):
(WI.TabBar.prototype._handleTabContainerMouseDown): Added.
(WI.TabBar.prototype._handleTabContainerClick): Added.
(WI.TabBar.prototype._handleTabContainerMouseLeave): Added.
(WI.TabBar.prototype._handleTabContainerContextMenu): Added.
(WI.TabBar.prototype._handleClick): Deleted.
(WI.TabBar.prototype._handleMouseLeave): Deleted.
(WI.TabBar.prototype._handleContextMenu): Deleted.

  • UserInterface/Views/TabBar.css:

(body.docked.bottom .tab-bar > .tabs > .flexible-space):
Dragging on empty space in the tab bar should adjust Web Inspector's bottom docked height.

  • UserInterface/Views/TabBarItem.js:

(WI.TabBarItem.get horizontalMargin):

Source/WebKit:

Allow the Web Inspector frontend to ask the containing app (via InspectorFrontendClient)
whether it supports the given docking configuration.

  • WebProcess/Inspector/WebInspectorUI.h:
  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::startWindowDrag): Added.
(WebKit::WebInspectorUI::moveWindowBy): Added.
(WebKit::WebInspectorUI::supportsDockSide): Added.
(WebKit::WebInspectorUI::requestSetDockSide):
(WebKit::WebInspectorUI::setDockSide):

  • UIProcess/Inspector/WebInspectorProxy.messages.in:
  • UIProcess/Inspector/WebInspectorProxy.h:
  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::startWindowDrag): Added.
(WebKit::WebInspectorProxy::platformStartWindowDrag): Added.

  • UIProcess/Inspector/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformStartWindowDrag): Added.

  • UIProcess/Inspector/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformStartWindowDrag): Added.

  • UIProcess/Inspector/win/WebInspectorProxyWin.cpp:

(WebKit::WebInspectorProxy::platformStartWindowDrag): Added.

  • WebProcess/Inspector/RemoteWebInspectorUI.h:
  • WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::startWindowDrag): Added.
(WebKit::RemoteWebInspectorUI::moveWindowBy): Added.
(WebKit::RemoteWebInspectorUI::supportsDockSide): Added.

  • UIProcess/Inspector/RemoteWebInspectorProxy.messages.in:
  • UIProcess/Inspector/RemoteWebInspectorProxy.h:
  • UIProcess/Inspector/RemoteWebInspectorProxy.cpp:

(WebKit::RemoteWebInspectorProxy::startWindowDrag): Added.
(WebKit::RemoteWebInspectorProxy::platformStartWindowDrag): Added.

  • UIProcess/Inspector/gtk/RemoteWebInspectorProxyGtk.cpp:

(WebKit::RemoteWebInspectorProxy::platformStartWindowDrag): Added.

  • UIProcess/Inspector/mac/RemoteWebInspectorProxyMac.mm:

(WebKit::RemoteWebInspectorProxy::platformStartWindowDrag): Added.

  • UIProcess/Inspector/win/RemoteWebInspectorProxyWin.cpp:

(WebKit::RemoteWebInspectorProxy::platformStartWindowDrag): Added.

Source/WebKitLegacy/ios:

Allow the Web Inspector frontend to ask the containing app (via InspectorFrontendClient)
whether it supports the given docking configuration.

  • WebCoreSupport/WebInspectorClientIOS.mm:

(WebInspectorFrontendClient::supportsDockSide): Added.
(WebInspectorFrontendClient::startWindowDrag): Added.

Source/WebKitLegacy/mac:

Allow the Web Inspector frontend to ask the containing app (via InspectorFrontendClient)
whether it supports the given docking configuration.

  • WebCoreSupport/WebInspectorClient.h:
  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorFrontendClient::startWindowDrag): Added.
(WebInspectorFrontendClient::supportsDockSide): Added.

Source/WebKitLegacy/win:

Allow the Web Inspector frontend to ask the containing app (via InspectorFrontendClient)
whether it supports the given docking configuration.

  • WebCoreSupport/WebInspectorClient.h:
  • WebCoreSupport/WebInspectorClient.cpp:

(WebInspectorFrontendClient::supportsDockSide): Added.

10:03 PM Changeset in webkit [257834] by achristensen@apple.com
  • 8 edits in trunk

Add SPI _WKResourceLoadInfo.loadedFromCache
https://bugs.webkit.org/show_bug.cgi?id=208554

Reviewed by Wenson Hsieh.

Source/WebKit:

This exposes a boolean value indicating whether the resource was loaded from a cache based on the response source.
This is needed for rdar://problem/57132290

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::resourceLoadInfo):

  • Shared/ResourceLoadInfo.h:

(WebKit::ResourceLoadInfo::encode const):
(WebKit::ResourceLoadInfo::decode):

  • UIProcess/API/APIResourceLoadInfo.h:
  • UIProcess/API/Cocoa/_WKResourceLoadInfo.h:
  • UIProcess/API/Cocoa/_WKResourceLoadInfo.mm:

(-[_WKResourceLoadInfo loadedFromCache]):
(-[_WKResourceLoadInfo initWithCoder:]):
(-[_WKResourceLoadInfo encodeWithCoder:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:

(TEST):

9:40 PM Changeset in webkit [257833] by Devin Rousso
  • 2 edits in trunk/Source/WebCore

Web Inspector: set both the page's and the window's appearance when modifying the frontend forced appearance in the case that the frontend is docked
https://bugs.webkit.org/show_bug.cgi?id=208557

Reviewed by Timothy Hatcher.

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::setForcedAppearance):
InspectorFrontendClient::setForcedAppearance only has an effect when Web Inspector is
detached/undocked, meaning that changing the Appearance in the Settings Tab when docked has
no effect. In addition to notifying the InspectorFrontendClient, we should also call
Page::setUseDarkAppearanceOverride so that if Web Inspector is docked, the apperance
changes. The Web Inspector frontend page's apperance would normally change to match the
appearance of the window, but when Web Inspector is docked there is no window.

9:33 PM Changeset in webkit [257832] by Kocsen Chung
  • 2 edits in branches/safari-609.1.20.4-branch/Source/WebKitLegacy/win

Cherry-pick r257802. rdar://problem/60009752

[Win] API header file has USE macro
https://bugs.webkit.org/show_bug.cgi?id=208534

Reviewed by Brent Fulgham.

USE macros should not be used in API header files.

  • WebKitCOMAPI.h:

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

9:30 PM Changeset in webkit [257831] by Kocsen Chung
  • 8 edits in branches/safari-609.1.20.4-branch/Source

Versioning.

9:22 PM Changeset in webkit [257830] by rniwa@webkit.org
  • 17 edits in trunk

Batch observations and completions of text manipulations
https://bugs.webkit.org/show_bug.cgi?id=208406

Reviewed by Wenson Hsieh.

Source/WebCore:

This patch updates TextManipulationController to notify and replace multiple paragraphs at once.

To allow some form of parallelism for the client application to process items while WebContent's main thread
is finding paragraphs, we notify the client every 128 items.

Tests: TestWebKitAPI.TextManipulation.StartTextManipulationSupportsLegacyDelegateCallback: Added.

TestWebKitAPI.TextManipulation.LegacyCompleteTextManipulationReplaceSimpleSingleParagraph: Added.
TestWebKitAPI.TextManipulation.CompleteTextManipulationReplaceMultipleSimpleParagraphsAtOnce: Added.
TestWebKitAPI.TextManipulation.CompleteTextManipulationShouldBatchItemCallback: Added.
TestWebKitAPI.TextManipulation.CompleteTextManipulationFailWhenItemIdentifierIsDuplicated: Added.
TestWebKitAPI.TextManipulation.CompleteTextManipulationCanHandleSubsetOfItemsToFail: Added.

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::startObservingParagraphs):
(WebCore::TextManipulationController::scheduleObservartionUpdate):
(WebCore::TextManipulationController::addItem): Added.
(WebCore::TextManipulationController::flushPendingItemsForCallback): Added.
(WebCore::TextManipulationController::completeManipulation): Apply each ManipulationItem changes and return
an array for ManipulationFailure for those that failed.
(WebCore::TextManipulationController::replace):

  • editing/TextManipulationController.h:

(WebCore::TextManipulationController::ManipulationItem): Added.
(WebCore::TextManipulationController::ManipulationFailureType): Renamed from ManipulationResult.
(WebCore::TextManipulationController::ManipulationFailure): Added.
(WebCore::TextManipulationController::ManipulationItemData): Renamed from ManipulationItem.
(WebCore::TextManipulationController::ManipulationItem::encode const): Added.
(WebCore::TextManipulationController::ManipulationItem::decode): Added.
(WebCore::TextManipulationController::ManipulationFailure::encode const): Added.
(WebCore::TextManipulationController::ManipulationFailure::decode): Added.

Source/WebKit:

Update WKWebView's SPI for text manipulations to batch observations and replacements of multiple paragraphs
at once instead of observing and replacing one paragraph at a time.

_WKTextManipulationDelegate now has a new callback, didFindTextManipulationItems, which gets an array of
_WKTextManipulationItem instead of a single _WKTextManipulationItem like didFindTextManipulationItem,
and WKWebView's _completeTextManipulationForItems replaces multiple paragraphs at once, and gives an array
of NSError for each _WKTextManipulationItem that failed to replace the respective content.

Tests: TestWebKitAPI.TextManipulation.StartTextManipulationSupportsLegacyDelegateCallback: Added.

TestWebKitAPI.TextManipulation.LegacyCompleteTextManipulationReplaceSimpleSingleParagraph: Added.
TestWebKitAPI.TextManipulation.CompleteTextManipulationReplaceMultipleSimpleParagraphsAtOnce: Added.
TestWebKitAPI.TextManipulation.CompleteTextManipulationShouldBatchItemCallback: Added.
TestWebKitAPI.TextManipulation.CompleteTextManipulationFailWhenItemIdentifierIsDuplicated: Added.
TestWebKitAPI.TextManipulation.CompleteTextManipulationCanHandleSubsetOfItemsToFail: Added.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _startTextManipulationsWithConfiguration:completion:]):
(coreTextManipulationItemIdentifierFromString): Added.
(coreTextManipulationTokenIdentifierFromString): Added.
(-[WKWebView _completeTextManipulation:completion:]): Updated to work with the new TextManipulationController
interface.
(makeFailureSetForAllTextManipulationItems): Added.
(wkTextManipulationErrors): Added.
(-[WKWebView _completeTextManipulationForItems:completion:]): Added. This is the new SPI.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/_WKTextManipulationDelegate.h:
  • UIProcess/API/Cocoa/_WKTextManipulationItem.h:

(_WKTextManipulationItemErrorDomain): Added.
(_WKTextManipulationItemErrorCode): Added.
(_WKTextManipulationItemErrorItemKey): Added.

  • UIProcess/API/Cocoa/_WKTextManipulationItem.mm:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::startTextManipulations):
(WebKit::WebPage::completeTextManipulation): Updated per TextManipulationController interface change.
To avoid having to duplicate the code to create a vector of ManipulationFailure, this function's completion
handler has a boolean indicating that all replacements had failed.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Updated the existing tests to use new APIs, and added new tests for batching finding & replacing
multiple paragraphs at once.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(-[TextManipulationDelegate _webView:didFindTextManipulationItems:]):
(-[TextManipulationDelegate items]):
(-[LegacyTextManipulationDelegate init]):
(-[LegacyTextManipulationDelegate _webView:didFindTextManipulationItem:]):
(TextManipulation.StartTextManipulationSupportsLegacyDelegateCallback): Added.
(TextManipulation.LegacyCompleteTextManipulationReplaceSimpleSingleParagraph): Added.
(TextManipulation.CompleteTextManipulationReplaceMultipleSimpleParagraphsAtOnce): Added.
(TextManipulation.CompleteTextManipulationShouldBatchItemCallback): Added.
(TextManipulation.CompleteTextManipulationFailWhenItemIdentifierIsDuplicated): Added.
(TextManipulation.CompleteTextManipulationCanHandleSubsetOfItemsToFail): Added.

9:18 PM Changeset in webkit [257829] by Kocsen Chung
  • 5 edits in branches/safari-610.1.6-branch/Source

Cherry-pick r257779. rdar://problem/60019706

Rename USE(GPU_PROCESS) to ENABLE(GPU_PROCESS_FOR_WEBRTC)
https://bugs.webkit.org/show_bug.cgi?id=208505

Reviewed by Eric Carlson.

Source/WebKit:

  • Shared/WebPreferencesDefaultValues.h:

Source/WTF:

Rename macro since the name is misleading.
Disable GPU_PROCESS_FOR_WEBRTC for iOS except simulator for now.

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
  • wtf/PlatformUse.h:

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

9:13 PM Changeset in webkit [257828] by pvollan@apple.com
  • 14 edits
    1 add in trunk

[Cocoa] Mapping from MIME type to UTI type should be done in the UI process
https://bugs.webkit.org/show_bug.cgi?id=208415

Reviewed by Brent Fulgham.

Source/WebCore:

This is currently done in the WebContent process, but since this is using a system service which will be closed,
this mapping should be moved to the UI process. The UI process will create this mapping for a set of mime types,
and send it to the WebContent process.

API test: WebKit.UTIFromMIMEType

  • platform/network/mac/UTIUtilities.h:
  • platform/network/mac/UTIUtilities.mm:

(WebCore::mapUTIFromMIMEType):
(WebCore::UTIFromMIMETypeCachePolicy::createValueForKey):
(WebCore::cacheUTIFromMimeType):
(WebCore::UTIFromMIMEType):
(WebCore::mimeTypes):
(WebCore::createUTIFromMIMETypeMap):
(WebCore::setUTIFromMIMETypeMap):

  • testing/Internals.cpp:

(WebCore::Internals::getUTIFromMIMEType):

  • testing/Internals.mm:

(WebCore::Internals::getUTIFromMIMEType):

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

Source/WebKit:

Send the mapping between MIME types and UTI types to the WebContent process as part of the Web
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/UTIFromMIMEType.mm: Added.

(TEST):

9:00 PM Changeset in webkit [257827] by Kocsen Chung
  • 2 edits in branches/safari-610.1.6-branch/Source/WebCore

Cherry-pick r257783. rdar://problem/60024770

Regression (CookieCache) Unable to log into Hulu.com
https://bugs.webkit.org/show_bug.cgi?id=208517
<rdar://problem/59973630>

Reviewed by Geoffrey Garen.

Even though we are listening for notifications for 'www.hulu.com', CFNetwork sends us a notification for host
'secure.hulu.com' when a load to secure.hulu.com sets a cookie for domain '.hulu.com'. Because the host did
not match one if our map of observers, we would ignore the cookie notification and our cookie cache would get
out of sync. To temporarily address the issue (until a better fix is made, likely on CFNetwork side), WebKit
now matches registrable domains instead of hosts.

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm: (WebCore::NetworkStorageSession::registerCookieChangeListenersIfNecessary):

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

9:00 PM Changeset in webkit [257826] by Kocsen Chung
  • 2 edits in branches/safari-610.1.6-branch/Source/WebCore

Cherry-pick r257776. rdar://problem/60024732

Regression(r257354) Crash when trying on watch video on apple.com
https://bugs.webkit.org/show_bug.cgi?id=208487
<rdar://problem/59967385>

Reviewed by Eric Carlson.

Use WebCore::Cookie's code to convert to a NSHTTPCookie instead of using toNSHTTPCookie()
which was not quite right, especially after r257354.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): (WebCore::toNSHTTPCookie): Deleted.

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

9:00 PM Changeset in webkit [257825] by Kocsen Chung
  • 7 edits
    1 add in branches/safari-610.1.6-branch

Cherry-pick r257728. rdar://problem/60024647

Delete by val caching does not keep the subscript alive
https://bugs.webkit.org/show_bug.cgi?id=208393

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/delete-property-ic-stress.js: Added.

Source/JavaScriptCore:

Before, the provided test case crashed with asan because we did not keep deleteByVal
subscripts alive. This patch changes CacheableIdentifier to make this mistake harder
to make again, by making the constructor calls more explicit when CacheableIdentifier
will not keep an Identifier alive.

  • jit/JITOperations.cpp:
  • jit/Repatch.cpp: (JSC::tryCachePutByID): (JSC::tryCacheDeleteBy): (JSC::repatchDeleteBy): (JSC::tryCacheInByID): (JSC::tryCacheInstanceOf): (JSC::tryCacheDelBy): Deleted. (JSC::repatchDelBy): Deleted.
  • jit/Repatch.h:
  • runtime/CacheableIdentifier.h:
  • runtime/CacheableIdentifierInlines.h: (JSC::CacheableIdentifier::createFromIdentifierOwnedByCodeBlock): (JSC::CacheableIdentifier::createFromCell):

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

9:00 PM Changeset in webkit [257824] by Kocsen Chung
  • 4 edits in branches/safari-610.1.6-branch

Cherry-pick r257716. rdar://problem/60019586

maps.google.com is not loading properly, screen flickers when zooming
https://bugs.webkit.org/show_bug.cgi?id=208331
<rdar://problem/59790757>

Reviewed by Antoine Quint.

Source/WebCore:

When using ANGLE, we don't need the GL_ANGLE_depth_texture extension.
We were mistakenly checking for it and deciding to not allow
combined depth+stencil framebuffer attachments.

Test: webgl/1.0.3/conformance/renderbuffers/framebuffer-object-attachment.html
(now passes on iOS)

  • html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::setupFlags):

LayoutTests:

  • platform/ios/TestExpectations: remove failing expectation for: webgl/1.0.3/conformance/renderbuffers/framebuffer-object-attachment.html

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

9:00 PM Changeset in webkit [257823] by Kocsen Chung
  • 2 edits in branches/safari-610.1.6-branch/Source/WebKitLegacy/win

Cherry-pick r257684. rdar://problem/60019893

Fix the Windows build after r257645.

  • WebView.cpp: (WebView::setAcceleratedCompositing):

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

8:57 PM Changeset in webkit [257822] by rniwa@webkit.org
  • 1 edit in trunk/LayoutTests/ChangeLog

Fix a typo in the previous commit.

8:48 PM Changeset in webkit [257821] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

REGRESSION(iOS): editing/selection/ios/set-selection-by-tapping-after-changing-focused-element-bounds.html is always timing out
https://bugs.webkit.org/show_bug.cgi?id=208556

Reviewed by Wenson Hsieh.

Wait for the dobule tap delay between the initial tap and the second tap on the editable region
so that the second tap would result in a selection change instead of both taps to be recognized
as a single dobule tap.

  • editing/selection/ios/set-selection-by-tapping-after-changing-focused-element-bounds.html:
7:49 PM Changeset in webkit [257820] by Wenson Hsieh
  • 5 edits in trunk/Source/WebCore

Path::m_path should be a RetainPtr<CGMutablePathRef> on platforms that use CoreGraphics
https://bugs.webkit.org/show_bug.cgi?id=208492

Reviewed by Simon Fraser and Said Abou-Hallawa.

Make m_path a RetainPtr<CGMutablePathRef> on platforms that use CoreGraphics. This allows us to remove all the
manual retaining and releasing on m_path that currently resides in PathCG.cpp. See below for more details.
There should be no change in behavior.

  • platform/graphics/Path.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

Add adoptCF when constructing the WebCore::Path from the newly created CGMutablePathRef.

(WebCore::PlatformCALayerCocoa::shapePath const):

  • platform/graphics/cg/PathCG.cpp:

(WebCore::Path::Path):

Instead of taking a RetainPtr<CGMutablePathRef> and leaking the pointer, change this to take an rvalue reference
and WTFMove it directly into m_path.

(WebCore::Path::ensurePlatformPath):
(WebCore::Path::contains const):
(WebCore::Path::transform):
(WebCore::Path::boundingRect const):
(WebCore::Path::fastBoundingRect const):
(WebCore::Path::addPath):
(WebCore::Path::clear):
(WebCore::Path::isEmpty const):
(WebCore::Path::currentPoint const):
(WebCore::Path::apply const):

Change m_path to m_path.get() and add adoptCFs, as needed. Remove explicit calls to CFRelease and
CFRetain.

(WebCore::Path::~Path): Deleted.

Just use the default destructor, now that there's no longer a need to explicitly call CFRelease on m_path.

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformPathForGlyph const):

Since the Path constructor now takes RetainPtr<CGMutablePathRef>&&, use move semantics when creating the new
WebCore::Path from the RetainPtr.

6:35 PM Changeset in webkit [257819] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Refine Swift API for WKWebView JavaScript methods
https://bugs.webkit.org/show_bug.cgi?id=208483

Patch by James Savage <James Savage> on 2020-03-03
Reviewed by Sam Weinig.

Refine these interfaces for Swift and to align with our desired API.

  • UIProcess/API/Cocoa/WKContentWorld.h: This doesn't need to be refined

for Swift, we can just rename it here.

  • UIProcess/API/Cocoa/WKWebView.h: This does need refinement.
6:34 PM Changeset in webkit [257818] by achristensen@apple.com
  • 13 edits in trunk

Add response to _WKResourceLoadDelegate didCompleteWithError callback
https://bugs.webkit.org/show_bug.cgi?id=208553

Reviewed by Simon Fraser.

Source/WebKit:

New functionality verified by API test.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::didFailLoading):

  • UIProcess/API/APIResourceLoadClient.h:
  • UIProcess/API/Cocoa/_WKResourceLoadDelegate.h:
  • UIProcess/Cocoa/ResourceLoadDelegate.h:
  • UIProcess/Cocoa/ResourceLoadDelegate.mm:

(WebKit::ResourceLoadDelegate::setDelegate):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::didCompleteWithError const):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::resourceLoadDidCompleteWithError):

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

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:

(-[TestResourceLoadDelegate webView:resourceLoad:didCompleteWithError:response:]):
(TEST):
(-[TestResourceLoadDelegate webView:resourceLoad:didCompleteWithError:]): Deleted.

6:28 PM Changeset in webkit [257817] by beidson@apple.com
  • 2 edits in trunk/Tools

API Test [Mojave+ WK2 Debug ] TestWebKitAPI.WKAttachmentTestsMac.InsertDroppedFilePromisesAsAttachments is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=198795

Reviewed by Chris Dumez.

This test appears to no longer be flaky.

Let's re-enable it.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

5:55 PM Changeset in webkit [257816] by achristensen@apple.com
  • 11 edits in trunk

Requests sent to _WKResourceLoadDelegate should include HTTPBody
https://bugs.webkit.org/show_bug.cgi?id=208550

Reviewed by Tim Hatcher.

Source/WebCore:

Covered by API tests.

  • platform/network/FormData.h:

Expose lengthInBytes to be used in a check capping the size of included body data.
This will prevent exteremely large HTTP bodies from being serialized.

Source/WebKit:

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::startNetworkLoad):

  • UIProcess/Cocoa/ResourceLoadDelegate.mm:

(WebKit::ResourceLoadDelegate::ResourceLoadClient::didSendRequest const):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::resourceLoadDidSendRequest):

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

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:

(TEST):

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::respondToRequests):
HTTPServer now looks for Content-Length in its request.
If it finds this header, that means that the HTTP body is going to be received in another read, then the response should be sent after receiving that.

4:50 PM Changeset in webkit [257815] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/tests/navigation/process-swap-on-client-side-redirect-private.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=208547

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
4:30 PM Changeset in webkit [257814] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] fast/hidpi/filters-and-image-buffer-resolution.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208543

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
4:30 PM Changeset in webkit [257813] by commit-queue@webkit.org
  • 3 edits in trunk

[Curl] Add TLS debugging feature to log encryption keys
https://bugs.webkit.org/show_bug.cgi?id=208192
<rdar://problem/59900616>

Patch by Fujii Hironori <fujii.hironori@gmail.com> on 2020-03-03
Reviewed by Don Olmstead.

  • Source/cmake/OptionsPlayStation.cmake:
  • Source/cmake/OptionsWin.cmake:

Changed the default ENABLE_TLS_DEBUG to OFF.

4:18 PM Changeset in webkit [257812] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Refactor FixedVMPoolExecutableAllocator to not have member functions which are really just helper functions
https://bugs.webkit.org/show_bug.cgi?id=208537

Reviewed by Mark Lam.

There were a few member functions in FixedVMPoolExecutableAllocator that were
essentially helper functions. I've factored them out, and made FixedVMPoolExecutableAllocator
call them directly. This refactoring is needed when I implement the 1GB
executable pool on arm64 since the implementation of that will create split
implementations of something like FixedVMPoolExecutableAllocator.

  • jit/ExecutableAllocator.cpp:

(JSC::jitWriteThunkGenerator):
(JSC::genericWriteToJITRegion):
(JSC::initializeSeparatedWXHeaps):
(JSC::initializeJITPageReservation):
(JSC::ExecutableAllocator::isValid const):
(JSC::ExecutableAllocator::underMemoryPressure):
(JSC::ExecutableAllocator::memoryPressureMultiplier):
(JSC::ExecutableAllocator::allocate):
(JSC::ExecutableAllocator::isValidExecutableMemory):
(JSC::ExecutableAllocator::getLock const):
(JSC::ExecutableAllocator::committedByteCount):
(JSC::ExecutableAllocator::dumpProfile):
(JSC::startOfFixedExecutableMemoryPoolImpl):
(JSC::endOfFixedExecutableMemoryPoolImpl):
(JSC::isJITPC):

4:06 PM Changeset in webkit [257811] by Alan Bujtas
  • 6 edits in trunk

[Internals] Introduce Internals::updateLayoutAndStyleRecursively
https://bugs.webkit.org/show_bug.cgi?id=208536
<rdar://problem/60012372>

Reviewed by Simon Fraser.

Source/WebCore:

It's been a common practice to call document.body.offsetHeight/Width to force style update and layout.
However in certain cases (see Hyatt's optimization on lazy offsetHeight/Width computation in Document::updateLayoutIfDimensionsOutOfDate)
this call can leave the tree partially dirty.

This behavior leads to flakiness, especially when the test checks against Internals::layoutCount.

  • testing/Internals.cpp:

(WebCore::Internals::updateLayoutAndStyleRecursively):

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

LayoutTests:

  • fast/images/animated-gif-no-layout.html:
3:54 PM Changeset in webkit [257810] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: the background of the navigation items in the tab bar doesn't match when unfocusing the window
https://bugs.webkit.org/show_bug.cgi?id=208538

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TabBar.css:

(body[dir=ltr]:not(.docked) .tab-bar > .tabs > .item:nth-child(n + 3 of :not(.hidden)), body[dir=ltr]:not(.docked) .tab-bar > .tabs:not(.hide-border-start) > .item:nth-child(2 of :not(.hidden)), body[dir=ltr]:not(.docked) .tab-bar > .tabs.dragging-tab > .item.selected, body[dir=rtl]:not(.docked) .tab-bar > .tabs:not(.hide-border-end) > .item:nth-last-child(1 of :not(.hidden))): Added.
(body[dir=ltr]:not(.docked) .tab-bar > .tabs:not(.hide-border-end) > .item:nth-last-child(1 of :not(.hidden)), body[dir=rtl]:not(.docked) .tab-bar > .tabs > .item:nth-child(n + 3 of :not(.hidden)), body[dir=rtl]:not(.docked) .tab-bar > .tabs:not(.hide-border-start) > .item:nth-child(2 of :not(.hidden)), body[dir=rtl]:not(.docked) .tab-bar > .tabs.dragging-tab > .item.selected): Added.
(body[dir=ltr]:not(.docked) .tab-bar > .tabs > .item:not(:first-child), body[dir=ltr]:not(.docked) .tab-bar > .tabs:not(.hide-border-start) > .item:first-child, body[dir=ltr]:not(.docked) .tab-bar > .tabs.dragging-tab > .item.selected, body[dir=rtl]:not(.docked) .tab-bar > .tabs:not(.hide-border-end) > .item:last-child): Deleted.
(body[dir=ltr]:not(.docked) .tab-bar > .tabs:not(.hide-border-end) > .item:last-child, body[dir=rtl]:not(.docked) .tab-bar > .tabs > .item:not(:first-child), body[dir=rtl]:not(.docked) .tab-bar > .tabs:not(.hide-border-start) > .item:first-child, body[dir=rtl]:not(.docked) .tab-bar > .tabs.dragging-tab > .item.selected): Deleted.
Use nth-child and nth-last-child instead of :first-child and :last-child now that
there are .flexible-space elements alongside tab bar items.

(@media (prefers-color-scheme: dark) .tab-bar):
(@media (prefers-color-scheme: dark) body:not(.docked) .tab-bar): Added.
(@media (prefers-color-scheme: dark) body.docked .tab-bar): Added.
(@media (prefers-color-scheme: dark) body:not(.docked):matches(.window-inactive, .window-docked-inactive) .tab-bar): Added.
(@media (prefers-color-scheme: dark) body:matches(.window-inactive, .window-docked-inactive) .tab-bar): Deleted.
Ensure completely separate styles for background-color and background-image when .docked
vs when :not(.docked) so that they don't "bleed" into eachother.

(body:not(.docked):matches(.window-inactive, .window-docked-inactive) .tab-bar):
(body.docked:matches(.window-inactive, .window-docked-inactive) .tab-bar):
(.tab-bar > .navigation-bar > .item.group > .item):
(.tab-bar > .navigation-bar > .item.group > .item:nth-child(1 of :not(.hidden))):
(.tab-bar > .navigation-bar > .item.group > .item:nth-last-child(1 of :not(.hidden))):
(body:not(.docked):matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs > .item):
(body:not(.docked):matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs > .item:not(.disabled).selected):
(.tab-bar > .tabs.static-layout > :matches(.flexible-space, .item)):
(.tab-bar > .tabs.animating.inserting-tab > .item.being-inserted):
(body:not(.docked):matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs.dragging-tab > .item:not(.disabled).selected, body:not(.docked):matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs.static-layout:not(.animating.inserting-tab):not(.dragging-tab) > .item:nth-last-child(1 of :not(.pinned)), body:not(.docked):matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs.animating.closing-tab > .item:not(.disabled).selected):
(@media (prefers-color-scheme: dark) body:not(.docked) .tab-bar > .tabs > .item:not(.disabled).selected):
(@media (prefers-color-scheme: dark) body:not(.docked) .tab-bar > .tabs:not(.animating) > .item:not(.selected, .disabled):hover):
(@media (prefers-color-scheme: dark) body:not(.docked):matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs > .item):
(@media (prefers-color-scheme: dark) body:not(.docked):matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs > .item:not(.disabled).selected):
Drive-by: remove as many !important as possible to make future modification simpler.

3:47 PM Changeset in webkit [257809] by Ross Kirsling
  • 2 edits
    2 adds in trunk/Source/JavaScriptCore

Introduce JSRemoteInspectorServerStart API for socket-based RWI.
https://bugs.webkit.org/show_bug.cgi?id=208349

Reviewed by Joseph Pecoraro.

  • API/JSRemoteInspectorServer.cpp: Added.

(JSRemoteInspectorServerStart):

  • API/JSRemoteInspectorServer.h: Added.
  • CMakeLists.txt:
3:33 PM Changeset in webkit [257808] by Ross Kirsling
  • 3 edits in trunk/Source/WebKit

Unreviewed. Fix WinCairo build following r257801.

  • UIProcess/Inspector/win/RemoteWebInspectorProxyWin.cpp:

(WebKit::RemoteWebInspectorProxy::platformSetForcedAppearance):

  • UIProcess/Inspector/win/WebInspectorProxyWin.cpp:

(WebKit::WebInspectorProxy::platformSetForcedAppearance):

3:10 PM Changeset in webkit [257807] by Alan Coon
  • 1 copy in tags/Safari-610.1.5.2

Tag Safari-610.1.5.2.

3:06 PM Changeset in webkit [257806] by achristensen@apple.com
  • 8 edits in trunk

Expose originalURL and originalHTTPMethod on _WKResourceLoadInfo
https://bugs.webkit.org/show_bug.cgi?id=208522

Reviewed by Brian Weinstein.

Source/WebKit:

Covered by API tests.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::resourceLoadInfo):

  • Shared/ResourceLoadInfo.h:

(WebKit::ResourceLoadInfo::encode const):
(WebKit::ResourceLoadInfo::decode):

  • UIProcess/API/APIResourceLoadInfo.h:
  • UIProcess/API/Cocoa/_WKResourceLoadInfo.h:
  • UIProcess/API/Cocoa/_WKResourceLoadInfo.mm:

(-[_WKResourceLoadInfo originalURL]):
(-[_WKResourceLoadInfo initWithCoder:]):
(-[_WKResourceLoadInfo encodeWithCoder:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:

(TEST):

3:02 PM Changeset in webkit [257805] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[CG] Change the UTI of the "WebP" image to be "com.google.webp"
https://bugs.webkit.org/show_bug.cgi?id=208038

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-03
Reviewed by Simon Fraser.

This is to conform with CGImageSourceGetType().

  • platform/graphics/cg/UTIRegistry.cpp:

(WebCore::defaultSupportedImageTypes):
Make sure CG supports the suggested UTI before considering it is actually
supported.

2:49 PM Changeset in webkit [257804] by Alan Coon
  • 8 edits in branches/safari-610.1.5-branch/Source

Versioning.

2:20 PM Changeset in webkit [257803] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

commit-queue should update working directory and reapply patch just before commiting
https://bugs.webkit.org/show_bug.cgi?id=208521

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories.py:
2:19 PM Changeset in webkit [257802] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/win

[Win] API header file has USE macro
https://bugs.webkit.org/show_bug.cgi?id=208534

Reviewed by Brent Fulgham.

USE macros should not be used in API header files.

  • WebKitCOMAPI.h:
2:11 PM Changeset in webkit [257801] by Devin Rousso
  • 29 edits in trunk/Source

Web Inspector: setting the frontend appearance doesn't update the window when undocked
https://bugs.webkit.org/show_bug.cgi?id=208503

Reviewed by Timothy Hatcher.

Notify the UIProcess when setting the forced appearance so platforms that support dark mode
are able to run native code to adjust the appearance of the undocked window.

Source/WebCore:

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::setForcedAppearance):
Call through to the InspectorFrontendClient to change the forced appearance.

  • inspector/InspectorFrontendClient.h:

(WebCore::InspectorFrontendHost::Appearance): Added.
Add an enum class Appearance so that multiple copies of the same string comparison logic
isn't needed.

  • testing/Internals.cpp:

(WebCore::InspectorStubFrontend::setForcedAppearance): Added.

Source/WebKit:

  • WebProcess/Inspector/WebInspectorUI.h:
  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::setForcedAppearance): Added.

  • UIProcess/Inspector/WebInspectorProxy.messages.in:
  • UIProcess/Inspector/WebInspectorProxy.h:
  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::setForcedAppearance): Added.
(WebKit::WebInspectorProxy::platformSetForcedAppearance): Added.

  • UIProcess/Inspector/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformSetForcedAppearance): Added.

  • UIProcess/Inspector/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformCreateFrontendWindow): Added.
(WebKit::WebInspectorProxy::platformSetForcedAppearance): Added.
(WebKit::WebInspectorProxy::applyForcedAppearance): Added.

  • UIProcess/Inspector/win/WebInspectorProxyWin.cpp:

(WebKit::WebInspectorProxy::platformSetForcedAppearance): Added.

  • WebProcess/Inspector/RemoteWebInspectorUI.h:
  • WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::setForcedAppearance): Added.

  • UIProcess/Inspector/RemoteWebInspectorProxy.messages.in:
  • UIProcess/Inspector/RemoteWebInspectorProxy.h:
  • UIProcess/Inspector/RemoteWebInspectorProxy.cpp:

(WebKit::RemoteWebInspectorProxy::setForcedAppearance): Added.
(WebKit::RemoteWebInspectorProxy::platformSetForcedAppearance): Added.

  • UIProcess/Inspector/gtk/RemoteWebInspectorProxyGtk.cpp:

(WebKit::RemoteWebInspectorProxy::platformSetForcedAppearance): Added.

  • UIProcess/Inspector/mac/RemoteWebInspectorProxyMac.mm:

(WebKit::RemoteWebInspectorProxy::platformSetForcedAppearance): Added.

  • UIProcess/Inspector/win/RemoteWebInspectorProxyWin.cpp:

(WebKit::RemoteWebInspectorProxy::platformSetForcedAppearance): Added.

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebInspectorClientIOS.mm:

(WebInspectorFrontendClient::setForcedAppearance): Added.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebInspectorClient.h:
  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorFrontendClient::setForcedAppearance): Added.

Source/WebKitLegacy/win:

  • WebCoreSupport/WebInspectorClient.h:
  • WebCoreSupport/WebInspectorClient.cpp:

(WebInspectorFrontendClient::setForcedAppearance): Added.

1:42 PM Changeset in webkit [257800] by Megan Gardner
  • 2 edits in trunk/Source/WTF

Build Fix
https://bugs.webkit.org/show_bug.cgi?id=208530

Reviewed by Wenson Hsieh.

  • wtf/PlatformHave.h:
1:24 PM Changeset in webkit [257799] by Justin Fan
  • 53 edits in trunk

[WebGL2] Implement texImage2D(TexImageSource) for RGBA/RGBA/UNSIGNED_BYTE ImageElements
https://bugs.webkit.org/show_bug.cgi?id=208486

Reviewed by Dean Jackson.

Source/WebCore:

Partial implementation of WebGL 2 texImage2D(TexImageSource).

Covered by webgl/2.0.0/conformance2/textures/svg_image directory of tests, especially for RGBA/RGBA/UNSIGNED_BYTE.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::texImage2D): Enable.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::isRGBFormat):
(WebCore::WebGLRenderingContextBase::texImageSource2D): Handle both WebGL and WebGL 2 versions of TexImage2D(TexImageSource).
(WebCore::WebGLRenderingContextBase::texImage2DImpl):
(WebCore::WebGLRenderingContextBase::texSubImage2D):
(WebCore::WebGLRenderingContextBase::texSubImage2DBase): Disable WebGL1-only validation check.
(WebCore::WebGLRenderingContextBase::texImage2D):

  • html/canvas/WebGLRenderingContextBase.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp: Prevent crashing for HALF_FLOAT textures.

LayoutTests:

Partial implementation of WebGL 2 texImage2D(TexImageSource). Update affected results, mostly partial progressions.

  • TestExpectations: Unskip svg_image texture tests that test the ImageElement pathway.
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8-red-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb32f-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb565-rgb-unsigned_short_5_6_5-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb9_e5-rgb-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba16f-rgba-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba32f-rgba-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8-rgb-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-srgb8_alpha8-rgba-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r16f-red-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r32f-red-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8-red-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-r8ui-red_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg16f-rg-half_float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg32f-rg-float-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8-rg-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rg8ui-rg_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
  • webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/tex-2d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
1:19 PM Changeset in webkit [257798] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] svg/custom/textPath-change-id-pattern.svg is flakey failing
https://bugs.webkit.org/show_bug.cgi?id=208532

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:12 PM Changeset in webkit [257797] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Add entitlement for message filtering
https://bugs.webkit.org/show_bug.cgi?id=208526
<rdar://problem/58885485>

Reviewed by Brent Fulgham.

On iOS, an entitlement is needed to enable message filtering.

  • Scripts/process-entitlements.sh:
1:08 PM Changeset in webkit [257796] by Matt Lewis
  • 5 edits in trunk/Tools

Add Unittest to commits_for_upload() and fix multiple unittests for several test suites.
https://bugs.webkit.org/show_bug.cgi?id=208485

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/common/checkout/scm/stub_repository.py:

(StubRepository.init): Fixing the constructor to call upon the parent class as we were not doing this before. It also means
that we don't have to recreate the variables that are already created.

  • Scripts/webkitpy/common/checkout/scm/stub_repository_unittest.py: High level changed the imports to better reflect what we are using

from each module, rather than making extra imports that we don't need.
(StubRepositoryTest.mock_host_for_stub_repository): Since we are calling both an executive and a filesystem mock for most of the
tests. it makes more sense to create a mock host with the files needed, than it does to instantiate each of these as separate objects
and not part of the host.
(StubRepositoryTest.test_in_working_directory): Changed the filesystem call to the host call.
(StubRepositoryTest.test_native_revision): Changed the filesystem call to the host call.
(StubRepositoryTest.test_native_branch): Changed the filesystem call to the host call.
(StubRepositoryTest.test_svn_revision): Changed the filesystem call to the host call.
(StubRepositoryTest.test_find_checkout_root): Changed the filesystem call to the host call.
(StubRepositoryTest.test_find_checkout_root_failure): Changed the filesystem call to the host call.
(StubRepositoryTest.test_find_parent_path_matching_callback_condition_with_file_system): Changed the filesystem call to the host call.

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

(SummarizedResultsTest.test_svn_revision_exists): Changed the name to original test to better reflect that it was just looking to see
if we were geting any value at all
(SummarizedResultsTest.test_svn_revision): Added a test to make sure that the revision we are getting is what we expect to get and make
sure we aren't gabking the wrong key:value pair

  • Scripts/webkitpy/port/base_unittest.py: Changed from MockSystemHost to MockHost as we want the extras that

come with the MockHosts and MockHost inherits from MockSystemHost.
(PortTest.make_port): Changed the port to call MockHost that will creat the required stub_repository files.
(test_commits_for_upload): Added amissing test for commits_for_upload as this has been an issue when trying to make changes
to the various upload steps.

12:24 PM Changeset in webkit [257795] by basuke.suzuki@sony.com
  • 3 edits in trunk/Source/JavaScriptCore

[WinCairo][PlayStation] Add interface to get listening port of RemoteInspectorServer
https://bugs.webkit.org/show_bug.cgi?id=208391

Reviewed by Don Olmstead.

When passing zero as a port argument, system will pick an available port for it.
Without this method, client cannot get which port is listening.

  • inspector/remote/socket/RemoteInspectorServer.cpp:

(Inspector::RemoteInspectorServer::start):
(Inspector::RemoteInspectorServer::getPort):

  • inspector/remote/socket/RemoteInspectorServer.h:
12:08 PM Changeset in webkit [257794] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[ews] Add build step to find list of modified changelogs
https://bugs.webkit.org/show_bug.cgi?id=208514

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/factories.py:
  • BuildSlaveSupport/ews-build/steps.py:

(FindModifiedChangeLogs): Build step to find modified ChangeLogs.
(FindModifiedChangeLogs.start): Initialize log observer.
(FindModifiedChangeLogs.getResultSummary): Set custom failure message.
(FindModifiedChangeLogs.evaluateCommand):
(FindModifiedChangeLogs.is_path_to_changelog): Check if the file is a ChangeLog.
(FindModifiedChangeLogs._status_regexp): Regex to match files from git output.
(FindModifiedChangeLogs.extract_changelogs): Method to get list of ChangeLogs from git output.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
11:52 AM Changeset in webkit [257793] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] legacy-animation-engine/animations/play-state-start-paused.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208527

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:44 AM Changeset in webkit [257792] by Ryan Haddad
  • 2 edits in trunk/Tools

[iOS EWS] TestWebKitAPI.WKWebsiteDataStore.RemoveAndFetchData is failing
https://bugs.webkit.org/show_bug.cgi?id=208451

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm: Disable the test for iOS since it is slowing down EWS.
11:41 AM Changeset in webkit [257791] by Jon Davis
  • 1 edit
    142 deletes in trunk/Source/WebInspectorUI

Removed old raster icons for object types and resources
https://bugs.webkit.org/show_bug.cgi?id=208458

Reviewed by Devin Rousso.

  • UserInterface/Images/ApplicationCache.png: Removed.
  • UserInterface/Images/ApplicationCache@2x.png: Removed.
  • UserInterface/Images/ApplicationCacheManifest.png: Removed.
  • UserInterface/Images/ApplicationCacheManifest@2x.png: Removed.
  • UserInterface/Images/Assertion.svg: Removed.
  • UserInterface/Images/AuditTestCase.svg: Removed.
  • UserInterface/Images/AuditTestCaseResult.svg: Removed.
  • UserInterface/Images/AuditTestGroup.svg: Removed.
  • UserInterface/Images/AuditTestGroupResult.svg: Removed.
  • UserInterface/Images/CPUInstrument.svg: Removed.
  • UserInterface/Images/CallTrees.svg: Removed.
  • UserInterface/Images/ClippingCSS.png: Removed.
  • UserInterface/Images/ClippingCSS@2x.png: Removed.
  • UserInterface/Images/ClippingCSSLarge.png: Removed.
  • UserInterface/Images/ClippingCSSLarge@2x.png: Removed.
  • UserInterface/Images/ClippingGeneric.png: Removed.
  • UserInterface/Images/ClippingGeneric@2x.png: Removed.
  • UserInterface/Images/ClippingGenericLarge.png: Removed.
  • UserInterface/Images/ClippingGenericLarge@2x.png: Removed.
  • UserInterface/Images/ClippingJS.png: Removed.
  • UserInterface/Images/ClippingJS@2x.png: Removed.
  • UserInterface/Images/ClippingJSLarge.png: Removed.
  • UserInterface/Images/ClippingJSLarge@2x.png: Removed.
  • UserInterface/Images/Cookie.png: Removed.
  • UserInterface/Images/Cookie@2x.png: Removed.
  • UserInterface/Images/DOMBreakpointAttributeModified.svg: Removed.
  • UserInterface/Images/DOMBreakpointNodeRemoved.svg: Removed.
  • UserInterface/Images/DOMBreakpointSubtreeModified.svg: Removed.
  • UserInterface/Images/DOMCharacterData.svg: Removed.
  • UserInterface/Images/DOMComment.svg: Removed.
  • UserInterface/Images/DOMDocument.svg: Removed.
  • UserInterface/Images/DOMDocumentType.svg: Removed.
  • UserInterface/Images/DOMElement.svg: Removed.
  • UserInterface/Images/DOMNode.svg: Removed.
  • UserInterface/Images/DOMTextNode.svg: Removed.
  • UserInterface/Images/Database.png: Removed.
  • UserInterface/Images/Database@2x.png: Removed.
  • UserInterface/Images/DatabaseTable.png: Removed.
  • UserInterface/Images/DatabaseTable@2x.png: Removed.
  • UserInterface/Images/DebuggerStatement.svg: Removed.
  • UserInterface/Images/DocumentCSS.png: Removed.
  • UserInterface/Images/DocumentCSS@2x.png: Removed.
  • UserInterface/Images/DocumentCSSLarge.png: Removed.
  • UserInterface/Images/DocumentCSSLarge@2x.png: Removed.
  • UserInterface/Images/DocumentFont.png: Removed.
  • UserInterface/Images/DocumentFont@2x.png: Removed.
  • UserInterface/Images/DocumentFontLarge.png: Removed.
  • UserInterface/Images/DocumentFontLarge@2x.png: Removed.
  • UserInterface/Images/DocumentGL.png: Removed.
  • UserInterface/Images/DocumentGL@2x.png: Removed.
  • UserInterface/Images/DocumentGeneric.png: Removed.
  • UserInterface/Images/DocumentGeneric@2x.png: Removed.
  • UserInterface/Images/DocumentGenericLarge.png: Removed.
  • UserInterface/Images/DocumentGenericLarge@2x.png: Removed.
  • UserInterface/Images/DocumentImage.png: Removed.
  • UserInterface/Images/DocumentImage@2x.png: Removed.
  • UserInterface/Images/DocumentImageLarge.png: Removed.
  • UserInterface/Images/DocumentImageLarge@2x.png: Removed.
  • UserInterface/Images/DocumentJS.png: Removed.
  • UserInterface/Images/DocumentJS@2x.png: Removed.
  • UserInterface/Images/DocumentJSLarge.png: Removed.
  • UserInterface/Images/DocumentJSLarge@2x.png: Removed.
  • UserInterface/Images/DocumentMarkup.png: Removed.
  • UserInterface/Images/DocumentMarkup@2x.png: Removed.
  • UserInterface/Images/DocumentMarkupLarge.png: Removed.
  • UserInterface/Images/DocumentMarkupLarge@2x.png: Removed.
  • UserInterface/Images/EventBreakpointAnimationFrame.svg: Removed.
  • UserInterface/Images/EventBreakpointInterval.svg: Removed.
  • UserInterface/Images/EventBreakpointListener.svg: Removed.
  • UserInterface/Images/EventBreakpointTimeout.svg: Removed.
  • UserInterface/Images/EventListener.svg: Removed.
  • UserInterface/Images/Events.svg: Removed.
  • UserInterface/Images/Exception.svg: Removed.
  • UserInterface/Images/FolderGeneric.png: Removed.
  • UserInterface/Images/FolderGeneric@2x.png: Removed.
  • UserInterface/Images/Function.svg: Removed.
  • UserInterface/Images/HeapAllocationsInstrument.svg: Removed.
  • UserInterface/Images/HeapSnapshot.svg: Removed.
  • UserInterface/Images/HeapSnapshotDiff.svg: Removed.
  • UserInterface/Images/HeapSnapshotInstances.svg: Removed.
  • UserInterface/Images/HeapSnapshotObjectGraph.svg: Removed.
  • UserInterface/Images/HeapSnapshotSelected.svg: Removed.
  • UserInterface/Images/HeapSnapshotSummary.svg: Removed.
  • UserInterface/Images/LayoutInstrument.svg: Removed.
  • UserInterface/Images/LocalStorage.png: Removed.
  • UserInterface/Images/LocalStorage@2x.png: Removed.
  • UserInterface/Images/MediaInstrument.svg: Removed.
  • UserInterface/Images/MemoryInstrument.svg: Removed.
  • UserInterface/Images/Microtask.svg: Removed.
  • UserInterface/Images/Native.svg: Removed.
  • UserInterface/Images/NetworkInstrument.svg: Removed.
  • UserInterface/Images/Object.svg: Removed.
  • UserInterface/Images/PausedBreakpoint.svg: Removed.
  • UserInterface/Images/Program.svg: Removed.
  • UserInterface/Images/PseudoElement.svg: Removed.
  • UserInterface/Images/Range.svg: Removed.
  • UserInterface/Images/RangeLarge.svg: Removed.
  • UserInterface/Images/Reflection.svg: Removed.
  • UserInterface/Images/RenderingFrame.svg: Removed.
  • UserInterface/Images/RenderingFramesInstrument.svg: Removed.
  • UserInterface/Images/Request.svg: Removed.
  • UserInterface/Images/Response.svg: Removed.
  • UserInterface/Images/ScriptsInstrument.svg: Removed.
  • UserInterface/Images/SessionStorage.png: Removed.
  • UserInterface/Images/SessionStorage@2x.png: Removed.
  • UserInterface/Images/Source.svg: Removed.
  • UserInterface/Images/StyleRuleInheritedElement.svg: Removed.
  • UserInterface/Images/TailDeletedFunction.svg: Removed.
  • UserInterface/Images/Thread.svg: Removed.
  • UserInterface/Images/TimelineRecordAPI.svg: Removed.
  • UserInterface/Images/TimelineRecordAnimationFrame.svg: Removed.
  • UserInterface/Images/TimelineRecordCSSAnimation.svg: Removed.
  • UserInterface/Images/TimelineRecordCSSTransition.svg: Removed.
  • UserInterface/Images/TimelineRecordComposite.svg: Removed.
  • UserInterface/Images/TimelineRecordConsoleProfile.svg: Removed.
  • UserInterface/Images/TimelineRecordEvent.svg: Removed.
  • UserInterface/Images/TimelineRecordGarbageCollection.svg: Removed.
  • UserInterface/Images/TimelineRecordLayout.svg: Removed.
  • UserInterface/Images/TimelineRecordMediaElement.svg: Removed.
  • UserInterface/Images/TimelineRecordPaint.svg: Removed.
  • UserInterface/Images/TimelineRecordProbeSampled.svg: Removed.
  • UserInterface/Images/TimelineRecordScriptEvaluated.svg: Removed.
  • UserInterface/Images/TimelineRecordStyle.svg: Removed.
  • UserInterface/Images/TimelineRecordTimer.svg: Removed.
  • UserInterface/Images/TypeBigInt.svg: Removed.
  • UserInterface/Images/TypeBoolean.svg: Removed.
  • UserInterface/Images/TypeNull.svg: Removed.
  • UserInterface/Images/TypeNumber.svg: Removed.
  • UserInterface/Images/TypeObject.svg: Removed.
  • UserInterface/Images/TypeRegex.svg: Removed.
  • UserInterface/Images/TypeString.svg: Removed.
  • UserInterface/Images/TypeSymbol.svg: Removed.
  • UserInterface/Images/TypeUndefined.svg: Removed.
  • UserInterface/Images/URLBreakpoint.svg: Removed.
  • UserInterface/Images/WebSocket.png: Removed.
  • UserInterface/Images/WebSocket@2x.png: Removed.
  • UserInterface/Images/WebSocketLarge.png: Removed.
  • UserInterface/Images/WebSocketLarge@2x.png: Removed.
  • UserInterface/Images/WorkerScript.png: Removed.
  • UserInterface/Images/WorkerScript@2x.png: Removed.
  • UserInterface/Images/WorkerScriptLarge.png: Removed.
  • UserInterface/Images/WorkerScriptLarge@2x.png: Removed.
11:30 AM Changeset in webkit [257790] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS ] webgl/2.0.0/conformance/extensions/webgl-draw-buffers.html has been timing out ever since it was introduced.
https://bugs.webkit.org/show_bug.cgi?id=208524

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:17 AM Changeset in webkit [257789] by Wenson Hsieh
  • 3 edits in trunk/Source/WebCore

Address post-commit feedback after r257732
https://bugs.webkit.org/show_bug.cgi?id=208265

Reviewed by Darin Adler.

Remove the private initializeOrCopyPlatformPathIfNeeded() helper,
and move its logic into ensurePlatformPath().

  • platform/graphics/Path.h:
  • platform/graphics/cg/PathCG.cpp:

(WebCore::Path::ensurePlatformPath):
(WebCore::Path::initializeOrCopyPlatformPathIfNeeded): Deleted.

11:16 AM Changeset in webkit [257788] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] http/tests/security/cookies/third-party-cookie-blocking-redirect.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=208525

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
11:10 AM Changeset in webkit [257787] by Alan Coon
  • 4 edits in branches/safari-610.1.6-branch

Cherry-pick r257694. rdar://problem/59957329

Unreviewed, rolling out r257618.

This allegedly causes Safari to crash when closing a window
(see rdar://problem/59922725).

Reverted changeset:

"UIProcess crash after using _prepareForMoveToWindow, then
deallocating the WKWebView before moving to the window"
https://bugs.webkit.org/show_bug.cgi?id=208365
https://trac.webkit.org/changeset/257618

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

11:06 AM Changeset in webkit [257786] by Alan Coon
  • 1 copy in branches/safari-610.1.6-branch

New branch.

10:21 AM Changeset in webkit [257785] by commit-queue@webkit.org
  • 29 edits in trunk

Adopt HTTP Alternative Services Storage
https://bugs.webkit.org/show_bug.cgi?id=208387

Patch by Jiten Mehta <jmehta@apple.com> on 2020-03-03
Reviewed by Alex Christensen.

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

Covered by a new API test which verifies that data is written to the correct directory.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):

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

(WebKit::NetworkProcess::getHostNamesWithAlternativeServices):
(WebKit::NetworkProcess::deleteAlternativeServicesForHostNames):
(WebKit::NetworkProcess::clearAlternativeServices):

  • Shared/WebsiteData/WebsiteData.cpp:

(WebKit::WebsiteData::ownerProcess):

  • Shared/WebsiteData/WebsiteDataType.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:

(dataTypesToString):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:

(WebKit::toWebsiteDataType):
(WebKit::toWKWebsiteDataTypes):

  • UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore _allWebsiteDataTypesIncludingPrivate]):

  • UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(WebKit::WebsiteDataRecord::addAlternativeServicesHostname):

  • UIProcess/WebsiteData/WebsiteDataRecord.h:

Source/WTF:

  • wtf/PlatformHave.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(checkUntilEntryFound):
(TEST):

10:17 AM Changeset in webkit [257784] by ysuzuki@apple.com
  • 9 edits
    1 add in trunk

[JSC] @hasOwnLengthProperty returns wrong value if "length" is attempted to be modified
https://bugs.webkit.org/show_bug.cgi?id=208497
<rdar://problem/59913544>

Reviewed by Mark Lam.

JSTests:

  • stress/function-length-update.js: Added.

(shouldBe):
(userFunction):
(userFunction2):

Source/JavaScriptCore:

When "length" of JSFunction is attempted to be modified, we put a flag. And @hasOwnLengthProperty
does not correctly use this flag to return a value for the fast path. This affects on "length"
property of bound functions. For example,

function userFunction(a) { }
userFunction.length = 20; This field is read-only. So, it is not changed.
userFunction.bind().length;
Should be 1, but it returns 0.

  1. We rename m_hasModifiedLength to m_hasModifiedLengthForNonHostFunction and m_hasModifiedName to m_hasModifiedNameForNonHostFunction since we are not tracking these states for host-functions which can eagerly initialize them.
  2. We rename areNameAndLengthOriginal to canAssumeNameAndLengthAreOriginal to allow it to return "false" for host functions. If it returns true, we go to the fast path.
  3. Correctly use canAssumeNameAndLengthAreOriginal information in @hasOwnLengthProperty.
  • runtime/FunctionRareData.cpp:

(JSC::FunctionRareData::FunctionRareData):

  • runtime/FunctionRareData.h:
  • runtime/JSFunction.cpp:

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

  • runtime/JSFunction.h:
  • runtime/JSFunctionInlines.h:

(JSC::JSFunction::canAssumeNameAndLengthAreOriginal):
(JSC::JSFunction::areNameAndLengthOriginal): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::hasOwnLengthProperty):

  • tools/JSDollarVM.cpp:

(JSC::functionHasOwnLengthProperty):

10:11 AM Changeset in webkit [257783] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Regression (CookieCache) Unable to log into Hulu.com
https://bugs.webkit.org/show_bug.cgi?id=208517
<rdar://problem/59973630>

Reviewed by Geoffrey Garen.

Even though we are listening for notifications for 'www.hulu.com', CFNetwork sends us a notification for host
'secure.hulu.com' when a load to secure.hulu.com sets a cookie for domain '.hulu.com'. Because the host did
not match one if our map of observers, we would ignore the cookie notification and our cookie cache would get
out of sync. To temporarily address the issue (until a better fix is made, likely on CFNetwork side), WebKit
now matches registrable domains instead of hosts.

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::registerCookieChangeListenersIfNecessary):

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

[ Catalina ] webanimations/accelerated-animation-slot-invalidation.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208519

Unreviewed test gardening.

  • platform/mac/TestExpectations:
9:25 AM Changeset in webkit [257781] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk1 Debug ] legacy-animation-engine/animations/animation-direction-reverse.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208518

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
9:08 AM Changeset in webkit [257780] by Kate Cheney
  • 23 edits
    3 adds in trunk

Check for navigation to app-bound domain during script evaluation
https://bugs.webkit.org/show_bug.cgi?id=208319
<rdar://problem/57569321>

Reviewed by Brent Fulgham.

Source/WebCore:

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeScriptInWorld):

  • loader/FrameLoaderClient.h:
  • page/Frame.cpp:

(WebCore::Frame::injectUserScriptImmediately):

Source/WebKit:

Much of this patch is passing around a new parameter,
m_hasNavigatedAwayFromAppBoundDomain, to the Web Content Process to
indicate conditions for script evaluation.

  • Shared/LoadParameters.cpp:

(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):

  • Shared/LoadParameters.h:
  • Shared/PolicyDecision.h:

(WebKit::PolicyDecision::encode const):
(WebKit::PolicyDecision::decode):

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _inAppBrowserPrivacyEnabled]):
(-[WKPreferences _setInAppBrowserPrivacyEnabled:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setIsNavigatingToAppBoundDomain:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::loadData):
(WebKit::ProvisionalPageProxy::loadRequest):
(WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionSync):

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

(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadDataWithNavigationShared):
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomainTesting):
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSyncShared):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::hasNavigatedAwayFromAppBoundDomain const):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
(WebKit::WebFrameLoaderClient::hasNavigatedAwayFromAppBoundDomain):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest):
(WebKit::WebPage::loadDataImpl):
(WebKit::WebPage::loadData):
(WebKit::WebPage::loadAlternateHTML):
(WebKit::WebPage::didReceivePolicyDecision):
(WebKit::WebPage::runJavaScript):
(WebKit::WebPage::setIsNavigatingToAppBoundDomainTesting):
A new call to manually set isNavigatingToAppBoundDomain to mimic
test cases in which a webView switches between app-bound and
non-app-bound domains.

(WebKit::WebPage::setIsNavigatingToAppBoundDomain): Deleted.
Moved to header file because its setting a private variable.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::setIsNavigatingToAppBoundDomain):
(WebKit::WebPage::hasNavigatedAwayFromAppBoundDomain const):
(WebKit::WebPage::setHasNavigatedAwayFromAppBoundDomain):

  • WebProcess/WebPage/WebPage.messages.in:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm: Added.

(-[TestInAppBrowserScriptMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/in-app-browser-privacy-test-user-agent-script.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/in-app-browser-privacy-test-user-script.html: Added.
8:44 AM Changeset in webkit [257779] by youenn@apple.com
  • 6 edits in trunk/Source

Rename USE(GPU_PROCESS) to ENABLE(GPU_PROCESS_FOR_WEBRTC)
https://bugs.webkit.org/show_bug.cgi?id=208505

Reviewed by Eric Carlson.

Source/WebKit:

  • Shared/WebPreferencesDefaultValues.h:

Source/WTF:

Rename macro since the name is misleading.
Disable GPU_PROCESS_FOR_WEBRTC for iOS except simulator for now.

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:
  • wtf/PlatformUse.h:
7:28 AM Changeset in webkit [257778] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Fix current time and duration formatting in media controls
https://bugs.webkit.org/show_bug.cgi?id=208442

Reviewed by Xabier Rodriguez-Calvar.

We are always using mm:ss or hh:mm:ss for current time and duration. We should use different amount of digits
depending on the duration (m:ss, mm:ss, h:mm:ss or hh:mm:ss).

  • Modules/mediacontrols/mediaControlsAdwaita.js:

(Controller.prototype.updateDuration): Set the amount of digits for current duration.
(Controller.prototype.prependZeroIfNeeded): Helper to prepend 0 for values less than 10.
(Controller.prototype.formatTime): Format the time depending on the number of digits required.

7:18 AM Changeset in webkit [257777] by commit-queue@webkit.org
  • 14 edits
    1 delete in trunk

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

Introduced API test failure (Requested by perarne on #webkit).

Reverted changeset:

"[Cocoa] Mapping from MIME type to UTI type should be done in
the UI process"
https://bugs.webkit.org/show_bug.cgi?id=208415
https://trac.webkit.org/changeset/257754

6:07 AM Changeset in webkit [257776] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Regression(r257354) Crash when trying on watch video on apple.com
https://bugs.webkit.org/show_bug.cgi?id=208487
<rdar://problem/59967385>

Reviewed by Eric Carlson.

Use WebCore::Cookie's code to convert to a NSHTTPCookie instead of using toNSHTTPCookie()
which was not quite right, especially after r257354.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
(WebCore::toNSHTTPCookie): Deleted.

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

[GTK] Use -webkit-system-font instead of -webkit-small-control in media controls
https://bugs.webkit.org/show_bug.cgi?id=208509

Reviewed by Xabier Rodriguez-Calvar.

For consistency with the system font.

  • Modules/mediacontrols/mediaControlsAdwaita.css:

(audio::-webkit-media-controls-current-time-display,):
(video::-webkit-media-controls-closed-captions-container):

5:33 AM Changeset in webkit [257774] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening. Rebaseline media/video-controls-no-scripting.html after r257705

  • platform/gtk/media/video-controls-no-scripting-expected.txt:
5:19 AM Changeset in webkit [257773] by Carlos Garcia Campos
  • 2 edits
    1 delete in trunk/LayoutTests

Unreviewed gardeing. Update expectations of media/video-controls-toggling.html after r257771

I forgot to update the expected file after the changes in media/video-controls-toggling.html.

  • media/video-controls-toggling-expected.txt:
  • platform/gtk/media/video-controls-toggling-expected.txt: Removed.
5:16 AM Changeset in webkit [257772] by Diego Pino Garcia
  • 2 edits in trunk/Tools

REGRESSION(r257726): [GTK] LayoutTests crashing after r257726
https://bugs.webkit.org/show_bug.cgi?id=208506

Reviewed by Carlos Garcia Campos.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::platformAdjustContext): Remove unnecessary code.

5:13 AM Changeset in webkit [257771] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Test media/video-controls-toggling.html is failing for GTK since r257299
https://bugs.webkit.org/show_bug.cgi?id=208507

Reviewed by Xabier Rodriguez-Calvar.

This has started to fail for GTK since we switched to use adwaita media controls, but I think this was passing
by coincidence. The test itself is wrong and that's probably the reason why it fails in the other platforms
too. The test expects that the changes that happen after removing the controls attribute from video element are
sync, but they aren't because a mutation observer is used by media controls script. Then, it assumes that panel
display property is set to none after controls attribute is removed, but we are actually removing the media
controls tree from the DOM in that case so the panel is null at that point. This worked in GTK before because
all those checks that were supposed to happen after removing the controls were done before the
handleControlsChange() was called.

  • media/video-controls-toggling.html: Check that panel is null after controls attribute is removed from video

element in the next run loop iteration.

1:26 AM Changeset in webkit [257770] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.28

Merge r257466 - [JSC][MIPS] Adding support to Checkpoints
https://bugs.webkit.org/show_bug.cgi?id=208196

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/memcpy-typed-loop.js:

Source/JavaScriptCore:

This patch is adding changes to properly support OSR to
checkpoints on MIPS. It required fixes on JIT probe and some
adjustment on Offlineasm to correct generate $gp load when executing
checkpoint_osr_exit_from_inlined_call_trampoline.

  • assembler/MacroAssemblerMIPS.cpp:

Probe trampoline needs to allocate 16 bytes for 4 arguments to
properly follow C calling conventions. This space is used by callee
when the JSC is compiled with -O0 flags
(Check "DEFAULT C CALLING CONVENTION (O32)" section on
https://www.mips.com/downloads/mips32-instruction-set-quick-reference-v1-01).

  • llint/LowLevelInterpreter.asm:

As we need to do on ARMv7, 64-bits arguments needs to be passed in
register pairs $a1:$a0 or $a3:$a2 (little-endian mode). Since $a0
contais CallFrame*, we need to pass EncodedJSValue on $a3:$a2
pair.

  • offlineasm/mips.rb:

Following the same reason for return locations on OSR to LLInt, we
need to adjust $gp using $ra instead of $t9 on
checkpoint_osr_exit_from_inlined_call_trampoline, given it is only
reachable through ret operations. For detailed explanation, check
ChangeLog of https://trac.webkit.org/changeset/252713.

1:21 AM Changeset in webkit [257769] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Fix JavaScript exception when removing media controls
https://bugs.webkit.org/show_bug.cgi?id=208444

Reviewed by Xabier Rodriguez-Calvar.

  • Modules/mediacontrols/mediaControlsAdwaita.js:

(Controller.prototype.hideCaptionMenu): Return early if there's no caption menu to hide.

1:20 AM Changeset in webkit [257768] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

REGRESSION(r257299): [GTK] media controls current time label is disabled for live streams
https://bugs.webkit.org/show_bug.cgi?id=208443

Reviewed by Xabier Rodriguez-Calvar.

Remove the no-duration class from currentTime element when we know it's a live stream.

  • Modules/mediacontrols/mediaControlsAdwaita.js:

(Controller.prototype.updateTime):

Mar 2, 2020:

11:36 PM Changeset in webkit [257767] by commit-queue@webkit.org
  • 10 edits in trunk/Source

https://bugs.webkit.org/show_bug.cgi?id=208447
Make FrameLoadRequest ctor take move parameter

Patch by Rob Buis <rbuis@igalia.com> on 2020-03-02
Reviewed by Simon Fraser.

Source/WebCore:

Make FrameLoadRequest ctor use move semantics for the
ResourceRequest parameter to avoid copies.

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openInNewTab):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::navigate):

  • loader/FrameLoadRequest.cpp:

(WebCore::FrameLoadRequest::FrameLoadRequest):

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::FrameLoadRequest):

  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::scheduleLocationChange):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

Source/WebKit:

Adapt to API change.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchCreatePage):

11:29 PM Changeset in webkit [257766] by Chris Dumez
  • 5 edits in trunk/Source

Reduce size of PerformanceResourceTiming
https://bugs.webkit.org/show_bug.cgi?id=208466

Reviewed by Ryosuke Niwa.

Reduce size of PerformanceResourceTiming when not storing non-timing data.
To achieve this, I moved the timing data to a
NetworkLoadMetricsWithoutNonTimingData base class, out of NetworkLoadMetrics.
PerformanceResourceTiming's m_networkLoadMetrics data member is now of type
NetworkLoadMetricsWithoutNonTimingData.

  • page/PerformanceResourceTiming.cpp:

(WebCore::PerformanceResourceTiming::PerformanceResourceTiming):

  • page/PerformanceResourceTiming.h:
  • platform/network/NetworkLoadMetrics.h:

(WebCore::NetworkLoadMetricsWithoutNonTimingData::isComplete const):
(WebCore::NetworkLoadMetricsWithoutNonTimingData::markComplete):
(WebCore::NetworkLoadMetrics::NetworkLoadMetrics):
(WebCore::NetworkLoadMetrics::reset): Deleted.
(WebCore::NetworkLoadMetrics::clearNonTimingData): Deleted.
(WebCore::NetworkLoadMetrics::isComplete const): Deleted.
(WebCore::NetworkLoadMetrics::markComplete): Deleted.

10:41 PM Changeset in webkit [257765] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: visual artifacts in the corner of selected tabs when docked in dark mode
https://bugs.webkit.org/show_bug.cgi?id=208498

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TabBar.css:

(@media (prefers-color-scheme: dark) body:not(.docked) .tab-bar > .tabs > .item:not(.disabled).selected): Added.
(@media (prefers-color-scheme: dark) body.docked .tab-bar > .tabs > .item:not(.disabled).selected): Added.
(@media (prefers-color-scheme: dark) body.docked:matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs > .item:not(.disabled).selected): Added.
(@media (prefers-color-scheme: dark) .tab-bar > .tabs > .item:not(.disabled).selected): Deleted.
The background-color set by body.docked .tab-bar > .tabs > .item:not(.disabled).selected
in light mode was also being applied in dark mode. When docked, don't use background-image
and instead exclusively use background-color so nothing is still applied.

10:05 PM Changeset in webkit [257764] by Alan Bujtas
  • 5 edits
    4 adds
    31 deletes in trunk/LayoutTests

[LayoutTests] Transition animations/cross-fade-* tests to non-pixel-tests
https://bugs.webkit.org/show_bug.cgi?id=208495
<rdar://problem/59979337>

Reviewed by Simon Fraser.

These tests are designed to be a dumpAsText() tests (their render tree outputs are flaky).

  • animations/cross-fade-border-image-source-expected.txt: Added.
  • animations/cross-fade-border-image-source.html:
  • animations/cross-fade-list-style-image-expected.txt: Added.
  • animations/cross-fade-list-style-image.html:
  • animations/cross-fade-webkit-mask-box-image-expected.txt: Added.
  • animations/cross-fade-webkit-mask-box-image.html:
  • animations/cross-fade-webkit-mask-image-expected.txt: Added.
  • animations/cross-fade-webkit-mask-image.html:
  • platform/gtk/animations/cross-fade-border-image-source-expected.png: Removed.
  • platform/gtk/animations/cross-fade-border-image-source-expected.txt: Removed.
  • platform/gtk/animations/cross-fade-list-style-image-expected.png: Removed.
  • platform/gtk/animations/cross-fade-list-style-image-expected.txt: Removed.
  • platform/gtk/animations/cross-fade-webkit-mask-box-image-expected.png: Removed.
  • platform/gtk/animations/cross-fade-webkit-mask-box-image-expected.txt: Removed.
  • platform/gtk/animations/cross-fade-webkit-mask-image-expected.png: Removed.
  • platform/gtk/animations/cross-fade-webkit-mask-image-expected.txt: Removed.
  • platform/ios/animations/cross-fade-border-image-source-expected.txt: Removed.
  • platform/ios/animations/cross-fade-list-style-image-expected.txt: Removed.
  • platform/ios/animations/cross-fade-webkit-mask-box-image-expected.txt: Removed.
  • platform/ios/animations/cross-fade-webkit-mask-image-expected.txt: Removed.
  • platform/mac/animations/cross-fade-border-image-source-expected.png: Removed.
  • platform/mac/animations/cross-fade-border-image-source-expected.txt: Removed.
  • platform/mac/animations/cross-fade-list-style-image-expected.png: Removed.
  • platform/mac/animations/cross-fade-list-style-image-expected.txt: Removed.
  • platform/mac/animations/cross-fade-webkit-mask-box-image-expected.png: Removed.
  • platform/mac/animations/cross-fade-webkit-mask-box-image-expected.txt: Removed.
  • platform/mac/animations/cross-fade-webkit-mask-image-expected.png: Removed.
  • platform/mac/animations/cross-fade-webkit-mask-image-expected.txt: Removed.
  • platform/win/animations/cross-fade-border-image-source-expected.txt: Removed.
  • platform/win/animations/cross-fade-list-style-image-expected.txt: Removed.
  • platform/win/animations/cross-fade-webkit-mask-box-image-expected.txt: Removed.
  • platform/wincairo/animations/cross-fade-border-image-source-expected.txt: Removed.
  • platform/wincairo/animations/cross-fade-list-style-image-expected.txt: Removed.
  • platform/wincairo/animations/cross-fade-webkit-mask-box-image-expected.txt: Removed.
  • platform/wincairo/animations/cross-fade-webkit-mask-image-expected.txt: Removed.
  • platform/wpe/animations/cross-fade-border-image-source-expected.txt: Removed.
  • platform/wpe/animations/cross-fade-list-style-image-expected.txt: Removed.
  • platform/wpe/animations/cross-fade-webkit-mask-box-image-expected.txt: Removed.
  • platform/wpe/animations/cross-fade-webkit-mask-image-expected.txt: Removed.
9:18 PM Changeset in webkit [257763] by Ben Nham
  • 7 edits in trunk

Add performance probes for HTML parsing
https://bugs.webkit.org/show_bug.cgi?id=208271

Reviewed by Daniel Bates.

This adds probes that show which lines of HTML are have been parsed.

Source/WebCore:

  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::pumpTokenizer):

  • html/parser/HTMLDocumentParser.h:

Source/WTF:

  • wtf/SystemTracing.h:

Tools:

  • Tracing/SystemTracePoints.plist:
9:14 PM Changeset in webkit [257762] by Ben Nham
  • 9 edits
    1 move
    1 add in trunk/Source

[WTF] Add signpost API
https://bugs.webkit.org/show_bug.cgi?id=208395

Reviewed by Alex Christensen.

We want to start using os_signpost instead of kdebug_trace when emitting performance events,
because it is usually cheaper (doesn't require a system call unless the log buffer is full)
and allows for richer tracepoints (allows for logging strings as well as integers).

To facilitate this, this moves the os_signpost wrappers in NetworkDataTaskCocoa to
WTF. Since signposts can contain sensitive strings (like URLs), currently we only enable
them on Apple-internal devices when an environment variable is set.

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/PlatformMac.cmake:
  • spi/darwin/OSVariantSPI.h: Renamed to wtf/spi/darwin/OSVariantSPI.h.

Source/WebKit:

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::didSendData):
(WebKit::NetworkDataTaskCocoa::didReceiveChallenge):
(WebKit::NetworkDataTaskCocoa::didCompleteWithError):
(WebKit::NetworkDataTaskCocoa::didReceiveData):
(WebKit::NetworkDataTaskCocoa::didReceiveResponse):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCocoa::cancel):
(WebKit::NetworkDataTaskCocoa::resume):
(signpostLogHandle): Deleted.
(signpostsEnabled): Deleted.

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/PlatformMac.cmake:
  • wtf/SystemTracing.h:
  • wtf/cocoa/SystemTracingCocoa.cpp: Added.

(WTFSignpostsEnabled):
(WTFSignpostLogHandle):

  • wtf/spi/darwin/OSVariantSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/OSVariantSPI.h.
8:57 PM Changeset in webkit [257761] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

REGRESSION (257739) [ Mac wk2 Release ] multiple tests crashing in WebCore::postUserInfoForChanges
https://bugs.webkit.org/show_bug.cgi?id=208488
<rdar://problem/59975669>

Reviewed by Chris Fleizach.

Ensure that we have a root web area before de-referencing it.

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postTextReplacementPlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotificationForTextControl):

8:07 PM Changeset in webkit [257760] by Andres Gonzalez
  • 13 edits in trunk/Source/WebCore

Fix for LayoutTests/accessibility/mac/value-change/value-change-user-info-contenteditable.html in IsolatedTree mode.
https://bugs.webkit.org/show_bug.cgi?id=208462

Reviewed by Chris Fleizach.

Covered by LayoutTests/accessibility/mac/value-change/value-change-user-info-contenteditable.html.

  • Updates the IsolatedTree on the TextStateChange notification.
  • Renamed isAccessibilityScrollView to isAccessibilityScrollViewInstance

and used isScrollView instead everywhere it's appropriate. This makes
code like AXObjectCache::rootWebArea work for both AXObjects and IsolatedObjects.

  • Moved several utility functions from WebAccessibilityObjectWrapperMac.mm

to AXObjectCacheMac.mm where they belong, so that they can be used by
AXObjectCache implementation in addition to by the wrapper.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::rootWebArea):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isOnScreen const):
(WebCore::AccessibilityObject::scrollToGlobalPoint const):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::getScrollableAreaIfScrollable const):

  • accessibility/AccessibilityScrollView.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityContainer]):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::isAccessibilityScrollViewInstance const):
(WebCore::AXIsolatedObject::isAccessibilityScrollView const): Renamed.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postTextStateChangePlatformNotification): Uses
TextMarker utilities instead of calling into the wrapper. This fixes
the crash caused by the wrapper updating the backingObject that in turn
may change the wrapper.
(WebCore::AXTextMarkerRange): Moved from WebAccessibilityObjectWrapperMac.mm.
(WebCore::textMarkerRangeFromMarkers): Moved from WebAccessibilityObjectWrapperMac.mm.
(WebCore::textMarkerForVisiblePosition): Moved from WebAccessibilityObjectWrapperMac.mm.
(WebCore::textMarkerRangeFromVisiblePositions): Moved from WebAccessibilityObjectWrapperMac.mm.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(AXTextMarkerRange): Moved.
(textMarkerForVisiblePosition): Moved.
(textMarkerRangeFromMarkers): Moved.
(textMarkerRangeFromVisiblePositions): Moved.

7:22 PM Changeset in webkit [257759] by Devin Rousso
  • 74 edits
    1 add
    23 deletes in trunk/Source

Web Inspector: Items in the toolbar take up to much vertical space
https://bugs.webkit.org/show_bug.cgi?id=204627
<rdar://problem/59091905>

Reviewed by Timothy Hatcher.

Source/WebCore:

Now that there is no toolbar area, there is nothing obstructing the ability for the window
to be moved around when dragging via the title bar area. As such, we can remove the unused
InspectorFrontendHost APIs.

  • inspector/InspectorFrontendHost.idl:
  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::startWindowDrag): Deleted.
(WebCore::InspectorFrontendHost::moveWindowBy const): Deleted.

  • inspector/InspectorFrontendClient.h:
  • inspector/InspectorFrontendClientLocal.h:
  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::moveWindowBy): Deleted.

Source/WebInspectorUI:

Merge the toolbar are and tab bar to waste less vertical space.

Existing toolbar buttons have been moved to a space before the tab bar, and are only shown
when needed (e.g. only show the reload button when remotely inspecting).

If there are any console warnings/errors, an icon for each type of message is shown between
the left buttons and the tabs, and each button's opacity is animated whenever a new message
is added.

Whenever the debugger pauses, change the tab bar icon of the Sources Tab to an image that
includes paused iconography to help convey the debugger's state no matter which tab is
currently selected, just like the debugger dashboard.

The dashboard network information has been moved to the Network Tab (described below).

When undocked, the tab bar and all the content below it are pushed down by 22px to make room
for the system close/minimize/maximize buttons and the window title.

  • UserInterface/Base/Main.js:

(WI.loaded):
(WI._handleSettingsKeyboardShortcut):
(WI._tryToRestorePendingTabs):
(WI.isNewTabWithTypeAllowed):
(WI._openDefaultTab): Deleted.
(WI.showNewTabTab): Deleted.

  • UserInterface/Views/Main.css:

(#undocked-title-area): Added.
(body.docked #undocked-title-area): Added.
(body.window-inactive #undocked-title-area): Added.
(#main):
(@keyframes tab-bar-console-item-pulse): Added.
(.tab-bar > .navigation-bar :matches(.console-warnings, .console-errors):not(.disabled).pulsing): Added.
(@media (prefers-color-scheme: dark) #undocked-title-area): Added.
(@media (prefers-color-scheme: dark) body.window-inactive #undocked-title-area): Added.
(body.docked.bottom): Deleted.
(body.docked.bottom #toolbar): Deleted.
(body.docked.bottom #toolbar .item:not(.flexible-space)): Deleted.

  • UserInterface/Views/TabBar.js:

(WI.TabBar):
(WI.TabBar.get horizontalPadding): Added.
(WI.TabBar.prototype.addNavigationItemBefore): Added.
(WI.TabBar.prototype.addNavigationItemAfter): Added.
(WI.TabBar.prototype.insertTabBarItem):
(WI.TabBar.prototype.insertTabBarItem.animateTabs):
(WI.TabBar.prototype.insertTabBarItem.removeStyles):
(WI.TabBar.prototype.removeTabBarItem):
(WI.TabBar.prototype.removeTabBarItem.animateTabs):
(WI.TabBar.prototype.removeTabBarItem.removeStyles):
(WI.TabBar.prototype.set selectedTabBarItem):
(WI.TabBar.prototype.get tabCount): Added.
(WI.TabBar.prototype.layout):
(WI.TabBar.prototype.layout.measureItemWidth):
(WI.TabBar.prototype.layout.recalculateItemWidths):
(WI.TabBar.prototype.didLayoutSubtree): Added.
(WI.TabBar.prototype._recordTabBarItemSizesAndPositions):
(WI.TabBar.prototype._recordTabBarItemSizesAndPositions.add): Added.
(WI.TabBar.prototype._applyTabBarItemSizesAndPositions):
(WI.TabBar.prototype._finishExpandingTabsAfterClose):
(WI.TabBar.prototype._finishExpandingTabsAfterClose.animateTabs):
(WI.TabBar.prototype._finishExpandingTabsAfterClose.removeStyles):
(WI.TabBar.prototype._handleClick):
(WI.TabBar.prototype._handleMouseMoved):
(WI.TabBar.prototype._handleMouseMoved.inlineStyleValue): Added.
(WI.TabBar.prototype._handleMouseUp):
(WI.TabBar.prototype._handleMouseLeave):
(WI.TabBar.prototype._handleContextMenu):
(WI.TabBar.prototype.get saveableTabCount): Deleted.
(WI.TabBar.layout.forceItemHidden): Deleted.

  • UserInterface/Views/TabBar.css:

(.tab-bar):
(body:not(.docked) .tab-bar): Added.
(body.docked .tab-bar): Added.
(body:matches(.window-inactive, .window-docked-inactive) .tab-bar): Added.
(.tab-bar > .border): Added.
(.tab-bar > .border.top): Added.
(.tab-bar > .border.bottom): Added.
(body.docked.bottom .tab-bar > .border.top): Added.
(body:matches(.window-inactive, .window-docked-inactive) .tab-bar > .border): Added.
(.tab-bar > .navigation-bar): Added.
(.tab-bar > .navigation-bar > .item.group > .item): Added.
(.tab-bar > .navigation-bar > .item.group > .item:nth-child(1 of :not(.hidden))): Added.
(.tab-bar > .navigation-bar > .item.group > .item:nth-last-child(1 of :not(.hidden))): Added.
(.tab-bar > .navigation-bar .item.divider): Added.
(body:matches(.window-inactive, .window-docked-inactive) .tab-bar > .navigation-bar > .item.divider): Added.
(.tab-bar > .tabs): Added.
(body.docked .tab-bar .tabs): Added.
(.tab-bar > .tabs > .item): Added.
(body:not(.docked) .tab-bar > .tabs > .item): Added.
(body:not(.docked) .tab-bar > .tabs > .item:not(.pinned)): Added.
(body.docked .tab-bar > .tabs > .item): Added.
(.tab-bar > .tabs.calculate-width > .item): Added.
(body[dir=ltr]:not(.docked) .tab-bar > .tabs > .item:not(:first-child), body[dir=ltr]:not(.docked) .tab-bar > .tabs:not(.hide-border-start) > .item:first-child, body[dir=ltr]:not(.docked) .tab-bar > .tabs.dragging-tab > .item.selected, body[dir=rtl]:not(.docked) .tab-bar > .tabs:not(.hide-border-end) > .item:last-child): Added.
(body[dir=ltr]:not(.docked) .tab-bar > .tabs:not(.hide-border-end) > .item:last-child, body[dir=rtl]:not(.docked) .tab-bar > .tabs > .item:not(:first-child), body[dir=rtl]:not(.docked) .tab-bar > .tabs:not(.hide-border-start) > .item:first-child, body[dir=rtl]:not(.docked) .tab-bar > .tabs.dragging-tab > .item.selected): Added.
(.tab-bar > .tabs > .item.pinned): Added.
(body.docked .tab-bar > .tabs > .item.pinned): Added.
(body:not(.docked) .tab-bar > .tabs > .item:not(.disabled).selected): Added.
(body.docked .tab-bar > .tabs > .item:not(.disabled).selected): Added.
(body:not(.docked) .tab-bar > .tabs:not(.animating) > .item:not(.selected, .disabled):hover): Added.
(body.docked .tab-bar > .tabs:not(.animating) > .item:not(.selected, .disabled):hover): Added.
(body[dir=ltr]:not(.docked) .tab-bar > .tabs:not(.animating) > .item:not(.selected, .disabled):hover, body[dir=ltr]:not(.docked) .tab-bar > .tabs:not(.animating) > .item:not(.selected, .disabled):hover + .item, body[dir=rtl]:not(.docked) .tab-bar > .tabs:not(.animating) > .item:last-child:not(.selected, .disabled):hover): Added.
(body[dir=ltr]:not(.docked) .tab-bar > .tabs:not(.animating) > .item:last-child:not(.selected, .disabled):hover, body[dir=rtl]:not(.docked) .tab-bar > .tabs:not(.animating) > .item:not(.selected, .disabled):hover, body[dir=rtl]:not(.docked) .tab-bar > .tabs:not(.animating) > .item:not(.selected, .disabled):hover + .item): Added.
(body:not(.docked):matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs > .item): Added.
(body:not(.docked):matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs > .item:not(.disabled).selected): Added.
(body.docked:matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs > .item:not(.disabled).selected): Added.
(.tab-bar > .tabs > .item > .flex-space): Added.
(.tab-bar > .tabs > .item > .icon): Added.
(.tab-bar > .tabs > .item.pinned > .icon): Added.
(.tab-bar > .tabs > .item:not(.selected):hover > .icon): Added.
(.tab-bar > .tabs > .item:not(.disabled).selected > .icon): Added.
(.tab-bar > .tabs > .item.disabled > .icon): Added.
(body:matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs > .item > .icon): Added.
(body:matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs > .item:not(.disabled).selected > .icon): Added.
(.tab-bar > .tabs > .item > .title): Added.
(body:matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs > .item > .title): Added.
(.tab-bar > .tabs > .item > .title > .content): Added.
(.tab-bar > .tabs:not(.animating) > .item:not(.selected):hover > .title): Added.
(.tab-bar > .tabs > .item:not(.disabled).selected > .title): Added.
(body:matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs > .item:not(.disabled).selected > .title): Added.
(.tab-bar > .tabs.static-layout): Added.
(.tab-bar > .tabs.static-layout > :matches(.flexible-space, .item)): Added.
(.tab-bar > .tabs.animating.closing-tab > .item): Added.
(.tab-bar > .tabs.animating:matches(.expanding-tabs, .inserting-tab) > .item): Added.
(.tab-bar > .tabs.animating.inserting-tab > .item.being-inserted): Added.
(body:not(.docked) .tab-bar > .tabs.dragging-tab > .item:not(.disabled).selected, body:not(.docked) .tab-bar > .tabs.static-layout:not(.animating.inserting-tab):not(.dragging-tab) > .item:nth-last-child(1 of :not(.pinned)), body:not(.docked) .tab-bar > .tabs.animating.closing-tab > .item:not(.disabled).selected): Added.
(body:not(.docked):matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs.dragging-tab > .item:not(.disabled).selected, body:not(.docked):matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs.static-layout:not(.animating.inserting-tab):not(.dragging-tab) > .item:nth-last-child(1 of :not(.pinned)), body:not(.docked):matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs.animating.closing-tab > .item:not(.disabled).selected): Added.
(.tab-bar > .tabs.dragging-tab > .item:not(.disabled).selected): Added.
(@media (prefers-color-scheme: dark) .tab-bar): Added.
(@media (prefers-color-scheme: dark) body.docked.bottom .tab-bar > .border.top): Added.
(@media (prefers-color-scheme: dark) body:not(.docked) .tab-bar > .tabs > .item): Added.
(@media (prefers-color-scheme: dark) .tab-bar > .tabs > .item:not(.disabled).selected): Added.
(@media (prefers-color-scheme: dark) body:not(.docked) .tab-bar > .tabs:not(.animating) > .item:not(.selected, .disabled):hover): Added.
(@media (prefers-color-scheme: dark) body.docked .tab-bar > .tabs:not(.animating) > .item:not(.selected, .disabled):hover): Added.
(@media (prefers-color-scheme: dark) .tab-bar > .tabs > .item > .icon): Added.
(@media (prefers-color-scheme: dark) body:not(.docked) .tab-bar > .tabs:not(.animating) > .item:not(.selected, .disabled):hover > .icon): Added.
(@media (prefers-color-scheme: dark) body:matches(.window-inactive, .window-docked-inactive) .tab-bar): Added.
(@media (prefers-color-scheme: dark) body:not(.docked):matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs > .item): Added.
(@media (prefers-color-scheme: dark) body:not(.docked):matches(.window-inactive, .window-docked-inactive) .tab-bar > .tabs > .item:not(.disabled).selected): Added.
(body.window-inactive .tab-bar): Deleted.
(.tab-bar > .top-border): Deleted.
(body.window-inactive .tab-bar > .top-border): Deleted.
(.tab-bar > .item): Deleted.
(.tab-bar.calculate-width > .item): Deleted.
(body[dir=ltr] .tab-bar > :nth-child(n + 2 of .item),): Deleted.
(body[dir=rtl] .tab-bar > :nth-child(n + 2 of .item),): Deleted.
(.tab-bar > .item.pinned): Deleted.
(.tab-bar > .item.pinned.tab-picker): Deleted.
(.tab-bar > .item:not(.disabled).selected): Deleted.
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover): Deleted.
(body[dir=ltr] .tab-bar:not(.animating) > .item:not(.selected, .disabled):hover,): Deleted.
(body[dir=rtl] .tab-bar:not(.animating) > .item:not(.selected, .disabled):hover,): Deleted.
(body.window-inactive .tab-bar > .item): Deleted.
(body[dir=ltr].window-inactive .tab-bar > .item): Deleted.
(body[dir=rtl].window-inactive .tab-bar > .item): Deleted.
(body.window-inactive .tab-bar > .item.selected): Deleted.
(.tab-bar > .item > .close): Deleted.
(body:not(.window-inactive) .tab-bar > .item:hover > .close): Deleted.
(body:not(.window-inactive) .tab-bar.single-tab > .item.default-tab:hover > .close): Deleted.
(.tab-bar.single-tab > .item.default-tab > .close): Deleted.
(.tab-bar > .item > .close:hover): Deleted.
(.tab-bar > .item > .close:active): Deleted.
(.tab-bar > .item > .flex-space): Deleted.
(.tab-bar > .item.ephemeral > .flex-space:last-child): Deleted.
(.tab-bar > .item > .icon): Deleted.
(.tab-bar > .item.pinned > .icon): Deleted.
(.tab-bar > .item.selected > .icon): Deleted.
(.tab-bar > .item.disabled > .icon): Deleted.
(@media not (prefers-color-scheme: dark) .tab-bar:not(.animating) > .item:not(.selected, .disabled):hover > .icon): Deleted.
(.tab-bar > .item > .title): Deleted.
(.tab-bar:not(.collapsed) > .item > .title): Deleted.
(.tab-bar > .item > .title > .content): Deleted.
(.tab-bar:not(.animating) > .item:not(.selected):hover > .title): Deleted.
(.tab-bar > .item.selected > .title): Deleted.
(.tab-bar.collapsed > .item): Deleted.
(.tab-bar.collapsed > .item:not(.pinned) > .icon): Deleted.
(.tab-bar.collapsed > .item > .flex-space): Deleted.
(.tab-bar.collapsed > .item > .close): Deleted.
(.tab-bar.collapsed > .item:hover > .close): Deleted.
(.tab-bar.collapsed > .item.ephemeral:hover > .icon): Deleted.
(.tab-bar.collapsed > .item.ephemeral:hover > .title): Deleted.
(.tab-bar.static-layout): Deleted.
(.tab-bar.static-layout > .item): Deleted.
(.tab-bar.animating.closing-tab > .item): Deleted.
(.tab-bar.animating:matches(.expanding-tabs, .inserting-tab) > .item): Deleted.
(.tab-bar.animating.inserting-tab > .item.being-inserted): Deleted.
(.tab-bar.dragging-tab > .item.selected,): Deleted.
(body.window-inactive .tab-bar.dragging-tab > .item.selected,): Deleted.
(.tab-bar.dragging-tab > .item.selected): Deleted.
(@media (prefers-color-scheme: dark) .tab-bar > .item): Deleted.
(@media (prefers-color-scheme: dark) .tab-bar > .item > .title): Deleted.
(@media (prefers-color-scheme: dark) .tab-bar > .item:not(.disabled).selected): Deleted.
(@media (prefers-color-scheme: dark) .tab-bar:not(.animating) > .item:not(.selected):hover): Deleted.
(@media (prefers-color-scheme: dark) .tab-bar > .item > .close,): Deleted.
(@media (prefers-color-scheme: dark) body.window-inactive .tab-bar): Deleted.
(@media (prefers-color-scheme: dark) body.window-inactive .tab-bar > .item): Deleted.
(@media (prefers-color-scheme: dark) body.window-inactive .tab-bar > .item.selected): Deleted.
(@media (prefers-color-scheme: dark) body.window-inactive .tab-bar > .item > .title): Deleted.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype.reset):
(WI.NetworkTableContentView.prototype.tablePopulateCell):
(WI.NetworkTableContentView.prototype._changeCollection):
(WI.NetworkTableContentView.prototype.initialLayout):
(WI.NetworkTableContentView.prototype.processHAR):
(WI.NetworkTableContentView.prototype._processPendingEntries):
(WI.NetworkTableContentView.prototype._updateEntryForResource):
(WI.NetworkTableContentView.prototype._mainResourceDidChange):
(WI.NetworkTableContentView.prototype._handleResourceSizeDidChange): Added.
(WI.NetworkTableContentView.prototype._resourceTransferSizeDidChange):
(WI.NetworkTableContentView.prototype._handleResourceAdded):
(WI.NetworkTableContentView.prototype._handleFrameWasAdded):
(WI.NetworkTableContentView.prototype._entryForResource):
(WI.NetworkTableContentView.prototype._updateStatistics): Added.
(WI.NetworkTableContentView.prototype._updateStatistic): Added.
(WI.NetworkTableContentView.prototype._startUpdatingLoadTimeStatistic): Added.
(WI.NetworkTableContentView.prototype._stopUpdatingLoadTimeStatistic): Added.
(WI.NetworkTableContentView.prototype._updateLoadTimeStatistic): Added.

  • UserInterface/Views/NetworkTableContentView.css:

(.content-view.network .network-table): Added.
(.network-table > .statistics): Added.
(.network-table > .statistics > .statistic): Added.
(.network-table > .statistics > .statistic[hidden]): Added.
(.network-table > .statistics > .statistic > .icon): Added.
(.network-table > .statistics > .statistic > .text): Added.
Add a fixed row below the network table that contains statistics information based on the
current shown collection (e.g. live data vs HAR):

  • number of domains
  • number of resources
  • total resource size
  • total transfer size
  • number of redirects
  • time to load

NOTE: elided renaming CSS changes.

  • UserInterface/Views/TabBrowser.js:

(WI.TabBrowser.prototype.addTabForContentView):
(WI.TabBrowser.prototype.closeTabForContentView):
(WI.TabBrowser.prototype._tabBarItemSelected):
(WI.TabBrowser.prototype._tabBarItemRemoved):

  • UserInterface/Views/TabContentView.js:

(WI.TabContentView.shouldPinTab): Added.

  • UserInterface/Views/AuditTabContentView.js:

(WI.AuditTabContentView):
(WI.AuditTabContentView.tabInfo):

  • UserInterface/Views/CanvasTabContentView.js:

(WI.CanvasTabContentView):
(WI.CanvasTabContentView.tabInfo):

  • UserInterface/Views/ConsoleTabContentView.js:

(WI.ConsoleTabContentView):
(WI.ConsoleTabContentView.tabInfo):

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WI.ContentBrowserTabContentView):

  • UserInterface/Views/ElementsTabContentView.js:

(WI.ElementsTabContentView):
(WI.ElementsTabContentView.tabInfo):

  • UserInterface/Views/LayersTabContentView.js:

(WI.LayersTabContentView):
(WI.LayersTabContentView.tabInfo):

  • UserInterface/Views/NetworkTabContentView.js:

(WI.NetworkTabContentView):
(WI.NetworkTabContentView.tabInfo):

  • UserInterface/Views/SearchTabContentView.js:

(WI.SearchTabContentView):
(WI.SearchTabContentView.tabInfo):
(WI.SearchTabContentView.shouldPinTab): Added.
(WI.SearchTabContentView.shouldSaveTab): Added.

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView):
(WI.SettingsTabContentView.tabInfo):
(WI.SettingsTabContentView.shouldPinTab): Added.
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

  • UserInterface/Views/SourcesTabContentView.js:

(WI.SourcesTabContentView):
(WI.SourcesTabContentView.tabInfo):
(WI.SourcesTabContentView.prototype._handleDebuggerPaused): Added.
(WI.SourcesTabContentView.prototype._handleDebuggerResumed): Added.

  • UserInterface/Views/StorageTabContentView.js:

(WI.StorageTabContentView):
(WI.StorageTabContentView.tabInfo):

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView):
(WI.TimelineTabContentView.tabInfo):

  • UserInterface/Views/TabBarItem.js:

(WI.TabBarItem):
(WI.TabBarItem.get horizontalMargin): Added.
(WI.TabBarItem.prototype.get element):
(WI.TabBarItem.prototype.get representedObject):
(WI.TabBarItem.prototype.set disabled):
(WI.TabBarItem.prototype.get hidden): Added.
(WI.TabBarItem.prototype.set hidden): Added.
(WI.TabBarItem.prototype.set representedObject): Deleted.
(WI.TabBarItem.prototype.get isDefaultTab): Deleted.
(WI.TabBarItem.prototype.set isDefaultTab): Deleted.

  • UserInterface/Views/GeneralTabBarItem.js:

(WI.GeneralTabBarItem.fromTabContentView): Added.
(WI.GeneralTabBarItem): Deleted.
(WI.GeneralTabBarItem.fromTabInfo): Deleted.
(WI.GeneralTabBarItem.prototype.get isEphemeral): Deleted.
(WI.GeneralTabBarItem.prototype._handleContextMenuEvent): Deleted.

  • UserInterface/Views/PinnedTabBarItem.js:

(WI.PinnedTabBarItem):
(WI.PinnedTabBarItem.fromTabContentView): Added.
(WI.PinnedTabBarItem.titleDidChange):
(WI.PinnedTabBarItem.fromTabInfo): Deleted.
(WI.PinnedTabBarItem.prototype.titleDidChange): Deleted.
(WI.PinnedTabBarItem.prototype._handleContextMenuEvent): Deleted.
Simplify how tab bar items are created.

  • UserInterface/Views/NavigationBar.js:

(WI.NavigationBar.prototype.get sizesToFit):
(WI.NavigationBar.prototype.addNavigationItem):
(WI.NavigationBar.prototype.insertNavigationItem):

  • UserInterface/Views/SizesToFitNavigationBar.js: Removed.
  • UserInterface/Views/Sidebar.js:

(WI.Sidebar):

  • UserInterface/Views/GraphicsOverviewContentView.js:

(WI.GraphicsOverviewContentView.prototype.initialLayout):
Support marking sizesToFit during construction, instead of having to make a subclass.

  • UserInterface/Views/ButtonNavigationItem.js:

(WI.ButtonNavigationItem):
(WI.ButtonNavigationItem.prototype.get imageType): Added.
(WI.ButtonNavigationItem.prototype.set imageType): Added.
(WI.ButtonNavigationItem.prototype._update):

  • UserInterface/Views/ButtonNavigationItem.css:

(.tab-bar > .navigation-bar .item.button.image-and-text > span): Added.
(.navigation-bar .item.button > img): Added.
(.navigation-bar .item.button.disabled > img): Added.
(body:matches(.window-inactive, .window-docked-inactive) .navigation-bar .item.button > img): Added.
(body:matches(.window-inactive, .window-docked-inactive) .navigation-bar .item.button.disabled > img): Added.
(@media (prefers-color-scheme: dark) .navigation-bar .item.button.disabled > img): Added.
Allow WI.ButtonNavigationItem to use an <img> instead of an <svg> for it's image. This
is to work around a compositing bug <https://webkit.org/b/207022>.

  • UserInterface/Views/GroupNavigationItem.js:

(WI.GroupNavigationItem.prototype.get hidden): Added.
(WI.GroupNavigationItem.prototype.set hidden): Added.
(WI.GroupNavigationItem.prototype.get additionalClassNames): Added.
Add a special case where this item is considered hidden if all sub-items are also hidden.

  • UserInterface/Views/Variables.css:

(:root):
(body:matches(.window-inactive, .window-docked-inactive)): Added.
(body:matches(.window-inactive, .window-docked-inactive) *): Added.
(body:not(.docked)): Added.
(@media (prefers-color-scheme: dark) :root):
(@media (prefers-color-scheme: dark) body:matches(.window-inactive, .window-docked-inactive)): Added.
(@media (prefers-color-scheme: dark) body:matches(.window-inactive, .window-docked-inactive) *): Added.
(body.window-inactive): Deleted.
(body.window-inactive *): Deleted.
(@media (prefers-color-scheme: dark) body.window-inactive): Deleted.
(@media (prefers-color-scheme: dark) body.window-inactive *): Deleted.
Replace --toolbar-height with --undocked-title-area-height, which is set when docked.
Define --tab-bar-height in terms of --navigation-bar-height so they share the same value.

  • UserInterface/Views/DividerNavigationItem.css:

(.navigation-bar .item.divider):
(@media (prefers-color-scheme: dark)):
Simplify the CSS in order to better support being used in the tab bar.

  • UserInterface/Views/FlexibleSpaceNavigationItem.css:

(.navigation-bar .item.flexible-space):
(.navigation-bar .item.flexible-space.align-start > .item):
(.navigation-bar .item.flexible-space.align-end > .item):
(:matches(.navigation-bar, .toolbar) .item.flexible-space): Deleted.
(:matches(.navigation-bar, .toolbar) .item.flexible-space.align-start > .item): Deleted.
(:matches(.navigation-bar, .toolbar) .item.flexible-space.align-end > .item): Deleted.
Remove toolbar styles.

  • UserInterface/Controllers/ConsoleManager.js:

(WI.ConsoleManager):
(WI.ConsoleManager.prototype.get warningCount): Added.
(WI.ConsoleManager.prototype.get errorCount): Added.
(WI.ConsoleManager.prototype.messageWasAdded):
(WI.ConsoleManager.prototype.messagesCleared):
(WI.ConsoleManager.prototype.messageRepeatCountUpdated):
(WI.ConsoleManager.prototype._incrementMessageLevelCount): Added.
(WI.ConsoleManager.prototype._delayedMessagesCleared):
Keep track of the count of warnings and errors so that they can be used to determine when to
show Console button navigation items in the tab bar.

  • UserInterface/Views/DOMTreeContentView.css:

(body:not(.window-inactive, .window-docked-inactive) .content-view.dom-tree .tree-outline.dom:focus li:matches(.selected, .hovered) .status-image.breakpoint): Added.
(body:not(.window-inactive, .window-docked-inactive) .content-view.dom-tree .tree-outline.dom:focus li:matches(.selected, .hovered) .status-image.breakpoint.subtree): Added.
(body:not(.window-inactive) .content-view.dom-tree .tree-outline.dom:focus li:matches(.selected, .hovered) .status-image.breakpoint): Deleted.
(body:not(.window-inactive) .content-view.dom-tree .tree-outline.dom:focus li:matches(.selected, .hovered) .status-image.breakpoint.subtree): Deleted.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:

(body:matches(.window-inactive, .window-docked-inactive) .timeline-overview-graph.rendering-frame > .frame-marker): Added.
(body.window-inactive .timeline-overview-graph.rendering-frame > .frame-marker): Deleted.

  • UserInterface/Views/TimelineOverview.css:

(.timeline-overview > .tree-outline.timelines .item.selected + .item, body:matches(.window-inactive, .window-docked-inactive) .timeline-overview > .tree-outline.timelines .item.selected + .item): Added.
(@media (prefers-color-scheme: dark) .timeline-overview > .tree-outline.timelines .item.selected + .item, body:matches(.window-inactive, .window-docked-inactive) .timeline-overview > .tree-outline.timelines .item.selected + .item): Added.
(.timeline-overview > .tree-outline.timelines .item.selected + .item, body.window-inactive .timeline-overview > .tree-outline.timelines .item.selected + .item): Deleted.
(@media (prefers-color-scheme: dark) .timeline-overview > .tree-outline.timelines .item.selected + .item, body.window-inactive .timeline-overview > .tree-outline.timelines .item.selected + .item): Deleted.

  • UserInterface/Views/TimelineRecordFrame.css:

(body:matches(.window-inactive, .window-docked-inactive) .timeline-record-frame.selected): Added.
(body.window-inactive .timeline-record-frame.selected): Deleted.

  • UserInterface/Views/TimelineRuler.css:

(body:matches(.window-inactive, .window-docked-inactive) .timeline-ruler > .header > .divider): Added.
(body.window-inactive .timeline-ruler > .header > .divider): Deleted.
Add selectors for .window-docked-inactive everywhere that .window-inactive exists.

  • UserInterface/Base/Setting.js:

Remove new tab bar experimental setting.

  • UserInterface/Debug/Bootstrap.js:

(WI.runBootstrapOperations):
(WI.runBootstrapOperations.applyDumpMessagesState):
(WI.runBootstrapOperations.updateDebugUI):

  • UserInterface/Main.html:
  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/ActivateButtonToolbarItem.js: Removed.
  • UserInterface/Views/ButtonToolbarItem.js: Removed.
  • UserInterface/Views/ButtonToolbarItem.css: Removed.
  • UserInterface/Views/ControlToolbarItem.js: Removed.
  • UserInterface/Views/ControlToolbarItem.css: Removed.
  • UserInterface/Views/Toolbar.js: Removed.
  • UserInterface/Views/Toolbar.css: Removed.

Remove toolbar related code now that it has been merged into the tab bar.

  • UserInterface/Models/DebuggerDashboard.js: Removed.
  • UserInterface/Models/DefaultDashboard.js: Removed.
  • UserInterface/Views/DashboardContainerView.js: Removed.
  • UserInterface/Views/DashboardContainerView.css: Removed.
  • UserInterface/Views/DashboardView.js: Removed.
  • UserInterface/Views/DebuggerDashboardView.js: Removed.
  • UserInterface/Views/DebuggerDashboardView.css: Removed.
  • UserInterface/Views/DefaultDashboardView.js: Removed.
  • UserInterface/Views/DefaultDashboardView.css: Removed.

Remove dashboard related code now that it has been merged into the tab bar.

  • UserInterface/Views/LegacyTabBar.js: Removed.
  • UserInterface/Views/NewTabContentView.js: Removed.
  • UserInterface/Views/NewTabContentView.css: Removed.
  • UserInterface/Images/NewTab.svg: Removed.
  • UserInterface/Images/NewTabPlus.svg: Removed.
  • UserInterface/Images/SearchResults.svg: Removed.

Remove the lebacy tab bar in favor of the new tab bar.

Source/WebKit:

Now that there is no toolbar area, there is nothing obstructing the ability for the window
to be moved around when dragging via the title bar area. As such, we can remove the unused
InspectorFrontendHost APIs.

  • WebProcess/Inspector/WebInspectorUI.h:
  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::startWindowDrag): Deleted.
(WebKit::WebInspectorUI::moveWindowBy): Deleted.

  • UIProcess/Inspector/WebInspectorProxy.messages.in:
  • UIProcess/Inspector/WebInspectorProxy.h:
  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::startWindowDrag): Deleted.
(WebKit::WebInspectorProxy::platformStartWindowDrag): Deleted.

  • UIProcess/Inspector/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformStartWindowDrag): Deleted.

  • UIProcess/Inspector/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformStartWindowDrag): Deleted.

  • UIProcess/Inspector/win/WebInspectorProxyWin.cpp:

(WebKit::WebInspectorProxy::platformStartWindowDrag): Deleted.

  • UIProcess/Inspector/wpe/WebInspectorProxyWPE.cpp:

(WebKit::WebInspectorProxy::platformStartWindowDrag): Deleted.

  • WebProcess/Inspector/RemoteWebInspectorUI.h:
  • WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::startWindowDrag): Deleted.
(WebKit::RemoteWebInspectorUI::moveWindowBy): Deleted.

  • UIProcess/Inspector/RemoteWebInspectorProxy.messages.in:
  • UIProcess/Inspector/RemoteWebInspectorProxy.cpp:
  • UIProcess/Inspector/RemoteWebInspectorProxy.h:

(WebKit::RemoteWebInspectorProxy::startWindowDrag): Deleted.
(WebKit::RemoteWebInspectorProxy::platformStartWindowDrag): Deleted.

  • UIProcess/Inspector/gtk/RemoteWebInspectorProxyGtk.cpp:

(WebKit::RemoteWebInspectorProxy::platformStartWindowDrag): Deleted.

  • UIProcess/Inspector/mac/RemoteWebInspectorProxyMac.mm:

(WebKit::RemoteWebInspectorProxy::platformStartWindowDrag): Deleted.

  • UIProcess/Inspector/win/RemoteWebInspectorProxyWin.cpp:

(WebKit::RemoteWebInspectorProxy::platformStartWindowDrag): Deleted.

Source/WebKitLegacy/ios:

Now that there is no toolbar area, there is nothing obstructing the ability for the window
to be moved around when dragging via the title bar area. As such, we can remove the unused
InspectorFrontendHost APIs.

  • WebCoreSupport/WebInspectorClientIOS.mm:

(WebInspectorFrontendClient::startWindowDrag): Deleted.

Source/WebKitLegacy/mac:

Now that there is no toolbar area, there is nothing obstructing the ability for the window
to be moved around when dragging via the title bar area. As such, we can remove the unused
InspectorFrontendHost APIs.

  • WebCoreSupport/WebInspectorClient.h:
  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorFrontendClient::startWindowDrag): Deleted.

7:11 PM Changeset in webkit [257758] by Brent Fulgham
  • 15 edits in trunk/Source/WebKit

Add flag to indicate that ITP state was explicitly set
https://bugs.webkit.org/show_bug.cgi?id=208461
<rdar://problem/59960829>

Reviewed by John Wilander.

Now that ITP is supported in Ephemeral sessions, we would like to move to a process-wide
concept of ITP being on or off, rather than controlling this at a website data level.
This patch takes the first step by adding a flag to the WebKit::NetworkSessionCreationParameters
structure that tracks whether the state of ITP (On or Off) was explicitly set by
SPI (primarily during testing).

This patch also ensures that we can communicate with TCC for the purpose of checking if
ITP is on or off.

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

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

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Scripts/process-entitlements.sh:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetResourceLoadStatisticsEnabled):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _setResourceLoadStatisticsEnabled:]):

  • UIProcess/Cocoa/VersionChecks.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::createNewWebProcess):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setIsRunningResourceLoadStatisticsTest):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::itpStateWasExplicitlySet const):
(WebKit::WebsiteDataStore::useExplicitITPState):

7:03 PM Changeset in webkit [257757] by Jon Davis
  • 13 edits in trunk/Source/WebInspectorUI

Updated breakpoint and search type icons
https://bugs.webkit.org/show_bug.cgi?id=208453

Reviewed by Devin Rousso.

  • UserInterface/Images/ApplicationCacheManifest.svg:
  • UserInterface/Images/ClippingIcons.svg:
  • UserInterface/Images/DocumentIcons.svg:
  • UserInterface/Images/FolderGeneric.svg:
  • UserInterface/Images/InstrumentIcons.svg:
  • UserInterface/Images/NavigationItemNetworkOverride.svg:
  • UserInterface/Images/Origin.svg:
  • UserInterface/Images/TableIcons.svg:
  • UserInterface/Images/TypeIcons.svg:
  • UserInterface/Views/BreakpointTreeElement.css:

(.breakpoint-debugger-statement-icon .icon):
(.breakpoint-generic-line-icon .icon):
(@media (prefers-color-scheme: dark) .breakpoint-debugger-statement-icon .icon):
(@media (prefers-color-scheme: dark) .breakpoint-generic-line-icon .icon):

  • UserInterface/Views/EventBreakpointTreeElement.css:

(.breakpoint.event.breakpoint-for-animation-frame:not(.breakpoint-paused-icon) .icon):
(.breakpoint.event.breakpoint-for-interval:not(.breakpoint-paused-icon) .icon):
(.breakpoint.event.breakpoint-for-listener:not(.breakpoint-paused-icon) .icon):
(.breakpoint.event.breakpoint-for-timeout:not(.breakpoint-paused-icon) .icon):
(@media(prefers-color-scheme: dark) .breakpoint.event.breakpoint-for-animation-frame:not(.breakpoint-paused-icon) .icon):
(@media(prefers-color-scheme: dark) .breakpoint.event.breakpoint-for-interval:not(.breakpoint-paused-icon) .icon):
(@media(prefers-color-scheme: dark) .breakpoint.event.breakpoint-for-listener:not(.breakpoint-paused-icon) .icon):
(@media(prefers-color-scheme: dark) .breakpoint.event.breakpoint-for-timeout:not(.breakpoint-paused-icon) .icon):

  • UserInterface/Views/FolderIcon.css:

(.tree-outline .folder-icon.selected:focus .icon):
(.tree-outline .origin-icon.selected:focus .icon):
(.tree-outline:focus .folder-icon.selected .icon): Deleted.
(.tree-outline:focus .origin-icon.selected .icon): Deleted.

  • UserInterface/Views/RecordingActionTreeElement.css:

(.item.recording-action > .icon):
(@media (prefers-color-scheme: dark) .item.recording-action > .icon):

6:59 PM Changeset in webkit [257756] by Devin Rousso
  • 4 edits in trunk/Source/WebCore

Remove the required LockHolder when calling WebAnimation::instances()
https://bugs.webkit.org/show_bug.cgi?id=208493

Reviewed by Simon Fraser.

Since WebAnimations are not accessible from Workers (e.g. main thread only), there's no
reason to require that a lock be held in order to access WebAnimation::instances().

  • animation/WebAnimation.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::WebAnimation):
(WebCore::WebAnimation::~WebAnimation):
(WebCore::WebAnimation::instancesMutex): Deleted.

  • inspector/agents/InspectorAnimationAgent.cpp:

(WebCore::InspectorAnimationAgent::enable):

6:49 PM Changeset in webkit [257755] by Alan Coon
  • 60 edits in trunk

Add new Mac target numbers
https://bugs.webkit.org/show_bug.cgi?id=208398

Reviewed by Alexey Proskuryakov.

Source/bmalloc:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebCore:

No new tests: adding target numbers doesn't necessitate any new testing.

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebKit:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:
  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WTF:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
6:37 PM Changeset in webkit [257754] by pvollan@apple.com
  • 14 edits
    1 add in trunk

[Cocoa] Mapping from MIME type to UTI type should be done in the UI process
https://bugs.webkit.org/show_bug.cgi?id=208415

Reviewed by Brent Fulgham.

Source/WebCore:

This is currently done in the WebContent process, but since this is using a system service which will be closed,
this mapping should be moved to the UI process. The UI process will create this mapping for a set of mime types,
and send it to the WebContent process.

API test: WebKit.UTIFromMIMEType

  • platform/network/mac/UTIUtilities.h:
  • platform/network/mac/UTIUtilities.mm:

(WebCore::mapUTIFromMIMEType):
(WebCore::UTIFromMIMETypeCachePolicy::createValueForKey):
(WebCore::cacheUTIFromMimeType):
(WebCore::UTIFromMIMEType):
(WebCore::mimeTypes):
(WebCore::createUTIFromMIMETypeMap):
(WebCore::setUTIFromMIMETypeMap):

  • testing/Internals.cpp:

(WebCore::Internals::getUTIFromMIMEType):

  • testing/Internals.mm:

(WebCore::Internals::getUTIFromMIMEType):

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

Source/WebKit:

Send the mapping between MIME types and UTI types to the WebContent process as part of the Web
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/UTIFromMIMEType.mm: Added.

(TEST):

6:33 PM Changeset in webkit [257753] by Jon Davis
  • 2 edits in trunk/Source/WebInspectorUI

Update the resource override button icon
https://bugs.webkit.org/show_bug.cgi?id=208459

Reviewed by Devin Rousso.

  • UserInterface/Images/NavigationItemNetworkOverride.svg:
6:19 PM Changeset in webkit [257752] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Frame::layerTreeAsText should make sure that all the frames are clean and up-to-date
https://bugs.webkit.org/show_bug.cgi?id=208484
<rdar://problem/59972433>

Reviewed by Simon Fraser.

window.internals.layerTreeAsText() is designed to dump the layer structure of the current page content.
It calls updateLayout() on the mainframe's document to make sure we collect the layer information on a clear tree.
However Document::updateLayout is scoped to the current document's frame (the mainframe in this case) and
leaves all the other frames dirty.

  • page/Frame.cpp:

(WebCore::Frame::layerTreeAsText const):

5:49 PM Changeset in webkit [257751] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] http/tests/workers/service/postmessage-after-sw-process-crash.https.html is flaky failing, timing out and crashing.
https://bugs.webkit.org/show_bug.cgi?id=208491

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
5:01 PM Changeset in webkit [257750] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed sandbox compile fix.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
4:59 PM Changeset in webkit [257749] by dbates@webkit.org
  • 6 edits in trunk/Source

Annotate editable elements with hit test order
https://bugs.webkit.org/show_bug.cgi?id=208463
<rdar://problem/59962843>

Reviewed by Wenson Hsieh.

Source/WebCore:

Until <rdar://problem/59737118> is fixed, annotate editable elements with their hit test order
towards fixing <rdar://problem/59602885>.

  • dom/ElementContext.h:

(WebCore::ElementContext::encode const):
(WebCore::ElementContext::decode):
Encode and decode the optional hit test order.

Source/WebKit:

Until <rdar://problem/59737118> is fixed, annotate editable elements with their hit test
order towards fixing <rdar://problem/59602885>. Only element contexts created as a result
of calling WebPage::textInputContextsInRect() have a meaningful hit test order.

Note that the hit test order of an element can only be meaningfully compared to the hit test
order of other elements returned in the same invocation of WebPage::textInputContextsInRect().
That is, the hit test order is not render tree-unique. So, the same element returned by two
different invocations of WebPage::textInputContextsInRect() cannot be compared to any other
element outside of the list it was returned in even if its order is the same in both lists.

  • UIProcess/API/Cocoa/_WKTextInputContext.mm:

(-[_WKTextInputContext _hitTestOrder]): Added. If the context does not have a hit test order
(e.g. returned form WebPage::contextForElement()) then I chose to return 0 – treat it as the
frontmost element.

  • UIProcess/API/Cocoa/_WKTextInputContextInternal.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::textInputContextsInRect): Assign each element's hit test order. Following
r257722 the elements are already ordered by hit test order (frontmost to backmost). So, we can
simply assign monotonically increasing numbers.
(WebKit::WebPage::contextForElement const): Pass WTF::nullopt for the hit test order as I do
not have a need to support hit test order for individual elements.

4:57 PM Changeset in webkit [257748] by Ross Kirsling
  • 4 edits in trunk/Source/WebCore

Unreviewed restabilization of non-unified build.

  • css/parser/CSSSelectorParser.cpp:
  • css/parser/CSSSelectorParser.h:
  • layout/blockformatting/PrecomputedBlockMarginCollapse.cpp:
4:39 PM Changeset in webkit [257747] by commit-queue@webkit.org
  • 8 edits in trunk/Source

Implement canvas remote rendering
https://bugs.webkit.org/show_bug.cgi?id=204955

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-02
Reviewed by Jon Lee.

Source/WebCore:

Prepare ConcreteImageBuffer to be created without immediate backend.
RemoteImageBuffer, which is a superclass of ConcreteImageBuffer, will be
created initially without a backend. It will be created when its twin
RemoteImageBufferProxy in the GPUProcess shares its backend.

  • platform/graphics/ConcreteImageBuffer.h:

(WebCore::ConcreteImageBuffer::ensureBackendCreated const):
(WebCore::ConcreteImageBuffer::ensureBackend const): Deleted.

Source/WebKit:

  • WebProcess/GPU/graphics/RemoteImageBuffer.h:
  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.cpp:

(WebKit::RemoteImageBufferMessageHandler::waitForCreateImageBufferBackend):
(WebKit::RemoteImageBufferMessageHandler::waitForCommitImageBufferFlushContext):
Synchronize the RemoteImageBuffer backend such that the context and the
DrawingContext are flushed to the backend in the GPUProcess only when
its pixels are needed in the WebProcess.

  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.h:

(WebKit::RemoteImageBufferMessageHandler::isPendingFlush const):
Tells whether the pixels of the backend is ready to use or a flushing is
being committed.

  • WebProcess/GPU/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::waitForCreateImageBufferBackend):
(WebKit::RemoteRenderingBackend::waitForCommitImageBufferFlushContext):

  • WebProcess/GPU/graphics/RemoteRenderingBackend.h:

They block execution till certain RemoteRenderingBackendProxy messages
are received.

4:16 PM Changeset in webkit [257746] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebCore

ScriptController::executeIfJavaScriptURL() uses wrong JSGlobalObject.
https://bugs.webkit.org/show_bug.cgi?id=208290
<rdar://problem/59839476>

Reviewed by Chris Dumez.

The call to executeScriptIgnoringException() may have changed the current global
object of the window. We should be using the original global object that produced
the result string.

Also added a missing exception check needed after a potential rope resolution.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeIfJavaScriptURL):

3:58 PM Changeset in webkit [257745] by Jacob Uphoff
  • 14 edits
    1 delete in trunk

Unreviewed, rolling out r257725.

This commit caused 10 API tests to fail

Reverted changeset:

"[Cocoa] Mapping from MIME type to UTI type should be done in
the UI process"
https://bugs.webkit.org/show_bug.cgi?id=208415
https://trac.webkit.org/changeset/257725

3:56 PM Changeset in webkit [257744] by Alan Coon
  • 1 copy in tags/Safari-610.1.5.1

Tag Safari-610.1.5.1.

3:53 PM Changeset in webkit [257743] by sbarati@apple.com
  • 18 edits in trunk

Don't skip tests unnecessarily on arm64
https://bugs.webkit.org/show_bug.cgi?id=208470
<rdar://problem/59968869>

Reviewed by Tadeu Zagallo.

JSTests:

  • microbenchmarks/bit-test-constant.js:
  • microbenchmarks/bit-test-nonconstant.js:
  • microbenchmarks/memcpy-typed-loop-large.js:
  • microbenchmarks/memcpy-typed-loop-small.js:
  • microbenchmarks/mul-immediate-sub.js:
  • stress/dont-range-based-iterate-vector-that-is-mutated.js:
  • stress/dont-reserve-huge-capacity-lexer.js:
  • stress/new-largeish-contiguous-array-with-size.js:
  • stress/sampling-profiler-richards.js:
  • typeProfiler/deltablue-for-of.js:
  • typeProfiler/getter-richards.js:
  • wasm/regress/llint-callee-saves-with-fast-memory.js:

Tools:

  • Scripts/run-jsc-stress-tests:

LayoutTests:

  • js/script-tests/array-from.js:
  • js/script-tests/function-apply-many-args.js:
3:42 PM Changeset in webkit [257742] by Alan Coon
  • 8 edits in branches/safari-610.1.5-branch/Source

Versioning.

2:56 PM Changeset in webkit [257741] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] is css3/shapes/shape-outside/shape-image/shape-image-025.html flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208476

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:50 PM Changeset in webkit [257740] by Megan Gardner
  • 5 edits in trunk/Source

Add date/time style to macCatalyst
https://bugs.webkit.org/show_bug.cgi?id=208456

Reviewed by Wenson Hsieh.

Source/WebKit:

Add style flag for date/time pickers on macCatalyst.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/forms/WKFormInputControl.mm:

(-[WKDateTimePicker datePickerStyle]):
(-[WKDateTimePicker initWithView:datePickerMode:]):

Source/WTF:

  • wtf/PlatformHave.h:
2:50 PM Changeset in webkit [257739] by Andres Gonzalez
  • 20 edits in trunk

Fix for LayoutTests/accessibility/mac/search-text/search-text.html in IsolatedTree mode.
https://bugs.webkit.org/show_bug.cgi?id=208434

Reviewed by Chris Fleizach.

Source/WebCore:

Covered by LayoutTests/accessibility/mac/search-text/search-text.html

  • Updates IsolatedTree for AXSelectedTextChanged notifications.
  • Exposes webAreaObject through the AXCoreObject interface.
  • AXIsolatedObject implementation for hasApplePDFAnnotationAttribute,

webAreaObject and stringForRange.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::updateIsolatedTree):
(WebCore::AXObjectCache::rootWebArea):

  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::isLoaded const):
(WebCore::AccessibilityRenderObject::accessKey const):

  • accessibility/AccessibilityScrollView.h:
  • accessibility/ios/AXObjectCacheIOS.mm:

(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotificationForTextControl):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::stringForRange const):
(WebCore::AXIsolatedObject::hasApplePDFAnnotationAttribute const): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::removeNode):
(WebCore::AXIsolatedTree::applyPendingChanges):

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::addTextMarkerFor):
(WebCore::textReplacementChangeDictionary):
(WebCore::postUserInfoForChanges):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotificationForTextControl):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper textMarkerRangeFromVisiblePositions:endPosition:]):
(-[WebAccessibilityObjectWrapper associatedPluginParent]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:

(WTR::AccessibilityController::AccessibilityController): Initializes m_useAXThread.
(WTR::AccessibilityController::rootElement): No need to set m_useAXThread here since it is initialize in the constructor.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm:

(WTR::AccessibilityController::accessibleElementById): Same as above.

LayoutTests:

  • accessibility/mac/aria-expanded-notifications.html:

With this change, we now get the FocusChanged notification when the
script sets focus to a tree item.

2:26 PM Changeset in webkit [257738] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] tiled-drawing/scrolling/fast-scroll-div-latched-mainframe-with-handler.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208471

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:03 PM Changeset in webkit [257737] by Russell Epstein
  • 1 copy in tags/Safari-609.1.20.111.8

Tag Safari-609.1.20.111.8.

2:02 PM Changeset in webkit [257736] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ macOS wk2 ] webgpu/whlsl/textures-sample-level.html is flaky failing and crashing
https://bugs.webkit.org/show_bug.cgi?id=207078

Unreviewed test gardening.

Corrected the expectations, so that they reflect the image failure issue and crashing.

  • platform/mac-wk2/TestExpectations:
2:02 PM Changeset in webkit [257735] by Russell Epstein
  • 1 copy in tags/Safari-609.1.20.0.9

Tag Safari-609.1.20.0.9.

1:55 PM Changeset in webkit [257734] by Russell Epstein
  • 8 edits in branches/safari-609.1.20.111-branch/Source

Versioning.

1:55 PM Changeset in webkit [257733] by Russell Epstein
  • 8 edits in branches/safari-609.1.20.0-branch/Source

Versioning.

1:25 PM Changeset in webkit [257732] by Wenson Hsieh
  • 3 edits in trunk/Source/WebCore

Make Path::Path(const Path&) and Path::operator=(const Path&) cheap
https://bugs.webkit.org/show_bug.cgi?id=208265
<rdar://problem/59922452>

Reviewed by Darin Adler.

Make WebCore::Path's copy constructor and copy assignment operator cheaper. See below for more details; there
should be no observable change in behavior. This gives us approximately 6% back on the canvas lines subtest on
MotionMark, when the GPU process is used to render canvases (tested against macOS 10.15.3, on a 10-core iMac).

  • platform/graphics/Path.h:
  • platform/graphics/cg/PathCG.cpp:

(WebCore::Path::~Path):
(WebCore::Path::ensurePlatformPath):
(WebCore::Path::Path):

Update move constructors to set m_copyPathBeforeMutation to false on the given (moved) path.

(WebCore::Path::swap):
(WebCore::Path::initializeOrCopyPlatformPathIfNeeded):

Whenever we need to ensure the platform CGPath (i.e. prior to appending to it), check the new flag to see
whether it's necessary to apply the subsequent mutation on a copy of m_path, rather than m_path itself. The
exception to this is when m_path only has a retain count of 1, which implies that all other copies of this path
have been mutated (and have copied their platform CGPath as a result); this means it's safe to apply changes to
m_path, since this path is now the sole owner of the CGPath.

(WebCore::Path::operator=):

The copy constructor and copy assignment operators currently call CGPathCreateMutableCopy on the given path's
platform CGPath; this is to ensure that if either path is mutated in the future, the mutation won't also affect
the other copy of the WebCore::Path.

However, this call to CGPathCreateMutableCopy isn't needed in the case where a path is copied, but neither of
the paths are mutated. To avoid this extra copy, we can instead introduce a dirty bit (m_copyPathBeforeMutation)
that is set when a path is copied (either via the constructor, or through assignment) and proceed to simply copy
the path pointer to the new path. Only if either path is mutated do we then call CGPathCreateMutableCopy.

(WebCore::Path::transform):
(WebCore::Path::closeSubpath):
(WebCore::Path::addArc):
(WebCore::Path::addPath):
(WebCore::Path::clear):

1:21 PM Changeset in webkit [257731] by Jason_Lawrence
  • 3 edits in trunk/LayoutTests

[ iOS wk2 Debug and Mac Debug ] imported/w3c/IndexedDB-private-browsing/idbobjectstore_createIndex6-event_order.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208467

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
1:12 PM Changeset in webkit [257730] by commit-queue@webkit.org
  • 22 edits
    4 copies
    5 adds in trunk/Source

Implement the remote ImageBuffer
https://bugs.webkit.org/show_bug.cgi?id=207221

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-02
Reviewed by Jon Lee.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/ConcreteImageBuffer.h:

(WebCore::ConcreteImageBuffer::create):
ConcreteImageBuffer::create returns the derived class which it creates.

  • platform/graphics/displaylists/DisplayList.h:

This using statement gives compilation error when referencing DisplayList
from WebKit.

  • platform/graphics/displaylists/DisplayListDrawingContext.h:

RemoteImageBuffer inherits DisplayList::ImageBuffer so these methods
need to be exported.

  • platform/graphics/displaylists/DisplayListImageBuffer.h:

(WebCore::DisplayList::ImageBuffer::ImageBuffer):
Make it possible for RemoteImageBuffer to be created with no backend. It
will be created later when RemoteImageBufferProxy shares its backend with
RemoteImageBuffer.

Source/WebKit:

RemoteImageBuffer and RemoteImageBufferProxy represent a single remote
ImageBuffer. The back end should be created by RemoteImageBufferProxy in
GPUProcess and shared with the RemoteImageBuffer in the WebProcess.
Flushing the DrawingContext will be done in GPUProcess. But creating the
native image out of the back end will be in GPUProcess.

RemoteRenderingBackend and RemoteRenderingBackendProxy are central points
for receiving and sending all the messages of the RemoteImageBuffer and
RemoteImageBufferProxy.

  • GPUProcess/graphics/PlatformRemoteImageBufferProxy.h: Added.

Defines the platform types of RemoteImageBufferProxy.

  • GPUProcess/graphics/RemoteImageBufferMessageHandlerProxy.cpp: Added.

(WebKit::RemoteImageBufferMessageHandlerProxy::RemoteImageBufferMessageHandlerProxy):
(WebKit::RemoteImageBufferMessageHandlerProxy::createBackend):
(WebKit::RemoteImageBufferMessageHandlerProxy::commitFlushContext):

  • GPUProcess/graphics/RemoteImageBufferMessageHandlerProxy.h: Added.

Manages sending and receiving the messages of RemoteImageBufferProxy

  • GPUProcess/graphics/RemoteImageBufferProxy.h: Added.

(WebKit::RemoteImageBufferProxy::create):
(WebKit::RemoteImageBufferProxy::RemoteImageBufferProxy):
It is responsible for creating a shared back end and replaying back drawing
commands.

  • GPUProcess/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::createImageBuffer):
(WebKit::RemoteRenderingBackendProxy::releaseImageBuffer):
(WebKit::RemoteRenderingBackendProxy::flushImageBufferDrawingContext):

  • GPUProcess/graphics/RemoteRenderingBackendProxy.h:

(WebKit::RemoteRenderingBackendProxy::renderingBackendIdentifier const):

  • GPUProcess/graphics/RemoteRenderingBackendProxy.messages.in:

Handle or dispatch messages received from RemoteRenderingBackend.

  • Scripts/webkit/messages.py:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/ImageBufferFlushIdentifier.h: Added.
  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:

(WebKit::ImageBufferShareableBitmapBackend::create):

  • WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:

Although hostWindow isn't used, this is what ConcreteImageBuffer::create
expects from the creator of the backend.

  • WebProcess/GPU/graphics/PlatformRemoteImageBuffer.h: Added.

Defines the platform types of RemoteImageBuffer.

  • WebProcess/GPU/graphics/RemoteImageBuffer.h: Added.

(WebKit::RemoteImageBuffer::create):
(WebKit::RemoteImageBuffer::RemoteImageBuffer):
It is responsible for creating RemoteImageBufferProxy and performing the
drawing commands in the GPUProcess.

  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.cpp: Added.

(WebKit::RemoteImageBufferMessageHandler::RemoteImageBufferMessageHandler):
(WebKit::RemoteImageBufferMessageHandler::~RemoteImageBufferMessageHandler):
(WebKit::RemoteImageBufferMessageHandler::flushDrawingContext):
(WebKit::RemoteImageBufferMessageHandler::commitFlushContext):

  • WebProcess/GPU/graphics/RemoteImageBufferMessageHandler.h: Added.

(WebKit::RemoteImageBufferMessageHandler::imageBufferIdentifier const):
Manages sending and receiving the messages of RemoteImageBuffer.

  • WebProcess/GPU/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::createImageBuffer):
(WebKit::RemoteRenderingBackend::releaseImageBuffer):
(WebKit::RemoteRenderingBackend::createImageBufferBackend):
(WebKit::RemoteRenderingBackend::commitImageBufferFlushContext):

  • WebProcess/GPU/graphics/RemoteRenderingBackend.h:

(WebKit::RemoteRenderingBackend::renderingBackendIdentifier const):

  • WebProcess/GPU/graphics/RemoteRenderingBackend.messages.in:

Handle or dispatch messages received from RemoteRenderingBackendProxy.

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.cpp:

(WebKit::ImageBufferShareableIOSurfaceBackend::create):

  • WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h:

Although hostWindow isn't used, this is what ConcreteImageBuffer::create
expects from the creator of the backend.

1:07 PM Changeset in webkit [257729] by commit-queue@webkit.org
  • 6 edits
    19 adds in trunk

Fix behavior of pings regarding Origin header
https://bugs.webkit.org/show_bug.cgi?id=207102

Patch by Rob Buis <rbuis@igalia.com> on 2020-03-02
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Import relevant tests.

  • web-platform-tests/html/semantics/links/downloading-resources/header-origin-expected.txt: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin-no-referrer-expected.txt: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin-no-referrer-when-downgrade-expected.txt: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin-no-referrer-when-downgrade.html: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin-no-referrer.html: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin-origin-expected.txt: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin-origin-when-cross-origin-expected.txt: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin-origin-when-cross-origin.html: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin-origin.html: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin-same-origin-expected.txt: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin-same-origin.html: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin-strict-origin-expected.txt: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin-strict-origin-when-cross-origin-expected.txt: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin-strict-origin-when-cross-origin.html: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin-strict-origin.html: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin-unsafe-url-expected.txt: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin-unsafe-url.html: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin.html: Added.
  • web-platform-tests/html/semantics/links/downloading-resources/header-origin.js: Added.

(testOriginHeader):
(pollResult.return.new.Promise.):
(pollResult.return.new.Promise):

  • web-platform-tests/html/semantics/links/downloading-resources/w3c-import.log:

Source/WebCore:

Fix behavior of pings regarding Origin header by using the
"append a request Origin header" algorithm [1]. This patch
also sets the origin before calling addExtraFieldsToSubresourceRequest
since the latter forces the origin to "null".

Tests: imported/w3c/web-platform-tests/html/semantics/links/downloading-resources/header-origin-no-referrer-when-downgrade.html

imported/w3c/web-platform-tests/html/semantics/links/downloading-resources/header-origin-no-referrer.html
imported/w3c/web-platform-tests/html/semantics/links/downloading-resources/header-origin-origin-when-cross-origin.html
imported/w3c/web-platform-tests/html/semantics/links/downloading-resources/header-origin-origin.html
imported/w3c/web-platform-tests/html/semantics/links/downloading-resources/header-origin-same-origin.html
imported/w3c/web-platform-tests/html/semantics/links/downloading-resources/header-origin-strict-origin-when-cross-origin.html
imported/w3c/web-platform-tests/html/semantics/links/downloading-resources/header-origin-strict-origin.html
imported/w3c/web-platform-tests/html/semantics/links/downloading-resources/header-origin-unsafe-url.html
imported/w3c/web-platform-tests/html/semantics/links/downloading-resources/header-origin.html

[1] https://fetch.spec.whatwg.org/#append-a-request-origin-header

  • loader/PingLoader.cpp:

(WebCore::PingLoader::sendPing):

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::generateOriginHeader):

  • page/SecurityPolicy.h:
12:58 PM Changeset in webkit [257728] by Justin Michaud
  • 7 edits
    1 add in trunk

Delete by val caching does not keep the subscript alive
https://bugs.webkit.org/show_bug.cgi?id=208393

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/delete-property-ic-stress.js: Added.

Source/JavaScriptCore:

Before, the provided test case crashed with asan because we did not keep deleteByVal
subscripts alive. This patch changes CacheableIdentifier to make this mistake harder
to make again, by making the constructor calls more explicit when CacheableIdentifier
will not keep an Identifier alive.

  • jit/JITOperations.cpp:
  • jit/Repatch.cpp:

(JSC::tryCachePutByID):
(JSC::tryCacheDeleteBy):
(JSC::repatchDeleteBy):
(JSC::tryCacheInByID):
(JSC::tryCacheInstanceOf):
(JSC::tryCacheDelBy): Deleted.
(JSC::repatchDelBy): Deleted.

  • jit/Repatch.h:
  • runtime/CacheableIdentifier.h:
  • runtime/CacheableIdentifierInlines.h:

(JSC::CacheableIdentifier::createFromIdentifierOwnedByCodeBlock):
(JSC::CacheableIdentifier::createFromCell):

12:45 PM Changeset in webkit [257727] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

Reduce size of PerformanceEntry
https://bugs.webkit.org/show_bug.cgi?id=208452

Reviewed by Devin Rousso.

Reduce size of PerformanceEntry by leveraging the fact that it is polymorphic.

  • page/PerformanceEntry.cpp:

(WebCore::PerformanceEntry::PerformanceEntry):

  • page/PerformanceEntry.h:

(WebCore::PerformanceEntry::name const):
(WebCore::PerformanceEntry::isResource const):
(WebCore::PerformanceEntry::isMark const):
(WebCore::PerformanceEntry::isMeasure const):
(WebCore::PerformanceEntry::entryType const): Deleted.
(WebCore::PerformanceEntry::type const): Deleted.

  • page/PerformanceMark.h:
  • page/PerformanceMeasure.h:
  • page/PerformanceResourceTiming.cpp:

(WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
(WebCore::PerformanceResourceTiming::nextHopProtocol const):

  • page/PerformanceResourceTiming.h:
12:24 PM Changeset in webkit [257726] by wilander@apple.com
  • 34 edits
    14 adds in trunk

ResourceLoadStatistics: Enable cookie blocking and the Storage Access API in ephemeral sessions
https://bugs.webkit.org/show_bug.cgi?id=208399
<rdar://problem/24731650>

Reviewed by Brent Fulgham.

Source/WebCore:

Tests: http/tests/resourceLoadStatistics/third-party-cookie-blocking-ephemeral-database.html

http/tests/resourceLoadStatistics/third-party-cookie-blocking-ephemeral.html
http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-ephemeral.html
http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-ephemeral.html
http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie-ephemeral.html
http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-ephemeral.html
http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-user-gesture-ephemeral.html

  • loader/ResourceLoadStatistics.h:

Adds a boolean enum IsEphemeral which is used to capture ephemeral state
across various classes.

Source/WebKit:

This patch enables resource load statistics, or ITP, in ephemeral sessions.

Since full third-party cookie blocking is stateless, it can now be enabled in
ephemeral sessions. User interaction as a gate for calling the Storage Access
API can be captured in an ephemeral fashion as well to allow authenticated
embeds.

No actual statistics are captured which means that the constructor for
WebKit::WebResourceLoadStatisticsStore skips setting up the memory store,
the persistent store, and the database store.

The functionality that is supported is instead carried out in a set of
private "*Ephemeral()" functions, for instance hasStorageAccessEphemeral().
The public functions check ephemeral status and route accordingly.

A release assertion in WebResourceLoadStatisticsStore::postTask()
guarantees that we never make use of the statistics layer in ephemeral
sessions.

Early returns for ephemeral sessions has been removed in several places.
WebKit::WebResourceLoadObserver now accepts being instantiated in an
ephemeral session but is told whether it is and skips all statistics
collection except user interaction which is needed to gate the
Storage Access API. A release assertion in
WebResourceLoadObserver::ensureResourceStatisticsForRegistrableDomain()
makes sure that we never start collecting statistics in ephemeral mode.

A selection of test cases have been added with an ephemeral setting and
a new test function isResourceLoadStatisticsEphemeral() has been added
so that layout tests can make sure that an ephemeral setup is running.
This last bit is important since test cases will likely still pass if a
regression were to make the test session persistent.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::setNotifyPagesWhenDataRecordsWereScanned):
(WebKit::WebResourceLoadStatisticsStore::setIsRunningTest):
(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::postTask):
(WebKit::WebResourceLoadStatisticsStore::setResourceLoadStatisticsDebugMode):
(WebKit::WebResourceLoadStatisticsStore::setPrevalentResourceForDebugMode):
(WebKit::WebResourceLoadStatisticsStore::hasStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::hasStorageAccessEphemeral):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccessEphemeral):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccessUnderOpenerEphemeral):
(WebKit::WebResourceLoadStatisticsStore::grantStorageAccessEphemeral):
(WebKit::WebResourceLoadStatisticsStore::setThirdPartyCookieBlockingMode):
(WebKit::WebResourceLoadStatisticsStore::setFirstPartyWebsiteDataRemovalMode):
(WebKit::WebResourceLoadStatisticsStore::applicationWillTerminate):
(WebKit::WebResourceLoadStatisticsStore::logUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::logUserInteractionEphemeral):
(WebKit::WebResourceLoadStatisticsStore::clearUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::clearUserInteractionEphemeral):
(WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::hasHadUserInteractionEphemeral):
(WebKit::WebResourceLoadStatisticsStore::isPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):
(WebKit::WebResourceLoadStatisticsStore::clearInMemoryEphemeral):
(WebKit::WebResourceLoadStatisticsStore::resetParametersToDefaultValues):
(WebKit::WebResourceLoadStatisticsStore::suspend):

Added a comment on why this function is not applicable to ephemeral sessions.

(WebKit::WebResourceLoadStatisticsStore::resume):

Added a comment on why this function is not applicable to ephemeral sessions.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::isResourceLoadStatisticsEphemeral const):
(WebKit::NetworkProcess::prepareToSuspend):

Skipped call to suspend ITP if it's running in ephemeral mode.

(WebKit::void NetworkProcess::resume):

Skipped call to resume ITP if it's running in ephemeral mode.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::setResourceLoadStatisticsEnabled):
(WebKit::NetworkSession::recreateResourceLoadStatisticStore):

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreIsStatisticsEphemeral):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::isResourceLoadStatisticsEphemeral):
(WebKit::NetworkProcessProxy::addSession):

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

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled):
(WebKit::WebsiteDataStore::isResourceLoadStatisticsEphemeral const):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

(WebKit::WebResourceLoadObserver::WebResourceLoadObserver):
(WebKit::WebResourceLoadObserver::ensureResourceStatisticsForRegistrableDomain):
(WebKit::WebResourceLoadObserver::logFontLoad):
(WebKit::WebResourceLoadObserver::logCanvasRead):
(WebKit::WebResourceLoadObserver::logCanvasWriteOrMeasure):
(WebKit::WebResourceLoadObserver::logNavigatorAPIAccessed):
(WebKit::WebResourceLoadObserver::logScreenAPIAccessed):
(WebKit::WebResourceLoadObserver::logSubresourceLoading):
(WebKit::WebResourceLoadObserver::logWebSocketLoading):
(WebKit::WebResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
(WebKit::WebResourceLoadObserver::logSubresourceLoadingForTesting):

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setWebsiteDataStoreParameters):
(WebKit::WebProcess::setResourceLoadStatisticsEnabled):

Tools:

The majority of the changes in WTR::TestController is (partially) fixing a bug
where the TestRunner would statically use the default website datastore instead
of the website data store configure for the page. This worked for persistent
storage testing but not for ephemeral sessions which is what this patch is all
about. The previous TestController::websiteDataStore() is now called
TestController::defaultWebsiteDataStore() and the new
TestController::websiteDataStore() returns the configured website data store.
Most of the use of the default website data store should probably change but
that's not really for this patch to deal with. I did however move all of
resource load statistics' use to the new TestController::websiteDataStore().

A new TestRunner function was added: isStatisticsEphemeral()
It allows test cases to query the ephemeral status of resource load statistics.

One problem that is mitigated in this patch but not fully fixed is that for
Cocoa platforms, the TestRunner sets up two ephemeral sessions, once in
TestController::generatePageConfiguration() via C API
WKPageConfigurationSetWebsiteDataStore(), and then again in
TestControllerCocoa's initializeWebViewConfiguration() via Cocoa API
[copiedConfiguration setWebsiteDataStore:ephemeralWebsiteDataStore].
I tried removing the latter since one session for all platforms should be
Enough but got broken behavior as a result. So now both are still there
and both enable resource load statistics.

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

(WTR::TestRunner::isStatisticsEphemeral):

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

(WTR::TestController::defaultWebsiteDataStore):
(WTR::TestController::websiteDataStore):
(WTR::TestController::generatePageConfiguration):
(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::didReceiveSynchronousMessageFromInjectedBundle):
(WTR::TestController::decidePolicyForNavigationAction):
(WTR::TestController::platformAdjustContext):
(WTR::TestController::clearServiceWorkerRegistrations):
(WTR::TestController::clearDOMCache):
(WTR::TestController::clearDOMCaches):
(WTR::TestController::clearIndexedDatabases):
(WTR::TestController::clearLocalStorage):
(WTR::TestController::hasDOMCache):
(WTR::TestController::domCacheSize):
(WTR::TestController::setStatisticsEnabled):
(WTR::TestController::isStatisticsEphemeral):
(WTR::TestController::setStatisticsDebugMode):
(WTR::TestController::setStatisticsPrevalentResourceForDebugMode):
(WTR::TestController::setStatisticsLastSeen):
(WTR::TestController::setStatisticsMergeStatistic):
(WTR::TestController::setStatisticsPrevalentResource):
(WTR::TestController::setStatisticsVeryPrevalentResource):
(WTR::TestController::dumpResourceLoadStatistics):
(WTR::TestController::isStatisticsPrevalentResource):
(WTR::TestController::isStatisticsVeryPrevalentResource):
(WTR::TestController::isStatisticsRegisteredAsSubresourceUnder):
(WTR::TestController::isStatisticsRegisteredAsSubFrameUnder):
(WTR::TestController::isStatisticsRegisteredAsRedirectingTo):
(WTR::TestController::setStatisticsHasHadUserInteraction):
(WTR::TestController::isStatisticsHasHadUserInteraction):
(WTR::TestController::isStatisticsOnlyInDatabaseOnce):
(WTR::TestController::setStatisticsGrandfathered):
(WTR::TestController::isStatisticsGrandfathered):
(WTR::TestController::setUseITPDatabase):
(WTR::TestController::setStatisticsSubframeUnderTopFrameOrigin):
(WTR::TestController::setStatisticsSubresourceUnderTopFrameOrigin):
(WTR::TestController::setStatisticsSubresourceUniqueRedirectTo):
(WTR::TestController::setStatisticsSubresourceUniqueRedirectFrom):
(WTR::TestController::setStatisticsTopFrameUniqueRedirectTo):
(WTR::TestController::setStatisticsTopFrameUniqueRedirectFrom):
(WTR::TestController::setStatisticsCrossSiteLoadWithLinkDecoration):
(WTR::TestController::setStatisticsTimeToLiveUserInteraction):
(WTR::TestController::statisticsProcessStatisticsAndDataRecords):
(WTR::TestController::statisticsUpdateCookieBlocking):
(WTR::TestController::statisticsSubmitTelemetry):
(WTR::TestController::setStatisticsNotifyPagesWhenDataRecordsWereScanned):
(WTR::TestController::setStatisticsIsRunningTest):
(WTR::TestController::setStatisticsShouldClassifyResourcesBeforeDataRecordsRemoval):
(WTR::TestController::setStatisticsNotifyPagesWhenTelemetryWasCaptured):
(WTR::TestController::setStatisticsMinimumTimeBetweenDataRecordsRemoval):
(WTR::TestController::setStatisticsGrandfatheringTime):
(WTR::TestController::setStatisticsMaxStatisticsEntries):
(WTR::TestController::setStatisticsPruneEntriesDownTo):
(WTR::TestController::statisticsClearInMemoryAndPersistentStore):
(WTR::TestController::statisticsClearInMemoryAndPersistentStoreModifiedSinceHours):
(WTR::TestController::statisticsClearThroughWebsiteDataRemoval):
(WTR::TestController::statisticsDeleteCookiesForHost):
(WTR::TestController::isStatisticsHasLocalStorage):
(WTR::TestController::setStatisticsCacheMaxAgeCap):
(WTR::TestController::hasStatisticsIsolatedSession):
(WTR::TestController::setStatisticsShouldDowngradeReferrer):
(WTR::TestController::setStatisticsShouldBlockThirdPartyCookies):
(WTR::TestController::setStatisticsFirstPartyWebsiteDataRemovalMode):
(WTR::TestController::statisticsResetToConsistentState):
(WTR::TestController::clearAdClickAttributionsThroughWebsiteDataRemoval):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::invoke):
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):
(WTR::TestController::platformCreateWebView):

LayoutTests:

  • http/tests/adClickAttribution/store-disabled-in-ephemeral-session.html:

Just moved the <!-- webkit-test-runner [ useFlexibleViewport=true useEphemeralSession=true ] -->
header up to the top.

  • http/tests/resourceLoadStatistics/third-party-cookie-blocking-ephemeral-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/third-party-cookie-blocking-ephemeral-database.html: Added.
  • http/tests/resourceLoadStatistics/third-party-cookie-blocking-ephemeral-expected.txt: Added.
  • http/tests/resourceLoadStatistics/third-party-cookie-blocking-ephemeral.html: Added.
  • http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-ephemeral-expected.txt: Added.
  • http/tests/storageAccess/deny-due-to-no-interaction-under-general-third-party-cookie-blocking-ephemeral.html: Added.
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-database.html:
  • http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral.html:

Added explicit disabling of resource load statistics. However, something enables it again. See
Comment under TestExpectation files below.

  • http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-ephemeral-expected.txt: Added.
  • http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-ephemeral.html: Added.
  • http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie-ephemeral-expected.txt: Added.
  • http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-without-cookie-ephemeral.html: Added.
  • http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-ephemeral-expected.txt: Added.
  • http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-ephemeral.html: Added.
  • http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-user-gesture-ephemeral-expected.txt: Added.
  • http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-user-gesture-ephemeral.html: Added.
  • platform/ios/TestExpectations:
  • platform/mac-wk2/TestExpectations:

These two test cases are now being skipped because resource load statistics are on in ephemeral sessions:
http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral.html
http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-database.html
https://bugs.webkit.org/show_bug.cgi?id=208400 tracks the work to figure out how this can be tested
since some bug in the TestRunner is re-enabling resource load statistics as soon as you turn it off
in ephemeral sessions.

12:21 PM Changeset in webkit [257725] by pvollan@apple.com
  • 14 edits
    1 add in trunk

[Cocoa] Mapping from MIME type to UTI type should be done in the UI process
https://bugs.webkit.org/show_bug.cgi?id=208415

Reviewed by Brent Fulgham.

Source/WebCore:

This is currently done in the WebContent process, but since this is using a system service which will be closed,
this mapping should be moved to the UI process. The UI process will create this mapping for a set of mime types,
and send it to the WebContent process.

API test: WebKit.UTIFromMIMEType

  • platform/network/mac/UTIUtilities.h:
  • platform/network/mac/UTIUtilities.mm:

(WebCore::mapUTIFromMIMEType):
(WebCore::UTIFromMIMETypeCachePolicy::createValueForKey):
(WebCore::cacheUTIFromMimeType):
(WebCore::UTIFromMIMEType):
(WebCore::mimeTypes):
(WebCore::createUTIFromMIMETypeMap):
(WebCore::setUTIFromMIMETypeMap):

  • testing/Internals.cpp:

(WebCore::Internals::getUTIFromMIMEType):

  • testing/Internals.mm:

(WebCore::Internals::getUTIFromMIMEType):

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

Source/WebKit:

Send the mapping between MIME types and UTI types to the WebContent process as part of the Web
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/UTIFromMIMEType.mm: Added.

(TEST):

12:07 PM Changeset in webkit [257724] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebKit

[GPUP] Plumb through more MediaPlayer methods
https://bugs.webkit.org/show_bug.cgi?id=208423
<rdar://problem/59924386>

Unreviewed, remove an invalid ASSERT that causes some tests to crash.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::load):

11:57 AM Changeset in webkit [257723] by pvollan@apple.com
  • 5 edits in trunk

[iOS] Deny mach lookup access to distributed notifications in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=208455

Reviewed by Brent Fulgham.

Source/WebKit:

On iOS, deny mach lookup access to the service "com.apple.distributed_notifications@1v3" in the WebContent process.

Test: fast/sandbox/ios/sandbox-mach-lookup.html

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

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
11:54 AM Changeset in webkit [257722] by dbates@webkit.org
  • 8 edits in trunk

Page::editableElementsInRect() should find nested editable elements and return found elements in paint order
https://bugs.webkit.org/show_bug.cgi?id=208352
<rdar://problem/59867815>

Reviewed by Wenson Hsieh.

Source/WebCore:

Use the existing rect-based hit testing machinery to collect all the editable elements on
the page that a person can hit. This makes it possible to find nested editable elements
(e.g. an <input> inside a <div contenteditable="true">), ignore elements with CSS "pointer-events: none",
and return elements in paint order (closest to farthest to a person's face). The latter
makes it possible for a caller to know what element is frontmost, especially when two
editable elements overlap.

  • page/Page.cpp:

(WebCore::Page::editableElementsInRect const): Implement in terms of hit testing machinery.

  • rendering/HitTestLocation.cpp:

(WebCore::HitTestLocation::HitTestLocation):

  • rendering/HitTestLocation.h:
  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::HitTestResult):

  • rendering/HitTestResult.h:

Added convenience constructors that take a LayoutRect.

Tools:

Update test results to reflect the new behavior. To do this I also need to fix up the test code
to actually scroll the web content. This also means we now execute the same code on both Mac and
iOS to do the scrolling: window.scrollTo(0, 5000). Also fixed up sub-test "Inputs scrolled outside
the requested rect; should not be included." to use a 10000px height <div> so that you can scroll
to a y position of 5000. Otherwise, it's impossible to do because the page height is < 5000px.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(TEST):

11:46 AM Changeset in webkit [257721] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Fix JSC 32bit alignment increase gcc warning
https://bugs.webkit.org/show_bug.cgi?id=208445

Patch by Paulo Matos <Paulo Matos> on 2020-03-02
Reviewed by Yusuke Suzuki.

Use reinterpret_cast_ptr<>() instead of reinterpret_cast<>() to
avoid GCC warning about increase in alignment requirement for cast
target type.

Source/JavaScriptCore:

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::compileExit):

Source/WTF:

  • wtf/HashTable.h:

(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>::allocateTable):
(WTF::KeyTraits>::deallocateTable):

11:10 AM Changeset in webkit [257720] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

ASSERT(m_column != unsetColumnIndex) in RenderTable::cellBefore
https://bugs.webkit.org/show_bug.cgi?id=208397

Patch by Doug Kelly <Doug Kelly> on 2020-03-02
Reviewed by Zalan Bujtas.

Source/WebCore:

When inserting a cell into a table row which is not visible, this can lead to attempting to compute the repaint
rects during tree building. Instead, mark the layer as dirty using dirtyVisibleContentStatus(), and the visibility
will be recomputed at a later time.

Test: fast/table/insert-cell-invisible-parent.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::insertedIntoTree):

LayoutTests:

  • fast/table/insert-cell-invisible-parent-expected.txt: Added.
  • fast/table/insert-cell-invisible-parent.html: Added.
10:53 AM Changeset in webkit [257719] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix wrong assertion
https://bugs.webkit.org/show_bug.cgi?id=208404
<rdar://problem/59956592>

  • runtime/CachedTypes.cpp:

(JSC::CachedUniquedStringImplBase::decode const):

10:24 AM WebKitGTK edited by clopez@igalia.com
(diff)
10:00 AM Changeset in webkit [257718] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[BFC][MarginCollapsing] Sometimes precomputed margin values are just plain wrong.
https://bugs.webkit.org/show_bug.cgi?id=208448
<rdar://problem/59950390>

Reviewed by Antti Koivisto.

Consider the following content:
<div style="float: left"></div>
<div style="height: 100px">

<div style="float: left"></div>
<div>

<span style="white-space: pre"> </span>

</div>
<div style="margin-bottom: 320px;"></div>

</div>

</div>

In order to compute the position of the second float we need be able to intersect it with all
the other floats in the same floating context. The float positioning starts with the box's static vertical position
which is the position the box would be taking if it wasn't floating positioned.
This vertical position needs to be in the same coordinate system as all the other floats to be able to intersect properly.
The coordinate system is the formatting root's content box.
When the second float box is being positioned, we don't yet have final margins for its ancestors, so the box's vertical
position at this point is only computed relative to its containing block.
In most cases we could just walk the ancestor chain all the way to the formatting root and pre-compute the margin before values.
However in some not-so-rare cases, the ancestor margin before value depends on some content after the float box and to be able
to figure out the exact margin values, we actually need to lay out the rest of the content.
In the example above, the second float's final position depends on whether the <span> has white-space: pre or not (whether the parent
div produces empty content or not).

This patch computes margin before values only for the ancestors ignoring margin collapsing (and margin after values).

  • layout/MarginTypes.h:

(WebCore::Layout::PrecomputedMarginBefore::usedValue const):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForBoxAndAncestors):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::setPrecomputedMarginBefore): Deleted.
(WebCore::Layout::BlockFormattingContext::hasPrecomputedMarginBefore const): Deleted.

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/PrecomputedBlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedPositiveNegativeValues const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedPositiveNegativeMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedMarginBefore):

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

[ Mac ] webanimations/accelerated-animation-renderer-change.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208450

Unreviewed test gardening.

  • platform/mac/TestExpectations:
9:37 AM Changeset in webkit [257716] by dino@apple.com
  • 4 edits in trunk

maps.google.com is not loading properly, screen flickers when zooming
https://bugs.webkit.org/show_bug.cgi?id=208331
<rdar://problem/59790757>

Reviewed by Antoine Quint.

Source/WebCore:

When using ANGLE, we don't need the GL_ANGLE_depth_texture extension.
We were mistakenly checking for it and deciding to not allow
combined depth+stencil framebuffer attachments.

Test: webgl/1.0.3/conformance/renderbuffers/framebuffer-object-attachment.html
(now passes on iOS)

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::setupFlags):

LayoutTests:

  • platform/ios/TestExpectations: remove failing expectation for:

webgl/1.0.3/conformance/renderbuffers/framebuffer-object-attachment.html

9:24 AM WebKitGTK/2.28.x edited by Philippe Normand
(diff)
8:47 AM Changeset in webkit [257715] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk1 Debug ] mathml/presentation/attributes-accent-accentunder-dynamic.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208449

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
8:25 AM Changeset in webkit [257714] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Add quirk to disable to back/forward cache on docs.google.com
https://bugs.webkit.org/show_bug.cgi?id=208381
<rdar://problem/59893415>

Reviewed by Ryosuke Niwa.

Google Docs used to bypass the back/forward cache by serving "Cache-Control: no-store"
over HTTPS. We started caching such content in r250437 but the Google Docs content
unfortunately is not currently compatible because it puts an overlay over the page and
starts an animation when navigating away and fails to remove those when coming back from
the back/forward cache (e.g. in 'pageshow' event handler).

  • page/Quirks.cpp:

(WebCore::Quirks::shouldBypassBackForwardCache const):

8:13 AM Changeset in webkit [257713] by Jacob Uphoff
  • 14 edits
    1 delete in trunk

Unreviewed, rolling out r257687.

This commit caused debug tests to crash for macOS & iOS

Reverted changeset:

"[Cocoa] Mapping from MIME type to UTI type should be done in
the UI process"
https://bugs.webkit.org/show_bug.cgi?id=208415
https://trac.webkit.org/changeset/257687

7:57 AM Changeset in webkit [257712] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] Get rid of custom GCD implementation
https://bugs.webkit.org/show_bug.cgi?id=208446

Reviewed by Xabier Rodriguez-Calvar.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::naturalSize const):
(WebCore::greatestCommonDivisor): Deleted.

7:54 AM Changeset in webkit [257711] by eric.carlson@apple.com
  • 25 edits in trunk

[GPUP] Plumb through more MediaPlayer methods
https://bugs.webkit.org/show_bug.cgi?id=208423
<rdar://problem/59924386>

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, unskipped ~1200 existing media tests.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerPause): Deleted.
(WebCore::HTMLMediaElement::mediaPlayerPlay): Deleted.

  • html/HTMLMediaElement.h:
  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerContentsScale const):
(WebCore::MediaPlayerClient::mediaPlayerPause): Deleted.
(WebCore::MediaPlayerClient::mediaPlayerPlay): Deleted.

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::updateVideoFullscreenInlineImage): Deleted.
(WebKit::RemoteMediaPlayerManagerProxy::setVideoFullscreenFrame): Deleted.
(WebKit::RemoteMediaPlayerManagerProxy::setVideoFullscreenGravity): Deleted.
(WebKit::RemoteMediaPlayerManagerProxy::setVideoFullscreenMode): Deleted.
(WebKit::RemoteMediaPlayerManagerProxy::setVolume): Deleted.
(WebKit::RemoteMediaPlayerManagerProxy::setBufferingPolicy): Deleted.
(WebKit::RemoteMediaPlayerManagerProxy::videoFullscreenStandbyChanged): Deleted.
(WebKit::RemoteMediaPlayerManagerProxy::accessLog): Deleted.
(WebKit::RemoteMediaPlayerManagerProxy::errorLog): Deleted.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerPause): Deleted.
(WebKit::RemoteMediaPlayerProxy::mediaPlayerPlay): Deleted.

  • GPUProcess/media/RemoteMediaPlayerProxy.h:

LayoutTests:

  • gpu-process/TestExpectations: Unskip ~1200 media tests.
7:41 AM Changeset in webkit [257710] by youenn@apple.com
  • 4 edits in trunk/Source

Enable capture in GPUProcess by default for recent platforms only
https://bugs.webkit.org/show_bug.cgi?id=208437

Reviewed by Eric Carlson.

Source/WebKit:

No change of behavior.

  • Shared/WebPreferencesDefaultValues.h:

Source/WTF:

  • wtf/PlatformUse.h:

Introduce USE(GPU_PROCESS)

7:34 AM Changeset in webkit [257709] by youenn@apple.com
  • 13 edits in trunk/Source

LocalSampleBufferDisplayLayer is not computing the correct bounds/position in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=208370

Reviewed by Eric Carlson.

Source/WebCore:

When in GPUProcess, we need to update the bounds of the remote LocalSampleBufferDisplayLayer.
In case of samples with rotation, the computation was wrong.
Move the rotation logic from MediaPLayerPrivateMediaStreamAVFObjC to LocalSampleBufferDisplayLayer.
This allows in WebKit2 to send the rotation information with the bounds information.
Remove the bounds getter since it is no longer used.
Covered by manual tests.

  • platform/graphics/avfoundation/SampleBufferDisplayLayer.h:
  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h:
  • platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:

(WebCore::LocalSampleBufferDisplayLayer::updateBoundsAndPosition):
(WebCore::LocalSampleBufferDisplayLayer::updateRootLayerBoundsAndPosition):
(WebCore::LocalSampleBufferDisplayLayer::enqueueSample):

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayLayer):

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection):

Source/WebKit:

Remove the bounds getter logic.
Make use of new LocalSampleBufferDisplayLayer routine to properly update the layer bounds.

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:

(WebKit::RemoteSampleBufferDisplayLayer::updateBoundsAndPosition):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.messages.in:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:

(WebKit::RemoteSampleBufferDisplayLayerManager::createLayer):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.messages.in:
  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:

(WebKit::SampleBufferDisplayLayer::SampleBufferDisplayLayer):
(WebKit::SampleBufferDisplayLayer::updateBoundsAndPosition):

  • WebProcess/GPU/webrtc/SampleBufferDisplayLayer.h:
7:04 AM Changeset in webkit [257708] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Enable audio MediaStreamTrack rendering in GPUProcess if audio capture happens in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=208435

Reviewed by Eric Carlson.

Instead of enabling audio track rendering in GPUProcess based on media flag,
use the audio capture flag.
This makes sure things work properly on iOS, where an audio session might interrupt other sessions.

  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::updatePreferences):

  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::setupCaptureProcesses):

3:36 AM Changeset in webkit [257707] by commit-queue@webkit.org
  • 46 edits
    58 adds in trunk

Add referrerpolicy attribute support for anchors
https://bugs.webkit.org/show_bug.cgi?id=208424

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

LayoutTests/imported/w3c:

Update improved test results.

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

Source/WebCore:

This patch adds 'referrerpolicy' attribute support for anchor elements.
If set, the value is restricted to the ReferrerPolicy enum, and
if valid it is used for the script fetch.
If not set or invalid, the current behavior is kept.

Tests: http/tests/referrer-policy-anchor/no-referrer-when-downgrade/cross-origin-http-http.html

http/tests/referrer-policy-anchor/no-referrer-when-downgrade/cross-origin-http.https.html
http/tests/referrer-policy-anchor/no-referrer-when-downgrade/same-origin.html
http/tests/referrer-policy-anchor/no-referrer/cross-origin-http-http.html
http/tests/referrer-policy-anchor/no-referrer/cross-origin-http.https.html
http/tests/referrer-policy-anchor/no-referrer/same-origin.html
http/tests/referrer-policy-anchor/origin-when-cross-origin/cross-origin-http-http.html
http/tests/referrer-policy-anchor/origin-when-cross-origin/cross-origin-http.https.html
http/tests/referrer-policy-anchor/origin-when-cross-origin/same-origin.html
http/tests/referrer-policy-anchor/origin/cross-origin-http-http.html
http/tests/referrer-policy-anchor/origin/cross-origin-http.https.html
http/tests/referrer-policy-anchor/origin/same-origin.html
http/tests/referrer-policy-anchor/same-origin/cross-origin-http-http.html
http/tests/referrer-policy-anchor/same-origin/cross-origin-http.https.html
http/tests/referrer-policy-anchor/same-origin/same-origin.html
http/tests/referrer-policy-anchor/strict-origin-when-cross-origin/cross-origin-http-http.html
http/tests/referrer-policy-anchor/strict-origin-when-cross-origin/cross-origin-http.https.html
http/tests/referrer-policy-anchor/strict-origin-when-cross-origin/same-origin.html
http/tests/referrer-policy-anchor/strict-origin/cross-origin-http-http.html
http/tests/referrer-policy-anchor/strict-origin/cross-origin-http.https.html
http/tests/referrer-policy-anchor/strict-origin/same-origin.html
http/tests/referrer-policy-anchor/unsafe-url/cross-origin-http-http.html
http/tests/referrer-policy-anchor/unsafe-url/cross-origin-http.https.html
http/tests/referrer-policy-anchor/unsafe-url/same-origin.html

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick):
(WebCore::HTMLAnchorElement::setReferrerPolicyForBindings):
(WebCore::HTMLAnchorElement::referrerPolicyForBindings const):
(WebCore::HTMLAnchorElement::referrerPolicy const):

  • html/HTMLAnchorElement.h:
  • html/HTMLAnchorElement.idl:
  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::handleClick):

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openInNewTab):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::navigate):

  • loader/FrameLoadRequest.cpp:

(WebCore::FrameLoadRequest::FrameLoadRequest):

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::FrameLoadRequest):
(WebCore::FrameLoadRequest::referrerPolicy const):
(WebCore::FrameLoadRequest::shouldSendReferrer const): Deleted.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::loadFrameRequest):

  • loader/FrameLoader.h:
  • loader/FrameLoaderTypes.h:
  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::scheduleLocationChange):

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::defaultEventHandler):

  • page/ContextMenuController.cpp:

(WebCore::openNewWindow):
(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::defaultEventHandler):

Source/WebKit:

Adjust to FrameLoadRequest API change.

  • WebProcess/Inspector/WebInspector.cpp:

(WebKit::WebInspector::openInNewTab):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::clickedLink):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::loadURL):

  • WebProcess/WebCoreSupport/WebContextMenuClient.cpp:

(WebKit::WebContextMenuClient::searchWithGoogle):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchCreatePage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):

Source/WebKitLegacy/ios:

Adjust to FrameLoadRequest API change.

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKitLegacy/mac:

Adjust to FrameLoadRequest API change.

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

Source/WebKitLegacy/win:

Adjust to FrameLoadRequest API change.

  • Plugins/PluginView.cpp:

(WebCore::PluginView::start):
(WebCore::PluginView::getURLNotify):
(WebCore::PluginView::getURL):
(WebCore::PluginView::handlePost):

  • WebCoreSupport/WebContextMenuClient.cpp:

(WebContextMenuClient::searchWithGoogle):

LayoutTests:

Add tests for anchors with various referrerpolicy attribute values and
update improved test results.

  • http/tests/referrer-policy-anchor/no-referrer-when-downgrade/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-anchor/no-referrer-when-downgrade/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-anchor/no-referrer-when-downgrade/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-anchor/no-referrer-when-downgrade/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-anchor/no-referrer-when-downgrade/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-anchor/no-referrer-when-downgrade/same-origin.html: Added.
  • http/tests/referrer-policy-anchor/no-referrer/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-anchor/no-referrer/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-anchor/no-referrer/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-anchor/no-referrer/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-anchor/no-referrer/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-anchor/no-referrer/same-origin.html: Added.
  • http/tests/referrer-policy-anchor/origin-when-cross-origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-anchor/origin-when-cross-origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-anchor/origin-when-cross-origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-anchor/origin-when-cross-origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-anchor/origin-when-cross-origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-anchor/origin-when-cross-origin/same-origin.html: Added.
  • http/tests/referrer-policy-anchor/origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-anchor/origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-anchor/origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-anchor/origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-anchor/origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-anchor/origin/same-origin.html: Added.
  • http/tests/referrer-policy-anchor/same-origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-anchor/same-origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-anchor/same-origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-anchor/same-origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-anchor/same-origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-anchor/same-origin/same-origin.html: Added.
  • http/tests/referrer-policy-anchor/strict-origin-when-cross-origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-anchor/strict-origin-when-cross-origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-anchor/strict-origin-when-cross-origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-anchor/strict-origin-when-cross-origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-anchor/strict-origin-when-cross-origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-anchor/strict-origin-when-cross-origin/same-origin.html: Added.
  • http/tests/referrer-policy-anchor/strict-origin/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-anchor/strict-origin/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-anchor/strict-origin/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-anchor/strict-origin/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-anchor/strict-origin/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-anchor/strict-origin/same-origin.html: Added.
  • http/tests/referrer-policy-anchor/unsafe-url/cross-origin-http-http-expected.txt: Added.
  • http/tests/referrer-policy-anchor/unsafe-url/cross-origin-http-http.html: Added.
  • http/tests/referrer-policy-anchor/unsafe-url/cross-origin-http.https-expected.txt: Added.
  • http/tests/referrer-policy-anchor/unsafe-url/cross-origin-http.https.html: Added.
  • http/tests/referrer-policy-anchor/unsafe-url/same-origin-expected.txt: Added.
  • http/tests/referrer-policy-anchor/unsafe-url/same-origin.html: Added.
  • http/tests/referrer-policy/resources/check-referrer.php: Added.
  • js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/ios-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/win/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt:
2:52 AM Changeset in webkit [257706] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

ASSERTION FAILED: Completion handler should always be called on inspector/dom-debugger/attribute-modified-style.html
https://bugs.webkit.org/show_bug.cgi?id=208167
<rdar://problem/59747016>

Unreviewed.

  • platform/mac-wk2/TestExpectations:

Removed flaky expectation.

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

[GTK][WPE] Stop using mediaControlsBase.js
https://bugs.webkit.org/show_bug.cgi?id=208374

Reviewed by Xabier Rodriguez-Calvar.

Move the required base functionality to mediaControlsAdwaita.js and use that single file.

  • Modules/mediacontrols/mediaControlsAdwaita.js:

(createControls):
(Controller):
(Controller.prototype.listenFor):
(Controller.prototype.stopListeningFor):
(Controller.prototype.addVideoListeners):
(Controller.prototype.removeVideoListeners):
(Controller.prototype.handleEvent):
(Controller.prototype.createBase):
(Controller.prototype.isAudio):
(Controller.prototype.isFullScreen):
(Controller.prototype.shouldHaveControls):
(Controller.prototype.updateBase):
(Controller.prototype.createControls):
(Controller.prototype.configureControls):
(Controller.prototype.disconnectControls):
(Controller.prototype.reconnectControls):
(Controller.prototype.showControls):
(Controller.prototype.hideControls):
(Controller.prototype.resetHideControlsTimer):
(Controller.prototype.clearHideControlsTimer):
(Controller.prototype.controlsAreAlwaysVisible):
(Controller.prototype.controlsAreHidden):
(Controller.prototype.addControls):
(Controller.prototype.removeControls):
(Controller.prototype.updateControls):
(Controller.prototype.setIsLive):
(Controller.prototype.updateDuration):
(Controller.prototype.formatTime):
(Controller.prototype.setPlaying):
(Controller.prototype.updatePlaying):
(Controller.prototype.updateCaptionButton):
(Controller.prototype.updateCaptionContainer):
(Controller.prototype.updateFullscreenButton):
(Controller.prototype.updateVolume):
(Controller.prototype.updateHasVideo):
(Controller.prototype.handleReadyStateChange):
(Controller.prototype.handleTimeUpdate):
(Controller.prototype.handleDurationChange):
(Controller.prototype.handlePlay):
(Controller.prototype.handlePause):
(Controller.prototype.handleVolumeChange):
(Controller.prototype.handleFullscreenChange):
(Controller.prototype.handleTextTrackChange):
(Controller.prototype.handleTextTrackAdd):
(Controller.prototype.handleTextTrackRemove):
(Controller.prototype.handleControlsChange):
(Controller.prototype.handleWrapperMouseMove):
(Controller.prototype.handleWrapperMouseOut):
(Controller.prototype.handleWrapperMouseUp):
(Controller.prototype.handlePanelMouseDown):
(Controller.prototype.handlePanelTransitionEnd):
(Controller.prototype.handlePanelClick):
(Controller.prototype.canPlay):
(Controller.prototype.handlePlayButtonClicked):
(Controller.prototype.handleTimelineChange):
(Controller.prototype.handleTimelineMouseUp):
(Controller.prototype.handleMuteButtonClicked):
(Controller.prototype.handleMuteButtonMouseOver):
(Controller.prototype.handleVolumeBoxMouseOut):
(Controller.prototype.handleVolumeSliderInput):
(Controller.prototype.handleFullscreenButtonClicked):
(Controller.prototype.buildCaptionMenu):
(Controller.prototype.captionItemSelected):
(Controller.prototype.focusSiblingCaptionItem):
(Controller.prototype.handleCaptionItemKeyUp):
(Controller.prototype.showCaptionMenu):
(Controller.prototype.captionMenuTransitionEnd):
(Controller.prototype.captionMenuContainsNode):
(Controller.prototype.handleCaptionButtonClicked):
(Controller.prototype.handleCaptionButtonMouseOver):
(Controller.prototype.handleCaptionButtonMouseOut):
(Controller.prototype.handleCaptionMenuMouseOut):
(ControllerAdwaita): Deleted.
(contains): Deleted.
(ControllerAdwaita.prototype.createControls): Deleted.
(ControllerAdwaita.prototype.configureInlineControls): Deleted.
(ControllerAdwaita.prototype.shouldHaveControls): Deleted.
(ControllerAdwaita.prototype.reconnectControls): Deleted.
(ControllerAdwaita.prototype.setStatusHidden): Deleted.
(ControllerAdwaita.prototype.updateTime): Deleted.
(ControllerAdwaita.prototype.handleTimeUpdate): Deleted.
(ControllerAdwaita.prototype.updateHasAudio): Deleted.
(ControllerAdwaita.prototype.handleMuteButtonMouseOver): Deleted.
(ControllerAdwaita.prototype.handleVolumeBoxMouseOut): Deleted.
(ControllerAdwaita.prototype.removeControls): Deleted.
(ControllerAdwaita.prototype.addControls): Deleted.
(ControllerAdwaita.prototype.updateFullscreenButton): Deleted.
(ControllerAdwaita.prototype.updateReadyState): Deleted.
(ControllerAdwaita.prototype.updateDuration): Deleted.
(ControllerAdwaita.prototype.setIsLive): Deleted.
(ControllerAdwaita.prototype.updatePlaying): Deleted.
(ControllerAdwaita.prototype.updateProgress): Deleted.
(ControllerAdwaita.prototype.handleCaptionButtonClicked): Deleted.
(ControllerAdwaita.prototype.buildCaptionMenu): Deleted.
(ControllerAdwaita.prototype.destroyCaptionMenu): Deleted.
(ControllerAdwaita.prototype.showCaptionMenu): Deleted.
(ControllerAdwaita.prototype.hideCaptionMenu): Deleted.
(ControllerAdwaita.prototype.captionMenuTransitionEnd): Deleted.
(ControllerAdwaita.prototype.handleCaptionButtonMouseOver): Deleted.
(ControllerAdwaita.prototype.handleCaptionButtonShowMenu): Deleted.
(ControllerAdwaita.prototype.handleCaptionButtonMouseOut): Deleted.
(ControllerAdwaita.prototype.handleCaptionMouseOut): Deleted.

  • Modules/mediacontrols/mediaControlsBase.js:

(Controller.prototype.createControls):

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::mediaControlsScript):

12:41 AM WebKitGTK/2.28.x edited by Adrian Perez de Castro
(diff)
12:41 AM Changeset in webkit [257704] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merge r257695 - undefined reference to `JSC::ExecutableBase::hasJITCodeForCall() const'
https://bugs.webkit.org/show_bug.cgi?id=207890

Reviewed by Yusuke Suzuki.

Encountered on arm-buildroot-linux-gnueabihf with GCC 9.2.0.

  • runtime/NativeExecutable.cpp: Inclusion of

ExecutableBaseInlines.h resolves the issue for me.

12:36 AM Changeset in webkit [257703] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r256706 - [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.

12:36 AM WebKitGTK/2.28.x edited by Adrian Perez de Castro
(diff)
12:36 AM Changeset in webkit [257702] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r257700 - [GTK] Fix the build when Wayland target is disabled
https://bugs.webkit.org/show_bug.cgi?id=208407

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2020-03-01
Reviewed by Darin Adler.

Values in the enum WebCore::PlatformDisplay::Type are only defined when
their corresponding platform targets are enabled, so we need #if checks
around uses of them.

  • UIProcess/API/glib/WebKitProtocolHandler.cpp:

(WebKit::WebKitProtocolHandler::handleGPU):

  • UIProcess/API/glib/WebKitUIClient.cpp:

(UIClient::windowConfigureEventCallback):

Mar 1, 2020:

8:29 PM Changeset in webkit [257701] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix for non-unified builds after r257507.

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginValue const):
(WebCore::Layout::marginValue): Deleted.

7:20 PM Changeset in webkit [257700] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[GTK] Fix the build when Wayland target is disabled
https://bugs.webkit.org/show_bug.cgi?id=208407

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2020-03-01
Reviewed by Darin Adler.

Values in the enum WebCore::PlatformDisplay::Type are only defined when
their corresponding platform targets are enabled, so we need #if checks
around uses of them.

  • UIProcess/API/glib/WebKitProtocolHandler.cpp:

(WebKit::WebKitProtocolHandler::handleGPU):

  • UIProcess/API/glib/WebKitUIClient.cpp:

(UIClient::windowConfigureEventCallback):

5:25 PM Changeset in webkit [257699] by Diego Pino Garcia
  • 66 edits
    21 adds in trunk/LayoutTests

[WPE] Gardening, update TestExpectations and baselines
https://bugs.webkit.org/show_bug.cgi?id=208433

Unreviewed gardening.

  • platform/wpe/TestExpectations:
  • platform/wpe/accessibility/media-emits-object-replacement-expected.txt:
  • platform/wpe/css3/flexbox/button-expected.txt:
  • platform/wpe/fast/block/float/float-avoidance-expected.txt:
  • platform/wpe/fast/canvas/fallback-content-expected.txt: Added.
  • platform/wpe/fast/canvas/webgl/copy-tex-image-and-sub-image-2d-bad-input-expected.txt: Added.
  • platform/wpe/fast/canvas/webgl/draw-elements-out-of-bounds-uint-index-expected.txt: Added.
  • platform/wpe/fast/canvas/webgl/drawElements-empty-vertex-data-expected.txt: Added.
  • platform/wpe/fast/canvas/webgl/vertexAttribPointer-with-bad-offset-expected.txt: Added.
  • platform/wpe/fast/canvas/webgl/webgl-drawarrays-crash-2-expected.txt: Added.
  • platform/wpe/fast/canvas/webgl/webgl-drawarrays-crash-expected.txt: Added.
  • platform/wpe/fast/css/continuationCrash-expected.txt:
  • platform/wpe/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/wpe/fast/css/margin-top-bottom-dynamic-expected.txt:
  • platform/wpe/fast/css/non-standard-checkbox-size-expected.txt:
  • platform/wpe/fast/css/rtl-ordering-expected.txt:
  • platform/wpe/fast/css/text-input-with-webkit-border-radius-expected.txt:
  • platform/wpe/fast/css/text-overflow-input-expected.txt:
  • platform/wpe/fast/dom/HTMLInputElement/input-slider-update-expected.txt:
  • platform/wpe/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt:
  • platform/wpe/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt:
  • platform/wpe/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
  • platform/wpe/fast/dom/HTMLProgressElement/progress-element-expected.txt:
  • platform/wpe/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/wpe/fast/dom/Range/getBoundingClientRect-expected.txt:
  • platform/wpe/fast/html/details-replace-summary-child-expected.txt:
  • platform/wpe/fast/html/details-replace-text-expected.txt:
  • platform/wpe/fast/layers/video-layer-expected.txt:
  • platform/wpe/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
  • platform/wpe/fast/overflow/scrollRevealButton-expected.txt:
  • platform/wpe/fast/replaced/replaced-breaking-expected.txt:
  • platform/wpe/fast/replaced/table-percent-height-expected.txt:
  • platform/wpe/fast/replaced/width100percent-button-expected.txt:
  • platform/wpe/fast/replaced/width100percent-checkbox-expected.txt:
  • platform/wpe/fast/replaced/width100percent-radio-expected.txt:
  • platform/wpe/fast/replaced/width100percent-searchfield-expected.txt:
  • platform/wpe/fast/xmlhttprequest/xmlhttprequest-nonexistent-file-expected.txt: Added.
  • platform/wpe/fetch/fetch-url-serialization-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/css/css-sizing/button-min-width-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-transitions/before-load-001-expected.txt:
  • platform/wpe/storage/domstorage/sessionstorage/blocked-file-access-expected.txt: Added.
  • platform/wpe/svg/custom/foreign-object-skew-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug138725-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug26178-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug33855-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug39209-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug4429-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug51727-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug52505-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug52506-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug60749-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug92647-2-expected.txt:
  • platform/wpe/tables/mozilla/collapsing_borders/bug41262-4-expected.txt:
  • platform/wpe/tables/mozilla/dom/tableDom-expected.txt:
  • platform/wpe/tables/mozilla/other/move_row-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug1725-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/wpe/webanimations/partly-accelerated-transition-by-removing-property-expected.txt:
  • platform/wpe/webgl/1.0.3/conformance/context/context-lost-restored-expected.txt: Added.
  • platform/wpe/webgl/2.0.0/conformance2/buffers/bound-buffer-size-change-test-expected.txt:
  • platform/wpe/webgl/2.0.0/conformance2/buffers/buffer-copying-contents-expected.txt:
  • platform/wpe/webgl/2.0.0/conformance2/misc/object-deletion-behaviour-2-expected.txt:
  • platform/wpe/webgl/2.0.0/conformance2/transform_feedback/unwritten-output-defaults-to-zero-expected.txt:
4:43 PM Changeset in webkit [257698] by Darin Adler
  • 9 edits in trunk/Source/WebCore

Slim down some CSS parsing code
https://bugs.webkit.org/show_bug.cgi?id=208418

Reviewed by Anders Carlsson.

  • css/CSSPrimitiveValue.h: Remove unused createAllowingMarginQuirk function

and the FIXME-NEWPARSER that said we wouldn't need it any more and the
no-longer-needed isQuirkValue function.

  • css/CSSValue.h: Remove m_isQuirkValue.
  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseSelector): Call parseCSSSelector instead of
CSSSelectorParser::parseSelector, because that's the public function now.

  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::consumeStyleRule): Ditto.

  • css/parser/CSSPropertyParserHelpers.h: Removed a FIXME-NEWPARSER that is

now obsolete.

  • css/parser/CSSSelectorParser.cpp: Moved the entire CSSSelectorParser class here from

the header, because the only thing used outside this file is the entry point, the
now renamed parseCSSSelector function.
(WebCore::CSSSelectorParser::DisallowPseudoElementsScope::DisallowPseudoElementsScope):
Changed this class to use a reference instead of a pointer.
(WebCore::parseCSSSelector): Renamed CSSSelectorParser::parseSelector to this.
(WebCore::CSSSelectorParser::consumeComplexSelectorList): Use auto to make some
unique_ptr code less verbose.
(WebCore::CSSSelectorParser::consumeCompoundSelectorList): Ditto. Removed the check of
m_failed. Only the parser entry point function needs that check, and that is the
consumeComplexSelectorList function above.
(WebCore::extractCompoundFlags): Use static instead of anonymous namespace. Use enum
class instead of enum, and use OptionSet instead of unsigned.
(WebCore::CSSSelectorParser::consumeComplexSelector): Updated for the above. This
refactoring exposed a strangeness in the simple selector loop; for now maintained
behavior rather than changing it to do something more logical.
(WebCore::isScrollbarPseudoClass): Use static instead of anonymous namespace.
(WebCore::isUserActionPseudoClass): Ditto.
(WebCore::isPseudoClassValidAfterPseudoElement): Ditto.
(WebCore::isSimpleSelectorValidAfterPseudoElement): Ditto.
(WebCore::CSSSelectorParser::consumeCompoundSelector): Use auto to make unique_ptr
code less verbose. Also inlined the one line applySimpleSelectorToCompound function,
because that name didn't document much thus having a function obscured rather than
clarifying what was going on. Also use makeUnique instead of new.
(WebCore::CSSSelectorParser::consumeId): Use makeUnique instead of new.
(WebCore::CSSSelectorParser::consumeClass): Ditto.
(WebCore::CSSSelectorParser::consumeAttribute): Ditto.
(WebCore::isOnlyPseudoElementFunction): Tweaked a comment.
(WebCore::CSSSelectorParser::consumePseudo): Update use of DisallowPseudoElementsScope
to use a reference, use auto to make unique_ptr code less verbose, use makeUnique
instead of new.
(WebCore::consumeANPlusB): Converted to a file-level static function rather than
a static member function.
(WebCore::CSSSelectorParser::prependTypeSelectorIfNeeded): Changed type from
pointer to reference
(WebCore::CSSSelectorParser::addSimpleSelectorToCompound): Deleted.

  • css/parser/CSSSelectorParser.h: Removed most of the contents of this file, leaving

only the function that is the parser entry point.

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertLength): This si the one place that sets
the quirk on a Length value. It now checks for CSS_QUIRKY_EMS directly rather than
using a helper function.

4:42 PM Changeset in webkit [257697] by Darin Adler
  • 8 edits
    1 delete in trunk/Source/WebCore

Tighten up CSSPendingSubstitutionValue
https://bugs.webkit.org/show_bug.cgi?id=208421

Reviewed by Anders Carlsson.

  • Sources.txt: Removed CSSPendingSubstitutionValue.cpp.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • css/CSSPendingSubstitutionValue.cpp: Removed.
  • css/CSSPendingSubstitutionValue.h:

(WebCore::CSSPendingSubstitutionValue::shorthandValue const): Return a reference
instead of a pointer.
(WebCore::CSSPendingSubstitutionValue::equals const): Updated since m_shorthandValue
is now a Ref instead of RefPtr.
(WebCore::CSSPendingSubstitutionValue::customCSSText): Made this a static member
function that always returns an empty string.

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const): Use auto, scoped variables
so they don't live until the end of the function. Simplified the code and the
comments while retaining as much clarity as possible. Also call getPropertyCSSValue
directly instead of calling getPropertyCSSValueInternal.
(WebCore::StyleProperties::asText const): Use is<> to make the code simpler.
Also updated to use reference instead of pointer from CSSPendingSubstitutionValue.

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::borderSpacingValue const): Call getPropertyCSSValue
instead of getPropertyCSSValueInternal.
(WebCore::StyleProperties::getLayeredShorthandValue const): Ditto.
(WebCore::StyleProperties::getShorthandValue const): Ditto.
(WebCore::StyleProperties::getCommonValue const): Ditto.
(WebCore::StyleProperties::pageBreakPropertyValue const): Ditto. Also added a
missing null check.
(WebCore::StyleProperties::getPropertyCSSValue const): Merged with the function
below since all this did was call getPropertyCSSValueInternal.
(WebCore::StyleProperties::getPropertyCSSValueInternal const): Renamed to take
away the word internal and merged with the function above.
(WebCore::ImmutableStyleProperties::findCustomPropertyIndex const): Removed
incorrectly copied and pasted comment.
(WebCore::MutableStyleProperties::findCustomPropertyIndex const): Ditto.
(WebCore::StyleProperties::copyPropertiesInSet const): Call getPropertyCSSValue
instead of getPropertyCSSValueInternal.

  • css/StyleProperties.h: Removed getPropertyCSSValueInternal.
  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseValueWithVariableReferences): Use is<> and fewer locals.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseValueStart): Removed a local and made this use
more Ref and less RefPtr.

4:40 PM Changeset in webkit [257696] by Darin Adler
  • 14 edits in trunk/Source/WebCore

Move some vectors around instead of heap-allocating them and moving the pointers
https://bugs.webkit.org/show_bug.cgi?id=208422

Reviewed by Sam Weinig.

  • css/CSSKeyframeRule.cpp:

(WebCore::StyleRuleKeyframe::StyleRuleKeyframe): Take Vector&& instead of
unique_ptr<Vector>.
(WebCore::StyleRuleKeyframe::create): Moved these here from the header.
Take Vector&& instead of unique_ptr<Vector>.
(WebCore::StyleRuleKeyframe::setKeyText): Update since the result is a
Vector rather than a unique_ptr<Vector>.

  • css/CSSKeyframeRule.h: Updated for the above.
  • css/CSSKeyframesRule.cpp:

(WebCore::StyleRuleKeyframes::findKeyframeIndex const): Return Optional<size_t>
so we don't depend on notFound. This is our better modern pattern, since
notFound can work wrong if we mix size_t and unsigned, for example. Also
updatd since result of parseKeyFrameKeyList is now a Vector rather than
a unique_ptr<Vector>.
(WebCore::CSSKeyframesRule::deleteRule): Updated for the above.
(WebCore::CSSKeyframesRule::findRule): Ditto.

  • css/CSSKeyframesRule.h: Updated for the above.
  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseKeyframeKeyList): Return Vector instead of
unique_ptr<Vector>.

  • css/parser/CSSParser.h: Updated for the above.
  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::parseKeyframeKeyList): Return Vector instead of
unique_ptr<Vector>.
(WebCore::CSSParserImpl::consumeKeyframeStyleRule): Updated for the
above change.
(WebCore::CSSParserImpl::consumeKeyframeKeyList): Return Vector instead
of unique_ptr<Vector>.

  • css/parser/CSSParserImpl.h: Updated for the above.
  • platform/graphics/FloatPolygon.cpp:

(WebCore::FloatPolygon::FloatPolygon): Take Vector&& instead of
unique_ptr<Vector>.

  • platform/graphics/FloatPolygon.h: Take Vector&& instead of unique_ptr<Vector>.

Also changed m_vertices to a Vector instead of a unique_ptr<Vector>.

  • rendering/shapes/PolygonShape.h: Take Vector&& instead of unique_ptr<Vector>.
  • rendering/shapes/Shape.cpp:

(WebCore::createPolygonShape): Take Vector&& instead of unique_ptr<Vector>.
(WebCore::Shape::createShape): Use a Vector instead of a unique_ptr<Vector>.

4:06 PM Changeset in webkit [257695] by cturner@igalia.com
  • 2 edits in trunk/Source/JavaScriptCore

undefined reference to `JSC::ExecutableBase::hasJITCodeForCall() const'
https://bugs.webkit.org/show_bug.cgi?id=207890

Reviewed by Yusuke Suzuki.

Encountered on arm-buildroot-linux-gnueabihf with GCC 9.2.0.

  • runtime/NativeExecutable.cpp: Inclusion of

ExecutableBaseInlines.h resolves the issue for me.

3:36 PM Changeset in webkit [257694] by Wenson Hsieh
  • 4 edits in trunk

Unreviewed, rolling out r257618.

This allegedly causes Safari to crash when closing a window
(see rdar://problem/59922725).

Reverted changeset:

"UIProcess crash after using _prepareForMoveToWindow, then
deallocating the WKWebView before moving to the window"
https://bugs.webkit.org/show_bug.cgi?id=208365
https://trac.webkit.org/changeset/257618

3:13 PM Changeset in webkit [257693] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Many tests in canvas and fast/canvas are asserting after r257677
https://bugs.webkit.org/show_bug.cgi?id=208431
<rdar://problem/59911910>

Reviewed by Tim Horton.

RemoteRenderingBackend asserts that it should never be created with a RenderingMode that isn't either
RemoteAccelerated or RemoteUnaccelerated. This was previously the case before r257677, because
ImageBuffer::create() would only call into the host window (i.e. the chrome and, in turn, chrome client) to
create the remote image buffer if the rendering mode is RemoteAccelerated or RemoteUnaccelerated. However, since
we want to move away from any references to RemoteAccelerated or RemoteUnaccelerated rendering modes in WebCore,
we should instead fix this by adding a similar check in the client (WebKit) layer.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createImageBuffer const):

Don't bother creating a RemoteRenderingBackend and telling it to create an image buffer, if the given
RenderingMode isn't one of RemoteAccelerated or RemoteUnaccelerated.

12:46 PM Changeset in webkit [257692] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208430

Unreviewed gardening.

  • platform/gtk/TestExpectations:
10:24 AM Changeset in webkit [257691] by commit-queue@webkit.org
  • 2 edits
    2 adds in trunk/Source/ThirdParty

Re-add the patch used to work around gtest linking failure on FreeBSD
https://bugs.webkit.org/show_bug.cgi?id=208409

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2020-03-01
Reviewed by Michael Catanzaro.

The patch was added in https://bugs.webkit.org/show_bug.cgi?id=138420 to
fix gtest linking error on FreeBSD. However, it was accidentally dropped
in r235613, the commit updating gtest, causing the error to happen
again. Re-add it to fix the build on FreeBSD.

  • gtest/src/gtest-death-test.cc:
9:55 AM Changeset in webkit [257690] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][MarginCollapsing] Do not re-compute PositiveAndNegativeVerticalMargin values
https://bugs.webkit.org/show_bug.cgi?id=208419
<rdar://problem/59923666>

Reviewed by Antti Koivisto.

MarginCollapse::collapsedVerticalValues() already computes the positive/negative before/after pairs.

  • layout/MarginTypes.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForBoxAndAncestors):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

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

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::collapsedVerticalValues):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::resolvedPositiveNegativeMarginValues): Deleted.

9:19 AM Changeset in webkit [257689] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Convert m_scrollingNodeToLayerMap to use WeakPtr<RenderLayer>
https://bugs.webkit.org/show_bug.cgi?id=208403

Reviewed by Zalan Bujtas.

Use WeakPtr<> in m_scrollingNodeToLayerMap.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::attachScrollingNode):
(WebCore::RenderLayerCompositor::detachScrollCoordinatedLayerWithRole):
(WebCore::RenderLayerCompositor::scrollableAreaForScrollLayerID const):

  • rendering/RenderLayerCompositor.h:
Note: See TracTimeline for information about the timeline view.