Timeline



Feb 3, 2019:

11:49 PM Changeset in webkit [240916] by Antti Koivisto
  • 16 edits in trunk

[iOS] Tiles not created in large scrollable iframes
https://bugs.webkit.org/show_bug.cgi?id=193665

Reviewed by Simon Fraser.

Source/WebCore:

We are not syncing scroll position back to the graphics layer tree correctly.

Test by Frédéric Wang.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
(WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
(WebCore::AsyncScrollingCoordinator::reconcileScrollPosition):

Factor setting and syncing scrolling layer positions into a function.
Use bounds.origin scrolling mechanic when scrollContainerLayer is present.

(WebCore::AsyncScrollingCoordinator::scrollableAreaScrollbarLayerDidChange):
(WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):
(WebCore::AsyncScrollingCoordinator::updateScrollLayerPosition): Deleted.

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

(WebCore::ScrollingCoordinator::scrollContainerLayerForFrameView):
(WebCore::ScrollingCoordinator::scrolledContentsLayerForFrameView):
(WebCore::ScrollingCoordinator::scrollLayerForFrameView): Deleted.

  • page/scrolling/ScrollingCoordinator.h:
  • rendering/RenderLayerCompositor.cpp:

Rename scrollLayer to scrolledContentsLayer according to out preferred naming scheme and use it in that role only.
Add scrollContainerLayer as a separate layer. It is only constructed when using async scrolling on iOS.

(WebCore::RenderLayerCompositor::~RenderLayerCompositor):
(WebCore::RenderLayerCompositor::customPositionForVisibleRectComputation const):
(WebCore::RenderLayerCompositor::visibleRectForLayerFlushing const):
(WebCore::RenderLayerCompositor::didChangePlatformLayerForLayer):
(WebCore::RenderLayerCompositor::frameViewDidChangeSize):
(WebCore::RenderLayerCompositor::updateScrollLayerPosition):
(WebCore::RenderLayerCompositor::frameViewDidScroll):
(WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForHeader):
(WebCore::RenderLayerCompositor::updateLayerForFooter):
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
(WebCore::RenderLayerCompositor::ensureRootLayer):
(WebCore::RenderLayerCompositor::destroyRootLayer):
(WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingRole):

  • rendering/RenderLayerCompositor.h:

Source/WebKit:

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:

(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateBeforeChildren):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateBeforeChildren):

We now use scrollContainerLayer consistently so remove the special cases.

LayoutTests:

Test by Frédéric Wang.

  • fast/scrolling/ios/scroll-iframe-expected.html:
  • fast/scrolling/ios/scroll-iframe.html:
  • platform/ios-wk2/compositing/iframes/scrolling-iframe-expected.txt:
  • platform/ios-wk2/compositing/tiling/tiled-drawing-async-frame-scrolling-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
11:13 PM Changeset in webkit [240915] by ysuzuki@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] UnlinkedMetadataTable assumes that MetadataTable is destroyed before it is destructed, but order of destruction of JS heap cells are not guaranteed
https://bugs.webkit.org/show_bug.cgi?id=194031

Reviewed by Saam Barati.

UnlinkedMetadataTable assumes that MetadataTable linked against this UnlinkedMetadataTable is already destroyed when UnlinkedMetadataTable is destroyed.
This means that UnlinkedCodeBlock is destroyed after all the linked CodeBlocks are destroyed. But this assumption is not valid since GC's finalizer
sweeps objects without considering the dependencies among swept objects. UnlinkedMetadataTable can be destroyed even before linked MetadataTable is
destroyed if UnlinkedCodeBlock is destroyed before linked CodeBlock is destroyed.

To make the above assumption valid, we make UnlinkedMetadataTable RefCounted object, and make MetadataTable hold the strong ref to UnlinkedMetadataTable.
This ensures that UnlinkedMetadataTable is destroyed after all the linked MetadataTables are destroyed.

  • bytecode/MetadataTable.cpp:

(JSC::MetadataTable::MetadataTable):
(JSC::MetadataTable::~MetadataTable):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
(JSC::UnlinkedCodeBlock::visitChildren):
(JSC::UnlinkedCodeBlock::estimatedSize):
(JSC::UnlinkedCodeBlock::setInstructions):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::metadata):
(JSC::UnlinkedCodeBlock::metadataSizeInBytes):

  • bytecode/UnlinkedMetadataTable.h:

(JSC::UnlinkedMetadataTable::create):

  • bytecode/UnlinkedMetadataTableInlines.h:

(JSC::UnlinkedMetadataTable::UnlinkedMetadataTable):

  • runtime/CachedTypes.cpp:

(JSC::CachedMetadataTable::decode const):
(JSC::CachedCodeBlock::metadata const):
(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):
(JSC::CachedCodeBlock<CodeBlockType>::decode const):
(JSC::CachedCodeBlock<CodeBlockType>::encode):

6:15 PM Changeset in webkit [240914] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[curl] [WebKit] Assertion failures of missing networkStorageSession for storage/indexeddb tests
https://bugs.webkit.org/show_bug.cgi?id=194141

Reviewed by Ross Kirsling.

Implemented WebKit::NetworkProcess::switchToNewTestingSession and
WebKit::NetworkProcess::ensureSession for curl port.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::switchToNewTestingSession):
(WebKit::NetworkProcess::ensureSession):

6:11 PM Changeset in webkit [240913] by Fujii Hironori
  • 2 edits in trunk/Tools

[Win] WebKitTestRunners is failing to create the IndexedDB directory.
https://bugs.webkit.org/show_bug.cgi?id=194142

Reviewed by Ross Kirsling.

There three 'separator' variables in TestController.cpp. Renamed
it 'pathSeparator', and unified them.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::generateContextConfiguration const):
(WTR::createTestURL):
(WTR::TestController::platformAdjustContext):

5:48 PM Changeset in webkit [240912] by Simon Fraser
  • 19 edits in trunk

Make setNeedsLayout on the root more explicitly about triggering its side-effects
https://bugs.webkit.org/show_bug.cgi?id=194198

Reviewed by Antti Koivisto.

Source/WebCore:

Calling setNeedsLayout() on the FrameView or RenderView is an odd concept; the render tree
generally manages its own dirty state.

Most callers of setNeedsLayout() on the root are really trying to trigger the side-effects
of layout, like compositing updates, which are required when view configuration state, like
headers, footers and transparency, change. These dependencies are currently implicit and
poorly defined.

Renaming "setNeedsLayout" on FrameView is a step towards being more explicit about pure
rendering updates, vs updates of downstream data strutures like compositing. It's now called
setNeedsLayoutAfterViewConfigurationChange(). In addition, expose
setNeedsCompositingConfigurationUpdate() and setNeedsCompositingGeometryUpdate() so callers
can trigger the appropriate types of compositing updates on the root layer.

In addition, FrameViewLayoutContext::setNeedsLayoutAfterViewConfigurationChange() schedules a
layout. Withtout this, some callers would dirty the RenderView's layout but rely on some
other trigger to make the layout happen.

This cleanup was prompted by noticing that FrameView::setHeaderHeight() dirtied layout
but never scheduled it, making banner insertion in MiniBrowser unreliable.

This patch also removes the aliasing of headerHeight/footerHeight between Page and
FrameView. Banners are a property of Page, so FrameView fetches the banner heights
from Page.

  • page/FrameView.cpp:

(WebCore::FrameView::headerHeight const):
(WebCore::FrameView::footerHeight const):
(WebCore::FrameView::availableContentSizeChanged):
(WebCore::FrameView::setNeedsLayoutAfterViewConfigurationChange):
(WebCore::FrameView::setNeedsCompositingConfigurationUpdate):
(WebCore::FrameView::setNeedsCompositingGeometryUpdate):
(WebCore::FrameView::scheduleSelectionUpdate):
(WebCore::FrameView::setTransparent):
(WebCore::FrameView::setBaseBackgroundColor):
(WebCore::FrameView::setAutoSizeFixedMinimumHeight):
(WebCore::FrameView::enableAutoSizeMode):
(WebCore::FrameView::setHeaderHeight): Deleted.
(WebCore::FrameView::setFooterHeight): Deleted.
(WebCore::FrameView::setNeedsLayout): Deleted.

  • page/FrameView.h:
  • page/FrameViewLayoutContext.cpp:

(WebCore::FrameViewLayoutContext::setNeedsLayoutAfterViewConfigurationChange):
(WebCore::FrameViewLayoutContext::setNeedsLayout): Deleted.

  • page/FrameViewLayoutContext.h:
  • page/Page.cpp:

(WebCore::Page::setPageScaleFactor):
(WebCore::Page::setHeaderHeight):
(WebCore::Page::setFooterHeight):
(WebCore::Page::addHeaderWithHeight): Deleted.
(WebCore::Page::addFooterWithHeight): Deleted.

  • page/Page.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateBacking):

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setHeaderHeight):
(WebCore::Internals::setFooterHeight):

Source/WebKit:

Call the newly named functions.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::updateScrollbars):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::didInitializePlugin):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setHeaderBannerHeightForTesting):
(WebKit::WebPage::setFooterBannerHeightForTesting):

  • WebProcess/WebPage/mac/PageBannerMac.mm:

(WebKit::PageBanner::addToPage):
(WebKit::PageBanner::detachFromPage):
(WebKit::PageBanner::hide):

Source/WebKitLegacy/mac:

Call the newly named functions.

  • WebView/WebFrame.mm:

(-[WebFrame setNeedsLayout]):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView setNeedsLayout:]):

Tools:

No need to set the banner heights on navigation now, since Page stores them.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController webView:didFinishNavigation:]):

4:44 PM Changeset in webkit [240911] by wilander@apple.com
  • 7 edits
    4 adds in trunk

Parse and handle Ad Click Attribution attributes in HTMLAnchorElement::handleClick()
https://bugs.webkit.org/show_bug.cgi?id=194104
<rdar://problem/47649991>

Reviewed by Chris Dumez, Daniel Bates, and Darin Adler.

Source/WebCore:

Test: http/tests/adClickAttribution/anchor-tag-attributes-validation.html

This patch adds parsing and validation of the two new Ad Click Attribution
attributes in anchor elements: adcampaignid and addestination. The data is
not yet forwarded into the loader.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::parseAdClickAttribution const):
(WebCore::HTMLAnchorElement::handleClick):

Now calls HTMLAnchorElement::parseAdClickAttribution().

  • html/HTMLAnchorElement.h:
  • loader/AdClickAttribution.h:

Made WebCore::AdClickAttribution copyable since it's needed to have it be
WTF::Optional. Also made AdClickAttribution::MaxEntropy public. Changed
numeric types from unsigned short to uint32_t.

(WebCore::AdClickAttribution::Campaign::isValid const):
(WebCore::AdClickAttribution::Conversion::isValid const):

Tools:

  • TestWebKitAPI/Tests/WebCore/AdClickAttribution.cpp:

(TestWebKitAPI::TEST):

Changed numeric types from unsigned short to uint32_t.

LayoutTests:

This test case makes sure invalid data triggers console warnings.

  • http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt: Added.
  • http/tests/adClickAttribution/anchor-tag-attributes-validation.html: Added.
  • platform/ios-wk2/http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt: Added.

Console line numbers are not emitted when running iOS tests so this -expected.txt file doesn't have them.

3:43 PM Changeset in webkit [240910] by bshafiei@apple.com
  • 7 edits in branches/safari-607-branch/Source

Versioning.

2:48 PM Changeset in webkit [240909] by rniwa@webkit.org
  • 29 edits in trunk/Source

Validate navigation policy decisions to avoid crashes in continueLoadAfterNavigationPolicy
https://bugs.webkit.org/show_bug.cgi?id=194189

Reviewed by Geoffrey Garen.

Source/WebCore:

Introduced PolicyCheckIdentifier to pair each navigation policy check request with a decision,
and deployed it in PolicyChecker. The identifier is passed from WebContent process to UI process
in WebKit2, and passed it back with the policy decision.

Because PolicyCheckIdentifier embeds the process identifier from which a navigation policy is checked,
we would be able to detect when UI process had sent the decision to a wrong WebContent process.

This patch also adds release assertions to make sure history().provisionalItem() is set whenever
we're requesting a navigation policy check.

These code changes should either:

  1. Fix crashes in FrameLoader::continueLoadAfterNavigationPolicy where isBackForwardLoadType would return true yet history().provisionalItem() is null.
  2. Detect a bug that UI process can send a navigation policy decision to a wrong WebContent process.
  3. Rule out the possibility that (2) exists.
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::responseReceived):

  • loader/EmptyClients.cpp:

(WebCore::EmptyFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebCore::EmptyFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkContentPolicy):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::loadPostRequest):

  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:
  • loader/FrameLoaderTypes.h:

(WebCore::PolicyCheckIdentifier): Added.
(WebCore::PolicyCheckIdentifier::operator== const): Added.
(WebCore::PolicyCheckIdentifier::PolicyCheckIdentifier): Added.
(WebCore::PolicyCheckIdentifier::encode const): Added.
(WebCore::PolicyCheckIdentifier::decode): Added.

  • loader/PolicyChecker.cpp:

(WebCore::PolicyCheckIdentifier::generate):
(WebCore::PolicyCheckIdentifier::isValidFor): Returns true if the identifer matches. Also release asserts
that the process ID is same, and that m_check is always not zero (meaning it's a generated value).
The failure of these release assertions would indicate that there is a bug in UI process, which results in
a policy decision response being sent to a wrong Web process.
(WebCore::PolicyChecker::checkNavigationPolicy): Exit early if isValidFor fails.
(WebCore::PolicyChecker::checkNewWindowPolicy):

Source/WebKit:

Pass the policy check identifier around functions and store it in PolicyDecisionSender
so that we can send it back to WebCore with the navigation policy decision.

We also store it in WebFrame in the case the policy decision had to be invalidated
before the decision was received (via WebFrame::invalidatePolicyListener).

  • Scripts/webkit/messages.py:
  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::ProvisionalPageProxy::decidePolicyForResponse):

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

(WebKit::WebPageProxy::PolicyDecisionSender): Added PolicyCheckIdentifier as a member.
(WebKit::WebPageProxy::PolicyDecisionSender::create):
(WebKit::WebPageProxy::PolicyDecisionSender::send):
(WebKit::WebPageProxy::PolicyDecisionSender::PolicyDecisionSender):
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::decidePolicyForResponseShared):

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

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::setUpPolicyListener):
(WebKit::WebFrame::invalidatePolicyListener):
(WebKit::WebFrame::didReceivePolicyDecision):

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

(WebKit::WebPage::didReceivePolicyDecision):

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

Source/WebKitLegacy/mac:

Pass the policy check identifier around functions and store it in WebFramePolicyListener
so that we can send it back to WebCore with the navigation policy decision.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
(WebFrameLoaderClient::dispatchWillSubmitForm):
(WebFrameLoaderClient::setUpPolicyListener):
(-[WebFramePolicyListener initWithFrame:identifier:policyFunction:defaultPolicy:]):
(-[WebFramePolicyListener initWithFrame:identifier:policyFunction:defaultPolicy:appLinkURL:]):
(-[WebFramePolicyListener invalidate]):
(-[WebFramePolicyListener dealloc]):
(-[WebFramePolicyListener receivedPolicyDecision:]):
(-[WebFramePolicyListener initWithFrame:policyFunction:defaultPolicy:]): Deleted.
(-[WebFramePolicyListener initWithFrame:policyFunction:defaultPolicy:appLinkURL:]): Deleted.

Source/WebKitLegacy/win:

Pass the policy check identifier around functions and store it in WebFramePolicyListener
so that we can send it back to WebCore with the navigation policy decision.

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
(WebFrameLoaderClient::dispatchWillSubmitForm):
(WebFrameLoaderClient::setUpPolicyListener):

  • WebCoreSupport/WebFrameLoaderClient.h:
1:17 PM Changeset in webkit [240908] by bshafiei@apple.com
  • 7 edits in tags/Safari-608.1.3.0.2/Source

Versioning.

1:10 PM Changeset in webkit [240907] by bshafiei@apple.com
  • 1 copy in tags/Safari-608.1.3.0.2

Tag Safari-608.1.3.0.2.

1:02 PM Changeset in webkit [240906] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Don't include ScrollCoordinator.h from Element.h
https://bugs.webkit.org/show_bug.cgi?id=194206

Reviewed by Daniel Bates.

  • dom/Element.h:
12:52 PM Changeset in webkit [240905] by Wenson Hsieh
  • 4 edits
    2 adds in trunk

Unable to move selection into editable roots with 0 height
https://bugs.webkit.org/show_bug.cgi?id=194143
<rdar://problem/47767284>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Currently, positions inside editable elements of height 0 are not considered to be candidates when
canonicalizing a position to its visible counterpart. This prevents us from moving the selection into these
editable roots at all. To fix this, we relax this constraint by allowing positions anchored by root editable
elements to be candidates.

Test: editing/selection/insert-text-in-empty-content-editable.html

  • dom/Position.cpp:

(WebCore::Position::isCandidate const):

LayoutTests:

Add a new layout test that executes editing commands in a contenteditable element of height 0, and adjust an
existing layout test that copies and pastes an image element to wait until the image has loaded.

  • editing/pasteboard/styled-element-markup.html:
  • editing/selection/insert-text-in-empty-content-editable-expected.txt: Added.
  • editing/selection/insert-text-in-empty-content-editable.html: Added.
11:46 AM Changeset in webkit [240904] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Tidyup of Pagination and FrameView m_mediaType initialization
https://bugs.webkit.org/show_bug.cgi?id=194203

Reviewed by Darin Adler.

Fix post-commit feedback on lines around code changed in r240901.

  • page/FrameView.cpp:

(WebCore::FrameView::FrameView):

  • page/FrameView.h:
  • rendering/Pagination.h:

(WebCore::Pagination::operator!= const):

5:53 AM Changeset in webkit [240903] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

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

"Fixes leaks, but is probably not the correct fix." (Requested
by ddkilzer on #webkit).

Reverted changeset:

"Leak of WTF::StringImpl under SymbolImpl::createNullSymbol()
(48 bytes) in com.apple.WebKit.WebContent running layout
tests"
https://bugs.webkit.org/show_bug.cgi?id=193291
https://trac.webkit.org/changeset/240896

1:05 AM Changeset in webkit [240902] by Megan Gardner
  • 26 edits
    3 copies
    10 adds in trunk

Turn on Smart Paste
https://bugs.webkit.org/show_bug.cgi?id=193786

Reviewed by Ryosuke Niwa.

Source/WebCore:

Turned on a modified tests:
LayoutTests/editing/pasteboard/smart-paste-001.html
LayoutTests/editing/pasteboard/smart-paste-002.html
LayoutTests/editing/pasteboard/smart-paste-003.html
LayoutTests/editing/pasteboard/smart-paste-004.html
LayoutTests/editing/pasteboard/smart-paste-005.html
LayoutTests/editing/pasteboard/smart-paste-006.html
LayoutTests/editing/pasteboard/smart-paste-007.html
LayoutTests/editing/pasteboard/smart-paste-008.html

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::canSmartReplace):
Turn on smart replace.

Source/WebKit:

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/TextCheckerIOS.mm:

(WebKit::TextChecker::isSmartInsertDeleteEnabled):
Use the flag from UIKit to determine if smart copy paste should be
turned on.

LayoutTests:

Rebaselined many tests and/or added iOS specific expectations to
correctly reflect smart copy paste behavior.

  • editing/editing.js:

(runEditingTestWithCallbackLogging):
(runDumpAsTextEditingTest):
Added ability to handle async functions.

  • editing/pasteboard/smart-paste-001.html:
  • editing/pasteboard/smart-paste-002.html:
  • editing/pasteboard/smart-paste-003.html:
  • editing/pasteboard/smart-paste-004.html:
  • editing/pasteboard/smart-paste-005.html:
  • editing/pasteboard/smart-paste-006.html:
  • editing/pasteboard/smart-paste-007.html:
  • editing/pasteboard/smart-paste-008.html:
  • platform/ios-wk2/editing/pasteboard/smart-paste-007-expected.txt:
  • platform/ios-wk2/editing/pasteboard/smart-paste-008-expected.txt:
  • platform/ios/TestExpectations:
  • platform/ios/editing/pasteboard/smart-paste-001-expected.txt: Added.
  • platform/ios/editing/pasteboard/smart-paste-002-expected.txt: Added.
  • platform/ios/editing/pasteboard/smart-paste-003-expected.txt: Added.
  • platform/ios/editing/pasteboard/smart-paste-004-expected.txt: Added.
  • platform/ios/editing/pasteboard/smart-paste-005-expected.txt: Added.
  • platform/ios/editing/pasteboard/smart-paste-006-expected.txt: Added.
  • resources/ui-helper.js:

(window.UIHelper.doubleClickAt):
(window.UIHelper.async.selectWordByDoubleTapOrClick):
Added helper functions to allow for selecting a word by double tap or click.

Feb 2, 2019:

4:16 PM Changeset in webkit [240901] by Simon Fraser
  • 11 edits in trunk/Source

Tidy up data memebers of FrameView and related classes to shrink class sizes
https://bugs.webkit.org/show_bug.cgi?id=194197

Reviewed by Zalan Bujtas.

Source/WebCore:

Make various enums 8-bit. Re-order data members of FrameView, FrameViewLayoutContext, Widget
and ScrollView to optimize padding.

Use more data member initializers.

This shrinks FrameView from 1168 (144 padding bytes) to 1096 (96 padding bytes).

  • dom/Element.h:
  • page/FrameView.cpp:

(WebCore::FrameView::FrameView):

  • page/FrameView.h:
  • page/FrameViewLayoutContext.h:
  • platform/ScrollTypes.h:
  • platform/ScrollView.h: Data members should come after member functions.
  • platform/Widget.h:
  • rendering/Pagination.h:

(WebCore::Pagination::Pagination): Deleted.

Source/WebKit:

  • UIProcess/PageClient.h: Declare enum size.
12:20 PM Changeset in webkit [240900] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

Leak of NSArray (4.25 Kbytes) in com.apple.WebKit.WebContent running WebKit layout tests on iOS Simulator
<https://webkit.org/b/194178>
<rdar://problem/47753473>

Reviewed by Alexey Proskuryakov.

  • WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:

(WTR::uninstallFakeHelvetica): Pass nullptr into
CTFontManagerUnregisterFontsForURLs() to ignore any errors.

12:05 PM Changeset in webkit [240899] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Rename "scrollingLayer" in RenderLayerBacking to "scrollContainerLayer" for clarity
https://bugs.webkit.org/show_bug.cgi?id=194194

Rubber-stampted by Antti Koivisto.

Our desired terminology is "scrollContainerLayer" for the outer, clipping layer
for scrolling, and "scrolledContentsLayer" for the contents that move when you scroll.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateDebugIndicators):
(WebCore::RenderLayerBacking::destroyGraphicsLayers):
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::setLocationOfScrolledContents):
(WebCore::RenderLayerBacking::updateAfterDescendants):
(WebCore::RenderLayerBacking::updateInternalHierarchy):
(WebCore::RenderLayerBacking::updateDrawsContent):
(WebCore::RenderLayerBacking::updateScrollingLayers):

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

(WebCore::RenderLayerCompositor::didChangePlatformLayerForLayer):
(WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingRole):
(WebCore::LegacyWebKitScrollingLayerCoordinator::registerAllViewportConstrainedLayers):
(WebCore::LegacyWebKitScrollingLayerCoordinator::updateScrollingLayer):
(WebCore::LegacyWebKitScrollingLayerCoordinator::unregisterAllScrollingLayers):
(WebCore::LegacyWebKitScrollingLayerCoordinator::removeScrollingLayer):

11:53 AM Changeset in webkit [240898] by Justin Fan
  • 12 edits
    3 copies in trunk

Source/WebCore:
[Web GPU] Fix GPURenderPassEncoder::setVertexBuffers and allow overlapping indices with GPUBindGroups
https://bugs.webkit.org/show_bug.cgi?id=194125

Reviewed by Myles C. Maxfield.

GPURenderPassEncoder::setVertexBuffers is now actually written to set all buffers provided. In addition,
shift vertex input buffer indices so that any resource bindings can bind vertex buffer resources to the same indices.

Existing tests cover setVertexBuffers. Updated buffer-resource-triangles to assign bind groups and vertex buffers to the same index.

  • Modules/webgpu/WHLSL/Metal/WHLSLVertexBufferIndexCalculator.cpp: Added.

(WebCore::WHLSL::Metal::calculateVertexBufferIndex): Simple shifting function for vertex input buffer indices.

  • Modules/webgpu/WHLSL/Metal/WHLSLVertexBufferIndexCalculator.h: Added.
  • Modules/webgpu/WebGPUProgrammablePassEncoder.cpp:

(WebCore::WebGPUProgrammablePassEncoder::setBindGroup const): Limit maximum bind group indices to 0 to 3.

  • Modules/webgpu/WebGPURenderPassEncoder.cpp:

(WebCore::WebGPURenderPassEncoder::setVertexBuffers): Limit vertex input indices to 0 to 15.

  • Modules/webgpu/WebGPURenderPassEncoder.h: Move IDL/bindings bug note to IDL file.
  • Modules/webgpu/WebGPURenderPassEncoder.idl: Ditto.
  • platform/graphics/gpu/GPULimits.h: Added. Home for Web GPU limits constants shared between files.
  • platform/graphics/gpu/GPURenderPassEncoder.h: Change IDL/bindings bug workaround to unsigned long long to prevent narrowing compared to spec.
  • platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm:

(WebCore::GPURenderPassEncoder::setVertexBuffers): Now properly calls Metal's setVertexBuffers.

  • platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:

(WebCore::setInputStateForPipelineDescriptor): Fix validation checks for vertex attribute numbers and vertex buffer indices.

Add symbols to project:

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:
[WebGPU] Fix GPURenderPassEncoder::setVertexBuffers and allow overlapping indices with GPUBindGroups
https://bugs.webkit.org/show_bug.cgi?id=194125

Reviewed by Myles C. Maxfield.

Updated buffer-resource-triangles to assign bind groups and vertex buffers to the same index.

  • webgpu/buffer-resource-triangles.html:
11:09 AM Changeset in webkit [240897] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

Async overflow scroll is jumpy on macOS if the main thread is busy
https://bugs.webkit.org/show_bug.cgi?id=194184
<rdar://problem/47758655>

Reviewed by Antti Koivisto.

This change extends to macOS some existing overflow-scroll functionality for iOS.
When an async scroll is in process in the scroll thread (or UI process), we periodically
message back to the web process main thread with scroll position updates. These
can trigger post-scroll compositing updates, but we need to ensure that this update
doesn't clobber the scroll position of the native layers, which would trigger
stutters.

To do this we have the notion of a scroll position "sync" (ScrollingLayerPositionAction::Sync) which
pokes the new value into the GraphicsLayer (hence making visible rect computations work), but doesn't
propagate it to the platform layer. This patch wires up syncs for macOS during async overflow scrolling,
coming out of AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll().

In RenderLayerBacking, m_scrollingContentsLayer is renamed to m_scrolledContentsLayer, and I added
updateScrollOffset() and setLocationOfScrolledContents() to handle the set vs. sync, and to keep
the iOS vs macOS differences in one function. This allows for more code sharing in RenderLayerBacking::updateGeometry().

There's a confusing bit in the m_childClippingMaskLayer code (trac.webkit.org/178029) where the setOffsetFromRenderer()
just looks wrong; it should match m_scrollingLayer. This code is never hit for Cocoa, which never has m_childClippingMaskLayer.

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:

(WebCore::ScrollingTreeOverflowScrollingNodeMac::setScrollPosition): Logging
(WebCore::ScrollingTreeOverflowScrollingNodeMac::setScrollLayerPosition): Logging

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::scrollTo):

  • rendering/RenderLayer.h: Rename m_requiresScrollBoundsOriginUpdate to m_requiresScrollPositionReconciliation

and make it available on all platforms. Just reorder m_adjustForIOSCaretWhenScrolling to reduce #ifdef nesting confusion.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateDebugIndicators):
(WebCore::RenderLayerBacking::destroyGraphicsLayers):
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::setLocationOfScrolledContents):
(WebCore::RenderLayerBacking::updateScrollOffset):
(WebCore::RenderLayerBacking::updateDrawsContent):
(WebCore::RenderLayerBacking::updateScrollingLayers):
(WebCore::RenderLayerBacking::paintingPhaseForPrimaryLayer const):
(WebCore::RenderLayerBacking::parentForSublayers const):
(WebCore::RenderLayerBacking::setContentsNeedDisplay):
(WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
(WebCore::RenderLayerBacking::paintContents):
(WebCore::RenderLayerBacking::backingStoreMemoryEstimate const):

  • rendering/RenderLayerBacking.h:
10:35 AM Changeset in webkit [240896] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WTF

Leak of WTF::StringImpl under SymbolImpl::createNullSymbol() (48 bytes) in com.apple.WebKit.WebContent running layout tests
<https://webkit.org/b/193291>
<rdar://problem/46655953>

Reviewed by Keith Miller.

  • wtf/text/SymbolImpl.h:

(WTF::SymbolImpl::~SymbolImpl): Fix the leak by implementing the
class destructor that calls StringImpl::deref() on m_owner.
Two of the three constructors leak the StringImpl when setting
m_owner, so we need to balance that by manually calling
deref().

8:32 AM Changeset in webkit [240895] by Alan Bujtas
  • 7 edits in trunk

[LFC] Initialize ICB's style with fixed width/height.
https://bugs.webkit.org/show_bug.cgi?id=194188

Reviewed by Antti Koivisto.

Source/WebCore:

Let's set ICB's logical width/height to Fixed so that it's available when we try to resolve a box's height
in FormattingContext::Geometry::computedHeightValue() by using the containing block's height (ICB in this case).

  • layout/LayoutState.cpp:

(WebCore::Layout::LayoutState::LayoutState):

  • layout/LayoutState.h:
  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createLayoutTree):

Tools:

  • LayoutReloaded/misc/LFC-passing-tests.txt:
8:26 AM Changeset in webkit [240894] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[LFC] Add missing case to out-of-flow non-replaced horizontal used margin value computation
https://bugs.webkit.org/show_bug.cgi?id=194185

Reviewed by Antti Koivisto.

Source/WebCore:

If none of horizontal values (left, right, width, margin-left/right) are auto, then usedHorizontalMarginValues = computedHorizontalMarginValues.

Test: fast/block/block-only/absolute-position-left-right-margin.html

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):

Tools:

  • LayoutReloaded/misc/LFC-passing-tests.txt:

LayoutTests:

  • fast/block/block-only/absolute-position-left-right-margin-expected.html: Added.
  • fast/block/block-only/absolute-position-left-right-margin.html: Added.

Feb 1, 2019:

11:15 PM Changeset in webkit [240893] by ysuzuki@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

[JSC] Decouple JIT related data from CodeBlock
https://bugs.webkit.org/show_bug.cgi?id=194187

Patch by Yusuke Suzuki <ysuzuki@apple.com> on 2019-02-01
Reviewed by Saam Barati.

CodeBlock holds bunch of data which is only used after JIT starts compiling it.
We have three types of data in CodeBlock.

  1. The data which is always used. CodeBlock needs to hold it.
  2. The data which is touched even in LLInt, but it is only meaningful in JIT tiers. The example is profiling.
  3. The data which is used after the JIT compiler starts running for the given CodeBlock.

This patch decouples (3) from CodeBlock as CodeBlock::JITData. Even if we have bunch of CodeBlocks, only small
number of them gets JIT compilation. Always allocating (3) data enlarges the size of CodeBlock, leading to the
memory waste. Potentially we can decouple (2) in another data structure, but we first do (3) since (3) is beneficial
in both non-JIT and *JIT* modes.

JITData is created only when JIT compiler wants to use it. So it can be concurrently created and used, so it is guarded
by the lock of CodeBlock.

The size of CodeBlock is reduced from 512 to 352.

This patch improves memory footprint and gets 1.1% improvement in RAMification.

Footprint geomean: 36696503 (34.997 MB)
Peak Footprint geomean: 38595988 (36.808 MB)
Score: 37634263 (35.891 MB)

Footprint geomean: 37172768 (35.451 MB)
Peak Footprint geomean: 38978288 (37.173 MB)
Score: 38064824 (36.301 MB)

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::~CodeBlock):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::ensureJITDataSlow):
(JSC::CodeBlock::finalizeBaselineJITInlineCaches):
(JSC::CodeBlock::getICStatusMap):
(JSC::CodeBlock::addStubInfo):
(JSC::CodeBlock::addJITAddIC):
(JSC::CodeBlock::addJITMulIC):
(JSC::CodeBlock::addJITSubIC):
(JSC::CodeBlock::addJITNegIC):
(JSC::CodeBlock::findStubInfo):
(JSC::CodeBlock::addByValInfo):
(JSC::CodeBlock::addCallLinkInfo):
(JSC::CodeBlock::getCallLinkInfoForBytecodeIndex):
(JSC::CodeBlock::addRareCaseProfile):
(JSC::CodeBlock::rareCaseProfileForBytecodeOffset):
(JSC::CodeBlock::rareCaseProfileCountForBytecodeOffset):
(JSC::CodeBlock::resetJITData):
(JSC::CodeBlock::stronglyVisitStrongReferences):
(JSC::CodeBlock::shrinkToFit):
(JSC::CodeBlock::linkIncomingCall):
(JSC::CodeBlock::linkIncomingPolymorphicCall):
(JSC::CodeBlock::unlinkIncomingCalls):
(JSC::CodeBlock::updateAllPredictionsAndCountLiveness):
(JSC::CodeBlock::dumpValueProfiles):
(JSC::CodeBlock::setPCToCodeOriginMap):
(JSC::CodeBlock::findPC):
(JSC::CodeBlock::dumpMathICStats):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::ensureJITData):
(JSC::CodeBlock::setJITCodeMap):
(JSC::CodeBlock::jitCodeMap):
(JSC::CodeBlock::likelyToTakeSlowCase):
(JSC::CodeBlock::couldTakeSlowCase):
(JSC::CodeBlock::lazyOperandValueProfiles):
(JSC::CodeBlock::stubInfoBegin): Deleted.
(JSC::CodeBlock::stubInfoEnd): Deleted.
(JSC::CodeBlock::callLinkInfosBegin): Deleted.
(JSC::CodeBlock::callLinkInfosEnd): Deleted.
(JSC::CodeBlock::jitCodeMap const): Deleted.
(JSC::CodeBlock::numberOfRareCaseProfiles): Deleted.

  • bytecode/MethodOfGettingAValueProfile.cpp:

(JSC::MethodOfGettingAValueProfile::emitReportValue const):
(JSC::MethodOfGettingAValueProfile::reportValue):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):

  • jit/JIT.h:
  • jit/JITOperations.cpp:

(JSC::tryGetByValOptimize):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::privateCompileGetByVal):
(JSC::JIT::privateCompilePutByVal):

8:05 PM Changeset in webkit [240892] by Darin Adler
  • 25 edits in trunk

Convert additional String::format clients to alternative approaches
https://bugs.webkit.org/show_bug.cgi?id=192746

Reviewed by Alexey Proskuryakov.

Source/JavaScriptCore:

  • inspector/agents/InspectorConsoleAgent.cpp:

(Inspector::InspectorConsoleAgent::stopTiming): Use makeString
and FormattedNumber::fixedWidth.

Source/WebCore:

This round of conversions covers less-trivial cases such as floating
point numerals and hexadecimal. Not yet taking on pointer serialization
("%p") or padding with spaces of zero digits, so call sites using those
have been left untouched.

In some cases these new idioms are a bit clumsy, and we could follow up
with additional convenience functions to make them more elegant.

  • Modules/indexeddb/IDBKeyData.cpp:

(WebCore::IDBKeyData::loggingString const): Use more ASCIILiteral and
more appendLiteral for efficiency. Use upperNibbleToLowercaseASCIIHexDigit,
lowerNibbleToLowercaseASCIIHexDigit, and also makeString and FormattedNumber.

  • css/MediaQueryEvaluator.cpp:

(WebCore::aspectRatioValueAsString): Use makeString and FormattedNumber.
Doing it this way makes it a little clearer that we have an unpleasant
use of fixed 6-digit precision here.

  • html/FTPDirectoryDocument.cpp:

(WebCore::processFilesizeString): Use makeString and FormattedNumber.

  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::applyCSSProperties): Ditto.

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::windowRoundedCornerRadiusCSS const): Ditto.

  • page/History.cpp:

(WebCore::History::stateObjectAdded): Ditto.

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::formatByteNumber): Ditto.
(WebCore::gcTimerString): Use String::number.
(WebCore::ResourceUsageOverlay::platformDraw): Use makeString and FormattedNumber.

  • page/scrolling/AxisScrollSnapOffsets.cpp:

(WebCore::snapOffsetsToString): Removed some unnecessary copying in the for loop,
use appendLiteral, and use appendFixedWidthNumber.
(WebCore::snapOffsetRangesToString): Ditto.
(WebCore::snapPortOrAreaToString): Use makeString and FormattedNumber.

  • platform/animation/TimingFunction.cpp:

(WebCore::TimingFunction::cssText const): Use makeString.

  • platform/cocoa/KeyEventCocoa.mm:

(WebCore::keyIdentifierForCharCode): Use makeString and the ASCIIHexDigit
functions.

  • platform/graphics/Color.cpp:

(WebCore::Color::nameForRenderTreeAsText const): Ditto.

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::drawText): Use makeString and FormattedNumber.

  • platform/text/PlatformLocale.cpp:

(WebCore::DateTimeStringBuilder::visitField): Use String::numberToStringFixedWidth.

Source/WebCore/PAL:

  • pal/FileSizeFormatter.cpp:

(fileSizeDescription): Use makeString and FormattedNumber.

Source/WebKit:

  • UIProcess/Cocoa/ViewGestureController.cpp:

(WebKit::ViewGestureController::SnapshotRemovalTracker::startWatchdog):
Use makeString and FormattedNumber.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::getAssertion): Added a comment about an
incorrect format specifier and left this code as is for now.

Source/WTF:

  • wtf/JSONValues.cpp:

(WTF::appendDoubleQuotedStringEscapedCharacter): Renamed from
escapeChar and reordered arguments to make sense as an append function.
(WTF::appendDoubleQuotedString): Renamed from doubleQuoteString,
reordered arguments to make sense as an append function, take a
StringView instead of a String, used early exit to make the code
a bit easier to read. Use the ASCIIHexDigit functions to construct
a hex number a nibble at a time rather than using String::format.
(WTF::JSONImpl::Value::writeJSON const): Update for name change.
(WTF::JSONImpl::ObjectBase::writeJSON const): Ditto.

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::originUserVisibleName): Use makeString and reduce the use of std::string
as an intermediate in code that ultimately constructs a WTF::String.
(WTR::userMediaOriginHash): Use makeString.
(WTR::TestController::didNavigateWithNavigationData): More of the same.
(WTR::TestController::didPerformClientRedirect): Ditto.
(WTR::TestController::didPerformServerRedirect): Ditto.
(WTR::TestController::didUpdateHistoryTitle): Ditto.

6:30 PM Changeset in webkit [240891] by Simon Fraser
  • 8 edits in trunk/Source/WebCore

Remove the unused layerForScrolling()
https://bugs.webkit.org/show_bug.cgi?id=194180

Reviewed by Zalan Bujtas.

Remove ScrollableArea::layerForScrolling() and derivations. This was unused.

  • page/FrameView.cpp:

(WebCore::FrameView::layerForScrolling const): Deleted.

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

(WebCore::ScrollingCoordinator::scrollLayerForScrollableArea): Deleted.

  • page/scrolling/ScrollingCoordinator.h:
  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::layerForScrolling const): Deleted.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayer.h:
6:19 PM Changeset in webkit [240890] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-build] Add unit test to verify builder keys
https://bugs.webkit.org/show_bug.cgi?id=194152

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/loadConfig_unittest.py:

(ConfigDotJSONTest.test_builder_keys): Added unit-test.

4:45 PM Changeset in webkit [240889] by ddkilzer@apple.com
  • 5 edits
    1 move in trunk/Source

Move soft-linking of TelephonyUtilities.framework out of TUCallSPI.h
<https://webkit.org/b/193866>

Reviewed by Alex Christensen.

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/PlatformMac.cmake:
  • Update for rename of TUCallSPI.h to TelephonyUtilitiesSPI.h.
  • pal/spi/mac/TelephonyUtilitiesSPI.h: Rename from Source/WebCore/PAL/pal/spi/mac/TUCallSPI.h.
  • Remove soft-linking code from header.

Source/WebKit:

  • Platform/mac/MenuUtilities.mm:
  • Update for rename of TUCallSPI.h to TelephonyUtilitiesSPI.h.
  • Add soft-linking code formerly in TUCallSPI.h.
4:24 PM Changeset in webkit [240888] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Remove some of IsoSubspaces for JSFunction subclasses
https://bugs.webkit.org/show_bug.cgi?id=194177

Reviewed by Saam Barati.

JSGeneratorFunction, JSAsyncFunction, and JSAsyncGeneratorFunction do not add any fields / classInfo methods.
We can share the IsoSubspace for JSFunction.

  • runtime/JSAsyncFunction.h:
  • runtime/JSAsyncGeneratorFunction.h:
  • runtime/JSGeneratorFunction.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
3:59 PM Changeset in webkit [240887] by Alan Bujtas
  • 2 edits in trunk/Tools

[LFC] Expand tests coverage (12 new tests -> 787)

Unreviewed test gardening.

  • LayoutReloaded/misc/LFC-passing-tests.txt:
3:54 PM Changeset in webkit [240886] by Alan Bujtas
  • 4 edits in trunk

[LFC] Fix statically positioned replaced out-of-flow horizontal geometry
https://bugs.webkit.org/show_bug.cgi?id=194163

Reviewed by Simon Fraser.

Source/WebCore:

Fix a typo.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):

Tools:

775

  • LayoutReloaded/misc/LFC-passing-tests.txt:
3:32 PM Changeset in webkit [240885] by achristensen@apple.com
  • 6 edits
    4 moves
    1 add in trunk/Source/WebKit

Move XPCService entry points from mac directory to new Cocoa directory
https://bugs.webkit.org/show_bug.cgi?id=194129

Reviewed by Chris Dumez.

  • Configurations/NetworkService.xcconfig:
  • Configurations/PluginService.64.xcconfig:
  • Configurations/WebContentService.xcconfig:
  • NetworkProcess/EntryPoint/Cocoa: Copied from Source/WebKit/NetworkProcess/EntryPoint/mac.
  • NetworkProcess/EntryPoint/mac: Removed.
  • PluginProcess/EntryPoint/Cocoa: Copied from Source/WebKit/PluginProcess/EntryPoint/mac.
  • PluginProcess/EntryPoint/mac: Removed.
  • Shared/EntryPointUtilities/Cocoa: Copied from Source/WebKit/Shared/EntryPointUtilities/mac.
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
  • Shared/EntryPointUtilities/mac: Removed.
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/EntryPoint/Cocoa: Copied from Source/WebKit/WebProcess/EntryPoint/mac.
  • WebProcess/EntryPoint/mac: Removed.
3:29 PM Changeset in webkit [240884] by Devin Rousso
  • 5 edits
    4 adds in trunk/Source/WebInspectorUI

Web Inspector: create icons for media event types instead of using a blue circle
https://bugs.webkit.org/show_bug.cgi?id=190381
<rdar://problem/45507995>

Reviewed by Brian Burg.

  • UserInterface/Models/DOMNode.js:

(WI.DOMNode.isPlayEvent): Added.
(WI.DOMNode.isPauseEvent): Added.
(WI.DOMNode.isStopEvent): Added.

  • UserInterface/Views/DOMEventsBreakdownView.js:

(WI.DOMEventsBreakdownView.prototype.layout):

  • UserInterface/Views/DOMEventsBreakdownView.css:

(.dom-events-breakdown tr > :matches(th, td)):
(.dom-events-breakdown .graph):
(.dom-events-breakdown .graph > :matches(img, .area)): Added.
(.dom-events-breakdown .graph > img): Added.
(.dom-events-breakdown .inherited > .name, .dom-events-breakdown .inherited > .graph > img): Added.
(.dom-events-breakdown .graph > :matches(.point, .area)): Deleted.
(.dom-events-breakdown .graph > .point): Deleted.
(.dom-events-breakdown .inherited > .name, .dom-events-breakdown .inherited > .graph > .point): Deleted.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._populateWaterfallGraph.createDOMEventLine):

  • UserInterface/Images/EventPause.svg: Added.
  • UserInterface/Images/EventPlay.svg: Added.
  • UserInterface/Images/EventProcessing.svg: Added.
  • UserInterface/Images/EventStop.svg: Added.
3:27 PM Changeset in webkit [240883] by Megan Gardner
  • 14 edits in trunk/LayoutTests

Rewrite and rebaseline smart copy paste tests to work on iOS and MacOS
https://bugs.webkit.org/show_bug.cgi?id=194175

Reviewed by Megan Gardner.

Using the functions committed in 194070 Ryosuke wrote, make the
smart copy paste tests run on both iOS and MacOS.
These tests will be turned on in 193786.

  • editing/editing.js:

(runEditingTestWithCallbackLogging):
(runDumpAsTextEditingTest):

  • editing/pasteboard/smart-paste-001.html:
  • editing/pasteboard/smart-paste-002-expected.txt:
  • editing/pasteboard/smart-paste-002.html:
  • editing/pasteboard/smart-paste-003.html:
  • editing/pasteboard/smart-paste-004.html:
  • editing/pasteboard/smart-paste-005-expected.txt:
  • editing/pasteboard/smart-paste-005.html:
  • editing/pasteboard/smart-paste-006-expected.txt:
  • editing/pasteboard/smart-paste-006.html:
  • editing/pasteboard/smart-paste-007.html:
  • editing/pasteboard/smart-paste-008.html:
  • platform/mac/editing/pasteboard/smart-paste-008-expected.txt:
3:12 PM Changeset in webkit [240882] by Wenson Hsieh
  • 20 edits
    2 adds in trunk

[iOS] Consistent 1 sec hang when triggering modal alerts while handling synchronous touch events
https://bugs.webkit.org/show_bug.cgi?id=194140
<rdar://problem/47728098>

Reviewed by Tim Horton.

Source/WebKit:

Currently, the UI process hangs when attempting to synchronously present modal UI from the web process while the
UI process is waiting for sync IPC in the web process. While we have logic to generally mitigate IPC deadlock in
this scenario by dispatching the web process' sync IPC immediately with the intention of allowing the web
process to finish processing sync IPC (and consequently unblock the UI process), this fails in the case where
the sync IPC message from the web process to the UI process requires main thread execution for an arbitrary
amount of time (for instance, modal alert dialogs). In this case, we'll end up in a state where we've handled
the web process' sync IPC in the UI process, yet we can't resume execution since the web process is still
blocked.

By far the most egregious scenario in which this manifests is during synchronous gesture recognizer IPC, i.e.
grabbing position information from the UI process, and handling touch events synchronously. Luckily, these are
also cases where (1) we know sync IPC may safely time out, and (2) the presentation of modal UI from the web
process should cause the gesture recognizers to fail anyways. As such, we can mitigate these scenarios in the
web process by responding to the these pending sync IPC messages *before* sending our own sync IPC to the UI
process.

Test: fast/events/touch/ios/show-modal-alert-during-touch-start.html

  • Shared/ios/InteractionInformationAtPosition.h:

(WebKit::InteractionInformationAtPosition::invalidInformation):

  • Shared/ios/InteractionInformationAtPosition.mm:

(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):

Add a new flag to indicate whether an interaction information response can be valid. Interaction information
cannot be valid in the case where the interaction information request was interrupted by certain sync IPC
messages from the web process.

  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationIgnoreSynchronousMessagingTimeoutsForTesting):
(WKContextConfigurationSetIgnoreSynchronousMessagingTimeoutsForTesting):

Add some testing SPI to ignore sync IPC timeouts, for the purposes of testing. Rather than use the existing
Objective-C SPI in WKWebProcessPoolConfiguration, I decided to add C API plumbing for this flag, so that other
non-Cocoa ports may also support the new layout test option to ignore sync IPC timeouts.

  • UIProcess/API/C/WKContextConfigurationRef.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView ensurePositionInformationIsUpToDate:]):
(-[WKContentView _positionInformationDidChange:]):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::runBeforeUnloadConfirmPanel):
(WebKit::WebChromeClient::runJavaScriptAlert):
(WebKit::WebChromeClient::runJavaScriptConfirm):
(WebKit::WebChromeClient::runJavaScriptPrompt):
(WebKit::WebChromeClient::print):
(WebKit::WebChromeClient::exceededDatabaseQuota):
(WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):

Cancel any pending sync IPC replies prior to sending sync IPC messages to the UI process which may result in
sync IPC deadlock, by using the new helper method, sendSyncWithDelayedReply, instead of just sendSync.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::cancelGesturesBlockedOnSynchronousReplies):

Add a helper to cancel pending sync messages coming in from the UI process that are being called from within
gesture recognizer delegate hooks.

(WebKit::WebPage::touchEventSync):

  • WebProcess/WebPage/WebPage.h:

Add a new helper, sendSyncWithDelayedReply, to be used when sending a sync IPC message to the UI process that
cannot be immediately completed upon arrival. Importantly, this cancels pending sync replies, and also passes
IPC::SendSyncOption::InformPlatformProcessWillSuspend.

  • WebProcess/WebPage/WebPage.messages.in:

Change these from LegacySync to Delayed messages.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):

Make this sync IPC handler (as well as WebPage::touchEventSync) store the IPC reply during the scope of the
method, and invoke the stored reply at the end of the method if it wasn't interrupted due to something calling
cancelGesturesBlockedOnSynchronousReplies().

(WebKit::WebPage::positionInformation):

Refactor getPositionInformation by pulling out the logic for building an InteractionInformationAtPosition into
a separate helper.

(WebKit::WebPage::requestPositionInformation):

Tools:

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

(WTR::TestRunner::setShouldDismissJavaScriptAlertsAsynchronously):

Add a new TestRunner hook to make modal JavaScript alerts dismiss asynchronously. This is used by the new layout
test to induce an IPC deadlock when presenting a modal alert during touch start.

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

(WTR::runJavaScriptAlert):

Add a client callback function for running JavaScript alerts.

(WTR::TestController::createOtherPage):
(WTR::TestController::generateContextConfiguration const):

Add a test option to disable IPC timeouts for a layout test. This forces the test to reliably time out without
the fix in this patch.

(WTR::TestController::createWebViewWithOptions):

Plumb TestOptions to generateContextConfiguration.

(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::TestController::resetStateToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):
(WTR::TestController::setShouldDismissJavaScriptAlertsAsynchronously):
(WTR::TestController::handleJavaScriptAlert):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

LayoutTests:

Add a test that induces sync IPC deadlock by presenting a modal alert while handling touch start. This test
forces sync IPC timeouts to be disabled, and passes if we do not time out while handling a touch.

  • fast/events/touch/ios/show-modal-alert-during-touch-start-expected.txt: Added.
  • fast/events/touch/ios/show-modal-alert-during-touch-start.html: Added.
3:08 PM Changeset in webkit [240881] by david_quesada@apple.com
  • 2 edits in trunk/Source/WebKit

Network Process crash when resuming downloads: '-[NSDictionaryI setObject:forKey:]: unrecognized selector sent to instance %p'
https://bugs.webkit.org/show_bug.cgi?id=194144
rdar://problem/47553456

Reviewed by Geoffrey Garen.

  • NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:

(WebKit::Download::resume):

Make a mutable copy of the root object decoded from the resume data.
It might have been originally encoded as an immutable dictionary.

2:52 PM Changeset in webkit [240880] by Chris Dumez
  • 13 edits in trunk

REGRESSION: Flaky ASSERTION FAILED: m_uncommittedState.state == State::Committed on http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.html
https://bugs.webkit.org/show_bug.cgi?id=193740
<rdar://problem/47527267>

Reviewed by Alex Christensen.

Source/WebCore:

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::continueAfterContentPolicy):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):

  • loader/FrameLoader.h:
  • loader/FrameLoaderTypes.h:
  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):
(WebCore::PolicyChecker::checkNewWindowPolicy):

  • loader/PolicyChecker.h:

Source/WebKit:

The issue was happening when the page is triggering a cross-site navigation while in the middle of parsing. This would cause us to
start a new provisional load in a new process before the previous process sends the DidFinishLoadForFrame() IPC to the UIProcess.
Getting such IPC after a provisional load has started would mess up our state machine and trip assertions.

This patch restores non-PSON behavior which is that the previous load in the old process now gets stopped so that no DidFinishLoadForFrame()
/ DidFailLoadForFrame() gets sent. To achieve this behavior, I introduced a new "StopAllLoads" PolicyAction that we now send the old
process when the load is continuing in a new process, instead of sending it "Ignore".

  • NetworkProcess/NetworkDataTaskBlob.cpp:

(WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(toNSURLSessionResponseDisposition):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedNavigationPolicyDecision):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
2:49 PM Changeset in webkit [240879] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix; Respect the 'condition:' field in the WebPreferences.yaml when generating
WebPreferencesStoreDefaultsMap.cpp.

  • page/SettingsBase.h:
2:47 PM Changeset in webkit [240878] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Remove invalid assertion in DFG's compileDoubleRep().
https://bugs.webkit.org/show_bug.cgi?id=194130
<rdar://problem/47699474>

Reviewed by Saam Barati.

JSTests:

  • stress/constant-fold-double-rep-into-double-constant.js: Added.

Source/JavaScriptCore:

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileDoubleRep):

2:07 PM Changeset in webkit [240877] by Alan Coon
  • 7 edits in tags/Safari-608.1.3.0.1/Source

Versioning.

2:04 PM Changeset in webkit [240876] by Alan Coon
  • 1 copy in tags/Safari-608.1.3.0.1

New tag.

1:53 PM Changeset in webkit [240875] by graouts@webkit.org
  • 30 edits
    1 copy
    5 adds in trunk

Dispatch pointercancel events when content is panned or zoomed on iOS
https://bugs.webkit.org/show_bug.cgi?id=193962
<rdar://problem/47629134>

Reviewed by Dean Jackson.

Source/WebCore:

Expose two new methods on PointerCaptureController so that, given a pointer id, it can be established whether this pointer
has been cancelled, which is important because a cancelled pointer should no longer dispatch any further pointer events, and
to cancel a pointer.

Tests: pointerevents/ios/touch-action-pointercancel-pan-x.html

pointerevents/ios/touch-action-pointercancel-pan-y.html
pointerevents/ios/touch-action-pointercancel-pinch-zoom.html

  • WebCore.xcodeproj/project.pbxproj: Make PointerCaptureController.h Private so that it can be imported from WebKit.
  • dom/PointerEvent.h: Remove an unnecessary #if ENABLE(POINTER_EVENTS) since the entire file is already contained in one.

Then we add a new create() method that takes an event type, a pointer id and a pointer type (touch vs. pen) that we use
to create pointercancel events in PointerCaptureController::cancelPointer().

  • page/Page.cpp:

(WebCore::Page::Page): Pass the Page as a parameter when creating the PointerCaptureController.

  • page/PointerCaptureController.cpp:

(WebCore::PointerCaptureController::PointerCaptureController): Add a Page reference to the constructor since we'll need
the page to access its main frame's EventHandler to perform hit testing in case we do not have a capture target override
in cancelPointer().
(WebCore::PointerCaptureController::releasePointerCapture): Drive-by, remove the the implicit parameter since on iOS we
don't need to differentiate. We'll bring this back for the macOS work.
(WebCore::PointerCaptureController::hasCancelledPointerEventForIdentifier): New method we'll use when dispatching pointer
events to identify whether a pointer id has already been cancelled which will allow for _not_ dispatching any further
pointer events for this pointer id.
(WebCore::PointerCaptureController::pointerEventWillBeDispatched): Keep track of the pointer type so we can preserve it
when dispatching pointercancel events for a given pointer id.
(WebCore::PointerCaptureController::cancelPointer): Dispatch a pointercancel for the provided pointer id, using the capture
target override as the event's target, if there is one, and otherwise hit-testing at the provided location to figure out
what the target should be.

  • page/PointerCaptureController.h: Switch the target overrides from Element* to RefPtr<Element> to ensure it may not be

deleted while we still need them. Existing code already ensures these get set to nullptr.

Source/WebKit:

When a user-agent-provided interaction, such as panning or zooming on iOS, uses a set of touches, we should dispatch a pointercancel
event for the pointer ids of the touches involved. To facilitate this, we add a new method on WKContentView to cancel all the pointers
matching active touches for a provided UIGestureRecognizer through an async IPC call into the Web process using the new method
PointerCaptureController::cancelPointer().

  • Platform/spi/ios/UIKitSPI.h: Add the necessary forward declaration for a necessary UIKit SPI allowing us to get the set of last-seen

UITouches by the identifier generated for the matching WebKit touch.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView scrollViewWillBeginZooming:withView:]): Dispatch touchcancel events for all pointers involved in a pinch gesture on the
top-level UIScrollView.
(-[WKWebView _scrollView:adjustedOffsetForOffset:translation:startPoint:locationInView:horizontalVelocity:verticalVelocity:]): Dispatch
touchcancel events for all pointers involved in a pan gesture on the top-level UIScrollView. We can infer this by looking at whether the
adjusted content offset, after accounting for the permitted touch actions, is different from the original content offset.

  • UIProcess/PageClient.h: Expose a new virtual cancelPointersForGestureRecognizer() method which will allow the iOS implementation to

forward the call to WKContentViewInteraction.
(WebKit::PageClient::cancelPointersForGestureRecognizer):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h: Expose the WebPageProxy such that we may access it to cancel pointers for

a given gesture recognizer from within ScrollingTreeScrollingNodeDelegateIOS.
(WebKit::RemoteScrollingCoordinatorProxy::webPageProxy const):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(-[WKScrollingNodeScrollViewDelegate _scrollView:adjustedOffsetForOffset:translation:startPoint:locationInView:horizontalVelocity:verticalVelocity:]):
Dispatch touchcancel events for all pointers involved in a pan gesture on a nested UIScrollView. We can infer this by looking at
whether the adjusted content offset, after accounting for the permitted touch actions, is different from the original content offset.
(-[WKScrollingNodeScrollViewDelegate scrollViewWillBeginZooming:withView:]): Dispatch touchcancel events for all pointers involved in a
pinch gesture on a nested UIScrollView.
(-[WKScrollingNodeScrollViewDelegate cancelPointersForGestureRecognizer:]):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::cancelPointersForGestureRecognizer):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::cancelPointer):

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

(WebKit::PageClientImpl::cancelPointersForGestureRecognizer):

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

(-[WKContentView cancelPointersForGestureRecognizer:]): Obtain all active UITouch objects for the view and dispatch a pointercancel event,
through the WebPageProxy, for all touches associated with the provided gesture recognizer.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::cancelPointer):

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

LayoutTests:

Adding a few tests for "pointercancel" and adding "touch-action: none" on tests that would now be affected by canceling pointers. We also unflake a few tests.

  • pointerevents/ios/pointer-events-implicit-capture.html:
  • pointerevents/ios/pointer-events-is-primary.html:
  • pointerevents/ios/touch-action-pan-x-pan-y.html:
  • pointerevents/ios/touch-action-pan-x.html:
  • pointerevents/ios/touch-action-pan-y-expected.txt:
  • pointerevents/ios/touch-action-pan-y.html:
  • pointerevents/ios/touch-action-pinch-zoom-allows-zooming.html:
  • pointerevents/ios/touch-action-pointercancel-pan-x-expected.txt: Added.
  • pointerevents/ios/touch-action-pointercancel-pan-x.html: Added.
  • pointerevents/ios/touch-action-pointercancel-pan-y-expected.txt: Added.
  • pointerevents/ios/touch-action-pointercancel-pan-y.html: Added.
  • pointerevents/ios/touch-action-pointercancel-pinch-zoom-expected.txt: Added.
  • pointerevents/ios/touch-action-pointercancel-pinch-zoom.html: Added.
1:48 PM Changeset in webkit [240874] by jer.noble@apple.com
  • 6 edits in trunk/Source

Make the WebKit default for media source based on the WebCore default.
https://bugs.webkit.org/show_bug.cgi?id=194172

Reviewed by Eric Carlson.

Source/WebCore:

  • page/SettingsBase.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setMediaSourceEnabled:]):
(-[WKPreferences _mediaSourceEnabled]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
1:46 PM Changeset in webkit [240873] by Alan Coon
  • 2 edits in tags/Safari-608.1.4/Source/WebCore

Revert r240738. rdar://problem/47743211

1:40 PM Changeset in webkit [240872] by Joseph Pecoraro
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Make WI.ColumnChart a WI.View subclass
https://bugs.webkit.org/show_bug.cgi?id=194171

Rubber-stamped by Devin Rousso.

  • UserInterface/Views/CPUTimelineOverviewGraph.js:

(WI.CPUTimelineOverviewGraph):

  • UserInterface/Views/ColumnChart.js:

(WI.ColumnChart):
(WI.ColumnChart.prototype.set size):
(WI.ColumnChart.prototype.layout):
(WI.ColumnChart.prototype.get element): Deleted.
(WI.ColumnChart.prototype.needsLayout): Deleted.
(WI.ColumnChart.prototype.updateLayout): Deleted.

1:24 PM Changeset in webkit [240871] by Joseph Pecoraro
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Make WI.StackedLineChart a WI.View subclass
https://bugs.webkit.org/show_bug.cgi?id=194119

Rubber-stamped by Devin Rousso.

  • UserInterface/Views/LineChart.js:

(WI.LineChart.prototype.layout):
(WI.LineChart):

  • UserInterface/Views/MemoryTimelineOverviewGraph.js:

(WI.MemoryTimelineOverviewGraph):

  • UserInterface/Views/StackedLineChart.js:

(WI.StackedLineChart):
(WI.StackedLineChart.prototype.set size):
(WI.StackedLineChart.prototype.layout):
(WI.StackedLineChart.prototype.get element): Deleted.
(WI.StackedLineChart.prototype.get points): Deleted.
(WI.StackedLineChart.prototype.needsLayout): Deleted.
(WI.StackedLineChart.prototype.updateLayout): Deleted.

1:24 PM Changeset in webkit [240870] by Joseph Pecoraro
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Make WI.CircleChart a WI.View subclass
https://bugs.webkit.org/show_bug.cgi?id=194118

Reviewed by Matt Baker.

  • UserInterface/Views/CircleChart.js:

(WI.CircleChart.prototype.get centerElement):
(WI.CircleChart.prototype.layout):
(WI.CircleChart.prototype.get element): Deleted.
(WI.CircleChart.prototype.needsLayout): Deleted.
(WI.CircleChart.prototype.updateLayout): Deleted.

  • UserInterface/Views/MemoryTimelineView.js:

(WI.MemoryTimelineView):

1:24 PM Changeset in webkit [240869] by Joseph Pecoraro
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Timeline Detail Views do not reset properly when new time range selection contains nothing
https://bugs.webkit.org/show_bug.cgi?id=194115
<rdar://problem/47716693>

Rubber-stamped by Devin Rousso.

  • UserInterface/Views/CPUTimelineView.js:

(WI.CPUTimelineView.prototype.reset):
(WI.CPUTimelineView.prototype.clear):
(WI.CPUTimelineView.prototype.layout):

  • UserInterface/Views/MemoryTimelineView.js:

(WI.MemoryTimelineView.prototype.reset):
(WI.MemoryTimelineView.prototype.clear):
(WI.MemoryTimelineView.prototype.layout):
When there are no visible records in the selected range clear our UI.
Introduce a clear method that clears the UI but keeps
non-range-specific values (e.g. maximums).

1:24 PM Changeset in webkit [240868] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebCore

Web Inspector: Memory timeline starts from zero when both CPU and Memory timeline are enabled
https://bugs.webkit.org/show_bug.cgi?id=194111
<rdar://problem/47714555>

Rubber-stamped by Devin Rousso.

  • page/ResourceUsageThread.cpp:

(WebCore::ResourceUsageThread::waitUntilObservers):
(WebCore::ResourceUsageThread::threadBody):
Wait a short period of time before the first listener registers
and we start sampling. This will allow multiple listeners to
register, each that wants different data.

1:24 PM Changeset in webkit [240867] by Joseph Pecoraro
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Timeline graphs have drawing issues with multiple discontinuities
https://bugs.webkit.org/show_bug.cgi?id=194110
<rdar://problem/47714356>

Reviewed by Devin Rousso.

  • UserInterface/Views/CPUTimelineView.js:

(WI.CPUTimelineView):
(WI.CPUTimelineView.prototype.layout.xScale): Deleted.

  • UserInterface/Views/MemoryTimelineOverviewGraph.js:

(WI.MemoryTimelineOverviewGraph.prototype.layout.insertDiscontinuity):
(WI.MemoryTimelineOverviewGraph.prototype.layout):

  • UserInterface/Views/MemoryTimelineView.js:

(WI.MemoryTimelineView.prototype.layout.xScale):
(WI.MemoryTimelineView.prototype.layout.yScale):
(WI.MemoryTimelineView.prototype.layout):
Handle if multiple discontinuities exist between records.

1:24 PM Changeset in webkit [240866] by Joseph Pecoraro
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Timeline time range selection should show duration alongside start and end
https://bugs.webkit.org/show_bug.cgi?id=194109
<rdar://problem/47714279>

Reviewed by Devin Rousso.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/TimelineRecordingContentView.js:

(WI.TimelineRecordingContentView.prototype._updateTimeRangePathComponents):
Include the duration when not obvious.

1:23 PM Changeset in webkit [240865] by Joseph Pecoraro
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Improve API and documentation of ColumnChart
https://bugs.webkit.org/show_bug.cgi?id=193982

Reviewed by Devin Rousso.

This used to be named "BarChart". Convert remaining instances
of "bar" to "column" and clean up related things.

  • UserInterface/Views/CPUTimelineOverviewGraph.css:

(body[dir=rtl] .timeline-overview-graph.cpu > .column-chart):
(.timeline-overview-graph.cpu > .column-chart > svg > rect):
(body[dir=rtl] .timeline-overview-graph.cpu > .bar-chart): Deleted.
(.timeline-overview-graph.cpu > .bar-chart > svg > rect): Deleted.

  • UserInterface/Views/CPUTimelineOverviewGraph.js:

(WI.CPUTimelineOverviewGraph.prototype.layout):

  • UserInterface/Views/ColumnChart.js:

(WI.ColumnChart):
(WI.ColumnChart.prototype.get columns):
(WI.ColumnChart.prototype.addColumn):
(WI.ColumnChart.prototype.clear):
(WI.ColumnChart.prototype.updateLayout):
(WI.ColumnChart.prototype.get bars): Deleted.
(WI.ColumnChart.prototype.addBar): Deleted.

  • UserInterface/Views/StackedLineChart.js:

(WI.StackedLineChart.prototype.get element):
(WI.StackedLineChart.prototype.get points):

1:14 PM Changeset in webkit [240864] by ysuzuki@apple.com
  • 15 edits in trunk/Source/JavaScriptCore

[JSC] Unify CodeBlock IsoSubspaces
https://bugs.webkit.org/show_bug.cgi?id=194167

Reviewed by Saam Barati.

When we move CodeBlock into its IsoSubspace, we create IsoSubspaces for each subclass of CodeBlock.
But this is not necessary since,

  1. They do not override the classInfo methods.
  2. sizeof(ProgramCodeBlock etc.) == sizeof(CodeBlock) since subclasses adds no additional fields.

Creating IsoSubspace for each subclass is costly in terms of memory. Especially, IsoSubspace for
ProgramCodeBlock is. We typically create only one ProgramCodeBlock, and it means the rest of the
MarkedBlock (16KB - sizeof(footer) - sizeof(ProgramCodeBlock)) is just wasted.

This patch unifies these IsoSubspaces into one.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::destroy):

  • bytecode/CodeBlock.h:
  • bytecode/EvalCodeBlock.cpp:

(JSC::EvalCodeBlock::destroy): Deleted.

  • bytecode/EvalCodeBlock.h: We drop some utility functions in EvalCodeBlock and use UnlinkedEvalCodeBlock's one directly.
  • bytecode/FunctionCodeBlock.cpp:

(JSC::FunctionCodeBlock::destroy): Deleted.

  • bytecode/FunctionCodeBlock.h:
  • bytecode/GlobalCodeBlock.h:
  • bytecode/ModuleProgramCodeBlock.cpp:

(JSC::ModuleProgramCodeBlock::destroy): Deleted.

  • bytecode/ModuleProgramCodeBlock.h:
  • bytecode/ProgramCodeBlock.cpp:

(JSC::ProgramCodeBlock::destroy): Deleted.

  • bytecode/ProgramCodeBlock.h:
  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

(JSC::VM::forEachCodeBlockSpace):

12:22 PM Changeset in webkit [240863] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] Add display name field to BuilderMapping model
https://bugs.webkit.org/show_bug.cgi?id=194153

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-app/ews/models/buildermapping.py:

(BuilderMapping):

12:20 PM Changeset in webkit [240862] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Force settings.acceleratedCompositingEnabled() to true for WebKit
https://bugs.webkit.org/show_bug.cgi?id=194166
rdar://problem/47694328

Reviewed by Tim Horton.

WebKit relies on accelerated compositing for its drawing areas to function correctly,
and sometimes clients (*cough* Safari *cough*) have bugs where they clobber the settings,
so force this setting to be always on (and release log if this happens).

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

12:10 PM Changeset in webkit [240861] by Antti Koivisto
  • 27 edits in trunk/Source

Don't use base layer() as the scroll layer in scrolling tree.
https://bugs.webkit.org/show_bug.cgi?id=194160

Reviewed by Simon Fraser.

Source/WebCore:

Maintain scrollContainerLayer() and scrolledContentsLayer() separately in ScrollingTreeScrollingNode.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
(WebCore::AsyncScrollingCoordinator::setNodeLayers):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::setNodeLayers):

Turn the long layer parameter list into a struct.

  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::ScrollingStateNode):
(WebCore::ScrollingStateNode::setAllPropertiesChanged):
(WebCore::ScrollingStateNode::setLayer):

  • page/scrolling/ScrollingStateNode.h:
  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setAllPropertiesChanged):
(WebCore::ScrollingStateScrollingNode::setScrollContainerLayer):
(WebCore::ScrollingStateScrollingNode::dumpProperties const):

  • page/scrolling/ScrollingStateScrollingNode.h:

(WebCore::ScrollingStateScrollingNode::scrollContainerLayer const):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::commitTreeState):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::commitStateBeforeChildren):

  • page/scrolling/ScrollingTreeScrollingNode.h:

(WebCore::ScrollingTreeScrollingNode::scrollContainerLayer const):
(WebCore::ScrollingTreeScrollingNode::scrolledContentsLayer const):

  • page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
  • page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:

(WebCore::ScrollingTreeFrameScrollingNodeIOS::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollPosition const):
(WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollLayerPosition):
(WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollLayer const): Deleted.

  • page/scrolling/mac/ScrollingTreeFixedNode.mm:

(WebCore::ScrollingTreeFixedNode::commitStateBeforeChildren):

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateAfterChildren):
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollPosition const):
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):
(WebCore::ScrollingTreeFrameScrollingNodeMac::exposedUnfilledArea const):

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:

(WebCore::ScrollingTreeOverflowScrollingNodeMac::commitStateBeforeChildren):
(WebCore::ScrollingTreeOverflowScrollingNodeMac::scrollPosition const):
(WebCore::ScrollingTreeOverflowScrollingNodeMac::setScrollLayerPosition):

  • page/scrolling/mac/ScrollingTreeStickyNode.mm:

(WebCore::ScrollingTreeStickyNode::commitStateBeforeChildren):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::didChangePlatformLayerForLayer):
(WebCore::RenderLayerCompositor::updateScrollingNodeForViewportConstrainedRole):
(WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingRole):
(WebCore::RenderLayerCompositor::updateScrollingNodeForFrameHostingRole):

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateNode>::encode):
(ArgumentCoder<ScrollingStateNode>::decode):
(ArgumentCoder<ScrollingStateScrollingNode>::encode):
(ArgumentCoder<ScrollingStateScrollingNode>::decode):
(WebKit::dump):

  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):

  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm:

(WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateBeforeChildren):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:

(WebKit::ScrollingTreeOverflowScrollingNodeIOS::commitStateBeforeChildren):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateBeforeChildren):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):

11:33 AM Changeset in webkit [240860] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Unreviewed, follow-up after r240859
https://bugs.webkit.org/show_bug.cgi?id=194145

Replace OOB HeapCellType with cellHeapCellType since they are completely the same.
And rename cellDangerousBitsSpace back to cellSpace.

  • runtime/JSCellInlines.h:

(JSC::JSCell::subspaceFor):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
10:59 AM Changeset in webkit [240859] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Remove cellJSValueOOBSpace
https://bugs.webkit.org/show_bug.cgi?id=194145

Reviewed by Mark Lam.

  • runtime/JSObject.h:

(JSC::JSObject::subspaceFor): Deleted.

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
9:49 AM Changeset in webkit [240858] by Michael Catanzaro
  • 10 edits in trunk/Source/WebKit

[SOUP] Improve use of SoupCookiePersistentStorageType
https://bugs.webkit.org/show_bug.cgi?id=194103

Reviewed by Carlos Garcia Campos.

Turn it into an enum class, and stop casting it to and from uint32_t.

  • NetworkProcess/Cookies/WebCookieManager.h:
  • NetworkProcess/Cookies/WebCookieManager.messages.in:
  • NetworkProcess/Cookies/soup/WebCookieManagerSoup.cpp:

(WebKit::WebCookieManager::setCookiePersistentStorage):

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::privateSessionParameters):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • Shared/soup/SoupCookiePersistentStorageType.h:

(): Deleted.

  • UIProcess/API/glib/WebKitCookieManager.cpp:
  • UIProcess/WebCookieManagerProxy.h:
  • UIProcess/soup/WebCookieManagerProxySoup.cpp:

(WebKit::WebCookieManagerProxy::setCookiePersistentStorage):
(WebKit::WebCookieManagerProxy::getCookiePersistentStorage const):

9:47 AM Changeset in webkit [240857] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Revert parts of r240811, since it causes kernel panics.
https://bugs.webkit.org/show_bug.cgi?id=194061

Unreviewed crash fix.

  • WebProcess/com.apple.WebProcess.sb.in:
9:45 AM Changeset in webkit [240856] by youenn@apple.com
  • 2 edits in trunk/Tools

API Test broken: TestWebKitAPI.WebKit2.GetUserMediaReprompt
https://bugs.webkit.org/show_bug.cgi?id=194155

Reviewed by Eric Carlson.

  • TestWebKitAPI/Tests/WebKit/getUserMedia.html:

Revert use of async functions as it seems it cannot be evaluated from TestWebKitAPI.
Keep calling enumerateDevices to continue cover https://bugs.webkit.org/show_bug.cgi?id=194106.

9:00 AM Changeset in webkit [240855] by Michael Catanzaro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r240723 - [GTK][Wayland] REGRESSION(r240712): Clear the GL context if it's the current one on dispose
https://bugs.webkit.org/show_bug.cgi?id=194024

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-01-30
Reviewed by Michael Catanzaro.

Fixes a crash in gdk_gl_context_dispose().

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::~AcceleratedBackingStoreWayland):

9:00 AM Changeset in webkit [240854] by Michael Catanzaro
  • 10 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r240712 - [GTK] gdk_cairo_draw_from_gl() in AcceleratedBackingStoreWayland fails in GtkInspector's magnifier
https://bugs.webkit.org/show_bug.cgi?id=193903

Reviewed by Michael Catanzaro.

The problem is that the GL context used by WaylandCompositor can't share resources with the one used by GTK+
when painting with gdk_cairo_draw_from_gl(). Accelerated compositing in Wayland works only because
WaylandCompositor makes the context current only once on initialization. So, when we render the first frame on
accelerated compositing mode, GTK+ is rendering in non-GL mode, and switches to the GL mode when
gdk_cairo_draw_from_gl() is called. Since GTK+ didn't have a GL context yet, the first frame is always rendered
by GTK+ using the software fallback (glReadPixels). The thing is that the first time gdk_cairo_draw_from_gl() is
called, GTK+ creates a GL context for painting that is made current, and it will remain the current one
forever. The first frame fails to render with "GL_INVALID_OPERATION in glBindTexture(non-gen name)" because the
texture created in WaylandCompositor GL context can't be accessed from GTK+ GL context. The following frames are
handled with the GTK+ GL context. I would say this works by casuality and it could be the cause of other
accelerated compositing issues in Wayland.

We need to create our own GdkGLContext for the WebView, and use that in the WaylandCompositor. When the
GdkGLContext is created, the GTK+ GL context for painting is used as a shared context, ensuring that resources
created in the new context will be accessible from the painting one.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseMakeGLContextCurrent): Call AcceleratedBackingStore::makeContextCurrent().

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/gtk/AcceleratedBackingStore.h:

(WebKit::AcceleratedBackingStore::makeContextCurrent): New virtual method only implemented by Wayland backend.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::tryEnsureGLContext): Try to create a GL context with
gdk_window_create_gl_context(), falling back to a WebCore::GLContext if it fails or GTK+ version is not new enough.
(WebKit::AcceleratedBackingStoreWayland::makeContextCurrent): Make the GL context current.
(WebKit::AcceleratedBackingStoreWayland::paint): Check if we have a GdkGLContext before trying to use gdk_cairo_draw_from_gl().
(WebKit::AcceleratedBackingStoreWayland::canGdkUseGL const): Deleted.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.h:
  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::Surface::Surface): Move the texture creation to setWebPage(), since we need the
WebView GL context.
(WebKit::WaylandCompositor::Surface::~Surface): Move the code to destroy GL resources to setWebPage().
(WebKit::WaylandCompositor::Surface::setWebPage): Create the texture when a new page is set and destroy GL
resources when unset.
(WebKit::WaylandCompositor::Surface::prepareTextureForPainting): Make WebView GL context current.
(WebKit::WaylandCompositor::Surface::commit): Ditto.
(WebKit::WaylandCompositor::initializeEGL): Use a temporary GLContext.

  • UIProcess/gtk/WaylandCompositor.h:
  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::makeGLContextCurrent): Call webkitWebViewBaseMakeGLContextCurrent().

9:00 AM Changeset in webkit [240853] by Michael Catanzaro
  • 8 edits
    1 move
    1 add in releases/WebKitGTK/webkit-2.22

Merge r237541 - [WPE] Add the WebKitVersion.h header
https://bugs.webkit.org/show_bug.cgi?id=191015

Reviewed by Michael Catanzaro.

Source/WebKit:

Add the WebKitVersion.h API header for the WPE port. As with other
headers providing the GLib API, we have to provide a WPE-specific
version, but the implementation file can be shared with the GTK port,
and is moved under the UIProcess/API/glib/ directory accordingly.

  • PlatformWPE.cmake:
  • SourcesWPE.txt:
  • UIProcess/API/glib/WebKitVersion.cpp: Renamed from Source/WebKit/UIProcess/API/gtk/WebKitVersion.cpp.
  • UIProcess/API/wpe/WebKitVersion.h.in: Added.
  • UIProcess/API/wpe/webkit.h:

Tools:

  • MiniBrowser/wpe/main.cpp:

(automationStartedCallback): Remove the FIXME and finally enable the
webkit_application_info_set_version() call.

  • TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp: Remove

this FIXME as well and remove the custom WEBKIT_*_VERSION macros.

9:00 AM Changeset in webkit [240852] by Michael Catanzaro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebDriver

Merge r240778 - [GLIB] WebDriver: race condition when session starts
https://bugs.webkit.org/show_bug.cgi?id=194086

Reviewed by Philippe Normand.

This is causing flakiness in the bots, I can only reproduce it locally when my CPUs are at 100%. The thing
is that sometimes we receive an empty target list right after the connection is established because
RemoteInspector::setClient() calls pushListingsSoon() before a target has been registered. Most of the times the
target is registered before the listing is pushed, but it can happen that when pushed, the listing is still
empty. After the target is registered an empty target list means the connection was lost, so we clear the
connection and target. We need to ensure we do that only after the target has been registered.

  • glib/SessionHostGlib.cpp:
9:00 AM Changeset in webkit [240851] by Michael Catanzaro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r240841 - Race-condition during scrolling thread creation
https://bugs.webkit.org/show_bug.cgi?id=194016

Reviewed by Saam Barati.

There is a threading issue during the initialization
of the scrolling thread caused by createThreadIfNeeded
locking only on the creation of the thread but not on
the initialization of the main loop, making it possible
for a thread to try to spin the main loop before it's
created.

Fix this by unconditionally waiting on the main loop
being created. This makes it necessary to always hold
the lock, even when the thread is already created.

  • page/scrolling/ScrollingThread.cpp:

(WebCore::ScrollingThread::createThreadIfNeeded):

8:51 AM Changeset in webkit [240850] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

[SOUP] Improve use of PAL::SessionID in WebKitCookieManager
https://bugs.webkit.org/show_bug.cgi?id=194092

Reviewed by Carlos Garcia Campos.

Always get it from the data store instead of assuming the default session ID, and add a
helper function for this.

  • UIProcess/API/glib/WebKitCookieManager.cpp:

(_WebKitCookieManagerPrivate::sessionID const):
(_WebKitCookieManagerPrivate::~_WebKitCookieManagerPrivate):
(webkitCookieManagerCreate):
(webkit_cookie_manager_set_persistent_storage):
(webkit_cookie_manager_set_accept_policy):
(webkit_cookie_manager_get_accept_policy):
(webkit_cookie_manager_add_cookie):
(webkit_cookie_manager_get_cookies):
(webkit_cookie_manager_delete_cookie):

8:45 AM Changeset in webkit [240849] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

REGRESSION (r240698): fast/scrolling/sticky-to-fixed.html can cause a crash
https://bugs.webkit.org/show_bug.cgi?id=194134
rdar://problem/47721210

Reviewed by Daniel Bates.

fast/scrolling/sticky-to-fixed.html changes the scrolling node type, which causes
scrollingCoordinator->insertNode() to return a different ScrollingNodeID to the one
passed in. We have to handle this, removing the node for the nodeID and unregistering
the layer with the old nodeID.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::attachScrollingNode):

8:38 AM WebKitGTK/2.22.x edited by Michael Catanzaro
(diff)
6:36 AM Changeset in webkit [240848] by Carlos Garcia Campos
  • 5 edits in trunk

REGRESSION(r239915): css3/font-feature-font-face-local.html failing on WPE
https://bugs.webkit.org/show_bug.cgi?id=194008

Reviewed by Žan Doberšek.

Source/WebCore:

We need to replace control characters with zero width space too.

  • platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:

(WebCore::GlyphPage::fill):

  • platform/text/CharacterProperties.h:

(WebCore::isControlCharacter):

LayoutTests:

Remove test expectation.

  • platform/wpe/TestExpectations:
6:35 AM Changeset in webkit [240847] by Carlos Garcia Campos
  • 4 edits in trunk

[WPE] Enable font variations
https://bugs.webkit.org/show_bug.cgi?id=194148

Reviewed by Žan Doberšek.

.:

Enable variation fonts when required dependencies are available.

  • Source/cmake/OptionsWPE.cmake:

LayoutTests:

  • platform/wpe/TestExpectations:
6:33 AM Changeset in webkit [240846] by Carlos Garcia Campos
  • 4 edits in trunk

ComplexText: Test fast/text/word-space-nbsp.html fails when using complex text path
https://bugs.webkit.org/show_bug.cgi?id=193279

Reviewed by Michael Catanzaro.

Source/WebCore:

The fix applied in r135884 to WidthIterator should also be applied to ComplexTextController.

  • platform/graphics/ComplexTextController.cpp:

(WebCore::ComplexTextController::adjustGlyphsAndAdvances):

LayoutTests:

Remove test expectation.

  • platform/gtk/TestExpectations:
6:31 AM Changeset in webkit [240845] by Alan Bujtas
  • 8 edits in trunk

[LFC] Adjust replaced element's intrinsic ratio
https://bugs.webkit.org/show_bug.cgi?id=194154

Reviewed by Antti Koivisto.

Source/WebCore:

Decouple image and iframe replaced types and set intrinsic ratio accordingly.

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::Box):

  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::isReplaced const):
(WebCore::Layout::Box::isIFrame const):
(WebCore::Layout::Box::isImage const):

  • layout/layouttree/LayoutReplaced.cpp:

(WebCore::Layout::Replaced::hasIntrinsicRatio const):
(WebCore::Layout::Replaced::intrinsicRatio const):
(WebCore::Layout::Replaced::hasAspectRatio const):

  • layout/layouttree/LayoutReplaced.h:
  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createSubTree):

Tools:

761

  • LayoutReloaded/misc/LFC-passing-tests.txt:
6:28 AM Changeset in webkit [240844] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[WPE] Show test results in minibrowser
https://bugs.webkit.org/show_bug.cgi?id=194150

Reviewed by Žan Doberšek.

  • Scripts/webkitpy/port/wpe.py:

(WPEPort.show_results_html_file):

6:27 AM Changeset in webkit [240843] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[WPE] MiniBrowser: add ky bindings for back/forward navigation
https://bugs.webkit.org/show_bug.cgi?id=194151

Reviewed by Žan Doberšek.

ALT + <- go back
ALT + -> go forward

  • MiniBrowser/wpe/main.cpp:

(main):

6:15 AM Changeset in webkit [240842] by Alan Bujtas
  • 8 edits in trunk

[LFC] Set intrinsic size on Layout::Replaced
https://bugs.webkit.org/show_bug.cgi?id=194139

Reviewed by Antti Koivisto.

Source/WebCore:

Eventually Layout::Replaced will track intrinsic size internally until then let's query the RenderReplaced.

  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::replaced):

  • layout/layouttree/LayoutReplaced.cpp:

(WebCore::Layout::Replaced::hasIntrinsicWidth const):
(WebCore::Layout::Replaced::hasIntrinsicHeight const):
(WebCore::Layout::Replaced::intrinsicWidth const):
(WebCore::Layout::Replaced::intrinsicHeight const):

  • layout/layouttree/LayoutReplaced.h:

(WebCore::Layout::Replaced::setIntrinsicSize):
(WebCore::Layout::Replaced::setIntrinsicRatio):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createSubTree):

  • rendering/RenderReplaced.h:

Tools:

744

  • LayoutReloaded/misc/LFC-passing-tests.txt:
2:32 AM Changeset in webkit [240841] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

Race-condition during scrolling thread creation
https://bugs.webkit.org/show_bug.cgi?id=194016

Reviewed by Saam Barati.

There is a threading issue during the initialization
of the scrolling thread caused by createThreadIfNeeded
locking only on the creation of the thread but not on
the initialization of the main loop, making it possible
for a thread to try to spin the main loop before it's
created.

Fix this by unconditionally waiting on the main loop
being created. This makes it necessary to always hold
the lock, even when the thread is already created.

  • page/scrolling/ScrollingThread.cpp:

(WebCore::ScrollingThread::createThreadIfNeeded):

2:03 AM Changeset in webkit [240840] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[WPE] MiniBrowser: use g_file_new_for_commandline_arg
https://bugs.webkit.org/show_bug.cgi?id=194146

Reviewed by Xabier Rodriguez-Calvar.

It allows to open relative paths.

  • MiniBrowser/wpe/main.cpp:

(main):

1:48 AM Changeset in webkit [240839] by Carlos Garcia Campos
  • 1 edit
    56 deletes in trunk/LayoutTests

Unreviewed WPE gardening. Remove duplicated expectations.

Remove the platform specific expectations that match the generic ones.

  • platform/wpe/animations/lineheight-animation-expected.txt: Removed.
  • platform/wpe/animations/simultaneous-start-transform-expected.txt: Removed.
  • platform/wpe/animations/width-using-ems-expected.txt: Removed.
  • platform/wpe/fast/events/mouseover-mouseout-expected.txt: Removed.
  • platform/wpe/fast/events/nested-window-event-expected.txt: Removed.
  • platform/wpe/fast/events/window-events-bubble-expected.txt: Removed.
  • platform/wpe/fast/events/window-events-bubble2-expected.txt: Removed.
  • platform/wpe/fast/replaced/008-expected.txt: Removed.
  • platform/wpe/fast/tokenizer/script_extra_close-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-check-initdata-type.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-events-session-closed-event.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-events.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-invalid-license.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-keystatuses-multiple-sessions.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-keystatuses.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-license.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multisession.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-two-videos.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysession.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-not-callable-after-createsession.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-update-non-ascii-input.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/scheme-about.any-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/scheme-about.any.worker-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-location-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/security/dangling-markup-mitigation-data-url.tentative.sub-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/pointerevents/extension/pointerevent_touch-action-verification-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/pointerevents/pointerevent_touch-action-illegal-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/pointerevents/pointerevent_touch-action-verification-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/touch-events/historical-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/xhr/formdata-blob-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/xhr/formdata-expected.txt: Removed.
  • platform/wpe/legacy-animation-engine/animations/lineheight-animation-expected.txt: Removed.
  • platform/wpe/legacy-animation-engine/animations/simultaneous-start-transform-expected.txt: Removed.
  • platform/wpe/legacy-animation-engine/animations/width-using-ems-expected.txt: Removed.
  • platform/wpe/svg/W3C-SVG-1.1/shapes-rect-02-t-expected.txt: Removed.
  • platform/wpe/svg/custom/pan-direction-expected.txt: Removed.
  • platform/wpe/tables/mozilla/bugs/bug149275-2-expected.txt: Removed.
  • platform/wpe/webgl/2.0.0/conformance/context/context-attributes-alpha-depth-stencil-antialias-expected.txt: Removed.
  • platform/wpe/webgl/2.0.0/conformance/context/context-hidden-alpha-expected.txt: Removed.
1:44 AM Changeset in webkit [240838] by Carlos Garcia Campos
  • 3 edits in trunk/LayoutTests

Unreviewed WPE gardening. Rebaseline and update expectations after r240774.

  • platform/wpe/TestExpectations:
  • platform/wpe/fast/css/font-weight-1-expected.txt:
12:43 AM Changeset in webkit [240837] by Simon Fraser
  • 8 edits in trunk/Source/WebCore

Use ScrollingNodeID in more places, and improve the name of a ScrollableArea function that returns a ScrollingNodeID
https://bugs.webkit.org/show_bug.cgi?id=194126

Reviewed by Frédéric Wang.

Change uint64_t ScrollableArea::scrollLayerID() to ScrollingNodeID ScrollableArea::scrollingNodeID()
and fix callers.

  • page/FrameView.cpp:

(WebCore::FrameView::scrollingNodeID const):
(WebCore::FrameView::scrollLayerID const): Deleted.

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

(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::updateExpectsWheelEventTestTriggerWithFrameView):
(WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
(WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
(WebCore::AsyncScrollingCoordinator::frameViewForScrollingNode const):
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
(WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
(WebCore::AsyncScrollingCoordinator::scrollableAreaScrollbarLayerDidChange):
(WebCore::AsyncScrollingCoordinator::ensureRootStateNodeForFrameView):
(WebCore::AsyncScrollingCoordinator::setSynchronousScrollingReasons):
(WebCore::AsyncScrollingCoordinator::setActiveScrollSnapIndices):
(WebCore::AsyncScrollingCoordinator::updateScrollSnapPropertiesWithFrameView):

  • page/scrolling/ScrollingCoordinatorTypes.h:
  • platform/ScrollTypes.h:
  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::scrollingNodeID const):
(WebCore::ScrollableArea::scrollLayerID const): Deleted.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::parentFrameContentLayers):
(WebCore::RenderLayerCompositor::detachRootLayer):

Jan 31, 2019:

11:09 PM Changeset in webkit [240836] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

[WHLSL] Expressions can't be copyable
https://bugs.webkit.org/show_bug.cgi?id=194116

Reviewed by Keith Rollin.

Expressions have UniqueRef members, which can't be copied. Describe this constraint explicitly rather than implicitly.

No new tests because there is no behavior change.

  • Modules/webgpu/WHLSL/AST/WHLSLEnumerationMemberLiteral.h:
  • Modules/webgpu/WHLSL/AST/WHLSLExpression.h:
9:53 PM Changeset in webkit [240835] by commit-queue@webkit.org
  • 7 edits in trunk/Source

[Curl] Remove unnecessary member from NetworkStorageSession.
https://bugs.webkit.org/show_bug.cgi?id=194137

Patch by Takashi Komori <Takashi.Komori@sony.com> on 2019-01-31
Reviewed by Don Olmstead.

Source/WebCore:

No new tests since there is no behavior change.

  • platform/network/NetworkStorageSession.h:
  • platform/network/curl/NetworkStorageSessionCurl.cpp:

(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::context const): Deleted.

Source/WebKit:

  • NetworkProcess/curl/NetworkProcessCurl.cpp:

(WebKit::NetworkProcess::platformCreateDefaultStorageSession const):

Source/WebKitLegacy:

  • WebCoreSupport/NetworkStorageSessionMap.cpp:

(NetworkStorageSessionMap::defaultStorageSession):
(NetworkStorageSessionMap::ensureSession):

8:44 PM Changeset in webkit [240834] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

NSInvalidArgumentException in [WebAVSampleBufferErrorListener observeValueForKeyPath:ofObject:change:context:]
https://bugs.webkit.org/show_bug.cgi?id=194123
<rdar://problem/47721094>

Reviewed by Eric Carlson.

According to crash logs, AVSampleBufferDisplayLayer.error can go from an NSError* to nil; when such a change is KVO'd,
the NSKeyValueChangeNewKey is a NSNull. Detect this state and bail out early.

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

(-[WebAVSampleBufferErrorListener observeValueForKeyPath:ofObject:change:context:]):

6:32 PM Changeset in webkit [240833] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa][EME] AirPlaying a FairPlay-protected HLS stream fails to decrypt
https://bugs.webkit.org/show_bug.cgi?id=194114

Reviewed by Eric Carlson.

The AVAssetResourceLoaderDelegate must explicitly... delegate responsibility for FairPlay key
requests to the AVContentKeySession.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):

5:37 PM Changeset in webkit [240832] by mark.lam@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Remove poisoning from CodeBlock and LLInt code.
https://bugs.webkit.org/show_bug.cgi?id=194113

Reviewed by Yusuke Suzuki.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::~CodeBlock):
(JSC::CodeBlock::setConstantRegisters):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::finalizeLLIntInlineCaches):
(JSC::CodeBlock::jettison):
(JSC::CodeBlock::predictedMachineCodeSize):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::vm const):
(JSC::CodeBlock::addConstant):
(JSC::CodeBlock::heap const):
(JSC::CodeBlock::replaceConstant):

  • llint/LLIntOfflineAsmConfig.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::handleHostCall):
(JSC::LLInt::setUpCall):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
5:18 PM Changeset in webkit [240831] by Ryan Haddad
  • 2 edits in trunk/Tools

Update flakiness dashboard configuration after recent queue changes
https://bugs.webkit.org/show_bug.cgi?id=194127

Rubber-stamped by Aakash Jain.

Apple Windows queues were updated in r237755, and Sierra was removed in r239859.

  • TestResultServer/static-dashboards/builders.jsonp:
4:45 PM Changeset in webkit [240830] by youenn@apple.com
  • 3 edits in trunk/Tools

Add an API test to cover UIClient checkUserMediaPermissionForOrigin being nullptr
https://bugs.webkit.org/show_bug.cgi?id=194106
<rdar://problem/47676333>

Reviewed by Ryosuke Niwa.

  • TestWebKitAPI/Tests/WebKit/UserMedia.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/getUserMedia.html:
4:38 PM Changeset in webkit [240829] by Megan Gardner
  • 7 edits
    3 adds in trunk

Don't insert spaces at the beginning of a newline when using smart-copy-paste
https://bugs.webkit.org/show_bug.cgi?id=194070

Source/WebCore:

Reviewed by Tim Horton.

If our inserted content end is at the beginning of a paragraph, do not insert a space.
Also, if our inserted content beginning is at the end of a paragraph, do not insert a space.

Test: editing/pasteboard/mac/copy-smartpaste-first-line-in-textarea.html

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace):

LayoutTests:

Add test for smart copy paste around newlines.
Rebaseline a test that is dependant on a console log that changes lines.
Add additional helper functions to ui-helper.js.

Reviewed by Tim Horton.

  • editing/pasteboard/mac/copy-smartpaste-first-line-in-textarea-expected.txt: Added.
  • editing/pasteboard/mac/copy-smartpaste-first-line-in-textarea.html: Added.
  • http/tests/security/anchor-download-block-crossorigin-expected.txt:
  • platform/mac/TestExpectations:
  • resources/ui-helper.js:

(window.UIHelper.doubleClickAt):
(window.UIHelper.doubleClickAtThenDragTo):
(window.UIHelper.async.selectWordByDoubleTapOrClick):

4:34 PM Changeset in webkit [240828] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed, build fix after r240805

This patch reverts the BlockPtr change since it breaks iOS builds.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::tryInterceptNavigation):

4:17 PM Changeset in webkit [240827] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

[WebGPU] Build fix: disable MTLCopyAllDevices call on non-Mac platforms
https://bugs.webkit.org/show_bug.cgi?id=194120

Unreviewed build fix.

No new tests; no change in behavior.

Patch by Justin Fan <Justin Fan> on 2019-01-31

  • platform/graphics/gpu/cocoa/GPUDeviceMetal.mm:

(WebCore::GPUDevice::create): Wrap problem code in #if PLATFORM(MAC).

3:58 PM Changeset in webkit [240826] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Basic scrollability for async overflow scrolling on macOS
https://bugs.webkit.org/show_bug.cgi?id=194093

Reviewed by Antti Koivisto.

Give a ScrollingTreeOverflowScrollingNodeMac a ScrollingTreeScrollingNodeDelegateMac and have it keep track
of its layers so basic scrolling works for async overflow scroll.

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm:

(WebCore::ScrollingTreeOverflowScrollingNodeMac::create):
(WebCore::ScrollingTreeOverflowScrollingNodeMac::ScrollingTreeOverflowScrollingNodeMac):
(WebCore::ScrollingTreeOverflowScrollingNodeMac::commitStateBeforeChildren):
(WebCore::ScrollingTreeOverflowScrollingNodeMac::commitStateAfterChildren):
(WebCore::ScrollingTreeOverflowScrollingNodeMac::handleWheelEvent):
(WebCore::ScrollingTreeOverflowScrollingNodeMac::scrollPosition const):
(WebCore::ScrollingTreeOverflowScrollingNodeMac::setScrollPosition):
(WebCore::ScrollingTreeOverflowScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeOverflowScrollingNodeMac::setScrollLayerPosition):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateScrollingLayers):

3:26 PM Changeset in webkit [240825] by Simon Fraser
  • 13 edits
    1 copy
    1 add in trunk/Source/WebCore

Generalize ScrollingTreeScrollingNodeDelegate for use in macOS too, add a macOS subclass for frame/overflow scrolling
https://bugs.webkit.org/show_bug.cgi?id=194080

Reviewed by Antti Koivisto.

To share code between ScrollingTreeFrameScrollingNodeMac and ScrollingTreeOverflowScrollingNodeMac, build ScrollingTreeScrollingNodeDelegate
for macOS too, and add some helper functions to ScrollingTreeScrollingNodeDelegate.

Add a macOS subclass, ScrollingTreeScrollingNodeDelegateMac, which takes over the basic scrolling, rubber-banding
and scroll snapping functionality from ScrollingTreeFrameScrollingNodeMac. The delegate owns the ScrollController and
implements ScrollControllerClient.

ScrollingTreeFrameScrollingNodeMac now owns a ScrollingTreeScrollingNodeDelegateMac. A future patch
will add one to ScrollingTreeOverflowScrollingNodeMac.

No behavior change.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::scrollBy): Deleted.
(WebCore::ScrollingTreeFrameScrollingNode::scrollByWithoutContentEdgeConstraints): Deleted.

  • page/scrolling/ScrollingTreeFrameScrollingNode.h:

(WebCore::ScrollingTreeFrameScrollingNode::frameScaleFactor const):

  • page/scrolling/ScrollingTreeNode.cpp:

(WebCore::ScrollingTreeNode::isRootNode const):

  • page/scrolling/ScrollingTreeNode.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeScrollingNode::scrollBy):
(WebCore::ScrollingTreeScrollingNode::scrollByWithoutContentEdgeConstraints):

  • page/scrolling/ScrollingTreeScrollingNode.h:

(WebCore::ScrollingTreeScrollingNode::expectsWheelEventTestTrigger const):

  • page/scrolling/ScrollingTreeScrollingNodeDelegate.cpp:
  • page/scrolling/ScrollingTreeScrollingNodeDelegate.h:

(WebCore::ScrollingTreeScrollingNodeDelegate::scrollPosition const):
(WebCore::ScrollingTreeScrollingNodeDelegate::minimumScrollPosition const):
(WebCore::ScrollingTreeScrollingNodeDelegate::maximumScrollPosition const):
(WebCore::ScrollingTreeScrollingNodeDelegate::scrollableAreaSize const):
(WebCore::ScrollingTreeScrollingNodeDelegate::totalContentsSize const):
(WebCore::ScrollingTreeScrollingNodeDelegate::hasEnabledHorizontalScrollbar const):
(WebCore::ScrollingTreeScrollingNodeDelegate::hasEnabledVerticalScrollbar const):
(WebCore::ScrollingTreeScrollingNodeDelegate::horizontalScrollElasticity const):
(WebCore::ScrollingTreeScrollingNodeDelegate::verticalScrollElasticity const):

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::ScrollingTreeFrameScrollingNodeMac):
(WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):
(WebCore::ScrollingTreeFrameScrollingNodeMac::minimumScrollPosition const):
(WebCore::ScrollingTreeFrameScrollingNodeMac::maximumScrollPosition const):
(WebCore::newGestureIsStarting): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::isAlreadyPinnedInDirectionOfGesture): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::allowsHorizontalStretching): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::allowsVerticalStretching): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::stretchAmount): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::pinnedInDirection): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::canScrollHorizontally): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::canScrollVertically): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::shouldRubberBandInDirection): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollBy): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::stopSnapRubberbandTimer): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::adjustScrollPositionToBoundsIfNecessary): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollOffset const): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollOnAxis): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::pageScaleFactor const): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::startScrollSnapTimer): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::stopScrollSnapTimer): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::scrollExtent const): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::viewportSize const): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::deferTestsForReason const): Deleted.
(WebCore::ScrollingTreeFrameScrollingNodeMac::removeTestDeferralForReason const): Deleted.

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h.
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm: Added.

(WebCore::ScrollingTreeScrollingNodeDelegateMac::ScrollingTreeScrollingNodeDelegateMac):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::updateScrollSnapPoints):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::setActiveScrollSnapIndexForAxis):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::activeScrollSnapIndexForAxis const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::activeScrollSnapIndexDidChange const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::isScrollSnapInProgress const):
(WebCore::newGestureIsStarting):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::isAlreadyPinnedInDirectionOfGesture):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsHorizontalStretching):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::allowsVerticalStretching):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::stretchAmount):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::pinnedInDirection):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::canScrollHorizontally):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::canScrollVertically):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::shouldRubberBandInDirection):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::immediateScrollBy):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::immediateScrollByWithoutContentEdgeConstraints):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::stopSnapRubberbandTimer):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::adjustScrollPositionToBoundsIfNecessary):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::scrollOffset const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::immediateScrollOnAxis):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::pageScaleFactor const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::startScrollSnapTimer):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::stopScrollSnapTimer):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::scrollExtent const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::viewportSize const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::deferTestsForReason const):
(WebCore::ScrollingTreeScrollingNodeDelegateMac::removeTestDeferralForReason const):

3:26 PM Changeset in webkit [240824] by commit-queue@webkit.org
  • 5 edits in trunk

Web Inspector: Timeline time range selection sometimes shows 0.000, should be just 0
https://bugs.webkit.org/show_bug.cgi?id=194108
<rdar://problem/47714273>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2019-01-31
Reviewed by Devin Rousso.

Source/WebInspectorUI:

  • UserInterface/Base/Utilities.js:

Check under epsilon for the zero case.

LayoutTests:

  • inspector/unit-tests/number-utilities-expected.txt:
  • inspector/unit-tests/number-utilities.html:
3:20 PM Changeset in webkit [240823] by ysuzuki@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Remove finalizer in AsyncFromSyncIteratorPrototype
https://bugs.webkit.org/show_bug.cgi?id=194107

Reviewed by Saam Barati.

AsyncFromSyncIteratorPrototype uses the finalizer, but it is not necessary since it does not hold any objects which require destruction.
We drop this finalizer. And we also make methods of AsyncFromSyncIteratorPrototype lazily allocated.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • runtime/AsyncFromSyncIteratorPrototype.cpp:

(JSC::AsyncFromSyncIteratorPrototype::AsyncFromSyncIteratorPrototype):
(JSC::AsyncFromSyncIteratorPrototype::finishCreation):
(JSC::AsyncFromSyncIteratorPrototype::create):

  • runtime/AsyncFromSyncIteratorPrototype.h:
2:28 PM Changeset in webkit [240822] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Requesting PiP from two different WebViews gets PiP window "stuck"
https://bugs.webkit.org/show_bug.cgi?id=194099
<rdar://problem/47271323>

Reviewed by Eric Carlson.

When a different client requests the PiP window, the PiP framework will call -pipDidClose: without
first calling -pipActionStop:. This leaves the internal fullscreen state in a confused state where
the WebView will attempt to re-enter PiP once it gets focus, and can lead to a state where the two
WebViews will constantly try to steal PiP from one another, ad infinitum.

When receiving a notification that the PiP window closed when our internal state tells us that the
close was not requested, notify the client that PiP mode was exited, allowing them to set their
expected state to a correct and sane value.

  • platform/mac/VideoFullscreenInterfaceMac.mm:

(-[WebVideoFullscreenInterfaceMacObjC pipDidClose:]):

2:21 PM Changeset in webkit [240821] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

Fix runJITThreadLimitTests in testapi
https://bugs.webkit.org/show_bug.cgi?id=194064
<rdar://problem/46139147>

Reviewed by Mark Lam.

Fix typo where targetNumberOfThreads was not being used.

  • API/tests/testapi.mm:

(runJITThreadLimitTests):

2:19 PM Changeset in webkit [240820] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

testapi fails RELEASE_ASSERT(codeBlock) in fetchFromDisk() of CodeCache.h
https://bugs.webkit.org/show_bug.cgi?id=194112

Reviewed by Mark Lam.

testBytecodeCache does not populate the bytecode cache for the global
CodeBlock, so it should only enable forceDiskCache after its execution.

  • API/tests/testapi.mm:

(testBytecodeCache):

2:17 PM Changeset in webkit [240819] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

REGRESSION(r?): Web Inspector: Clicking on text doesn't move text caret when editing innerHTML/tagName/attribute
https://bugs.webkit.org/show_bug.cgi?id=192652
<rdar://problem/46684612>

Reviewed by Devin Rousso.

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype.canSelectOnMouseDown):
Call to Event.preventDefault() should be made here instead of at the
TreeOutline level.

  • UserInterface/Views/TreeElement.js:

(WI.TreeElement.prototype.selectOnMouseDown): Deleted.
Remove dead code.

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline._handleMouseDown):
Do not prevent default event handling when the item cannot be selected.
This matches TreeOutline behavior prior to introducing SelectionController.

2:14 PM Changeset in webkit [240818] by Chris Dumez
  • 7 edits in trunk

Page zoom level is lost after a process swap or a crash
https://bugs.webkit.org/show_bug.cgi?id=194105
<rdar://problem/47610781>

Reviewed by Alex Christensen.

Source/WebKit:

Previously, when the client would call setPageAndTextZoomFactors() on the WebPageProxy,
we would update the WebPageProxy's corresponding data members and send an IPC to the
WebProcess to apply the zoom factors.

The issue is that on process crash or process-swap, we never communicate those zoom factors
to the new WebProcess. Even if the client were to call setPageAndTextZoomFactors() with
the same factors again, it would be a no-op since the WebPageProxy's data members already
reflect the expected values.

To address the issue, pass both the page zoom and the text zoom factors to the WebProcess
via WebPageCreationParameters. This way, there is no need to send an extra IPC and we're
sure the WebPageProxy's factors are properly applied to the WebPage on WebContent process
side upon creation (whether after a crash or a process swap).

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

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

(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebPage/WebPage.cpp:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[PSONNavigationDelegate webView:didCommitNavigation:]):

2:13 PM Changeset in webkit [240817] by Chris Dumez
  • 3 edits in trunk/LayoutTests

[ MacOS ] Layout Test performance-api/performance-observer-callback-after-gc.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=191041
<rdar://problem/45649982>

Reviewed by Joseph Pecoraro.

Make the test print the same output no matter if the performance observer is notified once or
twice. What matters is that it is notified about 3 marks.

  • performance-api/performance-observer-callback-after-gc-expected.txt:
  • performance-api/performance-observer-callback-after-gc.html:
2:11 PM Changeset in webkit [240816] by Keith Rollin
  • 2 edits in trunk/Source/WebCore

WebCore::WHLSL::AST::Expression copy constructor needs to be be default, not delete
https://bugs.webkit.org/show_bug.cgi?id=194055
<rdar://problem/47684570>

Reviewed by Myles C. Maxfield.

WebCore::WHLSL::AST::Expression has a deleted copy constructor.
EnumerationMemberLiteral, a subclass, has a default copy constructor.
Some compilers may complain that the latter's c'tor can't access the
former's, because it doesn't exist. Fix this by marking Expression's
c'tor as default.

No new tests since there should be no observable behavior difference.

  • Modules/webgpu/WHLSL/AST/WHLSLExpression.h:
1:55 PM Changeset in webkit [240815] by Kocsen Chung
  • 2 edits in tags/Safari-607.1.29.1/Source/WebKit

Cherry-pick r240729. rdar://problem/47685553

Ensure image picker sourceType is set before cameraDevice
https://bugs.webkit.org/show_bug.cgi?id=193998

Reviewed by Beth Dakin.

  • UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel _showPhotoPickerWithSourceType:]):

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

1:55 PM Changeset in webkit [240814] by Kocsen Chung
  • 2 edits in tags/Safari-607.1.29.1/Source/WebKit

Cherry-pick r240578. rdar://problem/47685372

WebUserContentController::removeUserScriptMessageHandlerInternal may deref and delete itself
https://bugs.webkit.org/show_bug.cgi?id=193901
<rdar://problem/47338669>

Reviewed by David Kilzer.

Don't know how to repro.

  • WebProcess/UserContent/WebUserContentController.cpp: (WebKit::WebUserContentController::removeUserScriptMessageHandlerInternal):

Calling userMessageHandlers.removeFirstMatching() may remove the last ref to this
(because WebUserMessageHandlerDescriptorProxy refs WebUserContentController).
Fix by protecting this over the function.

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

1:53 PM Changeset in webkit [240813] by Kocsen Chung
  • 7 edits in tags/Safari-607.1.29.1/Source

Versioning.

1:44 PM Changeset in webkit [240812] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.29.1

New tag.

1:43 PM Changeset in webkit [240811] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Disable permissive call logging in sandbox
https://bugs.webkit.org/show_bug.cgi?id=194061

Reviewed by Alexey Proskuryakov.

Strict call filtering should be reenabled.

  • WebProcess/com.apple.WebProcess.sb.in:
1:40 PM Changeset in webkit [240810] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Crash when control-clicking or copying text rendered with a web font
https://bugs.webkit.org/show_bug.cgi?id=193913
<rdar://problem/47541039>

Reviewed by Brent Fulgham.

On older versions of macOS, allowing mach lookup to com.apple.FontObjectsServer is needed.

  • WebProcess/com.apple.WebProcess.sb.in:
1:34 PM Changeset in webkit [240809] by benjamin@webkit.org
  • 5 edits in trunk/Source/WebKit

Remove WKPageIsWebProcessResponsive
https://bugs.webkit.org/show_bug.cgi?id=194096

Reviewed by Alex Christensen.

It is not used by any client.

It is also bad API. It is better to let WebKit track
responsiveness and tell the client with processDidBecomeResponsive.

  • UIProcess/API/C/WKPage.cpp:

(WKPageIsWebProcessResponsive): Deleted.

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::isWebProcessResponsive): Deleted.

  • UIProcess/WebPageProxy.h:
1:23 PM Changeset in webkit [240808] by achristensen@apple.com
  • 22 edits in trunk

Revert r238819 which is unneeded and caused a performance regression.
https://bugs.webkit.org/show_bug.cgi?id=192272
<rdar://problem/46664625>

Source/WebCore:

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::prepareForLoadStart):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::loadProvisionalItemFromCachedPage):

  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:

Source/WebKit:

  • WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h:

(API::InjectedBundle::PageLoaderClient::didStartProvisionalLoadForFrame):

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInLoadDelegate.h:
  • WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(PageLoaderClient::didStartProvisionalLoadForFrame):

  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:

(WebKit::InjectedBundlePageLoaderClient::didStartProvisionalLoadForFrame):

  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidStartProvisionalLoad):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDidStartProvisionalLoad):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchDidStartProvisionalLoad):

  • WebCoreSupport/WebFrameLoaderClient.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ParserYieldTokenPlugIn.mm:

(-[ParserYieldTokenPlugIn webProcessPlugInBrowserContextController:didCommitLoadForFrame:]):
(-[ParserYieldTokenPlugIn webProcessPlugInBrowserContextController:willStartProvisionalLoadForFrame:completionHandler:]): Deleted.

12:53 PM Changeset in webkit [240807] by Justin Fan
  • 16 edits
    2 moves
    2 adds in trunk

[WebGPU] WebGPUAdapterDescriptor -> GPURequestAdapterOptions and take powerPreference into account
https://bugs.webkit.org/show_bug.cgi?id=194068
<rdar://problem/47680215>

Reviewed by Dean Jackson.
Source/WebCore:

Per the Web GPU IDL, WebGPUAdapterDescriptor is now known as GPURequestAdapterOptions and is optional.
In addition, Web GPU now actually attempts to return an integrated GPU when a low-power adapter is requested.

Test: adapter-options.html

  • Modules/webgpu/GPURequestAdapterOptions.idl: Renamed from Source/WebCore/Modules/webgpu/WebGPUAdapterDescriptor.idl.
  • Modules/webgpu/WebGPU.cpp:

(WebCore::WebGPU::requestAdapter const):

  • Modules/webgpu/WebGPU.h:
  • Modules/webgpu/WebGPU.idl:
  • Modules/webgpu/WebGPUAdapter.cpp:

(WebCore::WebGPUAdapter::create):
(WebCore::WebGPUAdapter::WebGPUAdapter):

  • Modules/webgpu/WebGPUAdapter.h:

(WebCore::WebGPUAdapter::options const):

  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::create):

  • platform/graphics/gpu/GPUDevice.h:
  • platform/graphics/gpu/GPURequestAdapterOptions.h: Renamed from Source/WebCore/Modules/webgpu/WebGPUAdapterDescriptor.h.
  • platform/graphics/gpu/cocoa/GPUDeviceMetal.mm:

(WebCore::GPUDevice::create):

LayoutTests:

Add simple test to create device with all options. Update helper functions for other Web GPU
tests to request different adapters. (No change in test behavior expected.)

  • webgpu/adapter-options-expected.txt: Added.
  • webgpu/adapter-options.html: Added.
  • webgpu/js/basic-webgpu-functions.js:

(async.setUpContexts): Update to use no adapter request argument at all.

  • webgpu/js/webgpu-functions.js:

(async.getBasicDevice): Update to request the low-power adapter.

12:15 PM Changeset in webkit [240806] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, follow-up after r240796

Initialize WriteBarrier<InferredValue> in the constructor. Otherwise, GC can see the broken one
when allocating InferredValue in FunctionExecutable::finishCreation.

  • runtime/FunctionExecutable.cpp:

(JSC::FunctionExecutable::FunctionExecutable):
(JSC::FunctionExecutable::finishCreation):

12:01 PM Changeset in webkit [240805] by jiewen_tan@apple.com
  • 10 edits
    2 deletes in trunk

Formalize WebKitAdditions mechanism of LoadOptimizer
https://bugs.webkit.org/show_bug.cgi?id=193886
<rdar://problem/47696809>

Reviewed by Brent Fulgham.

Source/WebCore:

Covered by existing tests.

  • platform/network/ResourceRequestBase.h:

Export isolatedCopy().

Source/WebKit:

This patch does the following few things:
1) formalizes WebKitAdditions mechanism of LoadOptimizer;
2) modernizes AppLinks code in tryInterceptNavigation to use BlockPtr;
3) lets AppLinks have higher precedence than LoadOptimizer.

  • SourcesCocoa.txt:
  • UIProcess/Cocoa/LoadOptimizer.h: Removed.
  • UIProcess/Cocoa/LoadOptimizer.mm: Removed.
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::tryOptimizingLoad):
(WebKit::tryInterceptNavigation):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::WebsiteDataStore):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::loadOptimizer): Deleted.

  • WebKit.xcodeproj/project.pbxproj:

Tools:

  • MiniBrowser/MiniBrowser.entitlements:

Make com.apple.security.temporary-exception.mach-lookup.global-name an array.

11:52 AM Changeset in webkit [240804] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

[Cocoa][EME] Modern EME uses a different path for SecureStop data than Legacy EME
https://bugs.webkit.org/show_bug.cgi?id=193988

Reviewed by Jon Lee.

Modern EME is writing SecureStop data as a file at the same path as the
directory used by Legacy EME; meaning, when Modern EME attempts to write
to that file, it will fail because a directory exists at the same path.

Add a migration step to take care of those instances where Modern EME Secure
Stop data was already written to disk, and move that previously written data
to the correct file path.

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

(WebCore::CDMInstanceFairPlayStreamingAVFObjC::initializeWithConfiguration):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setStorageDirectory):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::loadSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::ensureSession):

11:49 AM Changeset in webkit [240803] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(PSON) Crash under WebProcessProxy::canTerminateChildProcess()
https://bugs.webkit.org/show_bug.cgi?id=194094
<rdar://problem/47580753>

Reviewed by Ryosuke Niwa.

If a SuspendedPageProxy gets destroyed while a WebPageProxy is waiting for its to finish to suspend,
call the "failure to suspend" completion handler asynchronously instead of synchronouly to make sure
the completion handler cannot try and use the suspended page proxy while it is being destroyed.

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::~SuspendedPageProxy):

11:44 AM Changeset in webkit [240802] by Alan Coon
  • 2 edits in tags/Safari-608.1.4/Source/WebKit

Cherry-pick r240798. rdar://problem/47697219

Fix LSAppLink deprecation warnings.
https://bugs.webkit.org/show_bug.cgi?id=194097

Unreviewed build fix.

  • UIProcess/ios/WKActionSheetAssistant.mm: (-[WKActionSheetAssistant _appendOpenActionsForURL:actions:elementInfo:]):

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

11:42 AM Changeset in webkit [240801] by Alan Coon
  • 1 copy in tags/Safari-608.1.4

Tag Safari-608.1.4.

11:39 AM Changeset in webkit [240800] by Antti Koivisto
  • 11 edits in trunk/Source/WebCore

Call the frame main contents layer "rootContentsLayer" consistently.
https://bugs.webkit.org/show_bug.cgi?id=194089

Reviewed by Simon Fraser.

This is currently called "rootContentLayer" in the compositor and "scrolledContentsLayer" in the scrolling tree.
We want to reserve term "scrolledContentsLayer" to mean the direct child layer of the scroll container layer
without any positioning oddities (which this isn't).

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
(WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
(WebCore::AsyncScrollingCoordinator::setNodeLayers):

Set the rootContentsLayer for frame. It is only used by the Mac frame scrolling code.

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

(WebCore::ScrollingCoordinator::rootContentsLayerForFrameView):
(WebCore::ScrollingCoordinator::rootContentLayerForFrameView): Deleted.

  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::setNodeLayers):

  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::setAllPropertiesChanged):
(WebCore::ScrollingStateFrameScrollingNode::setRootContentsLayer):
(WebCore::ScrollingStateFrameScrollingNode::dumpProperties const):

  • page/scrolling/ScrollingStateFrameScrollingNode.h:

Introduce rootContentLayer for frames only.

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):

Switch to using rootContentsLayer.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::didChangePlatformLayerForLayer):
(WebCore::RenderLayerCompositor::updateCompositingLayers):
(WebCore::RenderLayerCompositor::updateRootContentLayerClipping):
(WebCore::RenderLayerCompositor::layerTreeAsText):
(WebCore::RenderLayerCompositor::rootGraphicsLayer const):
(WebCore::RenderLayerCompositor::updateRootLayerPosition):
(WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
(WebCore::RenderLayerCompositor::updateLayerForHeader):
(WebCore::RenderLayerCompositor::updateLayerForFooter):
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
(WebCore::RenderLayerCompositor::ensureRootLayer):
(WebCore::RenderLayerCompositor::destroyRootLayer):
(WebCore::RenderLayerCompositor::attachRootLayer):
(WebCore::RenderLayerCompositor::detachRootLayer):
(WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):
(WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingRole):

Pass rootContentsLayer separately for frames only.
Pass null as frame scrolledContentsLayer until these are rearranged (it is not used).

  • rendering/RenderLayerCompositor.h:
11:29 AM Changeset in webkit [240799] by Keith Rollin
  • 2 edits in trunk/Source/WebCore

GCGamepad is deprecated
https://bugs.webkit.org/show_bug.cgi?id=194056
<rdar://problem/47685010>

Reviewed by Brady Eidson.

GCGamepad is deprecated, resulting in compiler warnings. Address this
for now by employing ALLOW_DEPRECATED_DECLARATIONS_BEGIN/END.

No new tests since there should be no observable behavior difference.

  • platform/gamepad/cocoa/GameControllerGamepad.mm:

(WebCore::GameControllerGamepad::setupAsGamepad):

11:25 AM Scrolling edited by Simon Fraser
(diff)
11:14 AM Changeset in webkit [240798] by timothy@apple.com
  • 2 edits in trunk/Source/WebKit

Fix LSAppLink deprecation warnings.
https://bugs.webkit.org/show_bug.cgi?id=194097

Unreviewed build fix.

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant _appendOpenActionsForURL:actions:elementInfo:]):

11:14 AM Changeset in webkit [240797] by Alan Coon
  • 1 copy in tags/Safari-607.1.32

Tag Safari-607.1.32.

11:13 AM Changeset in webkit [240796] by ysuzuki@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

[JSC] Do not use InferredValue in non-JIT configuration
https://bugs.webkit.org/show_bug.cgi?id=194084

Reviewed by Saam Barati.

InferredValue is not meaningful if our VM is non-JIT configuration. InferredValue is used to watch the instantiation of the FunctionExecutable's
JSFunction and SymbolTable's JSScope to explore the chance of folding them into constants in DFG and FTL. If it is instantiated only once, we can
put a watchpoint and fold it into this constant. But if JIT is disabled, we do not need to care it.
Even in non-JIT configuration, we still use InferredValue for FunctionExecutable to determine whether the given FunctionExecutable is preferable
target for poly proto. If JSFunction for the FunctionExecutable is used as a constructor and instantiated more than once, poly proto Structure
seems appropriate for objects created by this JSFunction. But at that time, only thing we would like to know is that whether JSFunction for this
FunctionExecutable is instantiated multiple times. This does not require the full feature of InferredValue, WatchpointState is enough.
To summarize, since nobody uses InferredValue feature in non-JIT configuration, we should not create it.

  • bytecode/ObjectAllocationProfileInlines.h:

(JSC::ObjectAllocationProfile::initializeProfile):

  • runtime/FunctionExecutable.cpp:

(JSC::FunctionExecutable::finishCreation):
(JSC::FunctionExecutable::visitChildren):

  • runtime/FunctionExecutable.h:
  • runtime/InferredValue.cpp:

(JSC::InferredValue::create):

  • runtime/JSAsyncFunction.cpp:

(JSC::JSAsyncFunction::create):

  • runtime/JSAsyncGeneratorFunction.cpp:

(JSC::JSAsyncGeneratorFunction::create):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::create):

  • runtime/JSFunctionInlines.h:

(JSC::JSFunction::createWithInvalidatedReallocationWatchpoint):

  • runtime/JSGeneratorFunction.cpp:

(JSC::JSGeneratorFunction::create):

  • runtime/JSSymbolTableObject.h:

(JSC::JSSymbolTableObject::setSymbolTable):

  • runtime/SymbolTable.cpp:

(JSC::SymbolTable::finishCreation):

  • runtime/VM.cpp:

(JSC::VM::VM):

10:10 AM Changeset in webkit [240795] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Simplify and streamline code that creates an appropriate document based on MIME type
https://bugs.webkit.org/show_bug.cgi?id=193756

Reviewed by Chris Dumez.

  • dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocument): Use equalLettersIgnoringASCIICase rather
than == for all the MIME type checks. Use MIMETypeRegistry::isSupportedImageMIMEType
instead of Image::supportsType. Rearranged checks so that all the combinations that
that take precedence over plug-ins are checked first, fixing some unimportant edge
cases where the plug-in database is initialized and doesn't need to be. Straightened
out the logic for various special types so that the checks are more independent from
each other and hence easier to understand.

9:28 AM Changeset in webkit [240794] by Michael Catanzaro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r240789 - [GTK] Momentum scrolling stops abruptly before websites end
https://bugs.webkit.org/show_bug.cgi?id=193350

Patch by Alexander Mikhaylenko <exalm7659@gmail.com> on 2019-01-31
Reviewed by Carlos Garcia Campos.

Don't immediately set velocity to 0 when position reaches upper or bottom limit.
Instead, set it to the overshot distance, so that position exactly matches upper
or lower limit on the next frame, and then clamp velocity to 0 using the existing
mechanism.

  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::PerAxisData::animateScroll):

9:27 AM Changeset in webkit [240793] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Unreviewed debug build fix, obsolete assert

Since m_playerPrivate is now a reference, it no longer has a default
cast to bool. But there is also no longer a need to assert it's non
null, so just remove the assert.

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:

(WebCore::MediaSourceClientGStreamerMSE::append):

9:23 AM Changeset in webkit [240792] by Kocsen Chung
  • 7 edits in trunk/Source

Versioning.

9:04 AM Changeset in webkit [240791] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKitLegacy

[Curl] Fix DRT crash related to private browsing.
https://bugs.webkit.org/show_bug.cgi?id=193816

Patch by Takashi Komori <Takashi.Komori@sony.com> on 2019-01-31
Reviewed by Alex Christensen.

Source/WebKitLegacy:

  • WebCoreSupport/NetworkStorageSessionMap.cpp:

(NetworkStorageSessionMap::ensureSession):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameNetworkingContext.cpp:

(WebFrameNetworkingContext::ensurePrivateBrowsingSession):

9:02 AM Changeset in webkit [240790] by aboya@igalia.com
  • 3 edits in trunk/Source/WebCore

[MSE][GStreamer] Use reference instead of pointer in m_playerPrivate
https://bugs.webkit.org/show_bug.cgi?id=194091

Reviewed by Xabier Rodriguez-Calvar.

Since the pointer is initialized with the class, it's never null and
never changes, it's preferrable to use a reference instead of a
pointer.

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:

(WebCore::MediaSourceClientGStreamerMSE::MediaSourceClientGStreamerMSE):
(WebCore::MediaSourceClientGStreamerMSE::addSourceBuffer):
(WebCore::MediaSourceClientGStreamerMSE::durationChanged):
(WebCore::MediaSourceClientGStreamerMSE::abort):
(WebCore::MediaSourceClientGStreamerMSE::resetParserState):
(WebCore::MediaSourceClientGStreamerMSE::append):
(WebCore::MediaSourceClientGStreamerMSE::markEndOfStream):
(WebCore::MediaSourceClientGStreamerMSE::removedFromMediaSource):
(WebCore::MediaSourceClientGStreamerMSE::flush):
(WebCore::MediaSourceClientGStreamerMSE::enqueueSample):
(WebCore::MediaSourceClientGStreamerMSE::allSamplesInTrackEnqueued):
(WebCore::MediaSourceClientGStreamerMSE::webKitMediaSrc):

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h:
8:52 AM Changeset in webkit [240789] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Momentum scrolling stops abruptly before websites end
https://bugs.webkit.org/show_bug.cgi?id=193350

Patch by Alexander Mikhaylenko <exalm7659@gmail.com> on 2019-01-31
Reviewed by Carlos Garcia Campos.

Don't immediately set velocity to 0 when position reaches upper or bottom limit.
Instead, set it to the overshot distance, so that position exactly matches upper
or lower limit on the next frame, and then clamp velocity to 0 using the existing
mechanism.

  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::PerAxisData::animateScroll):

8:37 AM Changeset in webkit [240788] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix incorrect string format
https://bugs.webkit.org/show_bug.cgi?id=193907
<rdar://problem/47604080>

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::commitTreeState):

8:28 AM Changeset in webkit [240787] by Simon Fraser
  • 45 edits in trunk/Source

[Mac] Implement basic hit testing in the scrolling tree
https://bugs.webkit.org/show_bug.cgi?id=172917
<rdar://problem/34215516>

Reviewed by Antti Koivisto.

Source/WebCore:

First steps to getting hit testing of scrolling nodes in the scrolling tree. Based on patch
by Frédéric Wang.

First we pipe the "async scrolling enabled" setting through to the ScrollingTree via
the root node (like the other settings; weird, but that's how it's done). For now,
we hit test in the scrolling tree if either async overflow or frame scrolling are enabled
(it's hard to deal with one without the other).

Nodes in the scrolling tree implement scrollingNodeForPoint() to implement hit testing.
Two helper functions exist to simplify coordinate conversion: parentToLocalPoint()
and localToContentsPoint(). Child nodes are hit-testing in reverse order to find nodes
hightest in Z first. Only scrolling nodes are returned (not sure if we'll ever need
to hit-test non-scrolling nodes). Nodes use parentRelativeScrollableRect and scroll positions
to do these point mappings.

handleWheelEvent() is changed to return a ScrollingEventResult.

Latching is not correct with this change when async frame scrolling is enabled. That needs
to be fixed separately.

No tests yet; for ease of testing, I'd like to add an Internals API to hit-test the
scrolling tree, rather than doing eventSender stuff everywhere.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::asyncFrameOrOverflowScrollingEnabled const):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::setAllPropertiesChanged):
(WebCore::ScrollingStateFrameScrollingNode::setAsyncFrameOrOverflowScrollingEnabled):

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously):
(WebCore::ScrollingTree::handleWheelEvent):
(WebCore::ScrollingTree::commitTreeState):
(WebCore::ScrollingTree::setAsyncFrameOrOverflowScrollingEnabled):

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::asyncFrameOrOverflowScrollingEnabled const):

  • page/scrolling/ScrollingTreeFrameHostingNode.cpp:

(WebCore::ScrollingTreeFrameHostingNode::parentToLocalPoint const):

  • page/scrolling/ScrollingTreeFrameHostingNode.h:
  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::parentToLocalPoint const):
(WebCore::ScrollingTreeFrameScrollingNode::localToContentsPoint const):

  • page/scrolling/ScrollingTreeFrameScrollingNode.h:
  • page/scrolling/ScrollingTreeNode.cpp:

(WebCore::ScrollingTreeNode::scrollingNodeForPoint const):

  • page/scrolling/ScrollingTreeNode.h:

(WebCore::ScrollingTreeNode::children const):
(WebCore::ScrollingTreeNode::parentToLocalPoint const):
(WebCore::ScrollingTreeNode::localToContentsPoint const):

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::scrollLimitReached const):
(WebCore::ScrollingTreeScrollingNode::parentToLocalPoint const):
(WebCore::ScrollingTreeScrollingNode::localToContentsPoint const):
(WebCore::ScrollingTreeScrollingNode::scrollingNodeForPoint const):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/ThreadedScrollingTree.cpp:

(WebCore::ThreadedScrollingTree::handleWheelEvent):

  • page/scrolling/ThreadedScrollingTree.h:
  • page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
  • page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:

(WebCore::ScrollingTreeFrameScrollingNodeIOS::handleWheelEvent):

  • page/scrolling/ios/ScrollingTreeIOS.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):

  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:

Source/WebKit:

Changed return types, "using namespace WebCore" in ScrollingTreeFrameScrollingNodeRemoteMac.cpp.

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
  • UIProcess/RemoteLayerTree/mac/ScrollerPairMac.h:
  • UIProcess/RemoteLayerTree/mac/ScrollerPairMac.mm:

(WebKit::ScrollerPairMac::handleWheelEvent):
(WebKit::ScrollerPairMac::handleMouseEvent):

  • UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.cpp:

(WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::handleWheelEvent):
(WebKit::ScrollingTreeFrameScrollingNodeRemoteMac::handleMouseEvent):

  • UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.h:
8:07 AM Changeset in webkit [240786] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebDriver

Unreviewed speculative WPE build fix.

  • CMakeLists.txt: Include the WebKitCommon file, as is normally done in

standalone CMakeLists.txt files.

7:04 AM Changeset in webkit [240785] by Michael Catanzaro
  • 20 edits
    1 copy
    1 add in trunk/Source/WebKit

[SOUP] Move cookiePersistentStoragePath and cookiePersistentStorageType from NetworkProcess to NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=194075

Reviewed by Alex Christensen.

Move cookiePersistentStoragePath and cookiePersistentStorageType from NetworkProcess to
NetworkSession to reduce globals. This removes two of the six soup-specific variables in
NetworkProcessCreationParameters

  • NetworkProcess/Cookies/WebCookieManager.h:
  • NetworkProcess/Cookies/WebCookieManager.messages.in:
  • NetworkProcess/Cookies/soup/WebCookieManagerSoup.cpp:

(WebKit::WebCookieManager::setCookiePersistentStorage):

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::privateSessionParameters):
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::platformInitializeNetworkProcess):

  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::NetworkSessionSoup):

  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • UIProcess/API/glib/WebKitCookieManager.cpp:

(webkit_cookie_manager_set_persistent_storage):

  • UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::WebCookieManagerProxy):

  • UIProcess/WebCookieManagerProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • UIProcess/WebsiteData/curl/WebsiteDataStoreCurl.cpp:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):
(WebKit::WebsiteDataStore::platformSetParameters): Deleted.

  • UIProcess/soup/WebCookieManagerProxySoup.cpp:

(WebKit::WebCookieManagerProxy::setCookiePersistentStorage):
(WebKit::WebCookieManagerProxy::getCookiePersistentStorage const):

  • UIProcess/soup/WebProcessPoolSoup.cpp:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

6:54 AM Changeset in webkit [240784] by aboya@igalia.com
  • 6 edits in trunk/Source/WebCore

[MSE][GStreamer] Remove unused GstFlowReturn in AppendPipeline methods
https://bugs.webkit.org/show_bug.cgi?id=194067

Reviewed by Xabier Rodriguez-Calvar.

A couple methods in AppendPipeline were returning GstFlowReturn
despite there being no codepath (sans assertions) where values other
than GST_FLOW_OK are returned.

Therefore, it makes sense to just make these methods return void.

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::pushNewBuffer):
(WebCore::AppendPipeline::handleAppsinkNewSampleFromStreamingThread):

  • platform/graphics/gstreamer/mse/AppendPipeline.h:
  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:

(WebCore::MediaSourceClientGStreamerMSE::append):

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h:
  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::append):

6:52 AM Changeset in webkit [240783] by aboya@igalia.com
  • 3 edits in trunk/Source/WebCore

[MSE][GStreamer] Remove if (m_playerPrivate) from MediaSourceClientGStreamerMSE
https://bugs.webkit.org/show_bug.cgi?id=194069

Reviewed by Xabier Rodriguez-Calvar.

m_playerPrivate is non-NULL since MediaSourceClientGStreamerMSE
creation well until its destruction.

The only case that could make a NULL m_playerPrivate is
clearPlayerPrivate() but that method is not used anymore.

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:

(WebCore::MediaSourceClientGStreamerMSE::addSourceBuffer):
(WebCore::MediaSourceClientGStreamerMSE::durationChanged):
(WebCore::MediaSourceClientGStreamerMSE::abort):
(WebCore::MediaSourceClientGStreamerMSE::resetParserState):
(WebCore::MediaSourceClientGStreamerMSE::markEndOfStream):
(WebCore::MediaSourceClientGStreamerMSE::removedFromMediaSource):
(WebCore::MediaSourceClientGStreamerMSE::flush):
(WebCore::MediaSourceClientGStreamerMSE::enqueueSample):
(WebCore::MediaSourceClientGStreamerMSE::allSamplesInTrackEnqueued):
(WebCore::MediaSourceClientGStreamerMSE::webKitMediaSrc):
(WebCore::MediaSourceClientGStreamerMSE::clearPlayerPrivate): Deleted.

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h:
6:24 AM Changeset in webkit [240782] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer][WebRTC] Avoid returning FLUSHING when it is not the case in GStreamerMediaStreamSource
https://bugs.webkit.org/show_bug.cgi?id=194087

Basically GstFlowCombiner was mostly designed for element that have 1 sinkpad and several srcpad
meaning that it makes sense that when any of the downstream pad is returning flushing, you should
return FLUSHING upstream. But in our case we have several sinkpads and FLUSHING should be returned
*only* if the internally linked srcpad is FLUSHING otherwise we might end up setting the upstream
source element task to PAUSED (because downstream returned flushing) on a branch that was not
flushing!

Patch by Thibault Saunier <tsaunier@igalia.com> on 2019-01-31
Reviewed by Philippe Normand.

This is a theorical race we can't really cover with tests.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(WebCore::webkitMediaStreamSrcChain):

5:59 AM Changeset in webkit [240781] by Alan Bujtas
  • 4 edits in trunk

[LFC] Margin before/after/start/end initial value is 0 and not auto.
https://bugs.webkit.org/show_bug.cgi?id=194090

Reviewed by Antti Koivisto.

Source/WebCore:

Don't treat it like auto.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):

Tools:

  • LayoutReloaded/misc/LFC-passing-tests.txt:
5:39 AM Changeset in webkit [240780] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[LFC] Use the used margin values in outOfFlowReplacedHorizontalGeometry consistently
https://bugs.webkit.org/show_bug.cgi?id=194074

Reviewed by Antti Koivisto.

Source/WebCore:

Check the used margin variables whether we already computed start/end values.

Test: fast/block/block-only/absolute-position-with-margin-auto-simple2.html

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):

Tools:

  • LayoutReloaded/misc/LFC-passing-tests.txt:

LayoutTests:

  • fast/block/block-only/absolute-position-with-margin-auto-simple2-expected.html: Added.
  • fast/block/block-only/absolute-position-with-margin-auto-simple2.html: Added.
5:38 AM Changeset in webkit [240779] by Alan Bujtas
  • 6 edits in trunk

[LFC][BFC] Add support for block level replaced box.
https://bugs.webkit.org/show_bug.cgi?id=194071

Reviewed by Antti Koivisto.

Source/WebCore:

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::Box):

  • layout/layouttree/LayoutBox.h:
  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createSubTree):
(WebCore::Layout::outputLayoutBox):

Tools:

  • LayoutReloaded/misc/LFC-passing-tests.txt:
5:11 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
5:06 AM Changeset in webkit [240778] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebDriver

[GLIB] WebDriver: race condition when session starts
https://bugs.webkit.org/show_bug.cgi?id=194086

Reviewed by Philippe Normand.

This is causing flakiness in the bots, I can only reproduce it locally when my CPUs are at 100%. The thing
is that sometimes we receive an empty target list right after the connection is established because
RemoteInspector::setClient() calls pushListingsSoon() before a target has been registered. Most of the times the
target is registered before the listing is pushed, but it can happen that when pushed, the listing is still
empty. After the target is registered an empty target list means the connection was lost, so we clear the
connection and target. We need to ensure we do that only after the target has been registered.

  • glib/SessionHostGlib.cpp:
2:42 AM Changeset in webkit [240777] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WTF

Unreviewed. Fix WPE compile warnings due to deprecated glib API.

  • wtf/Platform.h:
2:34 AM Changeset in webkit [240776] by Fujii Hironori
  • 2 edits in trunk/Source/JavaScriptCore

[CMake][JSC] Changing ud_opcode.py should trigger invoking ud_opcode.py
https://bugs.webkit.org/show_bug.cgi?id=194085

Reviewed by Yusuke Suzuki.

r240730 changed ud_itab.py and caused incremental build failures
for Ninja builds.

  • CMakeLists.txt: Added ud_itab.py and optable.xml to UDIS_GEN_DEP.
2:27 AM Changeset in webkit [240775] by Fujii Hironori
  • 2 edits in trunk/Tools

Fix WebKitTestRunner's testPath with Windows full paths
https://bugs.webkit.org/show_bug.cgi?id=194012

Reviewed by Alex Christensen.

updateTestOptionsFromTestHeader failed to open test files because
testPath returned wrong file paths. It returned a path "/C:/..."
if a URL "file:///C:/..." was given.

  • WebKitTestRunner/TestController.cpp:

(WTR::testPath): Removed the first '/' if the path starts with something like "/C:/".

2:11 AM Changeset in webkit [240774] by commit-queue@webkit.org
  • 2 edits
    2 adds in trunk/Tools

[WPE] Bump font related dependencies to match the GTK+ port
https://bugs.webkit.org/show_bug.cgi?id=194017

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-01-31
Reviewed by Žan Doberšek.

  • wpe/jhbuild.modules:
  • wpe/patches/cairo-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch: Added.
  • wpe/patches/icudata-stdlibs.patch: Added.
1:55 AM Changeset in webkit [240773] by Chris Fleizach
  • 5 edits in trunk

ASSERTION FAILED: cache under WebCore::AXObjectCache::postTextStateChangePlatformNotification
https://bugs.webkit.org/show_bug.cgi?id=189094
<rdar://problem/43853526>

Reviewed by Zalan Bujtas.

Source/WebCore:

Protect against access to objects and cache's that can be removed while an object is still in memory.

Unskipped flaky tests on mac-wk2.

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postTextStateChangePlatformNotification):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(textMarkerForVisiblePosition):
(textMarkerRangeFromVisiblePositions):

LayoutTests:

Unskip flaky test with crash resolved.

  • platform/mac-wk2/TestExpectations:
12:40 AM Changeset in webkit [240772] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebKit

iOS: Crash in InteractiveUpdateHandler set by ViewGestureController::beginSwipeGesture
https://bugs.webkit.org/show_bug.cgi?id=194083

Reviewed by Tim Horton.

We think this crash is a regression from r236966. Prior to r236966, we could only called
removeSwipeSnapshot() only when m_provisionalOrSameDocumentLoadCallback was set but now
we can call it either when m_snapshotRemovalTracker::start was called, or it had been reset.
This can result in m_webPageProxyForBackForwardListForCurrentSwipe getting cleared before
InteractiveUpdateHandler is called by UIGestureRecognizer, resulting in the crash.

This patch tries to restore the behavior prior to r236966 by only invoking removeSwipeSnapshot()
when SnapshotRemovalTracker has a valid removal callback set.

Unfortunately no new tests since there is no reproducible test case, and neither API tests
nor layout tests seem to have the capability to trigger swipe gestures via UIGestureRecognizer,
which is required for this crash to occur. Notably, back-forward swipe tests I enabled in
r240765 bypass UIKit and emulates the action instead.

  • UIProcess/Cocoa/ViewGestureController.cpp:

(WebKit::ViewGestureController::didReachMainFrameLoadTerminalState):

  • UIProcess/Cocoa/ViewGestureController.h:

(WebKit::ViewGestureController::SnapshotRemovalTracker::hasRemovalCallback const):

12:10 AM Changeset in webkit [240771] by bshafiei@apple.com
  • 14 edits in branches/safari-607-branch

Cherry-pick r240633. rdar://problem/47682687

[watchOS] Enable Parental Controls content filtering
https://bugs.webkit.org/show_bug.cgi?id=193939
<rdar://problem/46641912>

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/Platform.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

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

12:10 AM Changeset in webkit [240770] by bshafiei@apple.com
  • 2 edits in branches/safari-607-branch/Source/JavaScriptCore

Cherry-pick r239969. rdar://problem/47638452

Add option to JSC to dump memory footprint on script completion
https://bugs.webkit.org/show_bug.cgi?id=193422

Reviewed by Mark Lam.

Added the --footprint option to dump peak and current memory usage. This uses the same
OS calls added in r2362362.

  • jsc.cpp: (printUsageStatement): (CommandLine::parseArguments): (jscmain):

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

12:10 AM Changeset in webkit [240769] by bshafiei@apple.com
  • 2 edits in branches/safari-607-branch/Source/WebKit

Cherry-pick r240729. rdar://problem/47685553

Ensure image picker sourceType is set before cameraDevice
https://bugs.webkit.org/show_bug.cgi?id=193998

Reviewed by Beth Dakin.

  • UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel _showPhotoPickerWithSourceType:]):

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

12:10 AM Changeset in webkit [240768] by bshafiei@apple.com
  • 2 edits in branches/safari-607-branch/Source/WebKit

Cherry-pick r240578. rdar://problem/47685372

WebUserContentController::removeUserScriptMessageHandlerInternal may deref and delete itself
https://bugs.webkit.org/show_bug.cgi?id=193901
<rdar://problem/47338669>

Reviewed by David Kilzer.

Don't know how to repro.

  • WebProcess/UserContent/WebUserContentController.cpp: (WebKit::WebUserContentController::removeUserScriptMessageHandlerInternal):

Calling userMessageHandlers.removeFirstMatching() may remove the last ref to this
(because WebUserMessageHandlerDescriptorProxy refs WebUserContentController).
Fix by protecting this over the function.

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

12:06 AM Changeset in webkit [240767] by sihui_liu@apple.com
  • 3 edits in trunk/PerformanceTests

REGRESSION (r240358): IndexedDB/large-binary-keys.html and IndexedDB/large-string-keys.html perf tests failing
https://bugs.webkit.org/show_bug.cgi?id=193956
<rdar://problem/47623109>

Reviewed by Ryosuke Niwa.

r240358 sets default IDB quota as 50 MB for single test, we need to increase that for big tests.

  • IndexedDB/large-binary-keys.html:
  • IndexedDB/large-string-keys.html:

Jan 30, 2019:

11:42 PM Changeset in webkit [240766] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Symbol should be in destructibleCellSpace
https://bugs.webkit.org/show_bug.cgi?id=194082

Reviewed by Saam Barati.

Because Symbol's member was not poisoned, we changed the subspace for Symbol from destructibleCellSpace
to cellJSValueOOBSpace. But the problem is cellJSValueOOBSpace is a space for cells which are not
destructible. As a result, Symbol::destroy is never called, and SymbolImpl is leaked. This patch makes
Symbol's space destructibleCellSpace to appropriately call the destructor.

  • runtime/Symbol.h:
11:31 PM Changeset in webkit [240765] by rniwa@webkit.org
  • 4 edits
    4 adds in trunk

Enable swipe tests on iOS
https://bugs.webkit.org/show_bug.cgi?id=194076

Reviewed by Geoffrey Garen.

Tools:

Removed the superflous call to prepareForAsyncTask and asyncTaskComplete as
it causes a debug assertion failure in runUIScript.

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::beginBackSwipe):
(WTR::UIScriptController::completeBackSwipe):

LayoutTests:

Enabled tests in LayoutTests/swipe and added iOS specific results for the failing tests.

  • platform/ios/TestExpectations:
  • platform/ios/swipe/basic-cached-back-swipe-expected.txt: Added.
  • platform/ios/swipe/main-frame-pinning-requirement-expected.txt: Added.
  • platform/ios/swipe/pushState-cached-back-swipe-expected.txt: Added.
11:28 PM Changeset in webkit [240764] by bshafiei@apple.com
  • 7 edits in branches/safari-607-branch/Source

Versioning.

10:52 PM Changeset in webkit [240763] by Devin Rousso
  • 10 edits in trunk/Source/WebInspectorUI

Web Inspector: Memory Timeline View should be responsive / resizable
https://bugs.webkit.org/show_bug.cgi?id=153758
<rdar://problem/24444320>

Reviewed by Joseph Pecoraro.

Leverage the SVG viewBox (which was misspelled) to scale the graphs when the width of the
container changes. The viewBox used is equal to the total amount of time that is visible.

Make WI.LineChart (and its container classes) into subclasses of WI.View to leverage the
existing layout system.

Prevent any work from being done when resizing, as this is now handled by CSS/SVG.

  • UserInterface/Views/LineChart.js:

(WI.LineChart):
(WI.LineChart.prototype.set size):
(WI.LineChart.prototype.addPoint):
(WI.LineChart.prototype.clear):
(WI.LineChart.prototype.layout):
(WI.LineChart.prototype.get element): Deleted.
(WI.LineChart.prototype.get points): Deleted.
(WI.LineChart.prototype.needsLayout): Deleted.
(WI.LineChart.prototype.updateLayout): Deleted.

  • UserInterface/Views/CPUUsageView.js:

(WI.CPUUsageView):
(WI.CPUUsageView.prototype.clear):
(WI.CPUUsageView.prototype.updateChart): Added.
(WI.CPUUsageView.prototype.get element): Deleted.
(WI.CPUUsageView.prototype.layoutWithDataPoints): Deleted.

  • UserInterface/Views/CPUUsageView.css:

(.cpu-usage-view):
(.cpu-usage-view > .details):
(.cpu-usage-view > .graph, .cpu-usage-view > .graph > .line-chart, .cpu-usage-view > .graph > .line-chart > svg): Added.
(.cpu-usage-view > .graph): Deleted.

  • UserInterface/Views/CPUTimelineView.js:

(WI.CPUTimelineView):
(WI.CPUTimelineView.prototype.layout):
(WI.CPUTimelineView.prototype.layout.layoutView):
(WI.CPUTimelineView.prototype.layout.layoutView.xScale):
(WI.CPUTimelineView.prototype.layout.layoutView.yScale):

  • UserInterface/Views/CPUTimelineView.css:

(body .timeline-view.cpu): Added.
(.timeline-view.cpu > .content):
(.timeline-view.cpu): Deleted.

  • UserInterface/Views/MemoryCategoryView.js:

(WI.MemoryCategoryView):
(WI.MemoryCategoryView.prototype.clear):
(WI.MemoryCategoryView.prototype.updateChart): Added.
(WI.MemoryCategoryView.prototype.get element): Deleted.
(WI.MemoryCategoryView.prototype.layoutWithDataPoints): Deleted.

  • UserInterface/Views/MemoryCategoryView.css:

(.memory-category-view):
(.memory-category-view > .details):
(.memory-category-view > .graph, .memory-category-view > .graph > .line-chart, .memory-category-view > .graph > .line-chart > svg): Added.
(.memory-category-view > .graph): Deleted.

  • UserInterface/Views/MemoryTimelineView.js:

(WI.MemoryTimelineView.prototype.layout):
(WI.MemoryTimelineView.prototype.layout.layoutCategoryView):
(WI.MemoryTimelineView.prototype.layout.layoutCategoryView.xScale):
(WI.MemoryTimelineView.prototype.layout.layoutCategoryView.yScale):
(WI.MemoryTimelineView.prototype._initializeCategoryViews):
(WI.MemoryTimelineView.prototype._initializeCategoryViews.appendLegendRow):

  • UserInterface/Views/MemoryTimelineView.css:

(.timeline-view.memory > .content > .overview):
(.timeline-view.memory > .content > .overview > .divider):
(.timeline-view.memory > .content > .overview .total-usage, .timeline-view.memory > .content > .overview .max-percentage, .timeline-view.memory > .content > .overview .legend .size): Added.
(.timeline-view.memory .legend):
(.timeline-view.memory .legend .row): Added.
(.timeline-view.memory .legend .row + .row): Added.
(.timeline-view.memory .legend .swatch): Addd.
(.timeline-view.memory .legend .swatch.javascript): Addd.
(.timeline-view.memory .legend .swatch.images): Addd.
(.timeline-view.memory .legend .swatch.layers): Addd.
(.timeline-view.memory .legend .swatch.page): Addd.
(.timeline-view.memory .legend .swatch.current): Addd.
(.timeline-view.memory > .content): Deleted.
(.timeline-view.memory > .content > .overview .total-usage, .timeline-view.memory > .content > .overview .max-percentage):
(body[dir=ltr] .timeline-view.memory .legend): Deleted.
(body[dir=rtl] .timeline-view.memory .legend): Deleted.
(.timeline-view.memory .legend > .row): Deleted.
(.timeline-view.memory .legend > .row > .swatch): Deleted.
(body[dir=ltr] .timeline-view.memory .legend > .row > .swatch): Deleted.
(body[dir=rtl] .timeline-view.memory .legend > .row > .swatch): Deleted.
(.timeline-view.memory .legend > .row > p): Deleted.
(body[dir=ltr] .timeline-view.memory .legend > .row > :matches(.label, .size)): Deleted.
(body[dir=rtl] .timeline-view.memory .legend > .row > :matches(.label, .size)): Deleted.
(.timeline-view.memory .legend > .row > .label): Deleted.
(.timeline-view.memory .legend > .row > .size): Deleted.
(.timeline-view.memory .legend > .row > .swatch.javascript): Deleted.
(.timeline-view.memory .legend > .row > .swatch.images): Deleted.
(.timeline-view.memory .legend > .row > .swatch.layers): Deleted.
(.timeline-view.memory .legend > .row > .swatch.page): Deleted.
(.timeline-view.memory .legend > .row > .swatch.current): Deleted.

10:33 PM Changeset in webkit [240762] by bshafiei@apple.com
  • 2 edits in tags/Safari-608.1.3.1/Source/WebCore

Cherry-pick r240692. rdar://problem/47283874

Try to fix the watchOS build.

  • dom/Element.cpp:

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

10:33 PM Changeset in webkit [240761] by bshafiei@apple.com
  • 2 edits in tags/Safari-608.1.3.1/Source/WebCore

Cherry-pick r240596. rdar://problem/47283874

Limit user-agent interactions based on the touch-action property on iOS
https://bugs.webkit.org/show_bug.cgi?id=193447

Unreviewed build fix.

  • dom/Element.cpp: (WebCore::parentCrossingFrameBoundaries):

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

9:04 PM Changeset in webkit [240760] by Michael Catanzaro
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r240755.

This was not correct

Reverted changeset:

"Unreviewed, fix GCC build after r240730"
https://bugs.webkit.org/show_bug.cgi?id=194041
https://trac.webkit.org/changeset/240755

8:53 PM Changeset in webkit [240759] by benjamin@webkit.org
  • 6 edits in trunk/Source/WebKit

<rdar://problem/47570443> Responsiveness timers are too expensive for frequent events
https://bugs.webkit.org/show_bug.cgi?id=194003

Reviewed by Geoffrey Garen.

The problem here is specific to wheel events.

For every wheel event, we start a responsiveness timer and send
a ping to the WebProcess. When the WebProcess respond, we stop the timer.

The cost of setting up the timers adds up since we get many events.

The first step to improve the situation was to switch ResponsivenessTimer
to WebCore::Timer. Since WebCore::Timer reuse the same CFRunLoopTimerRef,
we save the allocation/deallocation, insertion in the event loop, etc.

Using WebCore::Timer saves some instructions but we were still hitting
the kernel at 120hz to set up then kill each timer.
The second improvement of the patch is to avoid that by not killing the timer
when we hear back from the WebProcess.

Instead of killing the timer, we let it run and ignore the result.
When the next event comes, we reschedule the existing timer.
This brings down the timers to 60Hz, the same rate as the events.

The very last event does time out. In that case, we have a bad idle wake up:
we wake up a sleeping CPU do do nothing.
In the case of wheel events, this is fine since we saved a bunch of CPU already.
For all the other cases, I kept the normal operating mode to avoid the idle wake.

  • UIProcess/ResponsivenessTimer.cpp:

(WebKit::ResponsivenessTimer::ResponsivenessTimer):
(WebKit::ResponsivenessTimer::invalidate):
(WebKit::ResponsivenessTimer::timerFired):
(WebKit::ResponsivenessTimer::start):
(WebKit::ResponsivenessTimer::startWithLazyStop):
(WebKit::ResponsivenessTimer::stop):
(WebKit::ResponsivenessTimer::processTerminated):
(WebKit::ResponsivenessTimer::~ResponsivenessTimer): Deleted.

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

(WebKit::WebPageProxy::sendWheelEvent):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::isResponsiveWithLazyStop):

  • UIProcess/WebProcessProxy.h:
8:49 PM Changeset in webkit [240758] by Keith Rollin
  • 2 edits in trunk/Tools

Use correct printf format specifier
https://bugs.webkit.org/show_bug.cgi?id=194062
<rdar://problem/47686167>

Reviewed by Alexey Proskuryakov.

LayoutTestSpellChecker.mm is trying to format a variable of type
NSTextCheckingType with %tu (unsigned ptrdiff_t), when the type is
actually an unsigned long long. Fix this by formatting with %llu.

  • TestRunnerShared/cocoa/LayoutTestSpellChecker.mm:

(-[LayoutTestTextCheckingResult description]):

8:41 PM Changeset in webkit [240757] by dbates@webkit.org
  • 4 edits in trunk/Source/WebKit

[iOS] REGRESSION (r238635): Text area fails to re-focus after dismissal of keyboard on support.apple.com
https://bugs.webkit.org/show_bug.cgi?id=193987
<rdar://problem/47230785>

Reviewed by Tim Horton.

It is unnecessary to relinquish first responder status when a user explicitly dismissing
the keyboard. Moreover, doing so prevents key commands from being intercepted when a
hardware keyboard is subsequently attached.

Following r238635 a page becomes focused (accepting of keyboard input) and defocused
when the WKContentView becomes first responder and resigns first responder, respectively.
When a user explicitly dismisses the keyboard by tapping Done (iPhone) or the hide keyboard
button (iPad) then UIKit tells WKContentView to resign its first responder status only
to make its superview, WKWebView, first responder. When a person subsequently taps on the
page again, the WKContentView requests to become the first responder. However changes to
page focus are not guaranteed to be sent to the WebProcess immediately (WebPageProxy::activityStateDidChange()
will schedule an update). In particular, they are not guaranteed to be sent before the
WebProcess is told about a tap. Therefore, the WebProcess has out-of-date information on
focus state of the page. Instead we should detect when WKWebView is being asked to resign
as a result of the keyboard dismissal and refuse the request, taking care to end the current
editing session, blur the focused element, and dismiss the on-screen keyboard.

  • Platform/spi/ios/UIKitSPI.h: Expose some SPI.
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]): Register to receive notifications whenever a user
explicitly dismisses the keyboard.
(-[WKContentView resignFirstResponderForWebView]): If we are being asked to resign as a
result of a user explicitly dismissing the keyboard then refuse to resign.
(-[WKContentView _keyboardDidRequestDismissal:]): Update state, if applicable.

7:56 PM Changeset in webkit [240756] by rniwa@webkit.org
  • 2 edits in trunk/Tools

REGRESSION(r240541): WebKit.WebsitePoliciesCustomJavaScriptUserAgent is failing since introduction on iOS
https://bugs.webkit.org/show_bug.cgi?id=193979

Reviewed by Wenson Hsieh.

Fix the test for iOS. Make the test work with iOS UA string.

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
7:27 PM Changeset in webkit [240755] by Michael Catanzaro
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix GCC build after r240730
https://bugs.webkit.org/show_bug.cgi?id=194041
<rdar://problem/47680981>

  • disassembler/udis86/ud_itab.py:

(UdItabGenerator.genOpcodeTablesLookupIndex):

7:16 PM Changeset in webkit [240754] by Ross Kirsling
  • 124 edits
    10611 adds
    10334 deletes in trunk/JSTests

Import latest Test262 updates.

Rubber-stamped by Keith Miller.

  • test262.yaml: Deleted.
  • test262/config.yaml:
  • test262/expectations.yaml:
  • test262/latest-changes-summary.txt:
  • test262/test/:
  • test262/test262-Revision.txt:
7:07 PM Changeset in webkit [240753] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

testapi's testBytecodeCache does not need to run the code twice
https://bugs.webkit.org/show_bug.cgi?id=194046

Reviewed by Mark Lam.

Since we populate the cache eagerly (unlike the stress tests) we don't
need to run the code twice.

  • API/tests/testapi.mm:

(testBytecodeCache):

6:49 PM Changeset in webkit [240752] by sbarati@apple.com
  • 15 edits
    2 adds in trunk/Source/JavaScriptCore

[WebAssembly] Change BBQ to generate Air IR
https://bugs.webkit.org/show_bug.cgi?id=191802
<rdar://problem/47651718>

Reviewed by Keith Miller.

This patch adds a new Wasm compiler for the BBQ tier. Instead
of compiling using B3-01, we now generate Air code directly.
The goal of doing this was to speed up compile times for Wasm
programs.

This patch provides us with a 20-30% compile time speedup. However, I
have ideas on how to improve compile times even further. For example,
we should probably implement a faster running register allocator:
https://bugs.webkit.org/show_bug.cgi?id=194036

We can also improve on the code we generate.
We should emit better code for Switch: https://bugs.webkit.org/show_bug.cgi?id=194053
And we should do better instruction selection in various
areas: https://bugs.webkit.org/show_bug.cgi?id=193999

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • b3/B3LowerToAir.cpp:
  • b3/B3StackmapSpecial.h:
  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::emitDefaultPrologue):

  • b3/air/AirCode.h:
  • b3/air/AirTmp.h:

(JSC::B3::Air::Tmp::Tmp):

  • runtime/Options.h:
  • wasm/WasmAirIRGenerator.cpp: Added.

(JSC::Wasm::ConstrainedTmp::ConstrainedTmp):
(JSC::Wasm::TypedTmp::TypedTmp):
(JSC::Wasm::TypedTmp::operator== const):
(JSC::Wasm::TypedTmp::operator!= const):
(JSC::Wasm::TypedTmp::operator bool const):
(JSC::Wasm::TypedTmp::operator Tmp const):
(JSC::Wasm::TypedTmp::operator Arg const):
(JSC::Wasm::TypedTmp::tmp const):
(JSC::Wasm::TypedTmp::type const):
(JSC::Wasm::AirIRGenerator::ControlData::ControlData):
(JSC::Wasm::AirIRGenerator::ControlData::dump const):
(JSC::Wasm::AirIRGenerator::ControlData::type const):
(JSC::Wasm::AirIRGenerator::ControlData::signature const):
(JSC::Wasm::AirIRGenerator::ControlData::hasNonVoidSignature const):
(JSC::Wasm::AirIRGenerator::ControlData::targetBlockForBranch):
(JSC::Wasm::AirIRGenerator::ControlData::convertIfToBlock):
(JSC::Wasm::AirIRGenerator::ControlData::resultForBranch const):
(JSC::Wasm::AirIRGenerator::emptyExpression):
(JSC::Wasm::AirIRGenerator::fail const):
(JSC::Wasm::AirIRGenerator::setParser):
(JSC::Wasm::AirIRGenerator::toTmpVector):
(JSC::Wasm::AirIRGenerator::validateInst):
(JSC::Wasm::AirIRGenerator::extractArg):
(JSC::Wasm::AirIRGenerator::append):
(JSC::Wasm::AirIRGenerator::appendEffectful):
(JSC::Wasm::AirIRGenerator::newTmp):
(JSC::Wasm::AirIRGenerator::g32):
(JSC::Wasm::AirIRGenerator::g64):
(JSC::Wasm::AirIRGenerator::f32):
(JSC::Wasm::AirIRGenerator::f64):
(JSC::Wasm::AirIRGenerator::tmpForType):
(JSC::Wasm::AirIRGenerator::addPatchpoint):
(JSC::Wasm::AirIRGenerator::emitPatchpoint):
(JSC::Wasm::AirIRGenerator::emitCheck):
(JSC::Wasm::AirIRGenerator::emitCCall):
(JSC::Wasm::AirIRGenerator::moveOpForValueType):
(JSC::Wasm::AirIRGenerator::instanceValue):
(JSC::Wasm::AirIRGenerator::fixupPointerPlusOffset):
(JSC::Wasm::AirIRGenerator::restoreWasmContextInstance):
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::AirIRGenerator::emitThrowException):
(JSC::Wasm::AirIRGenerator::addLocal):
(JSC::Wasm::AirIRGenerator::addConstant):
(JSC::Wasm::AirIRGenerator::addArguments):
(JSC::Wasm::AirIRGenerator::getLocal):
(JSC::Wasm::AirIRGenerator::addUnreachable):
(JSC::Wasm::AirIRGenerator::addGrowMemory):
(JSC::Wasm::AirIRGenerator::addCurrentMemory):
(JSC::Wasm::AirIRGenerator::setLocal):
(JSC::Wasm::AirIRGenerator::getGlobal):
(JSC::Wasm::AirIRGenerator::setGlobal):
(JSC::Wasm::AirIRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::sizeOfLoadOp):
(JSC::Wasm::AirIRGenerator::emitLoadOp):
(JSC::Wasm::AirIRGenerator::load):
(JSC::Wasm::sizeOfStoreOp):
(JSC::Wasm::AirIRGenerator::emitStoreOp):
(JSC::Wasm::AirIRGenerator::store):
(JSC::Wasm::AirIRGenerator::addSelect):
(JSC::Wasm::AirIRGenerator::emitTierUpCheck):
(JSC::Wasm::AirIRGenerator::addLoop):
(JSC::Wasm::AirIRGenerator::addTopLevel):
(JSC::Wasm::AirIRGenerator::addBlock):
(JSC::Wasm::AirIRGenerator::addIf):
(JSC::Wasm::AirIRGenerator::addElse):
(JSC::Wasm::AirIRGenerator::addElseToUnreachable):
(JSC::Wasm::AirIRGenerator::addReturn):
(JSC::Wasm::AirIRGenerator::addBranch):
(JSC::Wasm::AirIRGenerator::addSwitch):
(JSC::Wasm::AirIRGenerator::endBlock):
(JSC::Wasm::AirIRGenerator::addEndToUnreachable):
(JSC::Wasm::AirIRGenerator::addCall):
(JSC::Wasm::AirIRGenerator::addCallIndirect):
(JSC::Wasm::AirIRGenerator::unify):
(JSC::Wasm::AirIRGenerator::unifyValuesWithBlock):
(JSC::Wasm::AirIRGenerator::dump):
(JSC::Wasm::AirIRGenerator::origin):
(JSC::Wasm::parseAndCompileAir):
(JSC::Wasm::AirIRGenerator::emitChecksForModOrDiv):
(JSC::Wasm::AirIRGenerator::emitModOrDiv):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32DivS>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32RemS>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32DivU>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32RemU>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64DivS>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64RemS>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64DivU>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64RemU>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Ctz>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Ctz>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Popcnt>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Popcnt>):
(JSC::Wasm::AirIRGenerator::addOp<F64ConvertUI64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32ConvertUI64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Nearest>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Nearest>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Trunc>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Trunc>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncSF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncSF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncUF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncUF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncSF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncUF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncSF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncUF32>):
(JSC::Wasm::AirIRGenerator::addShift):
(JSC::Wasm::AirIRGenerator::addIntegerSub):
(JSC::Wasm::AirIRGenerator::addFloatingPointAbs):
(JSC::Wasm::AirIRGenerator::addFloatingPointBinOp):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Ceil>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Mul>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Sub>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Le>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32DemoteF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Min>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Ne>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Lt>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Max>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Mul>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Div>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Clz>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Copysign>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64ConvertUI32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32ReinterpretI32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64And>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Ne>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Gt>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Sqrt>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Ge>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64GtS>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64GtU>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Eqz>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Div>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Add>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Or>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32LeU>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32LeS>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Ne>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Clz>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Neg>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32And>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32LtU>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Rotr>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Abs>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32LtS>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Eq>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Copysign>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32ConvertSI64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Rotl>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Lt>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64ConvertSI32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Eq>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Le>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Ge>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32ShrU>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32ConvertUI32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32ShrS>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32GeU>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Ceil>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32GeS>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Shl>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Floor>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Xor>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Abs>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Min>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Mul>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Sub>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32ReinterpretF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Add>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Sub>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Or>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64LtU>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64LtS>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64ConvertSI64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Xor>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64GeU>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Mul>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Sub>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64PromoteF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Add>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64GeS>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64ExtendUI32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Ne>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64ReinterpretI64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Eq>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Eq>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Floor>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32ConvertSI32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Eqz>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64ReinterpretF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64ShrS>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64ShrU>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Sqrt>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Shl>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F32Gt>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32WrapI64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Rotl>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32Rotr>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32GtU>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64ExtendSI32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32GtS>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Neg>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::F64Max>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64LeU>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64LeS>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64Add>):

  • wasm/WasmAirIRGenerator.h: Added.
  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::emptyExpression):

  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::compileFunctions):

  • wasm/WasmCallingConvention.cpp:

(JSC::Wasm::jscCallingConventionAir):
(JSC::Wasm::wasmCallingConventionAir):

  • wasm/WasmCallingConvention.h:

(JSC::Wasm::CallingConvention::CallingConvention):
(JSC::Wasm::CallingConvention::marshallArgumentImpl const):
(JSC::Wasm::CallingConvention::marshallArgument const):
(JSC::Wasm::CallingConventionAir::CallingConventionAir):
(JSC::Wasm::CallingConventionAir::prologueScratch const):
(JSC::Wasm::CallingConventionAir::marshallArgumentImpl const):
(JSC::Wasm::CallingConventionAir::marshallArgument const):
(JSC::Wasm::CallingConventionAir::headerSizeInBytes):
(JSC::Wasm::CallingConventionAir::loadArguments const):
(JSC::Wasm::CallingConventionAir::setupCall const):
(JSC::Wasm::nextJSCOffset):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):

  • wasm/WasmValidate.cpp:

(JSC::Wasm::Validate::emptyExpression):

6:29 PM Changeset in webkit [240751] by Ryan Haddad
  • 2 edits in trunk/Tools

Replace High Sierra LLINT CLoop bot due to hardware failure
https://bugs.webkit.org/show_bug.cgi?id=194066

Reviewed by Aakash Jain.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
6:23 PM Changeset in webkit [240750] by Chris Dumez
  • 4 edits
    3 adds in trunk

Regression(PSON) History navigations to twitter.com lead to a 403 HTTP error
https://bugs.webkit.org/show_bug.cgi?id=194023
<rdar://problem/47417981>

Reviewed by Geoffrey Garen.

Source/WebCore:

The issue was caused by the 'isTopSite' flag not getting properly set on the network request
in case of a cross-site history navigation (with process-swap). As a result, twitter.com was
not getting its same-site lax cookies.

The 'isTopSite' flag normally gets set by FrameLoader::addExtraFieldsToRequest(), but we were
bypassing this method entirely when continuing a load in a new process after a swap. This was
intentional as the network request is normally already fully populated by the previous process
and we do not want the new process to modify the request in any way (e.g. we would not want to
add a Origin header back after it was removed by the previous process). However, in case of a
History navigation, we do not actually pass a request along from one process to another. Instead,
we pass a HistoryItem and then build a fresh new request from the HistoryItem in the new process.
In this case, we *want* addExtraFieldsToRequest() to be called on the new request, even though
we are technically continuing a load in a new process.

We thus address the issue by bypassing FrameLoader::addExtraFieldsToRequest() only if we're
continuing a load with a request and not when we're continuing a load with a HistoryItem.

Test: http/tests/cookies/same-site/lax-samesite-cookie-after-cross-site-history-load.php

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::addExtraFieldsToRequest):
(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/FrameLoader.h:

(WebCore::FrameLoader::shouldTreatCurrentLoadAsContinuingLoad const):

LayoutTests:

Add layout test coverage.

  • http/tests/cookies/same-site/lax-samesite-cookie-after-cross-site-history-load-expected.txt: Added.
  • http/tests/cookies/same-site/lax-samesite-cookie-after-cross-site-history-load.php: Added.
  • http/tests/cookies/same-site/resources/navigate-back.html: Added.
6:18 PM Changeset in webkit [240749] by Keith Rollin
  • 3 edits in trunk/Tools

[NSDragItem init] is unavailable
https://bugs.webkit.org/show_bug.cgi?id=194059
<rdar://problem/47685715>

Reviewed by Wenson Hsieh.

[NSDragItem init] is marked as NS_UNAVAILABLE. This affects
DumpRenderTree and TestWebKitAPI, which both try to create an
NSDragItem in a manner that invokes this method. Address this by using
-initWithPasteboardWriter instead.

Note that the parameter passed to initWithPasteboardWriter is likely
incorrect. In both cases, the object passed does not conform to
NSPasteboardWriting. However, with this fix, we're no worse off than
before, and can now perform builds with newer compilers and SDKs until
a real fix can be crafted. That work is tracked in
https://bugs.webkit.org/show_bug.cgi?id=194060

  • DumpRenderTree/mac/DumpRenderTreeDraggingInfo.mm:

(-[DumpRenderTreeDraggingInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]):

  • TestWebKitAPI/mac/TestDraggingInfo.mm:

(-[TestDraggingInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]):

6:15 PM Changeset in webkit [240748] by Justin Fan
  • 13 edits
    4 copies in trunk/Source/WebCore

[WebGPU] Support GPUDepthStencilStateDescriptor
https://bugs.webkit.org/show_bug.cgi?id=194048
<rdar://problem/46289645>

Reviewed by Dean Jackson.

Implement GPUDepthStencilStateDescriptor to specify a MTLDepthStencilState that is set on the command encoder.

Existing tests cover changes to pipeline. Behavior does not change as DepthStencilState has no effect
without a depth texture attached.

New interface files added:

  • Modules/webgpu/GPUCompareFunction.idl:
  • Modules/webgpu/GPUDepthStencilStateDescriptor.idl:
  • platform/graphics/gpu/GPUCompareFunction.h:
  • platform/graphics/gpu/GPUDepthStencilStateDescriptor.h:

Modifications:

  • Modules/webgpu/WebGPUDevice.cpp: Include depthStencilState when creating pipeline.

(WebCore::WebGPUDevice::createRenderPipeline const):

  • Modules/webgpu/WebGPURenderPipelineDescriptor.h: Add depthStencilState to the descriptor.
  • Modules/webgpu/WebGPURenderPipelineDescriptor.idl: Ditto.
  • platform/graphics/gpu/GPURenderPipeline.h: Ditto.

(WebCore::GPURenderPipeline::depthStencilState const): Getter.
(WebCore::GPURenderPipeline::platformRenderPipeline const):

  • platform/graphics/gpu/GPURenderPipelineDescriptor.h: Update constructor to take depthStencilState.

(WebCore::GPURenderPipelineDescriptor::GPURenderPipelineDescriptor):

  • platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm: Setting pipeline also sets the included depthStencilState.

(WebCore::GPURenderPassEncoder::setPipeline):

  • platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm: Convert DepthStencilStateDescriptor to MTLDepthStencilState.

(WebCore::validateAndConvertDepthCompareFunctionToMtl):
(WebCore::tryCreateMtlDepthStencilState):
(WebCore::tryCreateMtlRenderPipelineState): Refactored logic out of GPURenderPipeline::create.
(WebCore::GPURenderPipeline::create):
(WebCore::GPURenderPipeline::GPURenderPipeline):

Added symbols for CompareFunction, DepthStencilStateDescriptor to the project:

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • Modules/webgpu/WebGPUDevice.idl: Cleaned up IDL to match current version.
5:55 PM Changeset in webkit [240747] by Keith Rollin
  • 2 edits in trunk/Source/WebKit

Add default constructor for NetworkActivityTracker
https://bugs.webkit.org/show_bug.cgi?id=194058
<rdar://problem/47685457>

Reviewed by Chris Dumez.

ResourceNetworkActivityTracker has a default constructor. It also has
a NetworkActivityTracker data member, which does not have a default
constructor. This will cause some compilers to complain -- they can't
default-create a ResourceNetworkActivityTracker because they can't
default-create its data members. Address this by adding a default
constructor for NetworkActivityTracker.

  • NetworkProcess/NetworkActivityTracker.h:
5:52 PM Changeset in webkit [240746] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

[Cocoa][EME] persistent-usage-record data not issued after MediaKeySession.remove()
https://bugs.webkit.org/show_bug.cgi?id=193984

Reviewed by Eric Carlson.

MediaKeySession.sessionId is empty during the CDMInstance->requestLicense success callback handler. The
KVO notification that AVContentKeySession.contentProtectionSessionIdentifier changed isn't called until
after the -[AVContentKeyRequest makeStreamingContentKeyRequestDataForApp:contentIdentifier:options:completionHandler:]
completion handler is called.

Explicitly ask for the -contentProtectionSessionIdentifier inside that handler, and just in case the sessionID
changes after that, add a new client callback method to notify the MediaKeySession that the ID has changed.

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::sessionIdChanged):

  • Modules/encryptedmedia/MediaKeySession.h:
  • platform/encryptedmedia/CDMInstanceSession.h:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:

(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::nextRequest):

5:50 PM Changeset in webkit [240745] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

<rdar://problem/29471922> Safari should switch from the legacy denap SPI to handling vouchers
https://bugs.webkit.org/show_bug.cgi?id=193992

Patch by Daniel Steffen <dsteffen@apple.com> on 2019-01-30
Reviewed by Geoffrey Garen.

The denap SPI is deprecated.
The new way of staying out of AppNap is through a voucher.

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::readFromMachPort):

  • Platform/IPC/mac/ImportanceAssertion.h:

(IPC::ImportanceAssertion::ImportanceAssertion):
(IPC::ImportanceAssertion::~ImportanceAssertion):

5:35 PM Changeset in webkit [240744] by Keith Rollin
  • 2 edits in trunk/Source/WebCore

FloatWithRect has invalid and inaccessible default constructor
https://bugs.webkit.org/show_bug.cgi?id=194057
<rdar://problem/47685211>

Reviewed by Zalan Bujtas.

FloatWithRect has a default constructor declared as 'default'. This
constructor is invalid because FloatWithRect has a data member that's
a reference that will not get initialized with this constructor. Since
it's invalid, and since it's private and not accessed by anything,
remove this constructor.

No new tests since there should be no observable behavior difference.

  • rendering/line/LineLayoutState.h:
4:56 PM Changeset in webkit [240743] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Fix crashes when trying to ref the CallbackAggregator in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=194054

Reviewed by Brent Fulgham.

The callback aggregators should be ThreadSafeRefCounted since they are passed to other threads.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForTopPrivatelyControlledDomainsInAllPersistentDataStores):
(WebKit::NetworkProcess::topPrivatelyControlledDomainsWithWebsiteData):

4:54 PM Changeset in webkit [240742] by commit-queue@webkit.org
  • 16 edits in trunk

[iOS] Keyups for non-modifier keys identified as "Dead" when not focused in a content-editable element
https://bugs.webkit.org/show_bug.cgi?id=192824
<rdar://problem/47100332>

Patch by Daniel Bates <dabates@apple.com> on 2019-01-30
Reviewed by Wenson Hsieh.

Source/WebCore:

When building with USE(UIKIT_KEYBOARD_ADDITIONS) enabled, normalize input strings for some more key codes
now that hardware key events to non-editable elements use the same code path as for editable elements.

  • platform/ios/KeyEventIOS.mm:

(WebCore::windowsKeyCodeForCharCode): Demarcate mappings that are only needed when building with
!USE(UIKIT_KEYBOARD_ADDITIONS) in the hope that one day we can remove this code.
(WebCore::isFunctionKey): Ditto.

  • platform/ios/WebEvent.mm:

(normalizedStringWithAppKitCompatibilityMapping): Normalize some more input strings when building with
USE(UIKIT_KEYBOARD_ADDITIONS) enabled.

Source/WebCore/PAL:

Expose more enumerators.

  • pal/spi/cocoa/IOKitSPI.h:

Source/WebKit:

Use the same code path for key events to editable elements and non-editable elements.

Currently we have different code paths for hardware key events depending on whether the active element
is editable or non-editable. Historically to support dispatching DOM keyboard events for hardware key
presses this differentiation was a necessary workaround for UIKit's event processing precedence of
interpreting key events for system text editing commands and app commands before dispatching unhandled
key events to WebKit. This workaround intercepted raw key UIEvents and manually reconstructed a
WebEvent from it. However there is not enough information in an UIEvent to reconstruct a WebEvent that
is identical to the WebEvent that UIKit would have dispatched. In particular, keyup UIEvents always have
empty modified and unmodified input strings. The UIKit keyboard machinery maintains additional state
that is necessary to manufacture the correct WebEvent corresponding to a UIEvent.

As a side benefit of this change, with the exception of modifier flag changes, both hardware and software
key events use the same code path.

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

(-[WKContentView shouldShowAutomaticKeyboardUI]): Extracted code from _requiresKeyboardWhenFirstResponder
(-[WKContentView _disableAutomaticKeyboardUI]): Implement UIKit SPI to prevent showing the keyboard UI
when there is no focused element now that we are no longer intercepting key UIEvents. Formerly the
keyboard UI was disabled as a side effect of not becoming first responder when there was no focused
element (by returning NO in -_requiresKeyboardWhenFirstResponder).
(-[WKContentView _requiresKeyboardWhenFirstResponder]): Always return YES when building with USE(UIKIT_KEYBOARD_ADDITIONS)
so that we always accept key events. Instead of selectively replying to create a keyboard as a means of
hiding the automatic keyboard UI we now implement _disableAutomaticKeyboardUI to selectively hide the
automatic keyboard UI.
(-[WKContentView textInputTraits]): Do not update traits when the keyboard is going to be dismissed
now that we require a keyboard when first responder even if the focused element is non-editable.
(-[WKContentView _didHandleKeyEvent:eventWasHandled:]): Skip logic for re-sending UIEvents to UIKit
as UIKit now processes the event first. This logic was necessary in order to finally allow UIKit
its chance to interpret the UIEvent, we intercepted, for app key commands.
(-[WKContentView _elementDidBlur]): Call [self _endEditing] so that we dismiss any open form controls
(e.g. a <select> popover menu). Currently this happens either by -_requiresKeyboardWhenFirstResponder
responding NO when switching to another field or pressing Tab or Shift + Tab key command, which we will
no longer use when building with USE(UIKIT_KEYBOARD_ADDITIONS) once I land <https://bugs.webkit.org/show_bug.cgi?id=193048>.

  • UIProcess/ios/forms/WKFormSelectPopover.mm:

(-[WKSelectPopover initWithView:hasGroups:]): Do not assign ourself as the keyboard delegate. Otherwise,
type ahead and tab cycling will not work. Currently type ahead and tab cycling work by using the non-
editable code path via -_handleKeyUIEvent. Now that we no longer differentiate between key events for
editable and non-editable elements we need to ensure that the WKContentView is the keyboard delegate
when the popover is presented.

Tools:

Fix a bug where the wrong usage code was used for F13 thru F24.

  • WebKitTestRunner/ios/HIDEventGenerator.mm:

(keyCodeForDOMFunctionKey):

LayoutTests:

Update tests and expected results. As it turns out fixing the bug in WebKitTestRunner/ios/HIDEventGenerator.mm
so that we now dispatch key events for F17 thru F24 exposed a bug in UIKit. See <rdar://problem/47128940>.
This same bug is also responsible for a lack of key events when the Insert key is pressed.

Added sub-test for Tab key to keypress-keys-in-non-editable-element.html. Changed expected result in test
keypress-keys-in-non-editable-element.html for the forward delete key to expect failure. We expect that pressing
the forward delete key will not dispatch a keypress to match the behavior on Mac. This will be addressed by a
UIKit fix.

  • fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt:
  • fast/events/ios/keydown-keyup-special-keys-in-non-editable-element.html:
  • fast/events/ios/keypress-keys-in-non-editable-element-expected.txt:
  • fast/events/ios/keypress-keys-in-non-editable-element.html:
4:51 PM Changeset in webkit [240741] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Changes: group CSS rules by resource
https://bugs.webkit.org/show_bug.cgi?id=193940
<rdar://problem/47617785>

Reviewed by Matt Baker.

Create resource sections with source links in their headers.

Also:

  • Use read-only WI.SpreadsheetStyleProperty to display inline swatches for colors;
  • Make the red and green background span the entire width of the panel.
  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/ChangesDetailsSidebarPanel.css:

(.sidebar > .panel.changes-panel):
(.sidebar > .panel.changes-panel .css-rule):
(.sidebar > .panel.selected.changes-panel.empty):
(.changes-panel .resource-section):
(.changes-panel .resource-section > .header):
(.changes-panel .resource-section > .header > a:hover):
(.sidebar > .panel.changes-panel .selector-line,):
(.changes-panel .css-property-line > .property):
(.changes-panel .css-property-line.unchanged):
(.changes-panel .css-property-line.added):
(.changes-panel .css-property-line.removed):
(.changes-panel .css-property-line.removed::before):
(.changes-panel .css-property-line.added::before):
(@media (prefers-color-scheme: dark)):

  • UserInterface/Views/ChangesDetailsSidebarPanel.js:

(WI.ChangesDetailsSidebarPanel.prototype.layout):
(WI.ChangesDetailsSidebarPanel.prototype._createRuleElement):
(WI.ChangesDetailsSidebarPanel.prototype._createLocationLink):

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
Allow passing null as a delegate.

4:49 PM Changeset in webkit [240740] by rmorisset@apple.com
  • 3 edits
    1 add in trunk

Object.keys can now lead to a PhantomNewArrayBuffer, OSR exit from the FTL should know how to materialize a NewArrayBuffer in that case
https://bugs.webkit.org/show_bug.cgi?id=194050
<rdar://problem/47595592>

JSTests:

Reviewed by Yusuke Suzuki.

  • stress/object-keys-osr-exit.js: Added.

(foo):
(catch):

Source/JavaScriptCore:

Following https://bugs.webkit.org/show_bug.cgi?id=190047, PhantomNewArrayBuffer is no longer guaranteed to originate from a NewArrayBuffer in the baseline jit.
It can now come from Object.keys, which is a function call. We must teach the FTL how to OSR exit in that case.

Reviewed by Yusuke Suzuki.

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationMaterializeObjectInOSR):

4:46 PM Changeset in webkit [240739] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

Remove assertion that CachedSymbolTables should have no RareData
https://bugs.webkit.org/show_bug.cgi?id=194037

Reviewed by Mark Lam.

It turns out that we don't need to cache the SymbolTableRareData and
we should not assert that it's empty.

  • runtime/CachedTypes.cpp:

(JSC::CachedSymbolTable::encode):

4:33 PM Changeset in webkit [240738] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Ensure ENABLE_MEDIA_SOURCE is defined inside DerivedSources.make
https://bugs.webkit.org/show_bug.cgi?id=194063

Reviewed by Jon Lee.

  • DerivedSources.make:
3:54 PM Changeset in webkit [240737] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: change style of device settings override popover content
https://bugs.webkit.org/show_bug.cgi?id=194049

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WI._handleDeviceSettingsToolbarButtonClicked):
(WI._handleDeviceSettingsToolbarButtonClicked.showUserAgentInput):
(WI._handleDeviceSettingsToolbarButtonClicked.createContainer): Deleted.

  • UserInterface/Views/Main.css:

(.device-settings-content):
(.device-settings-content > tr > td:first-child): Added.
(.device-settings-content .container):
(.device-settings-content .container > * + *): Added.
(.device-settings-content .column): Added.
(.device-settings-content .user-agent select): Added.
(.device-settings-content .user-agent input): Added.
(.device-settings-content label + label): Added.
(.device-settings-content label > input): Added.
(.device-settings-content .columns): Deleted.
(.device-settings-content .columns > .column): Deleted.
(.device-settings-content .columns > .column + .column): Deleted.
(.device-settings-content .user-agent-value): Deleted.
(.device-settings-content .user-agent-value > select): Deleted.
(.device-settings-content .user-agent-value > input): Deleted.
(body[dir=ltr] .device-settings-content .user-agent-value > input): Deleted.
(body[dir=rtl] .device-settings-content .user-agent-value > input): Deleted.

3:40 PM Changeset in webkit [240736] by Alan Coon
  • 1 copy in tags/Safari-607.1.31

Tag Safari-607.1.31.

3:34 PM Changeset in webkit [240735] by Alan Coon
  • 3 edits in branches/safari-607-branch/Source/WebKit

Cherry-pick r240733. rdar://problem/47683434

[macOS] Sandbox fails to compile on 10.12
https://bugs.webkit.org/show_bug.cgi?id=194035
<rdar://problem/47651260>

Reviewed by Brent Fulgham.

This was caused by the commit <https://trac.webkit.org/changeset/239994>, which is only valid for
10.14 and later.

  • PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:

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

3:33 PM Changeset in webkit [240734] by Alan Coon
  • 1 edit in branches/safari-607-branch/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in

Apply patch. rdar://problem/47651153

3:11 PM Changeset in webkit [240733] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[macOS] Sandbox fails to compile on 10.12
https://bugs.webkit.org/show_bug.cgi?id=194035
<rdar://problem/47651260>

Reviewed by Brent Fulgham.

This was caused by the commit <https://trac.webkit.org/changeset/239994>, which is only valid for
10.14 and later.

  • PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
2:56 PM Changeset in webkit [240732] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

CachedBytecode's move constructor should not call freeDataIfOwned
https://bugs.webkit.org/show_bug.cgi?id=194045

Reviewed by Mark Lam.

That might result in freeing a garbage value

  • parser/SourceProvider.h:

(JSC::CachedBytecode::CachedBytecode):

2:42 PM Changeset in webkit [240731] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

mul32 should convert powers of 2 to an lshift
https://bugs.webkit.org/show_bug.cgi?id=193957

Reviewed by Yusuke Suzuki.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::mul32):

  • assembler/testmasm.cpp:

(JSC::int32Operands):
(JSC::testMul32WithImmediates):
(JSC::run):

2:12 PM Changeset in webkit [240730] by ysuzuki@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] Make disassembler data structures constant read-only data
https://bugs.webkit.org/show_bug.cgi?id=194041

Reviewed by Mark Lam.

Bunch of disassembler data structures are not marked "const", which prevents the loader to put them in read-only region.
This patch makes them "const".

  • disassembler/ARM64/A64DOpcode.cpp:
  • disassembler/udis86/ud_itab.py:

(UdItabGenerator.genOpcodeTablesLookupIndex):
(UdItabGenerator.genInsnTable):
(UdItabGenerator.genMnemonicsList):
(genItabH):

  • disassembler/udis86/udis86_decode.h:
  • disassembler/udis86/udis86_syn.c:
  • disassembler/udis86/udis86_syn.h:
  • disassembler/udis86/udis86_types.h:
1:46 PM Changeset in webkit [240729] by Conrad Shultz
  • 2 edits in trunk/Source/WebKit

Ensure image picker sourceType is set before cameraDevice
https://bugs.webkit.org/show_bug.cgi?id=193998

Reviewed by Beth Dakin.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel _showPhotoPickerWithSourceType:]):

1:33 PM Changeset in webkit [240728] by commit-queue@webkit.org
  • 6 edits in trunk/Source/ThirdParty/libwebrtc

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

"Better to postpone SPI adoption" (Requested by youenn on
#webkit).

Reverted changeset:

"Adopt new VCP SPI"
https://bugs.webkit.org/show_bug.cgi?id=193357
https://trac.webkit.org/changeset/240665

1:00 PM Changeset in webkit [240727] by youenn@apple.com
  • 9 edits in trunk

LayoutTests/imported/w3c:
ServiceWorkerJob should notify its client in case its job is cancelled
https://bugs.webkit.org/show_bug.cgi?id=193747
<rdar://problem/47498196>

Reviewed by Chris Dumez.

  • web-platform-tests/service-workers/service-worker/registration-security-error.https-expected.txt:

Source/WebCore:
Refactor ServiceWorkerJob management by ServiceWorkerContainer to make it more memory safe
https://bugs.webkit.org/show_bug.cgi?id=193747
<rdar://problem/47498196>

Reviewed by Chris Dumez.

Make ServiceWorkerJob be no longer ref counted.
Instead its lifetime is fully controlled by ServiceWorkerContainer.

Make sure that a failing load will remove the job from ServiceWorkerContainer job map.
This allows to ensure that these jobs do not stay forever.
Before the patch, the jobs map was never cleared, which is creating a ref cycle whenever a job is not succesful.

Before the patch, unsetPendingActivity was only called for successful jobs finishing.
In case of failing loads, ServiceWorkerContainer would leak.
Make sure that setPendingActivity/unsetPendingActivity is balanced by storing
a pending activity in the job map next to the job.

When ServiceWorkerContainer is stopped, notify that all jobs are cancelled to NetworkProcess.
This makes these jobs in NetworkProcess-side to not stay until the corresponding WebProcess is gone.

Simplify ServiceWorkerJob promise rejection handling so that it is clear when promise is rejected and when it is not.
Update type of exception to be SecurityError when load fails due to AccessControl.

Covered by existing tests.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::removeRegistration):
(WebCore::ServiceWorkerContainer::updateRegistration):
(WebCore::ServiceWorkerContainer::scheduleJob):
(WebCore::ServiceWorkerContainer::jobFailedWithException):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::jobResolvedWithUnregistrationResult):
(WebCore::ServiceWorkerContainer::jobFailedLoadingScript):
(WebCore::ServiceWorkerContainer::jobDidFinish):
(WebCore::ServiceWorkerContainer::stop):
(WebCore::ServiceWorkerContainer::job):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerJob.cpp:

(WebCore::ServiceWorkerJob::failedWithException):
(WebCore::ServiceWorkerJob::resolvedWithRegistration):
(WebCore::ServiceWorkerJob::resolvedWithUnregistrationResult):
(WebCore::ServiceWorkerJob::startScriptFetch):
(WebCore::ServiceWorkerJob::didReceiveResponse):
(WebCore::ServiceWorkerJob::notifyFinished):
(WebCore::ServiceWorkerJob::cancelPendingLoad):

  • workers/service/ServiceWorkerJob.h:

(WebCore::ServiceWorkerJob::hasPromise const):
(WebCore::ServiceWorkerJob::takePromise):

  • workers/service/ServiceWorkerJobClient.h:
  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::scriptFetchFinished):

12:27 PM Changeset in webkit [240726] by ysuzuki@apple.com
  • 14 edits in trunk/Source/JavaScriptCore

Unreviewed, update the builtin test results
https://bugs.webkit.org/show_bug.cgi?id=194015

  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
  • Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
12:27 PM Changeset in webkit [240725] by Chris Dumez
  • 6 edits in trunk

Regression(PSON) Load hang can occur on history navigation
https://bugs.webkit.org/show_bug.cgi?id=194030
<rdar://problem/47656939>

Reviewed by Antti Koivisto.

Source/WebKit:

We do not support having more than one WebPage in a WebProcess with the same page ID. As a result,
if we decide to reuse an existing process on process-swap, we need to make sure that we either use
its suspended page (when possible, meaning that it is for the right HistoryItem / page) or we need
make sure we drop the existing suspended page for this process / pagePID combination, so that the
WebPage on WebProcess side gets closed before we attempt to do the new load.

We were doing this correctly in 2 places in WebProcessPool::processForNavigationInternal() but failed
to do so in a third place, when doing back to a HistoryItem which does not have a SuspendedPage but
whose process is still alive (presumably because it is kept alive by another suspended page). This
patch fixes this third place to remove any suspended page in the process for the current page before
reusing the process. An assertion was also added to the call site in
WebPageProxy::receivedNavigationPolicyDecision() to make sure we catch this more easily in the
future.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedNavigationPolicyDecision):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigationInternal):
(WebKit::WebProcessPool::removeAllSuspendedPagesForPage):
(WebKit::WebProcessPool::hasSuspendedPageFor const):

  • UIProcess/WebProcessPool.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
12:08 PM Changeset in webkit [240724] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: null is not an object (evaluating 'url.startsWith')
https://bugs.webkit.org/show_bug.cgi?id=194029

Reviewed by Matt Baker.

  • UserInterface/Views/ConsoleMessageView.js:

(WI.ConsoleMessageView.prototype._appendLocationLink):

12:04 PM Changeset in webkit [240723] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK][Wayland] REGRESSION(r240712): Clear the GL context if it's the current one on dispose
https://bugs.webkit.org/show_bug.cgi?id=194024

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-01-30
Reviewed by Michael Catanzaro.

Fixes a crash in gdk_gl_context_dispose().

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::~AcceleratedBackingStoreWayland):

11:30 AM Changeset in webkit [240722] by Alan Bujtas
  • 2 edits in trunk/Tools

[LFC] Expand tests coverage.

Unreviewed test gardening.

  • LayoutReloaded/misc/LFC-passing-tests.txt:
11:25 AM Changeset in webkit [240721] by dino@apple.com
  • 4 edits in trunk

PointerEvents - tiltX and tiltY are reversed
https://bugs.webkit.org/show_bug.cgi?id=194032
<rdar://problem/47674184>

Reviewed by Jon Lee.

Source/WebCore:

I got tiltX and tiltY the wrong way around.

  • dom/ios/PointerEventIOS.cpp: Flip the values.

LayoutTests:

  • pointerevents/ios/pointer-events-dispatch-on-stylus.html:
11:19 AM Changeset in webkit [240720] by Alan Coon
  • 7 edits in tags/Safari-608.1.3.1/Source

Versioning.

11:18 AM Changeset in webkit [240719] by Alan Coon
  • 1 copy in tags/Safari-608.1.3.1

New tag.

10:55 AM Changeset in webkit [240718] by ysuzuki@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

[JSC] Make global static variables "const" as much as possible
https://bugs.webkit.org/show_bug.cgi?id=194015

Patch by Yusuke Suzuki <yusukesuzuki@slowstart.org> on 2019-01-30
Reviewed by Mark Lam.

Some of global static variables are not "const". For example, static const char* name = ...
is not constant variable. We should make it static const char* const name = ....

  • Scripts/wkbuiltins/builtins_generate_combined_header.py:

(generate_externs_for_object):

  • Scripts/wkbuiltins/builtins_generate_separate_header.py:

(generate_externs_for_object):

  • Scripts/wkbuiltins/builtins_generator.py:

(BuiltinsGenerator.generate_embedded_code_string_section_for_data):

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::additionBlindedConstant):

  • b3/air/AirFormTable.h:
  • b3/air/opcode_generator.rb:
  • runtime/JSObject.cpp:

(JSC::JSObject::visitButterfly):

  • tools/CodeProfile.cpp:
  • tools/CodeProfile.h:
10:44 AM Changeset in webkit [240717] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit

Crash in WebKit::RemoteLayerTreePropertyApplier::updateChildren
https://bugs.webkit.org/show_bug.cgi?id=193897
<rdar://problem/47427750>

Reviewed by Simon Fraser.

There has been some null pointer crashes where we fail to find a remote layer tree node that matches
the transaction properties.

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::updateChildren):

Null check the nodes.

10:42 AM Changeset in webkit [240716] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak] Add openjpeg support
https://bugs.webkit.org/show_bug.cgi?id=194019

Patch by Thibault Saunier <tsaunier@igalia.com> on 2019-01-30
Reviewed by Michael Catanzaro.

  • flatpak/org.webkit.CommonModules.yaml:
8:43 AM Changeset in webkit [240715] by commit-queue@webkit.org
  • 2 edits
    2 deletes in trunk/Tools

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

It broke WPE build (Requested by KaL on #webkit).

Reverted changeset:

"[WPE] Bump font related dependencies to match the GTK+ port"
https://bugs.webkit.org/show_bug.cgi?id=194017
https://trac.webkit.org/changeset/240708

8:39 AM Changeset in webkit [240714] by Alan Bujtas
  • 4 edits in trunk

[LFC][IFC] nextBreakablePosition returns the same position on hyphen characters
https://bugs.webkit.org/show_bug.cgi?id=194001

Reviewed by Antti Koivisto.

Source/WebCore:

Skip to the next position manually. This is exactly what we do in simple line layout.

  • layout/inlineformatting/InlineRunProvider.cpp:

(WebCore::Layout::InlineRunProvider::moveToNextBreakablePosition):

Tools:

  • LayoutReloaded/misc/LFC-passing-tests.txt:
8:33 AM Changeset in webkit [240713] by Simon Fraser
  • 84 edits in trunk

Add some basic geometry information to the scrolling tree
https://bugs.webkit.org/show_bug.cgi?id=194002
Source/WebCore:

rdar://problem/47656294

Reviewed by Antti Koivisto.

To allow hit-testing in the scrolling tree, store a parent-relative scrollable
rect in "scrolling" and "frame hosting" nodes. This is a rect whose size is the size
of the scrollable area, and whose origin is relative to the parent scrolling tree node.

Frame hosting nodes need this rect because they take care of the geometry offset between
an iframe and its scrolling tree ancestor in the parent document.

Based on a patch by Frédéric Wang in bug 172917.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::setScrollingNodeGeometry):

  • page/scrolling/ScrollingStateFrameHostingNode.cpp:

(WebCore::ScrollingStateFrameHostingNode::ScrollingStateFrameHostingNode):
(WebCore::ScrollingStateFrameHostingNode::setAllPropertiesChanged):
(WebCore::ScrollingStateFrameHostingNode::setParentRelativeScrollableRect):
(WebCore::ScrollingStateFrameHostingNode::dumpProperties const):

  • page/scrolling/ScrollingStateFrameHostingNode.h:
  • page/scrolling/ScrollingTreeFrameHostingNode.cpp:

(WebCore::ScrollingTreeFrameHostingNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameHostingNode::dumpProperties const):

  • page/scrolling/ScrollingTreeFrameHostingNode.h:

(WebCore::ScrollingTreeFrameHostingNode::parentRelativeScrollableRect const):

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

(WebCore::RenderLayerBacking::updateScrollingLayers):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::computeFrameScrollingGeometry const):
(WebCore::RenderLayerCompositor::computeFrameHostingGeometry const):
(WebCore::RenderLayerCompositor::computeOverflowScrollingGeometry const):
(WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingRole):
(WebCore::RenderLayerCompositor::updateScrollingNodeForFrameHostingRole):
(WebCore::RenderLayerCompositor::updateScrollSnapPropertiesWithFrameView const):
(WebCore::RenderLayerCompositor::updateScrollSnapPropertiesWithFrameView): Deleted.

  • rendering/RenderLayerCompositor.h:

Source/WebKit:

Reviewed by Antti Koivisto.

Add a comment explaining why we don't need to encode/decode ParentRelativeScrollableRect.

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateFrameHostingNode>::encode):

LayoutTests:

rdar://problem/47656294

Reviewed by Antti Koivisto.

New test results with "parent relative scrollable rect" output and 0,0 anchorPoints.

  • compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt:
  • fast/scrolling/ios/change-scrollability-on-content-resize-expected.txt:
  • fast/scrolling/ios/change-scrollability-on-content-resize-nested-expected.txt:
  • fast/scrolling/ios/overflow-scroll-touch-expected.txt:
  • fast/scrolling/ios/reconcile-layer-position-recursive-expected.txt:
  • fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt:
  • fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-expected.txt:
  • fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up-expected.txt:
  • fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:
  • platform/ios/compositing/overflow/overflow-auto-with-touch-expected.txt:
  • platform/ios/compositing/overflow/overflow-auto-with-touch-toggle-expected.txt:
  • platform/ios/compositing/overflow/overflow-overlay-with-touch-expected.txt:
  • platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
  • platform/ios/compositing/overflow/scrolling-without-painting-expected.txt:
  • platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt:
  • platform/ios/compositing/overflow/updating-scrolling-content-expected.txt:
  • platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
  • platform/ios/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt:
  • platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt:
  • platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt:
  • platform/ios/fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt:
  • platform/ios/fast/scrolling/ios/textarea-scroll-touch-expected.txt:
  • platform/ios/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container-expected.txt:
  • scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
  • scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
  • scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
  • scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
  • scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
  • scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
  • scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
  • scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
  • scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt:
  • scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
  • scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
  • scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
  • scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
  • scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt:
  • scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:
  • tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt:
  • tiled-drawing/scrolling/fixed/absolute-inside-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/absolute-inside-out-of-view-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/fixed-in-overflow-expected.txt:
  • tiled-drawing/scrolling/fixed/fixed-position-out-of-view-expected.txt:
  • tiled-drawing/scrolling/fixed/fixed-position-out-of-view-negative-zindex-expected.txt:
  • tiled-drawing/scrolling/fixed/four-bars-expected.txt:
  • tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt:
  • tiled-drawing/scrolling/fixed/negative-scroll-offset-expected.txt:
  • tiled-drawing/scrolling/fixed/negative-scroll-offset-in-view-expected.txt:
  • tiled-drawing/scrolling/fixed/nested-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/percentage-inside-fixed-expected.txt:
  • tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt:
  • tiled-drawing/scrolling/scrolling-tree-after-scroll-expected.txt:
  • tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt:
  • tiled-drawing/scrolling/sticky/negative-scroll-offset-expected.txt:
  • tiled-drawing/scrolling/sticky/sticky-horizontal-expected.txt:
  • tiled-drawing/scrolling/sticky/sticky-vertical-expected.txt:
8:14 AM Changeset in webkit [240712] by Carlos Garcia Campos
  • 10 edits in trunk/Source/WebKit

[GTK] gdk_cairo_draw_from_gl() in AcceleratedBackingStoreWayland fails in GtkInspector's magnifier
https://bugs.webkit.org/show_bug.cgi?id=193903

Reviewed by Michael Catanzaro.

The problem is that the GL context used by WaylandCompositor can't share resources with the one used by GTK+
when painting with gdk_cairo_draw_from_gl(). Accelerated compositing in Wayland works only because
WaylandCompositor makes the context current only once on initialization. So, when we render the first frame on
accelerated compositing mode, GTK+ is rendering in non-GL mode, and switches to the GL mode when
gdk_cairo_draw_from_gl() is called. Since GTK+ didn't have a GL context yet, the first frame is always rendered
by GTK+ using the software fallback (glReadPixels). The thing is that the first time gdk_cairo_draw_from_gl() is
called, GTK+ creates a GL context for painting that is made current, and it will remain the current one
forever. The first frame fails to render with "GL_INVALID_OPERATION in glBindTexture(non-gen name)" because the
texture created in WaylandCompositor GL context can't be accessed from GTK+ GL context. The following frames are
handled with the GTK+ GL context. I would say this works by casuality and it could be the cause of other
accelerated compositing issues in Wayland.

We need to create our own GdkGLContext for the WebView, and use that in the WaylandCompositor. When the
GdkGLContext is created, the GTK+ GL context for painting is used as a shared context, ensuring that resources
created in the new context will be accessible from the painting one.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseMakeGLContextCurrent): Call AcceleratedBackingStore::makeContextCurrent().

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/gtk/AcceleratedBackingStore.h:

(WebKit::AcceleratedBackingStore::makeContextCurrent): New virtual method only implemented by Wayland backend.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::tryEnsureGLContext): Try to create a GL context with
gdk_window_create_gl_context(), falling back to a WebCore::GLContext if it fails or GTK+ version is not new enough.
(WebKit::AcceleratedBackingStoreWayland::makeContextCurrent): Make the GL context current.
(WebKit::AcceleratedBackingStoreWayland::paint): Check if we have a GdkGLContext before trying to use gdk_cairo_draw_from_gl().
(WebKit::AcceleratedBackingStoreWayland::canGdkUseGL const): Deleted.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.h:
  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::Surface::Surface): Move the texture creation to setWebPage(), since we need the
WebView GL context.
(WebKit::WaylandCompositor::Surface::~Surface): Move the code to destroy GL resources to setWebPage().
(WebKit::WaylandCompositor::Surface::setWebPage): Create the texture when a new page is set and destroy GL
resources when unset.
(WebKit::WaylandCompositor::Surface::prepareTextureForPainting): Make WebView GL context current.
(WebKit::WaylandCompositor::Surface::commit): Ditto.
(WebKit::WaylandCompositor::initializeEGL): Use a temporary GLContext.

  • UIProcess/gtk/WaylandCompositor.h:
  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::makeGLContextCurrent): Call webkitWebViewBaseMakeGLContextCurrent().

8:13 AM Changeset in webkit [240711] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[LFC] Use the used margin values in outOfFlowReplacedVerticalGeometry consistently
https://bugs.webkit.org/show_bug.cgi?id=194020

Reviewed by Antti Koivisto.

Source/WebCore:

Check the used margin variables whether we already computed before/after values.

Test: fast/block/block-only/absolute-position-with-margin-auto-simple.html

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry):

Tools:

  • LayoutReloaded/misc/LFC-passing-tests.txt:

LayoutTests:

  • fast/block/block-only/absolute-position-with-margin-auto-simple-expected.html: Added.
  • fast/block/block-only/absolute-position-with-margin-auto-simple.html: Added.
7:10 AM Changeset in webkit [240710] by Chris Fleizach
  • 8 edits
    2 adds in trunk

AX: Support color well on iOS
https://bugs.webkit.org/show_bug.cgi?id=194010

Reviewed by Joanmarie Diggs.

Source/WebCore:

Test: accessibility/ios-simulator/color-well.html

Add support for color well on iOS.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
(-[WebAccessibilityObjectWrapper accessibilityRoleDescription]):
(-[WebAccessibilityObjectWrapper accessibilityColorStringValue]):

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

(WebCore::AXColorWellText):

  • platform/LocalizedStrings.h:

Tools:

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::stringAttributeValue):

LayoutTests:

  • accessibility/ios-simulator/color-well-expected.txt: Added.
  • accessibility/ios-simulator/color-well.html: Added.
7:07 AM Changeset in webkit [240709] by Chris Fleizach
  • 3 edits
    2 adds in trunk

AX: Role=switch not returning correct accessibilityValue
https://bugs.webkit.org/show_bug.cgi?id=194006

Reviewed by Joanmarie Diggs.

Source/WebCore:

Return the toggle state of a role=switch element.

Test: accessibility/ios-simulator/role-switch.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityValue]):

LayoutTests:

  • accessibility/ios-simulator/role-switch-expected.txt: Added.
  • accessibility/ios-simulator/role-switch.html: Added.
7:04 AM Changeset in webkit [240708] by commit-queue@webkit.org
  • 2 edits
    2 adds in trunk/Tools

[WPE] Bump font related dependencies to match the GTK+ port
https://bugs.webkit.org/show_bug.cgi?id=194017

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2019-01-30
Reviewed by Žan Doberšek.

  • wpe/jhbuild.modules:
  • wpe/patches/cairo-ft-Use-FT_Done_MM_Var-instead-of-free-when-available.patch: Added.
  • wpe/patches/icudata-stdlibs.patch: Added.
12:46 AM Changeset in webkit [240707] by zandobersek@gmail.com
  • 14 edits
    16 adds in trunk/LayoutTests

Unreviewed WPE gardening. Manage failures in the imported WPT tests,
adding a few failure expectations but mostly rebaselining the tests
to match their current status.

  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-text/white-space/seg-break-transformation-001-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/css-text/white-space/seg-break-transformation-004-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any.worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/request-headers-case.any-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/request-headers-case.any.worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/scheme-about.any-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/scheme-about.any.worker-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-method.any.worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-mode.any-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/redirect/redirect-mode.any.worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/api/request/request-keepalive-quota-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/fetch/content-type: Added.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/content-type/script.window-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/http-cache/cc-request-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/fetch/nosniff: Added.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/nosniff/parsing-nosniff.window-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/fetch/security/dangling-markup-mitigation-data-url.tentative.sub-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/fetch/security/embedded-credentials.tentative.sub-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/mimesniff/mime-types/charset-parameter.window-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/resource-timing: Added.
  • platform/wpe/imported/w3c/web-platform-tests/resource-timing/resource_timing.worker-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/service-workers/service-worker/websocket-in-service-worker.https-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/xhr/formdata-blob-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/xhr/formdata-expected.txt:
Note: See TracTimeline for information about the timeline view.