Timeline
May 20, 2019:
- 11:52 PM Changeset in webkit [245564] by
-
- 7 edits2 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
-
- 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
-
- 4 edits3 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
-
- 4 edits2 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
-
- 6 edits2 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
-
- 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
-
- 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
-
- 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
-
- 11 edits7 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
-
- 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
-
- 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
-
- 6 edits2 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
-
- 3 edits2 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
-
- 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
-
- 6 edits14 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
-
- 3 edits2 adds in branches/safari-608.1.24.20-branch
Cherry-pick r245181. rdar://problem/50670806
ASSERT(isSelfPaintingLayer() hasSelfPaintingLayerDescendant()) on nytimes.com after r245170 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
-
- 4 edits2 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
-
- 36 edits7 copies35 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
- (diff)
- 5:12 PM Changeset in webkit [245541] by
-
- 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
-
- 46 edits8 copies3 adds1 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
-
- 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
-
- 5 edits2 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
- (diff)
- 2:20 PM Changeset in webkit [245537] by
-
- 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
-
- 12 edits1 copy5 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
-
- 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 newPlaceholderDataGridNodewas added to the end of the
DataGridas part of theeditCallback. 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: useget elementinstead of using the member variable directly, as the underlying
value might not have been initialized yet.
- 1:32 PM Changeset in webkit [245534] by
-
- 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
-
- 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
-
- 7 edits in branches/safari-608.1.24.40-branch/Source
Versioning.
- 11:24 AM Changeset in webkit [245531] by
-
- 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
becausesedis 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
sedand 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
-
- 1 copy in branches/safari-608.1.24.40-branch
New branch.
- 11:12 AM Changeset in webkit [245529] by
-
- 7 edits in branches/safari-608.1.24.30-branch/Source
Versioning.
- 11:03 AM Changeset in webkit [245528] by
-
- 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
-
- 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
-
- 1 copy in branches/safari-608.1.24.30-branch
New branch.
- 10:51 AM Changeset in webkit [245525] by
-
- 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
-
- 7 edits in branches/safari-608.1.24.20-branch/Source
Versioning.
- 10:43 AM Changeset in webkit [245523] by
-
- 1 copy in releases/WPE WebKit/webkit-2.24.2
WPE WebKit 2.24.2
- 10:42 AM Changeset in webkit [245522] by
-
- 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
-
- 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
-
- 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
-
- 1 copy in branches/safari-608.1.24.20-branch
New branch.
- 10:24 AM Changeset in webkit [245518] by
-
- 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
-
- 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
- (diff)
- 7:50 AM Changeset in webkit [245516] by
-
- 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
-
- 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
-
- 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
- (diff)
- 1:15 AM Changeset in webkit [245513] by
-
- 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
-
- 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
-
- 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
-
- 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
-
- 3 edits2 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
-
- 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
-
- 5 edits8 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
-
- 2 edits2 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
-
- 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
-
- 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
-
- 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
-
- 4 edits2 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
-
- 4 edits3 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: