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

Timeline



May 11, 2019:

4:17 PM Changeset in webkit [245212] by Simon Fraser
  • 6 edits
    3 adds in trunk

Overflow scroll that becomes non-scrollable should stop being composited
https://bugs.webkit.org/show_bug.cgi?id=197817
<rdar://problem/50697290>

Reviewed by Antti Koivisto.

Source/WebCore:

Remove the iOS-specific #ifdef around code that triggers a compositing re-evaluation
when scrolling state changes.

Test: compositing/scrolling/async-overflow-scrolling/become-non-scrollable.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateScrollInfoAfterLayout):

LayoutTests:

Put in a compositing/scrolling/async-overflow-scrolling dir so we can enable it only
for platforms that have async overflow scrolling.

  • TestExpectations:
  • compositing/scrolling/async-overflow-scrolling/become-non-scrollable-expected.txt: Added.
  • compositing/scrolling/async-overflow-scrolling/become-non-scrollable.html: Added.
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
4:14 PM Changeset in webkit [245211] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Cleaning up results for legacy-animation-engine tests

Two tests were fixed in bug 188357.
The third one is still broken, and we have bug 184611 tracking it.

  • platform/mac-wk1/TestExpectations:
4:02 PM Changeset in webkit [245210] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Removing flaky expectation for fast/repaint/canvas-object-fit.html
https://bugs.webkit.org/show_bug.cgi?id=188910

  • platform/mac-wk1/TestExpectations:
3:29 PM Changeset in webkit [245209] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Removing flaky expectation for fast/animation/request-animation-frame.html
https://bugs.webkit.org/show_bug.cgi?id=190888

  • platform/ios-wk2/TestExpectations:
3:22 PM Changeset in webkit [245208] by Simon Fraser
  • 3 edits
    8 adds in trunk

Layer bounds are incorrect for sharing layers that paint with transforms
https://bugs.webkit.org/show_bug.cgi?id=197768
<rdar://problem/50695493>

Reviewed by Zalan Bujtas.

Source/WebCore:

We don't need to traverse shared layers if the backing-provider has overflow clip,
because we know they are containing-block descendants and therefore clipped.

Note tha the CSS "clip" property doesn't guarantee this, because the clip rect
can be larger than the element, so in that case we just traverse shared layers.

Tests: compositing/shared-backing/sharing-bounds-clip.html

compositing/shared-backing/sharing-bounds-non-clipping-shared-layer.html
compositing/shared-backing/sharing-bounds-transformed-sharing-layer.html
compositing/shared-backing/sharing-bounds.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateCompositedBounds):

LayoutTests:

Tests for backing-shared layer bounds in various configurations.

  • compositing/shared-backing/sharing-bounds-clip-expected.txt: Added.
  • compositing/shared-backing/sharing-bounds-clip.html: Added.
  • compositing/shared-backing/sharing-bounds-expected.txt: Added.
  • compositing/shared-backing/sharing-bounds-non-clipping-shared-layer-expected.txt: Added.
  • compositing/shared-backing/sharing-bounds-non-clipping-shared-layer.html: Added.
  • compositing/shared-backing/sharing-bounds-transformed-sharing-layer-expected.txt: Added.
  • compositing/shared-backing/sharing-bounds-transformed-sharing-layer.html: Added.
  • compositing/shared-backing/sharing-bounds.html: Added.
3:05 PM Changeset in webkit [245207] by Simon Fraser
  • 4 edits
    2 adds in trunk

Translucent gradient rendering bug due to will-change transform
https://bugs.webkit.org/show_bug.cgi?id=197654
<rdar://problem/50547664>

Reviewed by Dean Jackson.
Source/WebCore:

We failed to re-evaluate 'contentsOpaque' when a background changed, because this
happened in updateGeometry() and that doesn't run for background changes.

However, 'contentsOpaque' also requires knowing about geometry because we have to
turn it off when there's subpixel positioning, and updateConfiguration()
runs before updateGeometry().

So compute m_hasSubpixelRounding in updateGeometry() and set contentsOpaque in
updateAfterDescendants().

Test: compositing/contents-opaque/background-change-to-transparent.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::updateAfterDescendants):

  • rendering/RenderLayerBacking.h:

LayoutTests:

  • compositing/contents-opaque/background-change-to-transparent-expected.txt: Added.
  • compositing/contents-opaque/background-change-to-transparent.html: Added.
1:58 PM Changeset in webkit [245206] by Simon Fraser
  • 3 edits
    2 adds in trunk

When the scroller hosting a shared layer becomes non-scrollable, content disappears
https://bugs.webkit.org/show_bug.cgi?id=197766
<rdar://problem/50695808>

Reviewed by Zalan Bujtas.

Source/WebCore:

RenderLayerCompositor::requiresOwnBackingStore() should return true for a layer that shares
its backing store. We always made backing for overlap layers, so even if the sharing layers
have no painted content, this should rarely be a backing store memory regression.

Test: compositing/shared-backing/overflow-scroll/sharing-layer-becomes-non-scrollable.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresOwnBackingStore const):

LayoutTests:

  • compositing/shared-backing/overflow-scroll/sharing-layer-becomes-non-scrollable-expected.html: Added.
  • compositing/shared-backing/overflow-scroll/sharing-layer-becomes-non-scrollable.html: Added.
10:35 AM Changeset in webkit [245205] by Simon Fraser
  • 6 edits
    14 adds in trunk

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.

May 10, 2019:

7:15 PM Changeset in webkit [245204] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed, fix ProcessSwap.OpenerLinkAfterAPIControlledProcessSwappingOfOpener API test

It became flaky after r245198.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
6:40 PM Changeset in webkit [245203] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Call to JSToWasmICCallee::createStructure passes in wrong prototype value
https://bugs.webkit.org/show_bug.cgi?id=197807
<rdar://problem/50530400>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/js-to-wasm-callee-has-correct-prototype.js: Added.

(test.getInstance):
(test):

Source/JavaScriptCore:

We were passing the empty value instead of null. However, the empty
value means the Structure is poly proto. That's definitely not the case
here.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

5:39 PM Changeset in webkit [245202] by sbarati@apple.com
  • 2 edits in trunk/Source/WTF

Bag's move operator= leaks memory
https://bugs.webkit.org/show_bug.cgi?id=197757

Reviewed by Keith Miller.

It was unused. So I'm just removing it. We can implement it properly
if we ever need it.

  • wtf/Bag.h:

(WTF::Bag::operator=): Deleted.

4:42 PM Changeset in webkit [245201] by Ross Kirsling
  • 13 edits in trunk/JSTests

[Test262] Unreviewed expectations update following r245188.

  • test262/config.yaml:
  • test262/expectations.yaml:
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/date-is-infinity-throws.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/date-is-nan-throws.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/date-undefined-throws.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/date-x-greater-than-y-throws.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRange/this-is-not-object-throws.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-is-infinity-throws.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-is-nan-throws.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-undefined-throws.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/date-x-greater-than-y-throws.js:
  • test262/test/intl402/DateTimeFormat/prototype/formatRangeToParts/this-is-not-object-throws.js:

These files have invalid YAML comments. Will also submit corrections back to Test262.

4:33 PM Changeset in webkit [245200] by youenn@apple.com
  • 4 edits in trunk

A service worker instance should be terminated when its SWServer is destroyed
https://bugs.webkit.org/show_bug.cgi?id=197801
<rdar://problem/50587270>

Reviewed by Chris Dumez.

Source/WebCore:

On session destruction, the SWServer is destroyed.
At that time, it should terminate all its running service workers.
Covered by updated API test.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::~SWServer):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
4:29 PM Changeset in webkit [245199] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS] HTMLMediaElement sometimes doesn't send 'webkitplaybacktargetavailabilitychanged' event
https://bugs.webkit.org/show_bug.cgi?id=197793
<rdar://problem/46429187>

Reviewed by Jer Noble.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::MediaElementSession): Initialize m_hasPlaybackTargets.

  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::externalOutputDeviceAvailableDidChange): Log
target availability.
(-[WebMediaSessionHelper startMonitoringAirPlayRoutes]): Call the client
externalOutputDeviceAvailableDidChange method after the AVRouteDetector is available.

4:25 PM Changeset in webkit [245198] by Chris Dumez
  • 5 edits in trunk/Source/WebKit

[PSON] Prevent flashing when the process-swap is forced by the client
https://bugs.webkit.org/show_bug.cgi?id=197799

Reviewed by Geoffrey Garen.

When the process-swap is forced by the client, we would not construct a SuspendedPageProxy for
the previous page, which would cause a white/black flash upon navigation on macOS. The reason
we did not construct a SuspendedPageProxy is that it would be unsafe to keep the page around
in this case because other windows might have an opener link to the page when the swap is forced
and we need those opener / openee links to get severed.

The new approach to maintain the Web facing behavior without flashing is to create a suspended
page proxy for the previous page when the process swap is forced by the client. We then close
the page as soon as we can do so without flashing (when pageEnteredAcceleratedCompositingMode()
has been called).

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::SuspendedPageProxy):
(WebKit::SuspendedPageProxy::close):
(WebKit::SuspendedPageProxy::pageEnteredAcceleratedCompositingMode):
(WebKit::SuspendedPageProxy::closeWithoutFlashing):
(WebKit::SuspendedPageProxy::didProcessRequestToSuspend):

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

(WebKit::WebPageProxy::suspendCurrentPageIfPossible):
(WebKit::WebPageProxy::commitProvisionalPage):

  • UIProcess/WebPageProxy.h:
2:36 PM Changeset in webkit [245197] by ggaren@apple.com
  • 2 edits in trunk/Source/WebCore

Downgrade RELEASE_ASSERT TO RELEASE_LOG_FAULT for SQLite Class A files
https://bugs.webkit.org/show_bug.cgi?id=197760

Reviewed by Jer Noble.

We have all the data we need, and this crash is happening more than
expected.

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::open):

2:28 PM Changeset in webkit [245196] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Streamline test-and-clear operation for ContextMenu
https://bugs.webkit.org/show_bug.cgi?id=197795
<rdar://problem/50473746>

Reviewed by Wenson Hsieh.

Rather than performing a check when entering the function, doing work,
then clearing the member variable, perform the check and clear in
a single operation. Only perform the selection if the menu exists.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didSelectItemFromActiveContextMenu):

1:52 PM Changeset in webkit [245195] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Returning incorrect marked text rects
https://bugs.webkit.org/show_bug.cgi?id=197758
<rdar://problem/46548586>

Reviewed by Tim Horton.

We are not returning marked text rects in the correct view coordinate space.
This is the same translation we are applying to the caret rects.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformEditorState const):

1:49 PM Changeset in webkit [245194] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] String substring operation should return ropes consistently
https://bugs.webkit.org/show_bug.cgi?id=197765
<rdar://problem/37689944>

Reviewed by Michael Saboff.

Currently we have different policies per string substring operation function.

  1. String#slice returns the resolved non-rope string
  2. String#substring returns rope string
  3. String#substr returns rope string in runtime function, non-rope string in DFG and FTL

Due to (3), we see large memory use in the tested web page[1]. Non rope substring have a problem.
First of all, that returned string seems not used immediately. It is possible that the resulted
string is used as a part of the other ropes (like, xxx.substring(...) + "Hello"). To avoid the
eager materialization of the string, we are using StringImpl::createSubstringSharingImpl for the
resulted non rope string. StringImpl::createSubstringSharingImpl is StringImpl's substring feature: the
substring is pointing the owner StringImpl. While this has memory saving benefit, it can retain owner
StringImpl so long, and it could keep very large owner StringImpl alive.

The problem we are attempting to solve with StringImpl::createSubstringSharingImpl can be solved by
the rope string simply. Rope string can share the underlying string. And good feature of the rope
string is that, when resolving rope string, the rope string always create a new StringImpl instead of
using StringImpl::createSubstringSharingImpl. So we allow the owner StringImpl to be destroyed. And this
resolving only happens when we actually want to use the content of the rope string. In addition, we recently
shrunk the sizeof(JSRopeString) from 48 to 32, so JSRopeString is cheap.

In this patch, we change (2) and (3) to (1), using rope String as a result of substring operations.

RAMification and JetStream2 are neutral. The web page[1] shows large memory footprint improvement from 776MB to 681MB.

[1]: https://beta.observablehq.com/@ldgardner/assignment-4-visualizations-and-multiple-views

  • dfg/DFGOperations.cpp:
  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncSlice):

  • runtime/StringPrototypeInlines.h:

(JSC::stringSlice):

1:42 PM Changeset in webkit [245193] by bshafiei@apple.com
  • 1 copy in tags/Safari-608.1.24.1

Tag Safari-608.1.24.1.

1:37 PM Changeset in webkit [245192] by rmorisset@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

testb3 failing with crash in JSC::B3::BasicBlock::appendNonTerminal
https://bugs.webkit.org/show_bug.cgi?id=197756
<rdar://problem/50641659>

Reviewed by Saam Barati.

When I added https://bugs.webkit.org/show_bug.cgi?id=197265 I assumed that which block is the root does not change in the middle of strength reduction.
But specializeSelect can use splitForward, which uses a new block for the first half of the given block.
So if the block being split is the root block I must update m_root and erase the m_valueInConstant cache.
Erasing the cache cannot cause wrong results: at most it can make us miss some optimization opportunities in this iteration of the fixpoint.

  • b3/B3ReduceStrength.cpp:
1:30 PM Changeset in webkit [245191] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[iOS] baidu.com: Synthetic bold renders too far apart, appears doubled.
https://bugs.webkit.org/show_bug.cgi?id=197781
<rdar://problem/48027412>

Reviewed by Simon Fraser.

Source/WebCore:

Synthetic bold is essentially two regular glyphs painted with an offset. While on macOS this offset is always 1px (CSS), on iOS larger font produces higher offset value. At paint time, this offset value (in CSS px unit) get converted
to a device pixel value taking context scale into account. This conversion ensures that the gap between the 2 regular glyphs won't get wider (in device pixels) as the user pinch zooms in.
This works as long as the scale on the context is >= 1. This patch ensures that a scaled down context won't blow up this gap.

Test: fast/text/large-synthetic-bold-with-scale-transform.html

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::drawGlyphs):

LayoutTests:

  • fast/text/large-synthetic-bold-with-scale-transform-expected.html: Added.
  • fast/text/large-synthetic-bold-with-scale-transform.html: Added.
1:10 PM Changeset in webkit [245190] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Gracefully handle inaccessible font face data
https://bugs.webkit.org/show_bug.cgi?id=197762
<rdar://problem/50433861>

Reviewed by Per Arne Vollan.

Make sure CSS Font Face handling gracefully recovers from
missing font data.

Test: fast/text/missing-font-crash.html

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::fontLoadEventOccurred):
(WebCore::CSSFontFace::timeoutFired):
(WebCore::CSSFontFace::fontLoaded):
(WebCore::CSSFontFace::font):

12:58 PM Changeset in webkit [245189] by Wenson Hsieh
  • 5 edits in trunk/Source/WebKit

Let WebKit clients supply an application name for user agent in modern compatibility mode
https://bugs.webkit.org/show_bug.cgi?id=197782
<rdar://problem/50646747>

Reviewed by Beth Dakin.

Add plumbing for a new private property on WKWebpagePreferences.

  • UIProcess/API/APIWebsitePolicies.cpp:

(API::WebsitePolicies::copy const):

  • UIProcess/API/APIWebsitePolicies.h:
  • UIProcess/API/Cocoa/WKWebpagePreferences.mm:

(-[WKWebpagePreferences _applicationNameForUserAgentWithModernCompatibility]):
(-[WKWebpagePreferences _setApplicationNameForUserAgentWithModernCompatibility:]):

  • UIProcess/API/Cocoa/WKWebpagePreferencesPrivate.h:
12:45 PM Changeset in webkit [245188] by keith_miller@apple.com
  • 1499 edits
    296 adds
    51 deletes in trunk/JSTests

Update test262 tests.

12:41 PM Changeset in webkit [245187] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

The active tab sometimes app naps even though it should not
https://bugs.webkit.org/show_bug.cgi?id=197791
<rdar://problem/48460054>

Reviewed by Geoffrey Garen.

The WebPage constructor was initializing m_activityState but not calling updateThrottleState().
As a result, we would not take a UserActivity even when warranted by the initial activity state.

  • WebProcess/WebPage/WebPage.cpp:
12:01 PM Changeset in webkit [245186] by Fujii Hironori
  • 14 edits in trunk/Source

[WinCairo] storage/indexeddb tests are timing out
https://bugs.webkit.org/show_bug.cgi?id=196289

Reviewed by Alex Christensen.

Source/WebKit:

storage/indexeddb tests were timing out for WinCairo port because
WebKit::NetworkCache classes were not implemented yet for Windows.

Implement WebKit::NetworkCache classes by using WTF::FileSystem
functions.

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::readFile): Use
IOChannel::isOpened() to check the channel is opened instead of
checking the file descriptor.

  • NetworkProcess/cache/NetworkCacheBlobStorage.cpp:

(WebKit::NetworkCache::BlobStorage::add):
(WebKit::NetworkCache::BlobStorage::remove):

  • NetworkProcess/cache/NetworkCacheData.cpp:

(WebKit::NetworkCache::Data::mapToFile const):
(WebKit::NetworkCache::mapFile):
(WebKit::NetworkCache::adoptAndMapFile):
(WebKit::NetworkCache::makeSalt):
(WebKit::NetworkCache::readOrMakeSalt):

  • NetworkProcess/cache/NetworkCacheData.h:

(WebKit::NetworkCache::Data::isEmpty const):
(WebKit::NetworkCache::Data::size const):

  • NetworkProcess/cache/NetworkCacheDataCurl.cpp:

(WebKit::NetworkCache::Data::Data):
(WebKit::NetworkCache::Data::empty):
(WebKit::NetworkCache::Data::data const):
(WebKit::NetworkCache::Data::isNull const):
(WebKit::NetworkCache::Data::apply const):
(WebKit::NetworkCache::Data::subrange const):
(WebKit::NetworkCache::concatenate):
(WebKit::NetworkCache::Data::adoptMap): Deleted.

  • NetworkProcess/cache/NetworkCacheFileSystem.cpp:

(WebKit::NetworkCache::traverseDirectory):
(WebKit::NetworkCache::fileTimes):
(WebKit::NetworkCache::updateFileModificationTimeIfNeeded):
(WebKit::NetworkCache::isSafeToUseMemoryMapForPath):

  • NetworkProcess/cache/NetworkCacheIOChannel.h:

(WebKit::NetworkCache::IOChannel::isOpened const):
(WebKit::NetworkCache::IOChannel::fileDescriptor const): Deleted.

  • NetworkProcess/cache/NetworkCacheIOChannelCurl.cpp:

(WebKit::NetworkCache::IOChannel::IOChannel):
(WebKit::NetworkCache::IOChannel::~IOChannel):
(WebKit::NetworkCache::runTaskInQueue):
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::write):

Source/WTF:

  • wtf/FileSystem.h: Added hardLink.
  • wtf/glib/FileSystemGlib.cpp:

(WTF::FileSystemImpl::hardLink):
(WTF::FileSystemImpl::hardLinkOrCopyFile):

  • wtf/posix/FileSystemPOSIX.cpp:

(WTF::FileSystemImpl::hardLink):
(WTF::FileSystemImpl::hardLinkOrCopyFile):

  • wtf/win/FileSystemWin.cpp:

(WTF::FileSystemImpl::hardLink):
(WTF::FileSystemImpl::hardLinkOrCopyFile):
Added hardLink. Let hardLinkOrCopyFile use the hardLink.

12:01 PM Changeset in webkit [245185] by Chris Dumez
  • 6 edits in trunk

Do not wait until requestPermission() is called to fire deviceorientation events if permission was already granted
https://bugs.webkit.org/show_bug.cgi?id=197750

Reviewed by Geoffrey Garen.

Source/WebKit:

The UIProcess remembers previous device orientation permission decisions per origin for the duration of the browsing
session. However, the WebContent process was not aware of previous decisions and would therefore not fire any
deviceorientation / devicemotion events until the JS has called requestPermission(). This patches addresses this
problem by having the UIProcess communicate any previous permission decision for the origin via WebSitePolicies.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedNavigationPolicyDecision):

  • UIProcess/WebsiteData/WebDeviceOrientationAndMotionAccessController.cpp:

(WebKit::WebDeviceOrientationAndMotionAccessController::shouldAllowAccess):
(WebKit::WebDeviceOrientationAndMotionAccessController::cachedDeviceOrientationPermission const):
(WebKit::WebDeviceOrientationAndMotionAccessController::deviceOrientationPermission const): Deleted.

  • UIProcess/WebsiteData/WebDeviceOrientationAndMotionAccessController.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm:

(TEST):

11:56 AM Changeset in webkit [245184] by keith_miller@apple.com
  • 1 edit
    1 delete in trunk/Tools

Remove legacy test262 import script
https://bugs.webkit.org/show_bug.cgi?id=197788

Reviewed by Yusuke Suzuki.

import-test262-tests doesn't work anymore. We should be using test262-import instead.

  • Scripts/import-test262-tests: Removed.
11:52 AM Changeset in webkit [245183] by Chris Dumez
  • 17 edits in trunk/Source

Add WKWebViewConfiguration._canShowWhileLocked SPI
https://bugs.webkit.org/show_bug.cgi?id=197777
<rdar://problem/50065100>

Reviewed by Tim Horton.

Source/WebCore/PAL:

  • pal/spi/cocoa/QuartzCoreSPI.h:

Source/WebKit:

  • Platform/mac/LayerHostingContext.h:
  • Platform/mac/LayerHostingContext.mm:

(WebKit::LayerHostingContext::createForExternalHostingProcess):

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::copy const):

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::canShowWhileLocked const):
(API::PageConfiguration::setCanShowWhileLocked):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _setCanShowWhileLocked:]):
(-[WKWebViewConfiguration _canShowWhileLocked]):

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

(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.mm:

(WebKit::PlatformCALayerRemoteCustom::PlatformCALayerRemoteCustom):

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

(WebKit::RemoteLayerTreeContext::canShowWhileLocked const):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_canShowWhileLocked):
(WebKit::m_shrinkToFitContentTimer): Deleted.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::canShowWhileLocked const):

11:46 AM Changeset in webkit [245182] by cturner@igalia.com
  • 2 edits in trunk/Tools

[WPE] Forward libepoxy cflags
https://bugs.webkit.org/show_bug.cgi?id=197784

Reviewed by Žan Doberšek.

  • wpe/backends/CMakeLists.txt: This is required to keep

-DMESA_EGL_NO_X11_HEADERS in the build, if we don't do this, EGL ends
up trying to include X11 headers even when they're not present in the
environment.

11:40 AM Changeset in webkit [245181] by Simon Fraser
  • 3 edits
    2 adds in trunk
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.
11:15 AM Changeset in webkit [245180] by bshafiei@apple.com
  • 7 edits in branches/safari-608.1.24-branch/Source

Versioning.

11:03 AM Changeset in webkit [245179] by Michael Catanzaro
  • 13 edits in trunk

Fix a bunch of compiler warnings
https://bugs.webkit.org/show_bug.cgi?id=197785

Reviewed by Don Olmstead.

Source/ThirdParty/ANGLE:

Add compiler flags to suppress various warnings triggered by the new version of ANGLE.

  • CMakeLists.txt:

Source/WebCore:

  • CMakeLists.txt: WebCoreTestSupport should accept extra SYSTEM includes.
  • PlatformGTK.cmake: GTK includes should be added to SYSTEM headers to avoid warnings.
  • inspector/InspectorCanvas.cpp: Add preprocessor guards to fix unused function warning.
  • rendering/RenderLayer.cpp: Fix unused variable warning.

(WebCore::RenderLayer::updateClipRects):

Source/WebKit:

Guard Cocoa-specific format modifier to avoid -Wformat warning.

  • NetworkProcess/AdClickAttributionManager.cpp:

(WebKit::AdClickAttributionManager::fireConversionRequest):

Tools:

Add preprocessor guards to avoid -Wunused-function warnings.

  • TestWebKitAPI/Tests/WebCore/FloatRect.cpp:
  • TestWebKitAPI/Tests/WebCore/IntRect.cpp:
  • TestWebKitAPI/Tests/WebCore/TransformationMatrix.cpp:
10:19 AM Changeset in webkit [245178] by Chris Fleizach
  • 3 edits
    2 adds in trunk

AX: Crash at WebKit: WebKit::WebSpeechSynthesisClient::speak
https://bugs.webkit.org/show_bug.cgi?id=197761
<rdar://problem/50237614>

Reviewed by Per Arne Vollan.

Source/WebKit:

It's valid for the incoming voice to be nil, so we need to protect against that.

Tests: fast/speechsynthesis/speech-synthesis-real-client-version.html

  • WebProcess/WebCoreSupport/WebSpeechSynthesisClient.cpp:

(WebKit::WebSpeechSynthesisClient::speak):

LayoutTests:

  • fast/speechsynthesis/speech-synthesis-real-client-version-expected.txt: Added.
  • fast/speechsynthesis/speech-synthesis-real-client-version.html: Added.
9:56 AM Changeset in webkit [245177] by ysuzuki@apple.com
  • 3 edits in trunk/Source/WTF

[WTF] Remove "private:" from Noncopyable and Nonmovable macros
https://bugs.webkit.org/show_bug.cgi?id=197767

Reviewed by Saam Barati.

We no longer need "private:".

  • wtf/Noncopyable.h:
  • wtf/Nonmovable.h:
9:46 AM Changeset in webkit [245176] by Michael Catanzaro
  • 11 edits
    1 add in trunk

[WPE][GTK] Add webkit_frame_get_id() API
https://bugs.webkit.org/show_bug.cgi?id=197270

Reviewed by Carlos Garcia Campos.

Source/WebKit:

It's as simple as can be: just an API to return the ID of a frame.

  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp:

(webkit_frame_get_id):

  • WebProcess/InjectedBundle/API/gtk/WebKitFrame.h:
  • WebProcess/InjectedBundle/API/wpe/WebKitFrame.h:
  • WebProcess/InjectedBundle/API/wpe/docs/wpe-webextensions-1.0-sections.txt:

Tools:

This was hard, but I added a test to verify that two different WebKitFrames of the same
WebKitWebPage return two different frame IDs.

  • TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp:

(WebKitFrameTest::willSubmitFormCallback):
(WebKitFrameTest::testSubframe):
(registerTests):

  • TestWebKitAPI/Tests/WebKitGLib/TestFrame.cpp:

(testWebKitFrameSubframe):
(beforeAll):

  • TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:

(willSubmitFormCallback):

  • TestWebKitAPI/Tests/WebKitGLib/resources/form-in-frame.html: Added.
  • TestWebKitAPI/Tests/WebKitGLib/resources/webkitglib-tests.gresource.xml:
9:20 AM Changeset in webkit [245175] by Antti Koivisto
  • 4 edits
    2 adds in trunk

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.
9:05 AM Changeset in webkit [245174] by Michael Catanzaro
  • 15 edits in trunk

[WPE][GTK] Add WebKitWebPage::did-associate-form-controls-for-frame and deprecate original did-associate-form-controls
https://bugs.webkit.org/show_bug.cgi?id=197271

Reviewed by Youenn Fablet.

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::didAssociateFormControlsTimerFired):

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

Source/WebKit:

  • WebProcess/InjectedBundle/API/c/WKBundlePageFormClient.h:
  • WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:

(webkit_web_page_class_init):

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]):

  • WebProcess/InjectedBundle/APIInjectedBundleFormClient.h:

(API::InjectedBundle::FormClient::didAssociateFormControls):

  • WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:

(WebKit::InjectedBundlePageFormClient::didAssociateFormControls):

  • WebProcess/InjectedBundle/InjectedBundlePageFormClient.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::didAssociateFormControls):

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Tools:

  • TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:

(formControlsAssociatedForFrameCallback):
(pageCreatedCallback):
(formControlsAssociatedCallback): Deleted.

9:03 AM Changeset in webkit [245173] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[iOS Debug] Layout Test webgl/2.0.0/conformance2/attribs/gl-vertexattribipointer.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=197778

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark test as slow.
7:42 AM Changeset in webkit [245172] by Adrian Perez de Castro
  • 2 edits in trunk/Tools

[Flatpak] Use the safe PyYAML loader if available
https://bugs.webkit.org/show_bug.cgi?id=197771

Reviewed by Philippe Normand.

  • flatpak/flatpakutils.py:

(load_manifest): Use yaml.safe_load() if available, with yaml.load()
still used as fallback when the former is not provided by the module.

Note: See TracTimeline for information about the timeline view.