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

Timeline



May 20, 2019:

11:52 PM Changeset in webkit [245564] by Tadeu Zagallo
  • 7 edits
    2 adds in trunk/Source

Only cache bytecode for API clients in data vaults
https://bugs.webkit.org/show_bug.cgi?id=197898
Source/JavaScriptCore:

<rdar://problem/45945449>

Reviewed by Keith Miller.

Enforce that API clients only store cached bytecode in data vaults. This prevents
another process from compromising the current one by tampering with the bytecode.

  • API/JSScript.mm:

(validateBytecodeCachePath):
(+[JSScript scriptOfType:withSource:andSourceURL:andBytecodeCache:inVirtualMachine:error:]):
(+[JSScript scriptOfType:memoryMappedFromASCIIFile:withSourceURL:andBytecodeCache:inVirtualMachine:error:]):

  • API/tests/testapi.mm:

(cacheFileInDataVault):
(testModuleBytecodeCache):
(testProgramBytecodeCache):
(testBytecodeCacheWithSyntaxError):
(testBytecodeCacheWithSameCacheFileAndDifferentScript):
(testCacheFileFailsWhenItsAlreadyCached):
(testCanCacheManyFilesWithTheSameVM):
(testIsUsingBytecodeCacheAccessor):
(testBytecodeCacheValidation):
(testObjectiveCAPI):

  • Configurations/ToolExecutable.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • testapi.entitlements: Added.

Source/WTF:

Reviewed by Keith Miller.

Add SPI to check if a filesystem path is restricted as a data vault.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/spi/darwin/DataVaultSPI.h: Added.
11:31 PM Changeset in webkit [245563] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

Fix 32-bit btyecode cache crashes
https://bugs.webkit.org/show_bug.cgi?id=198035
<rdar://problem/49905560>

Reviewed by Michael Saboff.

There were 2 32-bit issues with the bytecode cache:

  • UnlinkedFunctionExecutable::m_cachedCodeBlockForConstructOffset was not initialized. The code was relying on the other member of the union, m_unlinkedCodeBlockForConstruct, initializing both m_cachedCodeBlockForCallOffset and m_cachedCodeBlockForConstructOffset. This is undefined behavior and is also incorrect in 32-bit. Since m_unlinkedCodeBlockForConstruct is 32-bit, it only initializes the first member of the struct.
  • Encoder::Page was not aligned at the end. This lead to unaligned allocations on subsequent pages, since the start of the following page would not be aligned.
  • runtime/CachedTypes.cpp:

(JSC::Encoder::release):
(JSC::Encoder::Page::alignEnd):
(JSC::Encoder::allocateNewPage):
(JSC::VariableLengthObject::buffer const):
(JSC::VariableLengthObject::allocate):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):

10:31 PM Changeset in webkit [245562] by achristensen@apple.com
  • 4 edits
    3 adds in trunk/Source/WebKit

Revert r245501
https://bugs.webkit.org/show_bug.cgi?id=198007

That change did not fix <rdar://problem/49808949> but it caused <rdar://problem/50967271> so out it goes.

  • Shared/API/Cocoa/WKMain.h: Added.
  • Shared/API/Cocoa/WKMain.mm: Added.

(WKXPCServiceMain):

  • Shared/EntryPointUtilities/Cocoa/AuxiliaryProcessMain.cpp: Added.

(main):

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

(main): Deleted.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):

  • WebKit.xcodeproj/project.pbxproj:
10:01 PM Changeset in webkit [245561] by Wenson Hsieh
  • 4 edits
    2 adds in trunk

[iOS] Layout viewport size on google.com increases after rotating to landscape and back
https://bugs.webkit.org/show_bug.cgi?id=198062
<rdar://problem/50547895>

Reviewed by Maciej Stachowiak.

Source/WebKit:

During an animated resize (e.g. when rotating the device on iOS), we currently immediately trigger the new
shrink-to-fit content size heuristic in the middle of dynamicViewportSizeUpdate, after the new view layout size
has been applied to the viewport configuration but before we've issued a resize event to the page.

Thus, on pages that use listen to the resize event and adjust their content accordingly to fit within the new
layout width, we prematurely declare that the page has horizontally overflowed, and try to lay out at a larger
width and scale down. This causes the page to unnecessarily shrink after rotating to landscale orientation and
back.

To fix this, we simply move the call to shrink-to-fit-content to the end of the dynamic viewport size update,
such that the page has had a chance to adjust to the new layout size.

Test: fast/events/ios/rotation/do-not-shrink-to-fit-content-after-rotation.html

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::dynamicViewportSizeUpdate):

LayoutTests:

Add a UIHelper method to simulate device rotation to a given orientation, and use it in a new layout test that
simulates rotation to and from landscape orientation, and verifies that the initial scale did not change from
its expected value of 1.

  • fast/events/ios/rotation/do-not-shrink-to-fit-content-after-rotation-expected.txt: Added.
  • fast/events/ios/rotation/do-not-shrink-to-fit-content-after-rotation.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.rotateDevice.return.new.Promise.):
(window.UIHelper.rotateDevice):
(window.UIHelper):

8:40 PM Changeset in webkit [245560] by Kocsen Chung
  • 6 edits
    2 copies in branches/safari-608.1.24.40-branch

Cherry-pick r245465. rdar://problem/50252398

[iOS] Respect scrolling="no" on composited frames
https://bugs.webkit.org/show_bug.cgi?id=197972
<rdar://problem/50252398>

Reviewed by Simon Fraser.

Source/WebKit:

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: (WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):

Disallow scrolling based on canHaveScrollbars, similar to main frame.

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::repositionScrollingLayers):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::scrollView const):

Factor into a function.

LayoutTests:

  • fast/scrolling/ios/body-overflow-hidden-frame-expected.html:
  • fast/scrolling/ios/body-overflow-hidden-frame.html:

Also fix overflow:hidden test so that the frame content forces composition.

  • fast/scrolling/ios/frame-scrolling-no-expected.html: Added.
  • fast/scrolling/ios/frame-scrolling-no.html: Added.

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

8:21 PM Changeset in webkit [245559] by Kocsen Chung
  • 2 edits in branches/safari-608.1.24.20-branch/Source/WebCore

Cherry-pick r245539. rdar://problem/48740417

Provide an explicit UIModalPresentation style when creating an AVPlayerViewController for fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=198052

Reviewed by Tim Horton.

Make sure AVPlayerViewController has an "overFullScreen" modal style.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm: (-[WebAVPlayerViewController initWithFullscreenInterface:]):

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

8:21 PM Changeset in webkit [245558] by Kocsen Chung
  • 2 edits in branches/safari-608.1.24.20-branch/Source/WebKit

Cherry-pick r245520. rdar://problem/50552974

Allow WebContent mach-lookup AGXCompilerService
https://bugs.webkit.org/show_bug.cgi?id=198031
<rdar://problem/50552974>

Patch by Zhifei Fang <zhifei_fang@apple.com> on 2019-05-20
Reviewed by Per Arne Vollan.

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

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

8:21 PM Changeset in webkit [245557] by Kocsen Chung
  • 8 edits in branches/safari-608.1.24.20-branch

Cherry-pick r245505. rdar://problem/50801608

[Pointer Events] A pointer should be marked as primary for all of its events
https://bugs.webkit.org/show_bug.cgi?id=197909
<rdar://problem/50801608>

Reviewed by Dean Jackson.

Source/WebCore:

Add an ivar for EventHandler which we'll use in WebKitAdditions code to track the touch identifier
of the very first touch to start in a given sequence.

  • page/EventHandler.h:

LayoutTests:

Update tests to match expectations that only the first touch of a sequence is the primary pointer,
which applies to all of its events, even after the even is no longer touching the digitizer.

  • pointerevents/ios/over-enter-out-leave.html:
  • pointerevents/ios/pointer-event-order.html:
  • pointerevents/ios/pointer-events-implicit-capture.html:
  • pointerevents/ios/pointer-events-is-primary-expected.txt:
  • pointerevents/ios/pointer-events-is-primary.html:

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

8:21 PM Changeset in webkit [245556] by Kocsen Chung
  • 11 edits
    7 adds in branches/safari-608.1.24.20-branch

Cherry-pick r245483. rdar://problem/49078202

Add a website policy to disable the legacy -webkit-overflow-scrolling:touch behavior
https://bugs.webkit.org/show_bug.cgi?id=197943
<rdar://problem/49078202>

Reviewed by Brent Fulgham.

Source/WebCore:

Tests: fast/scrolling/ipad/overflow-scrolling-touch-enabled-stacking-modern-compatibility-mode.html

platform/ipad/fast/css/webkit-overflow-scrolling-parsing-modern-compatibility-mode.html

  • css/parser/CSSParserContext.cpp: (WebCore::CSSParserContext::CSSParserContext):
  • loader/DocumentLoader.h: (WebCore::DocumentLoader::legacyOverflowScrollingTouchPolicy const): (WebCore::DocumentLoader::setLegacyOverflowScrollingTouchPolicy):

Source/WebKit:

  • Shared/WebsiteLegacyOverflowScrollingTouchPolicy.h: Added.
  • Shared/WebsitePoliciesData.cpp: (WebKit::WebsitePoliciesData::encode const): (WebKit::WebsitePoliciesData::decode): (WebKit::WebsitePoliciesData::applyToDocumentLoader):
  • Shared/WebsitePoliciesData.h:
  • UIProcess/API/APIWebsitePolicies.cpp: (API::WebsitePolicies::copy const): (API::WebsitePolicies::data):
  • UIProcess/API/APIWebsitePolicies.h:
  • WebKit.xcodeproj/project.pbxproj:

LayoutTests:

  • fast/scrolling/ipad/overflow-scrolling-touch-enabled-stacking-modern-compatibility-mode-expected.html: Added.
  • fast/scrolling/ipad/overflow-scrolling-touch-enabled-stacking-modern-compatibility-mode.html: Added.
  • platform/ipad/fast/css/webkit-overflow-scrolling-parsing-modern-compatibility-mode-expected.txt: Added.
  • platform/ipad/fast/css/webkit-overflow-scrolling-parsing-modern-compatibility-mode.html: Added.
  • platform/ios/TestExpectations: Skip the new tests since they depend on code in WebKitAdditions.

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

8:21 PM Changeset in webkit [245555] by Kocsen Chung
  • 5 edits in branches/safari-608.1.24.20-branch/Source/WebKit

Cherry-pick r245480. rdar://problem/50564630

Avoid races in taking networking assertions for downloads by having both Networking and UIProcess do it.
<rdar://problem/50564630> and https://bugs.webkit.org/show_bug.cgi?id=197995

Reviewed by Chris Dumez.

There's a fairly indeterminant time gap between when the UIProcess decides a load becomes a download
and when the NetworkProcess Download object is created, and therefore the download assertion to be taken.

The time gap can be long enough for the Networking process to suspend before the download actually starts.

There's the reverse race when the UIProcess tells a download to stop, as well.

By having both the UIProcess and NetworkProcess take an assertion on behalf of the NetworkProcess we
avoid the race.

  • NetworkProcess/Downloads/DownloadMap.cpp: (WebKit::DownloadMap::add): (WebKit::DownloadMap::remove):
  • NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::convertToDownload):
  • UIProcess/Downloads/DownloadProxyMap.cpp: (WebKit::DownloadProxyMap::createDownloadProxy): (WebKit::DownloadProxyMap::downloadFinished): (WebKit::DownloadProxyMap::invalidate):
  • UIProcess/Downloads/DownloadProxyMap.h:

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

8:21 PM Changeset in webkit [245554] by Kocsen Chung
  • 2 edits in branches/safari-608.1.24.20-branch/Source/WebCore

Cherry-pick r245472. rdar://problem/50895962

Fix a typo in some user agent string logic
https://bugs.webkit.org/show_bug.cgi?id=197992
<rdar://problem/50895962>

Reviewed by Brent Fulgham.

Adjust the major version number for the desktop user agent string.

  • platform/ios/UserAgentIOS.mm: (WebCore::standardUserAgentWithApplicationName):

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

8:21 PM Changeset in webkit [245553] by Kocsen Chung
  • 6 edits
    2 copies in branches/safari-608.1.24.20-branch

Cherry-pick r245465. rdar://problem/50252398

[iOS] Respect scrolling="no" on composited frames
https://bugs.webkit.org/show_bug.cgi?id=197972
<rdar://problem/50252398>

Reviewed by Simon Fraser.

Source/WebKit:

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.h:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: (WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):

Disallow scrolling based on canHaveScrollbars, similar to main frame.

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::repositionScrollingLayers):
(WebKit::ScrollingTreeScrollingNodeDelegateIOS::scrollView const):

Factor into a function.

LayoutTests:

  • fast/scrolling/ios/body-overflow-hidden-frame-expected.html:
  • fast/scrolling/ios/body-overflow-hidden-frame.html:

Also fix overflow:hidden test so that the frame content forces composition.

  • fast/scrolling/ios/frame-scrolling-no-expected.html: Added.
  • fast/scrolling/ios/frame-scrolling-no.html: Added.

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

8:21 PM Changeset in webkit [245552] by Kocsen Chung
  • 3 edits
    2 adds in branches/safari-608.1.24.20-branch

Cherry-pick r245220. rdar://problem/50686229

When the set of backing-sharing layers changes, we need to issue a repaint
https://bugs.webkit.org/show_bug.cgi?id=197825

Reviewed by Zalan Bujtas.

Source/WebCore:

If the set of layers painting into a shared backing store changes, we need
to repaint that backing store. This happens when scrolling as shared layers
enter the visible area.

Test: compositing/shared-backing/overflow-scroll/repaint-shared-on-scroll.html

  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::setBackingSharingLayers):

LayoutTests:

  • compositing/shared-backing/overflow-scroll/repaint-shared-on-scroll-expected.html: Added.
  • compositing/shared-backing/overflow-scroll/repaint-shared-on-scroll.html: Added.

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

8:21 PM Changeset in webkit [245551] by Kocsen Chung
  • 4 edits in branches/safari-608.1.24.20-branch/Source/WebCore

Cherry-pick r245218. rdar://problem/50705506

Refactor composited backing-sharing code
https://bugs.webkit.org/show_bug.cgi?id=197824

Reviewed by Zalan Bujtas.

Clean up the backing-sharing code to share more code, and make it easier to understand.

Moves more logic into member functions on BackingSharingState, which are named to make
their functions clearer: startBackingSharingSequence/endBackingSharingSequence.

computeCompositingRequirements() and traverseUnchangedSubtree() now just call
updateBeforeDescendantTraversal/updateAfterDescendantTraversal.

No behavior change.

  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::willBeDestroyed): (WebCore::RenderLayerBacking::setBackingSharingLayers): Remove the early return, since we need to call setBackingProviderLayer() on the sharing layers in both code paths. (WebCore::RenderLayerBacking::removeBackingSharingLayer): (WebCore::RenderLayerBacking::clearBackingSharingLayers):
  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::BackingSharingState::backingProviderCandidate const): (WebCore::RenderLayerCompositor::BackingSharingState::appendSharingLayer): (WebCore::RenderLayerCompositor::BackingSharingState::startBackingSharingSequence): (WebCore::RenderLayerCompositor::BackingSharingState::endBackingSharingSequence): (WebCore::RenderLayerCompositor::BackingSharingState::updateBeforeDescendantTraversal): (WebCore::RenderLayerCompositor::BackingSharingState::updateAfterDescendantTraversal): (WebCore::RenderLayerCompositor::computeCompositingRequirements): (WebCore::RenderLayerCompositor::traverseUnchangedSubtree): (WebCore::RenderLayerCompositor::BackingSharingState::resetBackingProviderCandidate): Deleted.
  • rendering/RenderLayerCompositor.h:

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

8:21 PM Changeset in webkit [245550] by Kocsen Chung
  • 6 edits
    14 adds in branches/safari-608.1.24.20-branch

Cherry-pick r245205. rdar://problem/50652127

Backing-sharing layers with transforms render incorrectly
https://bugs.webkit.org/show_bug.cgi?id=197692
<rdar://problem/50652127>

Reviewed by Antti Koivisto.
Source/WebCore:

Layers that paint into shared backing need to enter the RenderLayer painting code
in a way that paints the filters, transforms, opacity and blending.

RenderLayerBacking::paintIntoLayer() normally enters at paintLayerContents(), because
the effects are rendered via the GraphicsLayer, but shared layers will paint effects.
Note that if the backing-provider has effects, it will be the stacking context
for the shared layers, so it's correct that sharing layers are impacted by effects
on the backing-provider.

In addition, we have to ensure that we don't over-eagerly make layers shared.
Consider:

<div class="clipping">

<div class="sharing">

<div class="inner">
</div>

</div>

</div>

Here "clipping" is the provider layer, "sharing" paints into shared backing, but
we don't want to also mark "inner" as sharing, since "sharing" will just paint it.
This is akin to avoiding unnecessary compositing of z-order descendants when they can just
paint.

To do this we need to ensure that sharing layers are treated like compositing layers
in the overlap map, i.e. when a layer is sharing, we call overlapMap.pushCompositingContainer(),
and later overlapMap.popCompositingContainer().

Tests: compositing/shared-backing/nested-shared-layers-with-opacity.html

compositing/shared-backing/shared-layer-has-blending.html
compositing/shared-backing/shared-layer-has-filter.html
compositing/shared-backing/shared-layer-has-opacity.html
compositing/shared-backing/shared-layer-has-reflection.html
compositing/shared-backing/shared-layer-has-transform.html
compositing/shared-backing/shared-layer-isolates-blending.html
compositing/shared-backing/shared-transformed-layer-bounds.html
compositing/shared-backing/sharing-layer-becomes-non-scrollable.html
compositing/shared-backing/sharing-layer-has-effect.html

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintLayer): (WebCore::RenderLayer::paintLayerWithEffects):
  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::paintIntoLayer):
  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::CompositingState::stateForPaintOrderChildren const): (WebCore::backingProviderLayerCanIncludeLayer): (WebCore::RenderLayerCompositor::computeCompositingRequirements): (WebCore::RenderLayerCompositor::traverseUnchangedSubtree):

LayoutTests:

Ref tests for effects on sharing layers. The references make "clipping" be stacking context via z-index,
which eliminates sharing.

  • compositing/shared-backing/nested-shared-layers-with-opacity-expected.html: Added.
  • compositing/shared-backing/nested-shared-layers-with-opacity.html: Added.
  • compositing/shared-backing/shared-layer-has-blending-expected.html: Added.
  • compositing/shared-backing/shared-layer-has-blending.html: Added.
  • compositing/shared-backing/shared-layer-has-filter-expected.html: Added.
  • compositing/shared-backing/shared-layer-has-filter.html: Added.
  • compositing/shared-backing/shared-layer-has-opacity-expected.html: Added.
  • compositing/shared-backing/shared-layer-has-opacity.html: Added.
  • compositing/shared-backing/shared-layer-has-reflection-expected.html: Added.
  • compositing/shared-backing/shared-layer-has-reflection.html: Added.
  • compositing/shared-backing/shared-layer-has-transform-expected.html: Added.
  • compositing/shared-backing/shared-layer-has-transform.html: Added.
  • compositing/shared-backing/shared-layer-isolates-blending-expected.html: Added.
  • compositing/shared-backing/shared-layer-isolates-blending.html: Added.

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

8:21 PM Changeset in webkit [245549] by Kocsen Chung
  • 3 edits
    2 adds in branches/safari-608.1.24.20-branch

Cherry-pick r245181. rdar://problem/50670806

ASSERT(isSelfPaintingLayer()
hasSelfPaintingLayerDescendant()) on nytimes.com after r245170

https://bugs.webkit.org/show_bug.cgi?id=197776

Reviewed by Zalan Bujtas.

Source/WebCore:

Only try to paint into shared backing for layers that are able to be composited. This
avoids trying to do sharing for non-self-painting layers, which doesn't make sense.

Test: compositing/shared-backing/overflow-scroll/non-self-painting-layer-should-not-share.html

  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::computeCompositingRequirements):

LayoutTests:

  • compositing/shared-backing/overflow-scroll/non-self-painting-layer-should-not-share-expected.txt: Added.
  • compositing/shared-backing/overflow-scroll/non-self-painting-layer-should-not-share.html: Added.

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

8:20 PM Changeset in webkit [245548] by Kocsen Chung
  • 4 edits
    2 adds in branches/safari-608.1.24.20-branch

Cherry-pick r245175. rdar://problem/50584991

Event region generation needs to know about backing-sharing
https://bugs.webkit.org/show_bug.cgi?id=197694
<rdar://problem/50584991>

Reviewed by Simon Fraser.

Source/WebCore:

Test: pointerevents/ios/touch-action-region-backing-sharing.html

  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateEventRegion):

Gather event region from backing sharing layers too.

LayoutTests:

  • platform/ios-wk2/TestExpectations:
  • pointerevents/ios/touch-action-region-backing-sharing-expected.txt: Added.
  • pointerevents/ios/touch-action-region-backing-sharing.html: Added.

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

8:20 PM Changeset in webkit [245547] by Kocsen Chung
  • 36 edits
    7 copies
    35 adds in branches/safari-608.1.24.20-branch

Cherry-pick r245170. rdar://problem/50445998

Implement backing-sharing in compositing layers, allowing overlap layers to paint into the backing store of another layer
https://bugs.webkit.org/show_bug.cgi?id=197561
<rdar://problem/50445998>

Reviewed by Antti Koivisto.
Source/WebCore:

This change introduces the concept of layers that share backing store for compositing. A layer
which is sharing its backing store first paints itself, and then some set of layers which come
later in paint order in the same stacking context. This reduces the composited layer count in
some overflow scrolling scenarios, thereby also simplifying the scrolling tree.

A backing-shared layer stores a vector of "sharing" RenderLayer* in its RenderLayerBacking. At
paint time, the owning layer is painted, then the sharing layers, setting the owning layer as the
painting root so that positioning and clipping just work.

Sharing layer relationships are constructed in RenderLayerCompositor::computeCompositingRequirements().
We track the last layer which was composited in paint order as a shared candidate. If a later layer
would composite for overlap (and no other reasons), then we allow it to share with the candidate
if the candidate is in its ancestor containing block chain. Sharing is currently limited to layers
in the same stacking context.

isComposited() returns false for sharing layers, but they are like composited layers in that
they behave as painting boundaries, so RenderLayer::paintLayer() needs to stop at them,
and repaints in shared layers have to be directed to their shared layer, hence
changes to RenderLayer::clippingRootForPainting() and RenderLayer::enclosingCompositingLayerForRepaint().

The clipping boundary logic in RenderLayer::backgroundClipRect() needed to be generalized so that
all calls to RenderLayer::parentClipRects() check for crossing painting boundaries and use
TemporaryClipRects in that case.

Tests: compositing/shared-backing/overflow-scroll/absolute-in-stacking-relative-in-scroller.html

compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller.html
compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow.html
compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness.html
compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping.html
compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-relative-clipping.html
compositing/shared-backing/overflow-scroll/relative-in-div-in-overflow-scroll.html
compositing/shared-backing/overflow-scroll/scrolled-contents-has-painted-content.html
compositing/shared-backing/overflow-scroll/scrolled-contents-unconstrained-clip.html
compositing/shared-backing/overflow-scroll/shared-layer-clipping.html
compositing/shared-backing/overflow-scroll/shared-layer-composited-bounds.html
compositing/shared-backing/overflow-scroll/shared-layer-nested-relative-stacking.html
compositing/shared-backing/overflow-scroll/shared-layer-repaint.html
compositing/shared-backing/partial-compositing-update.html
compositing/shared-backing/partial-compositing-update2.html
compositing/shared-backing/remove-sharing-layer.html
compositing/shared-backing/sharing-cached-clip-rects.html

  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::~RenderLayer): (WebCore::RenderLayer::ancestorLayerIsInContainingBlockChain const): (WebCore::RenderLayer::setBackingProviderLayer): (WebCore::RenderLayer::disconnectFromBackingProviderLayer): (WebCore::RenderLayer::enclosingCompositingLayerForRepaint const): (WebCore::RenderLayer::clippingRootForPainting const): (WebCore::RenderLayer::clipToRect): (WebCore::RenderLayer::paintLayer): (WebCore::RenderLayer::updateClipRects): (WebCore::RenderLayer::clipCrossesPaintingBoundary const): (WebCore::RenderLayer::calculateClipRects const): (WebCore::outputPaintOrderTreeLegend): (WebCore::outputPaintOrderTreeRecursive): (WebCore::inContainingBlockChain): Deleted.
  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::willBeDestroyed): (WebCore::clearBackingSharingLayerProviders): (WebCore::RenderLayerBacking::setBackingSharingLayers): (WebCore::RenderLayerBacking::removeBackingSharingLayer): (WebCore::RenderLayerBacking::clearBackingSharingLayers): (WebCore::RenderLayerBacking::updateCompositedBounds): (WebCore::RenderLayerBacking::updateDrawsContent): (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer const): (WebCore::RenderLayerBacking::paintIntoLayer): (WebCore::RenderLayerBacking::paintContents):
  • rendering/RenderLayerBacking.h:
  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::CompositingState::stateForPaintOrderChildren const): (WebCore::RenderLayerCompositor::CompositingState::propagateStateFromChildren): (WebCore::RenderLayerCompositor::CompositingState::propagateStateFromChildrenForUnchangedSubtree): (WebCore::RenderLayerCompositor::BackingSharingState::resetBackingProviderCandidate): (WebCore::RenderLayerCompositor::updateCompositingLayers): (WebCore::backingProviderLayerCanIncludeLayer): (WebCore::RenderLayerCompositor::computeCompositingRequirements): (WebCore::RenderLayerCompositor::traverseUnchangedSubtree): (WebCore::RenderLayerCompositor::updateBacking): (WebCore::RenderLayerCompositor::layerWillBeRemoved): (WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason const):
  • rendering/RenderLayerCompositor.h:
  • rendering/RenderTreeAsText.cpp:

LayoutTests:

New tests for backing sharing, and new baselines of tests whose behavior is changed.

Scrolling tree tests that would be invalidate by sharing are changed to defeat sharing by adding
compositing layers early in stacking order.

  • TestExpectations:
  • compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
  • compositing/layer-creation/overflow-scroll-overlap-expected.txt:
  • compositing/layer-creation/overflow-scroll-overlap.html:
  • compositing/overflow/scrolling-content-clip-to-viewport.html:
  • compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
  • compositing/shared-backing/overflow-scroll/absolute-in-stacking-relative-in-scroller-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
  • compositing/shared-backing/overflow-scroll/absolute-in-stacking-relative-in-scroller.html: Added.
  • compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller-expected.txt: Added.
  • compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller.html: Added.
  • compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow-expected.txt: Added.
  • compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow.html: Copied from LayoutTests/scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow.html.
  • compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt: Added.
  • compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness.html: Added.
  • compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping-expected.txt: Added.
  • compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping.html: Added.
  • compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-relative-clipping-expected.txt: Added.
  • compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-relative-clipping.html: Added.
  • compositing/shared-backing/overflow-scroll/relative-in-div-in-overflow-scroll-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
  • compositing/shared-backing/overflow-scroll/relative-in-div-in-overflow-scroll.html: Added.
  • compositing/shared-backing/overflow-scroll/scrolled-contents-has-painted-content-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
  • compositing/shared-backing/overflow-scroll/scrolled-contents-has-painted-content.html: Added.
  • compositing/shared-backing/overflow-scroll/scrolled-contents-unconstrained-clip-expected.html: Added.
  • compositing/shared-backing/overflow-scroll/scrolled-contents-unconstrained-clip.html: Added.
  • compositing/shared-backing/overflow-scroll/shared-layer-clipping-expected.html: Added.
  • compositing/shared-backing/overflow-scroll/shared-layer-clipping.html: Added.
  • compositing/shared-backing/overflow-scroll/shared-layer-composited-bounds-expected.txt: Added.
  • compositing/shared-backing/overflow-scroll/shared-layer-composited-bounds.html: Added.
  • compositing/shared-backing/overflow-scroll/shared-layer-nested-relative-stacking-expected.txt: Added.
  • compositing/shared-backing/overflow-scroll/shared-layer-nested-relative-stacking.html: Added.
  • compositing/shared-backing/overflow-scroll/shared-layer-repaint-expected.txt: Added.
  • compositing/shared-backing/overflow-scroll/shared-layer-repaint.html: Added.
  • compositing/shared-backing/partial-compositing-update-expected.txt: Added.
  • compositing/shared-backing/partial-compositing-update.html: Added.
  • compositing/shared-backing/partial-compositing-update2-expected.txt: Added.
  • compositing/shared-backing/partial-compositing-update2.html: Added.
  • compositing/shared-backing/remove-sharing-layer-expected.txt: Added.
  • compositing/shared-backing/remove-sharing-layer.html: Added.
  • compositing/shared-backing/sharing-cached-clip-rects-expected.txt: Added.
  • compositing/shared-backing/sharing-cached-clip-rects.html: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/ios-wk2/compositing/shared-backing/overflow-scroll/absolute-in-stacking-relative-in-scroller-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
  • platform/ios-wk2/compositing/shared-backing/overflow-scroll/composited-absolute-in-absolute-in-relative-in-scroller-expected.txt: Added.
  • platform/ios-wk2/compositing/shared-backing/overflow-scroll/nested-absolute-with-clipping-in-stacking-overflow-expected.txt: Added.
  • platform/ios-wk2/compositing/shared-backing/overflow-scroll/previous-sibling-prevents-inclusiveness-expected.txt: Added.
  • platform/ios-wk2/compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-clipping-expected.txt: Added.
  • platform/ios-wk2/compositing/shared-backing/overflow-scroll/relative-in-clipping-in-scroller-in-relative-clipping-expected.txt: Added.
  • platform/ios-wk2/compositing/shared-backing/overflow-scroll/relative-in-div-in-overflow-scroll-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
  • platform/ios-wk2/compositing/shared-backing/overflow-scroll/scrolled-contents-has-painted-content-expected.txt: Copied from LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:
  • platform/ios/compositing/geometry/limit-layer-bounds-clipping-ancestor-expected.txt:
  • platform/ios/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt:
  • platform/ios/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants2-expected.txt:
  • platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
  • platform/mac-wk1/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants-expected.txt:
  • platform/mac/compositing/overflow/clipping-behaviour-change-is-not-propagated-to-descendants2-expected.txt:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow.html:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow.html:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow.html:
  • scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:
  • scrollingcoordinator/scrolling-tree/positioned-nodes-complex.html:

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

8:20 PM Changeset in webkit [245546] by Kocsen Chung
  • 2 edits in branches/safari-608.1.24.20-branch/Source/WebCore

Cherry-pick r245147. rdar://problem/50621407

fast/hidpi/video-controls-in-hidpi.html sometimes asserts in WK1
https://bugs.webkit.org/show_bug.cgi?id=197695

Reviewed by Zalan Bujtas.

With the backing-sharing changes that landed in r245058, some WebKit1 tests with media controls asserted in
RenderLayerBacking::computeParentGraphicsLayerRect() because a layer would have a m_ancestorClippingLayer,
but backgroundClipRect() would return an infinite rect.

This happened when a layer tree change caused the layer's compositing ancestor to no longer isolate
composited blending (which affects the behavior of RenderLayerCompositor:clippedByAncestor()), but we failed
to mark its composited children as needing the configuration update which would eliminate their m_ancestorClippingLayers.

The fix is to call setChildrenNeedCompositingGeometryUpdate() when isolatesCompositedBlending changes. We don't haev
setChildrenNeedCompositingConfigurationUpdate(), but setChildrenNeedCompositingGeometryUpdate() has the desired side-effect.

I was unable to make a standalone test case for this, but the code is exercised by media control tests.

  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::computeCompositingRequirements):

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

6:56 PM Changeset in webkit [245545] by Dewei Zhu
  • 4 edits in trunk/Websites/perf.webkit.org

Pruning old file logic should not stop after removing 10 files if there are more files to be removed.
https://bugs.webkit.org/show_bug.cgi?id=197870

Reviewed by Ryosuke Niwa.

Pruning old file logic should keep removing removable files to make enough space for a new file upload.
It should only attempt to remve the files that have not been removed.

  • public/include/uploaded-file-helpers.php: Modified 'prune_old_files' to allow to remove more than 10 files.

Fixed a bug that a removed file keep getting removed but never free up new space.

  • server-tests/privileged-api-upload-file-tests.js:

(makeRandomAlnumStringForLength): Helper function to generate random content for a given length.

  • server-tests/resources/test-server.js: Update total file size limit for this change.

(TestServer.prototype.testConfig):

6:52 PM Changeset in webkit [245544] by Fujii Hironori
  • 6 edits in trunk/Tools

run-webkit-tests not gathering crash logs on Cygwin Python and Windows Python
https://bugs.webkit.org/show_bug.cgi?id=179828

Reviewed by Jonathan Bedard.

ServerProcess should store its Windows PID for Cygwin before
process crashing because the Windows PID is required to get a
correct CrashLog.

CrashLog format has been changed. CrashLogs.GLOBAL_PID_REGEX
should accept the new format.

  • Scripts/webkitpy/common/system/crashlogs.py:

(CrashLogs.GLOBAL_PID_REGEX): Accept any words between 'Global' and 'PID:'.

  • Scripts/webkitpy/port/driver.py:

(Driver.has_crashed):
(Driver._check_for_driver_crash_or_unresponsiveness):
(Driver._read_block):
Store server_process.system_pid() to self._crashed_pid instead of server_process.pid().

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess.init):
(ServerProcess.system_pid): Added.
(ServerProcess._find_system_pid): Added.
(ServerProcess._start): Set self._system_pid.

  • Scripts/webkitpy/port/win.py:

(WinPort._get_crash_log): Removed broken old code converting Cygwin pid to Windows pid.

6:36 PM Changeset in webkit [245543] by Ross Kirsling
  • 80 edits in trunk/Source

Make lossy LayoutUnit constructors explicit
https://bugs.webkit.org/show_bug.cgi?id=191811

Reviewed by Antti Koivisto.

Source/WebCore:

  • platform/LayoutUnit.h:

Make lossy unary constructors explicit.
For ergonomics, give float overloads to copy constructor and round/floor/ceil functions.

  • css/LengthFunctions.h:
  • platform/graphics/LayoutPoint.h:
  • platform/graphics/LayoutRect.h:
  • platform/graphics/LayoutSize.h:
  • rendering/RenderBox.h:
  • rendering/RenderElement.h:

Templatize common functions to allow LayoutUnit itself to dictate which types it allows.

  • html/shadow/SliderThumbElement.cpp:
  • page/FrameView.cpp:
  • page/Page.cpp:
  • page/SpatialNavigation.cpp:
  • page/scrolling/AxisScrollSnapOffsets.cpp:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
  • layout/FormattingContextGeometry.cpp:
  • layout/FormattingContextQuirks.cpp:
  • layout/LayoutState.cpp:
  • layout/displaytree/DisplayBox.h:
  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:
  • layout/layouttree/LayoutReplaced.cpp:
  • platform/animation/AnimationUtilities.h:
  • platform/cocoa/ScrollSnapAnimatorState.mm:
  • rendering/BorderEdge.cpp:
  • rendering/EllipsisBox.cpp:
  • rendering/FixedTableLayout.cpp:
  • rendering/InlineBox.cpp:
  • rendering/InlineFlowBox.cpp:
  • rendering/InlineFlowBox.h:
  • rendering/InlineTextBox.cpp:
  • rendering/RenderBlock.cpp:
  • rendering/RenderBlockFlow.cpp:
  • rendering/RenderBlockLineLayout.cpp:
  • rendering/RenderBox.cpp:
  • rendering/RenderBoxModelObject.cpp:
  • rendering/RenderBoxModelObject.h:
  • rendering/RenderDeprecatedFlexibleBox.cpp:
  • rendering/RenderElement.cpp:
  • rendering/RenderImage.cpp:
  • rendering/RenderInline.cpp:
  • rendering/RenderLineBreak.cpp:
  • rendering/RenderListMarker.cpp:
  • rendering/RenderMultiColumnSet.cpp:
  • rendering/RenderMultiColumnSet.h:
  • rendering/RenderObject.cpp:
  • rendering/RenderReplaced.cpp:
  • rendering/RenderTable.cpp:
  • rendering/RenderTableCell.cpp:
  • rendering/RenderTableSection.cpp:
  • rendering/RenderText.cpp:
  • rendering/RenderTextControlMultiLine.cpp:
  • rendering/RenderThemeMac.mm:
  • rendering/RenderVTTCue.cpp:
  • rendering/RenderView.cpp:
  • rendering/RootInlineBox.cpp:
  • rendering/SimpleLineLayoutFunctions.cpp:
  • rendering/SimpleLineLayoutPagination.cpp:
  • rendering/SimpleLineLayoutResolver.cpp:
  • rendering/line/LineWidth.cpp:
  • rendering/mathml/MathOperator.cpp:
  • rendering/mathml/RenderMathMLBlock.cpp:
  • rendering/mathml/RenderMathMLBlock.h:
  • rendering/mathml/RenderMathMLFencedOperator.h:
  • rendering/mathml/RenderMathMLFraction.cpp:
  • rendering/mathml/RenderMathMLMenclose.cpp:
  • rendering/mathml/RenderMathMLOperator.cpp:
  • rendering/mathml/RenderMathMLRoot.cpp:
  • rendering/mathml/RenderMathMLScripts.cpp:
  • rendering/mathml/RenderMathMLToken.cpp:
  • rendering/shapes/BoxShape.cpp:
  • rendering/shapes/ShapeOutsideInfo.cpp:
  • rendering/style/CollapsedBorderValue.h:
  • rendering/style/NinePieceImage.cpp:
  • rendering/style/NinePieceImage.h:
  • rendering/style/RenderStyle.cpp:
  • rendering/style/RenderStyle.h:
  • rendering/svg/RenderSVGText.cpp:
  • rendering/svg/SVGInlineTextBox.cpp:

Make usage of LayoutUnit(float) and LayoutUnit(double) explicit where needed.

Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

Make usage of LayoutUnit(float) explicit.

6:09 PM Changeset in webkit [245542] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] WebKit crash loop
https://bugs.webkit.org/show_bug.cgi?id=198061
<rdar://problem/50967271>

Reviewed by Brent Fulgham.

A new syscall rule needs to be added to the sandbox on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
5:41 PM HackingWebInspector edited by Nikita Vasilyev
(diff)
5:12 PM Changeset in webkit [245541] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Windows 10 test results missing on flakiness dashboard
https://bugs.webkit.org/show_bug.cgi?id=198058

Rubber-stamped by Alexey Proskuryakov.

  • TestResultServer/static-dashboards/flakiness_dashboard.js:
5:07 PM Changeset in webkit [245540] by sihui_liu@apple.com
  • 46 edits
    8 copies
    3 adds
    1 delete in trunk

Move Web Storage to Network Process
https://bugs.webkit.org/show_bug.cgi?id=197636
Source/WebKit:

Reviewed by Youenn Fablet.

  • CMakeLists.txt:
  • DerivedSources.make:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::webPageWasAdded):
(WebKit::NetworkConnectionToWebProcess::webPageWasRemoved):
(WebKit::NetworkConnectionToWebProcess::webProcessSessionChanged):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::networkSessionByConnection const):
(WebKit::NetworkProcess::hasLocalStorage):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::filterForRegistrableDomains):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::webPageWasAdded):
(WebKit::NetworkProcess::webPageWasRemoved):
(WebKit::NetworkProcess::webProcessWasDisconnected):
(WebKit::NetworkProcess::webProcessSessionChanged):
(WebKit::NetworkProcess::getLocalStorageOriginDetails):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::~NetworkSession):

  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSession::storageManager):

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

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

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/WebStorage/LocalStorageDatabase.cpp: Renamed from Source/WebKit/UIProcess/WebStorage/LocalStorageDatabase.cpp.

(WebKit::LocalStorageDatabase::create):
(WebKit::LocalStorageDatabase::LocalStorageDatabase):
(WebKit::LocalStorageDatabase::~LocalStorageDatabase):
(WebKit::LocalStorageDatabase::openDatabase):
(WebKit::LocalStorageDatabase::tryToOpenDatabase):
(WebKit::LocalStorageDatabase::migrateItemTableIfNeeded):
(WebKit::LocalStorageDatabase::importItems):
(WebKit::LocalStorageDatabase::setItem):
(WebKit::LocalStorageDatabase::removeItem):
(WebKit::LocalStorageDatabase::clear):
(WebKit::LocalStorageDatabase::close):
(WebKit::LocalStorageDatabase::itemDidChange):
(WebKit::LocalStorageDatabase::scheduleDatabaseUpdate):
(WebKit::LocalStorageDatabase::updateDatabase):
(WebKit::LocalStorageDatabase::updateDatabaseWithChangedItems):
(WebKit::LocalStorageDatabase::databaseIsEmpty):

  • NetworkProcess/WebStorage/LocalStorageDatabase.h: Renamed from Source/WebKit/UIProcess/WebStorage/LocalStorageDatabase.h.
  • NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp: Renamed from Source/WebKit/UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp.

(WebKit::LocalStorageDatabaseTracker::create):
(WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):
(WebKit::LocalStorageDatabaseTracker::~LocalStorageDatabaseTracker):
(WebKit::LocalStorageDatabaseTracker::databasePath const):
(WebKit::LocalStorageDatabaseTracker::didOpenDatabaseWithOrigin):
(WebKit::LocalStorageDatabaseTracker::deleteDatabaseWithOrigin):
(WebKit::LocalStorageDatabaseTracker::deleteAllDatabases):
(WebKit::LocalStorageDatabaseTracker::databasesModifiedSince):
(WebKit::LocalStorageDatabaseTracker::origins const):
(WebKit::LocalStorageDatabaseTracker::originDetails):

  • NetworkProcess/WebStorage/LocalStorageDatabaseTracker.h: Renamed from Source/WebKit/UIProcess/WebStorage/LocalStorageDatabaseTracker.h.
  • NetworkProcess/WebStorage/StorageManager.cpp: Renamed from Source/WebKit/UIProcess/WebStorage/StorageManager.cpp.

(WebKit::StorageManager::StorageArea::securityOrigin const):
(WebKit::StorageManager::StorageArea::isSessionStorage const):
(WebKit::StorageManager::LocalStorageNamespace::storageManager const):
(WebKit::StorageManager::TransientLocalStorageNamespace::create):
(WebKit::StorageManager::TransientLocalStorageNamespace::~TransientLocalStorageNamespace):
(WebKit::StorageManager::TransientLocalStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::TransientLocalStorageNamespace::origins const):
(WebKit::StorageManager::TransientLocalStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::StorageManager::TransientLocalStorageNamespace::clearAllStorageAreas):
(WebKit::StorageManager::TransientLocalStorageNamespace::TransientLocalStorageNamespace):
(WebKit::StorageManager::StorageArea::create):
(WebKit::StorageManager::StorageArea::StorageArea):
(WebKit::StorageManager::StorageArea::~StorageArea):
(WebKit::StorageManager::StorageArea::addListener):
(WebKit::StorageManager::StorageArea::removeListener):
(WebKit::StorageManager::StorageArea::hasListener const):
(WebKit::StorageManager::StorageArea::clone const):
(WebKit::StorageManager::StorageArea::setItem):
(WebKit::StorageManager::StorageArea::removeItem):
(WebKit::StorageManager::StorageArea::clear):
(WebKit::StorageManager::StorageArea::items const):
(WebKit::StorageManager::StorageArea::openDatabaseAndImportItemsIfNeeded const):
(WebKit::StorageManager::StorageArea::dispatchEvents const):
(WebKit::StorageManager::LocalStorageNamespace::create):
(WebKit::StorageManager::LocalStorageNamespace::LocalStorageNamespace):
(WebKit::StorageManager::LocalStorageNamespace::~LocalStorageNamespace):
(WebKit::StorageManager::LocalStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::LocalStorageNamespace::didDestroyStorageArea):
(WebKit::StorageManager::LocalStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::StorageManager::LocalStorageNamespace::clearAllStorageAreas):
(WebKit::StorageManager::SessionStorageNamespace::isEmpty const):
(WebKit::StorageManager::SessionStorageNamespace::allowedConnections const):
(WebKit::StorageManager::SessionStorageNamespace::origins const):
(WebKit::StorageManager::SessionStorageNamespace::clearStorageAreasMatchingOrigin):
(WebKit::StorageManager::SessionStorageNamespace::clearAllStorageAreas):
(WebKit::StorageManager::SessionStorageNamespace::create):
(WebKit::StorageManager::SessionStorageNamespace::SessionStorageNamespace):
(WebKit::StorageManager::SessionStorageNamespace::~SessionStorageNamespace):
(WebKit::StorageManager::SessionStorageNamespace::addAllowedConnection):
(WebKit::StorageManager::SessionStorageNamespace::removeAllowedConnection):
(WebKit::StorageManager::SessionStorageNamespace::getOrCreateStorageArea):
(WebKit::StorageManager::SessionStorageNamespace::cloneTo):
(WebKit::StorageManager::create):
(WebKit::StorageManager::StorageManager):
(WebKit::StorageManager::~StorageManager):
(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::destroySessionStorageNamespace):
(WebKit::StorageManager::addAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::removeAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::cloneSessionStorageNamespace):
(WebKit::StorageManager::processWillOpenConnection):
(WebKit::StorageManager::processDidCloseConnection):
(WebKit::StorageManager::getSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins):
(WebKit::StorageManager::getLocalStorageOriginDetails):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigin):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
(WebKit::StorageManager::createLocalStorageMap):
(WebKit::StorageManager::createTransientLocalStorageMap):
(WebKit::StorageManager::createSessionStorageMap):
(WebKit::StorageManager::destroyStorageMap):
(WebKit::StorageManager::getValues):
(WebKit::StorageManager::setItem):
(WebKit::StorageManager::removeItem):
(WebKit::StorageManager::clear):
(WebKit::StorageManager::applicationWillTerminate):
(WebKit::StorageManager::findStorageArea const):
(WebKit::StorageManager::getOrCreateLocalStorageNamespace):
(WebKit::StorageManager::getOrCreateTransientLocalStorageNamespace):

  • NetworkProcess/WebStorage/StorageManager.h: Renamed from Source/WebKit/UIProcess/WebStorage/StorageManager.h.
  • NetworkProcess/WebStorage/StorageManager.messages.in: Renamed from Source/WebKit/UIProcess/WebStorage/StorageManager.messages.in.
  • NetworkProcess/WebStorage/ios/LocalStorageDatabaseTrackerIOS.mm: Copied from Source/WebKit/UIProcess/WebStorage/ios/LocalStorageDatabaseTrackerIOS.mm.

(WebKit::LocalStorageDatabaseTracker::platformMaybeExcludeFromBackup const):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • NetworkProcess/curl/NetworkSessionCurl.cpp:

(WebKit::NetworkSessionCurl::NetworkSessionCurl):

  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::NetworkSessionSoup):

  • PlatformMac.cmake:
  • PlatformWin.cmake:
  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:
  • Shared/WebsiteData/WebsiteData.cpp:

(WebKit::WebsiteData::ownerProcess):

  • Sources.txt:
  • SourcesCocoa.txt:
  • UIProcess/API/C/WKKeyValueStorageManager.cpp:

(WKKeyValueStorageManagerGetKeyValueStorageOrigins):
(WKKeyValueStorageManagerGetStorageDetailsByOrigin):
(WKKeyValueStorageManagerDeleteEntriesForOrigin):
(WKKeyValueStorageManagerDeleteAllEntries):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::hasLocalStorage):
(WebKit::NetworkProcessProxy::getLocalStorageDetails):

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

(WebKit::WebPageProxy::createNewPage):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):
(WebKit::WebsiteDataStore::platformInitialize):
(WebKit::WebsiteDataStore::platformDestroy):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::computeNetworkProcessAccessTypeForDataFetch):
(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::hasLocalStorageForTesting const):
(WebKit::WebsiteDataStore::parameters):
(WebKit::WebsiteDataStore::getLocalStorageDetails):
(WebKit::m_client): Deleted.
(WebKit::WebsiteDataStore::cloneSessionData): Deleted.
(WebKit::WebsiteDataStore::webPageWasAdded): Deleted.
(WebKit::WebsiteDataStore::webPageWasInvalidated): Deleted.
(WebKit::WebsiteDataStore::webProcessWillOpenConnection): Deleted.
(WebKit::WebsiteDataStore::webPageWillOpenConnection): Deleted.
(WebKit::WebsiteDataStore::webPageDidCloseConnection): Deleted.
(WebKit::WebsiteDataStore::webProcessDidCloseConnection): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::resolvedLocalStorageDirectory const):
(WebKit::WebsiteDataStore::storageManager): Deleted.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::setPrivateBrowsingEnabled):

  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::close):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::createWebPage):
(WebKit::WebProcess::removeWebPage):
(WebKit::WebProcess::ensureNetworkProcessConnection):
(WebKit::WebProcess::networkProcessConnectionClosed):
(WebKit::WebProcess::registerStorageAreaMap):
(WebKit::WebProcess::unregisterStorageAreaMap):
(WebKit::WebProcess::storageAreaMap const):
(WebKit::WebProcess::enablePrivateBrowsingForTesting):

  • WebProcess/WebProcess.h:
  • WebProcess/WebStorage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::~StorageAreaMap):
(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::clear):
(WebKit::StorageAreaMap::loadValuesIfNeeded):
(WebKit::StorageAreaMap::connect):
(WebKit::StorageAreaMap::disconnect):

  • WebProcess/WebStorage/StorageAreaMap.h:

(WebKit::StorageAreaMap::identifier const):

Tools:

Reviewed by Youenn Fablet.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/LocalStorageDatabaseTracker.mm: Remove the wait for database file update.

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm: Add a test for network process crash recovery.

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm: Fix a typo and add a test case to cover it.
  • TestWebKitAPI/Tests/WebKitCocoa/local-storage-process-crashes.html: Added.
4:06 PM Changeset in webkit [245539] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Provide an explicit UIModalPresentation style when creating an AVPlayerViewController for fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=198052

Reviewed by Tim Horton.

Make sure AVPlayerViewController has an "overFullScreen" modal style.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerViewController initWithFullscreenInterface:]):

3:53 PM Changeset in webkit [245538] by Chris Dumez
  • 5 edits
    2 adds in trunk

Fix security check in ScriptController::canAccessFromCurrentOrigin()
https://bugs.webkit.org/show_bug.cgi?id=196730
<rdar://problem/49731231>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Fix security check in ScriptController::canAccessFromCurrentOrigin() when there is no
current JS exec state. Instead of returning true unconditionally, we now fall back to
using the accessing document's origin for the security check. The new behavior is
aligned with Blink:
https://cs.chromium.org/chromium/src/third_party/blink/renderer/core/html/html_frame_element_base.cc?rcl=d3f22423d512b45466f1694020e20da9e0c6ee6a&l=62

This fix is based on a patch from Sergei Glazunov <glazunov@google.com>.

Test: http/tests/security/showModalDialog-sync-cross-origin-page-load2.html

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::canAccessFromCurrentOrigin):

  • bindings/js/ScriptController.h:
  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::isURLAllowed const):

LayoutTests:

Add layout test coverage.

  • http/tests/security/showModalDialog-sync-cross-origin-page-load2-expected.txt: Added.
  • http/tests/security/showModalDialog-sync-cross-origin-page-load2.html: Added.
2:20 PM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
2:20 PM Changeset in webkit [245537] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.24/Source/WebCore

Merged r243690 - Build failure after r243644 in GTK Linux 64-bit stable builds
https://bugs.webkit.org/show_bug.cgi?id=196440

Patch by Pablo Saavedra <Pablo Saavedra> on 2019-04-01
Reviewed by Philippe Normand.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::updateTextureMapperFlags):

2:17 PM Changeset in webkit [245536] by Ross Kirsling
  • 12 edits
    1 copy
    5 adds in trunk

[WinCairo] Implement Remote Web Inspector Client.
https://bugs.webkit.org/show_bug.cgi?id=197434

Reviewed by Don Olmstead.

.:

  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/OptionsWinCairo.cmake:

Source/JavaScriptCore:

  • inspector/remote/socket/RemoteInspectorConnectionClient.cpp:

(Inspector::RemoteInspectorConnectionClient::didAccept): Deleted.

  • inspector/remote/socket/RemoteInspectorConnectionClient.h:

(Inspector::RemoteInspectorConnectionClient::didAccept):

  • inspector/remote/socket/RemoteInspectorServer.cpp:

(Inspector::RemoteInspectorServer::dispatchMap):

Source/WebKit:

  • PlatformWin.cmake:
  • UIProcess/RemoteWebInspectorProxy.cpp:
  • UIProcess/RemoteWebInspectorProxy.h:
  • UIProcess/socket/RemoteInspectorClient.cpp: Added.
  • UIProcess/socket/RemoteInspectorClient.h: Added.
  • UIProcess/socket/RemoteInspectorProtocolHandler.cpp: Added.
  • UIProcess/socket/RemoteInspectorProtocolHandler.h: Added.
  • UIProcess/win/RemoteWebInspectorProxyWin.cpp: Added.
  • UIProcess/win/WebView.cpp:

(WebKit::WebView::WebView):

1:45 PM Changeset in webkit [245535] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Storage tab crashes easily when adding new local/session storage entries.
https://bugs.webkit.org/show_bug.cgi?id=198004

Reviewed by Ross Kirsling.

  • UserInterface/Views/DataGrid.js:

(WI.DataGrid.prototype._startEditingNodeAtColumnIndex):
Force a layout in the case that a new PlaceholderDataGridNode was added to the end of the
DataGrid as part of the editCallback. Web Inspector won't crash without this, but it
won't properly select/focus the next row when tabbing from the last column to the next row.

(WI.DataGrid.prototype._editingCommitted):
Save the new value of the column before removing the editing styles, as that refreshes the
DataGridNode. If the new value isn't saved, the old value is used during the refresh.

(WI.DataGrid.prototype._keyDown):
Drive-by: use get element instead of using the member variable directly, as the underlying
value might not have been initialized yet.

1:32 PM Changeset in webkit [245534] by commit-queue@webkit.org
  • 6 edits in trunk

Range getBoundingClientRect returning zero rect on simple text node with <br> before it
https://bugs.webkit.org/show_bug.cgi?id=182181

Patch by Gabe Giosia <giosia@google.com> on 2019-05-20
Reviewed by Antti Koivisto.

Source/WebCore:

Correct rect of RenderText in a block element when used in a Range
over a line break element. The end offset was miscalculated.

Addded line-break case to fast/dom/Range/getBoundingClientRect.html

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::collectAbsoluteQuadsForRange):

  • rendering/SimpleLineLayoutResolver.cpp:

(WebCore::SimpleLineLayout::RunResolver::rangeForRendererWithOffsets const):

LayoutTests:

Test getBoundingClientRect with a Range that contains a line break.

  • fast/dom/Range/getBoundingClientRect-expected.txt:
  • fast/dom/Range/getBoundingClientRect.html:
12:18 PM Changeset in webkit [245533] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] STP can't launch any WebContent processes
https://bugs.webkit.org/show_bug.cgi?id=198045
<rdar://problem/50931110>

Reviewed by Brent Fulgham.

This is caused by a syscall sandbox violation.

  • WebProcess/com.apple.WebProcess.sb.in:
11:30 AM Changeset in webkit [245532] by Kocsen Chung
  • 7 edits in branches/safari-608.1.24.40-branch/Source

Versioning.

11:24 AM Changeset in webkit [245531] by Keith Rollin
  • 2 edits in trunk/Tools

generate-xcfilelists is stranding temporary files
https://bugs.webkit.org/show_bug.cgi?id=198008
<rdar://problem/50893659>

Reviewed by Jonathan Bedard.

generate-xcfilelists makes use of temporary files on disk. These files
are opened with the OS's "temporary" bit set, causing them to get
deleted when closed or the process exists. However, these temporary
files actually end up persisting after the script exists. This is
because sed is used to process the files, and is done so in a way
that causes the "temporary" bit to get cleared.

Address this issue by no longer using sed and instead performing the
equivalent processing the file content in-memory.

  • Scripts/webkitpy/generate_xcfilelists_lib/generators.py:

(BaseGenerator._generate_derived):
(BaseGenerator._generate_unified):
(BaseGenerator._replace):
(BaseGenerator._unexpand):
(BaseGenerator._find_added_lines.get_lines):
(BaseGenerator._find_added_lines):

11:17 AM Changeset in webkit [245530] by Kocsen Chung
  • 1 copy in branches/safari-608.1.24.40-branch

New branch.

11:12 AM Changeset in webkit [245529] by Kocsen Chung
  • 7 edits in branches/safari-608.1.24.30-branch/Source

Versioning.

11:03 AM Changeset in webkit [245528] by dino@apple.com
  • 8 edits in branches/safari-608.1.24-branch/Source/WebKit

Cherry-pick r245272. <rdar://problem/50743963>

2019-05-13 Wenson Hsieh <Wenson Hsieh>

Followup to r245267: fix some more deprecated uses of -[UIApplication interfaceOrientation]
https://bugs.webkit.org/show_bug.cgi?id=197867
<rdar://problem/50743963>

Reviewed by Simon Fraser.

Add a helper method on WKContentView that asks the view's window's scene for an interface orientation; then,
use this helper from various places in WebKit instead of invoking -[UIApplication interfaceOrientation]
directly. No change in behavior.

  • UIProcess/ios/WKContentView.h:
  • UIProcess/ios/WKContentView.mm: (-[WKContentView interfaceOrientation]):
  • UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm: (-[WKDataListSuggestionsPicker initWithInformation:inView:]):
  • UIProcess/ios/forms/WKFormColorPicker.mm: (-[WKColorPicker initWithView:]):
  • UIProcess/ios/forms/WKFormInputControl.mm: (-[WKDateTimePicker initWithView:datePickerMode:]):
  • UIProcess/ios/forms/WKFormSelectPicker.mm: (-[WKMultipleSelectPicker initWithView:]):
  • UIProcess/ios/forms/WKFormSelectPopover.mm: (-[WKSelectPopover initWithView:hasGroups:]):
11:03 AM Changeset in webkit [245527] by dino@apple.com
  • 2 edits in branches/safari-608.1.24-branch/Source/WebKit

Cherry-pick r245267.

2019-05-13 Wenson Hsieh <Wenson Hsieh>

Unreviewed, fix some deprecation warnings when using a recent SDK

  • UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm: (-[WKDataListSuggestionsPicker initWithInformation:inView:]):
10:54 AM Changeset in webkit [245526] by Kocsen Chung
  • 1 copy in branches/safari-608.1.24.30-branch

New branch.

10:51 AM Changeset in webkit [245525] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening after r245482.

  • platform/mac/TestExpectations: Explicitly mark webgl/2.0.0/conformance2/textures/misc/copy-texture-image-luma-format.html

as slow for High Sierra.

10:51 AM Changeset in webkit [245524] by Kocsen Chung
  • 7 edits in branches/safari-608.1.24.20-branch/Source

Versioning.

10:43 AM Changeset in webkit [245523] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.24.2

WPE WebKit 2.24.2

10:42 AM Changeset in webkit [245522] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.24

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.24.2 release

build-wpe-releng/..:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

build-wpe-releng/../Source/WebKit:

  • wpe/NEWS: Add release notes for 2.24.2.
10:42 AM Changeset in webkit [245521] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.24/Tools

Merged r243062 - [GTK][WPE] Cryptic error from Tools/gtkdoc/generate-gtkdoc
https://bugs.webkit.org/show_bug.cgi?id=195883

Reviewed by Carlos Garcia Campos.

  • gtkdoc/gtkdoc.py:

(GTKDoc._run_command): When commands fail to run, include the full command line for
the program invocation and the output it has generated on the standard error stream.

10:41 AM Changeset in webkit [245520] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Allow WebContent mach-lookup AGXCompilerService
https://bugs.webkit.org/show_bug.cgi?id=198031
<rdar://problem/50552974>

Patch by Zhifei Fang <zhifei_fang@apple.com> on 2019-05-20
Reviewed by Per Arne Vollan.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
10:38 AM Changeset in webkit [245519] by Kocsen Chung
  • 1 copy in branches/safari-608.1.24.20-branch

New branch.

10:24 AM Changeset in webkit [245518] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

Hitpoint for link which spans two lines in web content is incorrect
https://bugs.webkit.org/show_bug.cgi?id=197511
<rdar://problem/49971483>

Patch by Andres Gonzalez <Andres Gonzalez> on 2019-05-20
Reviewed by Chris Fleizach.

  • accessibility/ios-simulator/links-activation.html:
  • accessibility/links-activation-expected.txt:
  • accessibility/links-activation.html:
10:14 AM Changeset in webkit [245517] by sihui_liu@apple.com
  • 8 edits in trunk

[ Mac WK2 iOS Sim] Layout Test http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196307
<rdar://problem/49345360>

Reviewed by Alex Christensen.

Source/WebKit:

Delay dumping statistics if there is data being removed.

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::removeDataRecords):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:

(WebKit::ResourceLoadStatisticsStore::dataRecordsBeingRemoved const):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::dumpResourceLoadStatistics):
(WebKit::WebResourceLoadStatisticsStore::tryDumpResourceLoadStatistics):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:

LayoutTests:

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
7:55 AM WebKitGTK/2.24.x edited by Adrian Perez de Castro
(diff)
7:50 AM Changeset in webkit [245516] by commit-queue@webkit.org
  • 4 edits in trunk

[WPE][Qt] Use C++17 instead of C++14
https://bugs.webkit.org/show_bug.cgi?id=197415

Patch by Ludovico de Nittis <ludovico.denittis@collabora.com> on 2019-05-20
Reviewed by Philippe Normand.

There was a regression introduced with the commit https://bugs.webkit.org/show_bug.cgi?id=197131
The WPE Qt port was not updated to C++17 and this leaded to a compilation error.

Source/WebKit:

  • PlatformWPE.cmake:

Tools:

  • TestWebKitAPI/glib/CMakeLists.txt:
7:49 AM Changeset in webkit [245515] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak][Qt] Meson: Unknown type feature for gstreamer
https://bugs.webkit.org/show_bug.cgi?id=197408

Patch by Ludovico de Nittis <ludovico.denittis@collabora.com> on 2019-05-20
Reviewed by Philippe Normand.

This is a regression that has been introduced when
GStreamer was updated to version 1.16.0
https://bugs.webkit.org/show_bug.cgi?id=197157

Now GStreamer requires meson >= 0.47.0
Updating the Kde runtime to version 5.12 we fulfill
this requirement.

  • flatpak/org.webkit.WPEQT.yaml:
6:48 AM Changeset in webkit [245514] by Carlos Garcia Campos
  • 9 edits in trunk

[GLIB] Crash when instantiating a js object registered with jsc_context_register_class on window object cleared
https://bugs.webkit.org/show_bug.cgi?id=198037

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

This happens because JSCClass is keeping a pointer to the JSCContext used when the class is registered, and the
context can be destroyed before the class. We can't a reference to the context, because we don't really want to
keep it alive. The life of the JSCClass is not attached to the JSCContext, but to its wrapped global context, so
we can keep a pointer to the JSGlobalContextRef instead and create a new JSCContext wrapping it when
needed. This patch is also making the context property of JSCClass non-readable, which was always the intention,
that's why there isn't a public getter in the API.

  • API/glib/JSCCallbackFunction.cpp:

(JSC::JSCCallbackFunction::construct): Pass the context to jscClassGetOrCreateJSWrapper().

  • API/glib/JSCClass.cpp:

(jscClassGetProperty): Remove the getter for context property.
(jscClassSetProperty): Get the JSGlobalContextRef from the given JSCContext.
(jsc_class_class_init): Make context writable only.
(jscClassCreate): Use the passed in context instead of the member.
(jscClassGetOrCreateJSWrapper): It receives now the context as parameter.
(jscClassCreateContextWithJSWrapper): Ditto.
(jscClassCreateConstructor): Get or create a JSCContext for our JSGlobalContextRef.
(jscClassAddMethod): Ditto.
(jsc_class_add_property): Ditto.

  • API/glib/JSCClassPrivate.h:
  • API/glib/JSCContext.cpp:

(jsc_context_evaluate_in_object): Pass the context to jscClassCreateContextWithJSWrapper().

  • API/glib/JSCValue.cpp:

(jsc_value_new_object): Pass the context to jscClassGetOrCreateJSWrapper().

Tools:

Add a test case to check the crash is fixed.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:

(testWebExtensionWindowObjectCleared):

  • TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:

(windowObjectCleared):

1:57 AM HackingWebInspector edited by Nikita Vasilyev
(diff)
1:15 AM Changeset in webkit [245513] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK] Use a repeating timer to populate emoji chooser
https://bugs.webkit.org/show_bug.cgi?id=197984

Reviewed by Michael Catanzaro.

It ensures the emoji chooser popover is shown as soon as it's requested.

  • UIProcess/API/gtk/WebKitEmojiChooser.cpp:

(webkitEmojiChooserSetupSectionBox):
(webkitEmojiChooserSetupRecent):
(webkitEmojiChooserSetupEmojiSections):
(webkitEmojiChooserConstructed):

1:10 AM Changeset in webkit [245512] by Carlos Garcia Campos
  • 4 edits in trunk

[GLIB] Repeating timer is not stopped when stop is called from the callback
https://bugs.webkit.org/show_bug.cgi?id=197986

Reviewed by Michael Catanzaro.

Source/WTF:

In case of repeating timers we always update the ready time to fire interval after the user callback is called.

  • wtf/glib/RunLoopGLib.cpp:

(WTF::RunLoop::TimerBase::stop): Reset m_fireInterval and m_isRepeating.

Tools:

Check the timer is no longer active after it has been stopped.

  • TestWebKitAPI/Tests/WTF/RunLoop.cpp:

(TestWebKitAPI::TEST):

May 19, 2019:

11:08 PM Changeset in webkit [245511] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

Add support for %pid in dumpJITMemoryPath
https://bugs.webkit.org/show_bug.cgi?id=198026

Reviewed by Saam Barati.

This is necessary when using dumpJITMemory with Safari. Otherwise, multiple WebContent
processes will try to write to the same file at the same time, which will crash since
the file is open with exclusive locking.

  • jit/ExecutableAllocator.cpp:

(JSC::dumpJITMemory):

8:40 PM Changeset in webkit [245510] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r245508.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: Don't use

an 'import' directive in a C++ file.

8:15 PM Changeset in webkit [245509] by Brent Fulgham
  • 3 edits
    2 adds in trunk

Wait to get frame until after layout has been run
https://bugs.webkit.org/show_bug.cgi?id=197999
<rdar://problem/50800345>

Reviewed by Alex Christensen.

Source/WebCore:

The current frame can change when layout runs, so don't bother retrieving
the frame until the final layout pass is complete.

Test: fast/dom/window-inner-width-crash.html

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::innerHeight const): Move frame access past the
layout operation.
(WebCore::DOMWindow::innerWidth const): Ditto.
(WebCore::DOMWindow::scrollX const): Ditto.
(WebCore::DOMWindow::scrollY const): Ditto.

LayoutTests:

  • fast/dom/window-inner-width-crash-expected.txt: Added.
  • fast/dom/window-inner-width-crash.html: Added.
5:48 PM Changeset in webkit [245508] by Brent Fulgham
  • 47 edits in trunk/Source/WebCore

Unreviewed build fix

Attempting to build with only Open Source sources on shipping software with
ASan enabled triggers build failures due to missing includes. This patch adds
the necessary includes to cleanly build WebCore.

  • Modules/applepay/ApplePaySession.cpp:
  • Modules/applepay/PaymentSession.cpp:
  • Modules/mediastream/UserMediaController.cpp:
  • bindings/js/ScriptController.cpp:
  • contentextensions/ContentExtensionsBackend.cpp:
  • dom/Document.cpp:
  • dom/ScriptedAnimationController.cpp:
  • editing/cocoa/EditorCocoa.mm:
  • editing/cocoa/HTMLConverter.mm:
  • editing/cocoa/WebContentReaderCocoa.mm:
  • editing/markup.cpp:
  • history/CachedFrame.cpp:
  • html/HTMLDocument.cpp:
  • html/HTMLHtmlElement.cpp:
  • html/HTMLMediaElement.cpp:
  • html/ImageDocument.cpp:
  • html/MediaDocument.cpp:
  • html/PluginDocument.cpp:
  • html/parser/HTMLDocumentParser.cpp:
  • html/parser/XSSAuditor.cpp:
  • inspector/InspectorInstrumentation.cpp:
  • inspector/agents/InspectorApplicationCacheAgent.cpp:
  • inspector/agents/InspectorNetworkAgent.cpp:
  • inspector/agents/InspectorPageAgent.cpp:
  • inspector/agents/page/PageNetworkAgent.cpp:
  • loader/ApplicationManifestLoader.cpp:
  • loader/FrameLoader.cpp:
  • loader/LoadTiming.cpp:
  • loader/NetscapePlugInStreamLoader.cpp:
  • loader/ResourceLoader.cpp:
  • loader/SubresourceLoader.cpp:
  • loader/appcache/ApplicationCacheHost.cpp:
  • loader/archive/cf/LegacyWebArchive.cpp:
  • loader/icon/IconLoader.cpp:
  • page/ContextMenuController.cpp:
  • page/FrameView.cpp:
  • page/Page.cpp:
  • page/Performance.cpp:
  • page/PerformanceNavigation.cpp:
  • page/Quirks.cpp:
  • page/UserContentProvider.cpp:
  • page/csp/ContentSecurityPolicy.cpp:
  • page/mac/PageMac.mm:
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
  • svg/graphics/SVGImage.cpp:
  • testing/Internals.cpp:
2:43 PM Changeset in webkit [245507] by graouts@webkit.org
  • 5 edits
    8 adds in trunk

[Pointer Events] Listening to a "pointerover", "pointerenter", "pointerout" or "pointerleave" event alone does not fire the event on iOS
https://bugs.webkit.org/show_bug.cgi?id=197882
<rdar://problem/50769116>

Reviewed by Dean Jackson.

Source/WebCore:

Tests: pointerevents/ios/pointerenter-alone.html

pointerevents/ios/pointerleave-alone.html
pointerevents/ios/pointerout-alone.html
pointerevents/ios/pointerover-alone.html

  • dom/EventNames.h:

(WebCore::EventNames::isTouchRelatedEventType const):
(WebCore::EventNames::touchRelatedEventNames const):
(WebCore::EventNames::extendedTouchRelatedEventNames const):

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateTouchEventTracking):

LayoutTests:

Add new tests that check that adding a "pointerover", "pointerenter", "pointerout" or "pointerleave" event listener alone dispatches the
event as expected.

  • pointerevents/ios/pointerenter-alone-expected.txt: Added.
  • pointerevents/ios/pointerenter-alone.html: Added.
  • pointerevents/ios/pointerleave-alone-expected.txt: Added.
  • pointerevents/ios/pointerleave-alone.html: Added.
  • pointerevents/ios/pointerout-alone-expected.txt: Added.
  • pointerevents/ios/pointerout-alone.html: Added.
  • pointerevents/ios/pointerover-alone-expected.txt: Added.
  • pointerevents/ios/pointerover-alone.html: Added.
2:37 PM Changeset in webkit [245506] by graouts@webkit.org
  • 2 edits
    2 adds in trunk/LayoutTests

[Pointer Events] The pointerup, pointerout and pointerleave events may be fired twice
https://bugs.webkit.org/show_bug.cgi?id=198028
<rdar://problem/50769425>

Reviewed by Dean Jackson.

Add a new test that checks that we're firing a "pointermove" event when the touch pressure
changes, even when the touch is stationary, and that a single "pointerup" event is fired
as the touch ends and the pressure changes. The relevant code change is done in WebKitAdditions.

  • pointerevents/ios/pressure-change-expected.txt: Added.
  • pointerevents/ios/pressure-change.html: Added.
  • pointerevents/utils.js:

(prototype._handlePointerEvent):
(prototype.stationary):
(prototype._action):

2:34 PM Changeset in webkit [245505] by graouts@webkit.org
  • 8 edits in trunk

[Pointer Events] A pointer should be marked as primary for all of its events
https://bugs.webkit.org/show_bug.cgi?id=197909
<rdar://problem/50801608>

Reviewed by Dean Jackson.

Source/WebCore:

Add an ivar for EventHandler which we'll use in WebKitAdditions code to track the touch identifier
of the very first touch to start in a given sequence.

  • page/EventHandler.h:

LayoutTests:

Update tests to match expectations that only the first touch of a sequence is the primary pointer,
which applies to all of its events, even after the even is no longer touching the digitizer.

  • pointerevents/ios/over-enter-out-leave.html:
  • pointerevents/ios/pointer-event-order.html:
  • pointerevents/ios/pointer-events-implicit-capture.html:
  • pointerevents/ios/pointer-events-is-primary-expected.txt:
  • pointerevents/ios/pointer-events-is-primary.html:
11:17 AM Changeset in webkit [245504] by Darin Adler
  • 15 edits in trunk

Change String::number to use "shortest" instead of "fixed precision 6 digits"
https://bugs.webkit.org/show_bug.cgi?id=178319

Reviewed by Sam Weinig.

Source/WebCore:

  • accessibility/atk/WebKitAccessibleInterfaceValue.cpp:

(webkitAccessibleSetNewValue): Use String::numberToStringFixedPrecision
instead of String::number to be explicit about the fact that it's fixed precision.

  • page/linux/ResourceUsageOverlayLinux.cpp:

(gcTimerString): Ditto.

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(printTransform): Use appendFixedPrecisionNumber instead of appendNumber
to be explicit about the fact that it's fixed precision.
(printLayer): Ditto.
(WebCore::PlatformCALayerWin::layerTreeAsString const): Ditto.

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(buildVariationSettings): Ditto.

  • svg/SVGNumberList.h: Use appendFixedPrecisionNumber instead of appendNumber

to be explicit about the fact that it's fixed precision. We'll consider moving
to shortest later.

  • svg/SVGPathUtilities.cpp:

(WebCore::buildStringFromPath): Use appendNumberShortest instead of
appendNumberECMAScript since these are single-precision.

  • svg/SVGPointList.h: Use appendFixedPrecisionNumber instead of appendNumber

to be explicit about the fact that it's fixed precision. We'll consider moving
to shortest later.

  • svg/SVGTransformValue.h: Ditto.

Source/WTF:

  • wtf/text/StringBuilder.h: Delete appendNumber for floating point and

appendECMAScriptNumber for single-precision.

  • wtf/text/WTFString.h: Delete String::number for floating point and

numberToStringECMAScript for single-precision.

Tools:

  • TestWebKitAPI/Tests/WTF/WTFString.cpp:

(TestWebKitAPI::testStringNumberFixedPrecision): Use String::numberToStringFixedPrecision.

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(attributesOfElement): Use appendFixedPrecisionNumber.

10:12 AM Changeset in webkit [245503] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Decrease spacing before and after tooltip paragraphs
https://bugs.webkit.org/show_bug.cgi?id=198024

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/Popover.css:

(.popover p): Added.
(.popover p + p): Added.

7:01 AM Changeset in webkit [245502] by Simon Fraser
  • 4 edits
    2 adds in trunk

Layers painting into shared backing need to contribute to overlap
https://bugs.webkit.org/show_bug.cgi?id=198021

Reviewed by Zalan Bujtas.
Source/WebCore:

Layers that paint into a composited (non-root) layer get added to the overlap map so
that later layers correct overlap them; this is done via the test against currentState.compositingAncestor.

We need the same logic for layers that paint into shared backing; they need to behave
the same way in terms of how they contribute to overlap. We already had currentState.backingSharingAncestor
which was unused, but now use it for this, and correctly null it out when a layer composites.

Bug was noticed during testing, and not known to affect any websites (though it probably does).

Also move the overlap container popping into updateOverlapMap() so the two callers can
share the code, and more explicitly track whether a container was pushed.

Test: compositing/shared-backing/sharing-child-contributes-to-overlap.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::traverseUnchangedSubtree):
(WebCore::RenderLayerCompositor::updateOverlapMap const):

  • rendering/RenderLayerCompositor.h:

LayoutTests:

  • compositing/shared-backing/sharing-child-contributes-to-overlap-expected.html: Added.
  • compositing/shared-backing/sharing-child-contributes-to-overlap.html: Added.
12:46 AM Changeset in webkit [245501] by commit-queue@webkit.org
  • 4 edits
    3 deletes in trunk/Source/WebKit

Revert r240956
https://bugs.webkit.org/show_bug.cgi?id=198007
<rdar://problem/49808949>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-05-19
Reviewed by Alexey Proskuryakov.

r240956 made SafariForWebKitDevelopment crash when using WebKit nightly builds.
Since it's not needed and the binary reduction wasn't too big, just revert that revision.

  • Shared/API/Cocoa/WKMain.h: Removed.
  • Shared/API/Cocoa/WKMain.mm: Removed.
  • Shared/EntryPointUtilities/Cocoa/AuxiliaryProcessMain.cpp: Removed.
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(main):

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
Note: See TracTimeline for information about the timeline view.