Timeline
May 18, 2021:
- 10:21 PM Changeset in webkit [277716] by
-
- 6 edits in trunk/Source/JavaScriptCore
[JSC] Prune CommonSlowPaths of JITPropertyAccess functions
https://bugs.webkit.org/show_bug.cgi?id=225953
Reviewed by Mark Lam.
A few bytecode operations with slow paths in JITPropertyAccess appear to have either redundant or unnecessary
"common" slow paths; namely, get_private_name and del_by_val already have LLInt slow paths, while in_by_id
and get_by_id_with_this can have their "common" slow path moved to be LLInt-specific.
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- runtime/CommonSlowPaths.cpp:
- runtime/CommonSlowPaths.h:
- 9:21 PM Changeset in webkit [277715] by
-
- 12 edits in trunk
Record gradient and pattern filled canvas text in the correct coordinate system.
https://bugs.webkit.org/show_bug.cgi?id=222881
<rdar://75155310>
Reviewed by Myles C. Maxfield.
Source/WebCore:
When we draw canvas text with a gradient or pattern, we use
GraphicsContext::clipToDrawingCommands to set up a mask, which
we then draw a filled rectangle with. When GPUP canvas rendering is
enabled, Recorder::clipToDrawingCommands needs to ensure that the
commands that draw the text are recorded in a coordinate system that
matches the one that will be used to draw into the mask ImageBuffer
during replaying. (And for complete correctness, an otherwise fresh
GraphicsContext must be used for recording the text drawing commands,
since it's possible other GraphicsContext state could be
introspected.)
So we handle this by setting up a nested display list recorder,
targeting the same DisplayList but with a fresh GraphicsContext with
the right initial CTM, to record the nested drawing commands into.
The refactoring in https://trac.webkit.org/changeset/273291/webkit
dropped some code that set up the CTM for the nested drawing commands,
which is restored here.
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::drawTextUnchecked):
- platform/graphics/displaylists/DisplayListDrawGlyphsRecorder.h:
(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphsDeconstruction const):
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::Recorder):
(WebCore::DisplayList::Recorder::~Recorder):
(WebCore::DisplayList::Recorder::clipToDrawingCommands):
- platform/graphics/displaylists/DisplayListRecorder.h:
LayoutTests:
Re-enable GPUP canvas rendering in the affected tests.
- http/tests/canvas/color-fonts/fill-gradient-sbix-2.html:
- http/tests/canvas/color-fonts/fill-gradient-sbix-3.html:
- http/tests/canvas/color-fonts/fill-gradient-sbix-4.html:
- http/tests/canvas/color-fonts/stroke-gradient-sbix-2.html:
- http/tests/canvas/color-fonts/stroke-gradient-sbix-3.html:
- http/tests/canvas/color-fonts/stroke-gradient-sbix-4.html:
- 8:24 PM Changeset in webkit [277714] by
-
- 13 edits1 copy1 move3 adds1 delete in trunk
Make AirAllocateRegistersByGraphColoring use less memory
https://bugs.webkit.org/show_bug.cgi?id=225848
Reviewed by Filip Pizlo.
Source/JavaScriptCore:
We've had some jetsam problems caused by the main Air register allocator, which caused us to lower Options::maximumTmpsForGraphColoring.
Hence this patch tries to improve the memory usage of the allocator. It includes several changes:
- Change the datastructure used for representing the interference graph. Before it was effectively a HashSet<std::pair<uint16_t, uint16_t>. Now, it is either a Bitvector (for n < 400 for now, can be tweaked easily), or a Vector<LikelyDenseUnsignedIntegerSet<uint16_t>> otherwise.
LikelyDenseUnsignedIntegerSet is a new datastructure introduced by this patch, it is either a HashSet if very sparse, or a BitVector + an amount to shift it by.
This is by far the largest memory reduction in this patch, it reduces the maximum memory used for an interference graph in tsf-wasm in JetStream2 from 16MB to 700kB, and in mruby-wasm.aotoki.dev from 262MB to 20MB (the later only happen when we increase Options::maximumTmpsForGraphColoring.. this is the exact function which caused us to lower it).
Its effect on smaller functions in JetStream2 is rarely as dramatic but always an improvement, and improvements between 2x and 5x are extremely common (10x to 30x are significantly rarer but do occur).
- In order to easily test this change and any further change to this datastructure, the old approach was preserved as InterferenceHashSet, and a template to run two such datastructures in parallel, checking their equivalence was added: InstrumentedInterferenceGraph. Running with it and reportInterferenceGraphMemoryUse set to true was used to compute the numbers given above.
- There was already some template parameter to change the size of the tmp indices from unsigned to uint16_t but the code failed to compile unless it was unsigned. I fixed this, made more consistent use of it, and switched to uint16_t in the very common case that we have less than 65k Tmps (we can have more despite the option because of spilling). This halved the memory usage of various other datastructures in the register allocator
- unspillableTmps was a HashSet<unsigned>. Since it is often quite dense (often around 20% on JetStream2), I replaced it by a Bitvector instead
- m_biases was a HashMap<IndexType, HashSet<IndexType>>. Since it is extremely rare that the sets have more than 8 elements (from looking at some instrumented run of JetStream2), I replaced it by HashMap<IndexType, SmallSet<IndexType>>. This not only significantly reduces memory, but nearly halves the time spent in assignColors(around 80ms -> 40ms in JetStream 2)
- UseCounts was needlessly general: it is only used by the register allocator (all other references to UseCounts refer to the completely different B3::UseCounts), so there is no point in it computing, and then storing lots of irrelevant data. A float is also more than enough precision (especially since it is pretty much always 1, 10, 100, or 1000 in practice…). Also, since we only need it indexed by Tmps, we can use a Vector with AbsoluteTmpMapper instead of its HashMap. These changes are not just memory savings, they also make selectSpill way faster (570ms -> 250ms on my machine on JetStream2)
- While I was at it, I did a couple of other tweaks to the logic of selectSpill. In particular, instead of having to check for isFastTmp every time, I just put the fast tmps directly in unspillableTmps, which prevents them from getting added to m_spillWorklist in the first place. This + a bit of clean-up (for example putting an early exit instead of setting score to infinity in the case of dead tmps) resulted in a further perf win (to roughly 200ms spent in selectSpill() on JetStream2)
All together, this patch reduces the time spent in the register allocator by roughly 15 to 20% in JetStream2 (tested both with the Briggs and the IRC allocators on my MBP 2019).
I do not yet have precise performance numbers for this exact patch, but benchmarking a previous version of it (with a less optimized interference graph) resulted in significant RAMification improvements (around 1%), and more surprisingly some JetStream2 improvements on weaker machines (e.g. an iPhone 7 gained > 1%). I believe these gains come either from less trashing of the caches, or less contention caused by the memory traffic.
I will try to update the bugzilla with more up-to-date thorough results when I get them.
This patch does not increase Options::maximumTmpsForGraphColoring, I intend to do that in a separate patch to make it easier to revert in case of a problem.
- b3/B3ReduceLoopStrength.cpp:
(JSC::B3::ReduceLoopStrength::reduceByteCopyLoopsToMemcpy):
- b3/air/AirAllocateRegistersAndStackByLinearScan.cpp:
- b3/air/AirAllocateRegistersByGraphColoring.cpp:
(JSC::B3::Air::allocateRegistersByGraphColoring):
- b3/air/AirCode.h:
(JSC::B3::Air::Code::forEachFastTmp const):
- b3/air/AirUseCounts.h:
(JSC::B3::Air::UseCounts::UseCounts):
(JSC::B3::Air::UseCounts::isConstDef const):
(JSC::B3::Air::UseCounts::numWarmUsesAndDefs const):
(JSC::B3::Air::UseCounts::dump const):
- parser/Nodes.h:
Source/WTF:
Two changes: the addition of LikelyDenseUnsignedIntegerSet, and various improvements to Small(Ptr)Set.
The latter include:
- Renaming SmallPtrSet into SmallSet, as it now supports integers as well as pointers.
- Reducing its size by sharing the same storage for m_buffer and for m_smallStorage.
This is safe to do, because all operations branch on isSmall() which depends purely on m_capacity.
- Adding trivial size(), isEmpty() and memoryUse() methods
- Adding a comment at the top of the file explaining when to use, and (more importantly) not to use SmallSet.
LikelyDenseUnsignedIntegerSet is an even more specialized data structure, that can represent sets of unsigned integers very compactly if they are clustered.
Finally I added an outOfLineMemoryUse() method to BitVector, making it more convenient to compare the memory consumption of different data structures in the register allocator.
- WTF.xcodeproj/project.pbxproj:
- wtf/BitVector.h:
- wtf/CMakeLists.txt:
- wtf/LikelyDenseUnsignedIntegerSet.cpp: Copied from Source/WTF/wtf/SmallPtrSet.cpp.
- wtf/LikelyDenseUnsignedIntegerSet.h: Added.
(WTF::LikelyDenseUnsignedIntegerSet::LikelyDenseUnsignedIntegerSet):
(WTF::LikelyDenseUnsignedIntegerSet::~LikelyDenseUnsignedIntegerSet):
(WTF::LikelyDenseUnsignedIntegerSet::contains const):
(WTF::LikelyDenseUnsignedIntegerSet::add):
(WTF::LikelyDenseUnsignedIntegerSet::size const):
(WTF::LikelyDenseUnsignedIntegerSet::iterator::iterator):
(WTF::LikelyDenseUnsignedIntegerSet::iterator::m_shift):
(WTF::LikelyDenseUnsignedIntegerSet::iterator::operator++):
(WTF::LikelyDenseUnsignedIntegerSet::iterator::operator* const):
(WTF::LikelyDenseUnsignedIntegerSet::iterator::operator== const):
(WTF::LikelyDenseUnsignedIntegerSet::iterator::operator!= const):
(WTF::LikelyDenseUnsignedIntegerSet::begin const):
(WTF::LikelyDenseUnsignedIntegerSet::end const):
(WTF::LikelyDenseUnsignedIntegerSet::memoryUse const):
(WTF::LikelyDenseUnsignedIntegerSet::validate const):
(WTF::LikelyDenseUnsignedIntegerSet::isBitVector const):
(WTF::LikelyDenseUnsignedIntegerSet::isValidValue const):
(WTF::LikelyDenseUnsignedIntegerSet::transitionToHashSet):
(WTF::LikelyDenseUnsignedIntegerSet::transitionToBitVector):
- wtf/SmallPtrSet.h: Removed.
- wtf/SmallSet.cpp: Renamed from Source/WTF/wtf/SmallPtrSet.cpp.
- wtf/SmallSet.h: Added.
Tools:
Simply added some tests for SmallSet.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/SmallSet.cpp: Added.
(TestWebKitAPI::testSmallSetOfUnsigned):
(TestWebKitAPI::testSmallSetOfPointers):
(TestWebKitAPI::testVectorsOfSmallSetsOfUnsigned):
(TestWebKitAPI::TEST):
- 8:10 PM Changeset in webkit [277713] by
-
- 3 edits in trunk
allowsContentJavaScript API not applied from defaultWebpagePreferences
https://bugs.webkit.org/show_bug.cgi?id=225957
Reviewed by Wenson Hsieh.
New API test: WebKit.AllowsContentJavaScriptFromDefaultPreferences
- UIProcess/API/APIWebsitePolicies.cpp:
(API::WebsitePolicies::copy const):
allowsContentJavaScript works fine on the per-navigation-level WKWebpagePreferences,
but is ignored if applied on the WKWebViewConfiguration's defaultWebpagePreferences,
because it is not copied in copy(). Copy it!
- 8:03 PM Changeset in webkit [277712] by
-
- 1 copy in tags/Safari-612.1.15.1.2
Tag Safari-612.1.15.1.2.
- 7:59 PM Changeset in webkit [277711] by
-
- 8 edits in branches/safari-612.1.15.1-branch/Source
Versioning.
WebKit-7612.1.15.1.2
- 6:57 PM Changeset in webkit [277710] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r277683): WebContent process crashing in unit tests
https://bugs.webkit.org/show_bug.cgi?id=225955
rdar://78184041
Unreviewed partial revert.
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
Revert the CRASH() part of r277683 because it is causing mysterious unit testing failures.
- 6:51 PM Changeset in webkit [277709] by
-
- 15 edits in trunk/Source
Use WTF::Locker for locking BaseAudioContext's graph lock
https://bugs.webkit.org/show_bug.cgi?id=225935
Reviewed by Sam Weinig.
Source/WebCore:
Use WTF::Locker for locking BaseAudioContext's graph lock instead of our own AutoLocker.
Also use WTF::RecursiveLock instead of duplicating the recursive locking logic inside
BaseAudioContext. This means we no longer need lock() / tryLock() / unlock() functions
on BaseAudioContext. We now expose the BaseAudioContext's RecursiveLock via a graphLock()
getter and the caller sites can just use a Locker.
- Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::setBuffer):
- Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::connect):
(WebCore::AudioNode::disconnect):
(WebCore::AudioNode::setChannelCount):
(WebCore::AudioNode::setChannelCountMode):
(WebCore::AudioNode::setChannelInterpretation):
(WebCore::AudioNode::enableOutputsIfNecessary):
(WebCore::AudioNode::decrementConnectionCount):
(WebCore::AudioNode::deref):
- Modules/webaudio/AudioWorkletNode.cpp:
(WebCore::AudioWorkletNode::create):
- Modules/webaudio/BaseAudioContext.cpp:
(WebCore::BaseAudioContext::uninitialize):
(WebCore::BaseAudioContext::refSourceNode):
(WebCore::BaseAudioContext::addDeferredDecrementConnectionCount):
(WebCore::BaseAudioContext::handlePreRenderTasks):
(WebCore::BaseAudioContext::outputPosition):
(WebCore::BaseAudioContext::handlePostRenderTasks):
(WebCore::BaseAudioContext::deleteMarkedNodes):
(WebCore::BaseAudioContext::removeMarkedSummingJunction):
(WebCore::BaseAudioContext::handleDirtyAudioSummingJunctions):
(WebCore::BaseAudioContext::handleDirtyAudioNodeOutputs):
- Modules/webaudio/BaseAudioContext.h:
(WebCore::BaseAudioContext::graphLock):
(WebCore::BaseAudioContext::isGraphOwner const):
- Modules/webaudio/ChannelMergerNode.cpp:
(WebCore::ChannelMergerNode::ChannelMergerNode):
- Modules/webaudio/ConvolverNode.cpp:
(WebCore::ConvolverNode::setBuffer):
- Modules/webaudio/MediaElementAudioSourceNode.cpp:
(WebCore::MediaElementAudioSourceNode::setFormat):
- Modules/webaudio/MediaStreamAudioSourceNode.cpp:
(WebCore::MediaStreamAudioSourceNode::setFormat):
- Modules/webaudio/OfflineAudioContext.cpp:
(WebCore::OfflineAudioContext::suspendRendering):
(WebCore::OfflineAudioContext::shouldSuspend):
(WebCore::OfflineAudioContext::didSuspendRendering):
- Modules/webaudio/OfflineAudioContext.h:
- Modules/webaudio/WaveShaperNode.cpp:
(WebCore::WaveShaperNode::setOversample):
Source/WTF:
- wtf/RecursiveLockAdapter.h:
(WTF::RecursiveLockAdapter::isOwner const):
Add isOwner() function that returns true if the current thread is holding the lock.
This is needed for WebAudio purposes.
- 6:47 PM Changeset in webkit [277708] by
-
- 2 edits in trunk/Tools
Unreviewed, reverting r277675.
https://bugs.webkit.org/show_bug.cgi?id=225954
Broke Mac API tests trying to fix iOS
Reverted changeset:
"[webkitpy] Forward booted simulators to children processes"
https://bugs.webkit.org/show_bug.cgi?id=225933
https://trac.webkit.org/changeset/277675
- 6:24 PM Changeset in webkit [277707] by
-
- 1 copy in tags/Safari-612.1.15.1.1
Tag Safari-612.1.15.1.1.
- 6:07 PM Changeset in webkit [277706] by
-
- 1 copy in tags/Safari-612.1.15.0.1
Tag Safari-612.1.15.0.1.
- 5:49 PM Changeset in webkit [277705] by
-
- 1 copy in tags/Safari-612.1.15.2.1
Tag Safari-612.1.15.2.1.
- 5:46 PM Changeset in webkit [277704] by
-
- 8 edits in branches/safari-612.1.15.2-branch/Source
Versioning.
WebKit-7612.1.15.2.1
- 5:42 PM Changeset in webkit [277703] by
-
- 1 copy in tags/Safari-612.1.15.3.1
Tag Safari-612.1.15.3.1.
- 5:41 PM Changeset in webkit [277702] by
-
- 5 edits2 adds in branches/safari-612.1.15.2-branch
Cherry-pick r277452. rdar://problem/78181636
REGRESSION (r276945): [iOS] Focus rings are too large
https://bugs.webkit.org/show_bug.cgi?id=225778
<rdar://problem/77858341>
Reviewed by Tim Horton.
Source/WebCore:
r276945 updated scaling logic to ensure that the scale of the base CTM
matches the device scale factor. The change itself makes our base CTM
more correct, but exposed a longstanding bug with our focus ring
implementation.
Focus rings are drawn using CoreGraphics, using CGFocusRingStyle. On
macOS, the style is initialized using NSInitializeCGFocusRingStyleForTime.
However, on iOS, we initialize the style ourselves, using UIKit constants.
Currently, the focus ring's style's radius is set to
+[UIFocusRingStyle cornerRadius], a constant of 8. This is the longstanding
issue. CGFocusRingStyle's radius is not a corner radius, but is the
width of the focus ring. In UIKit, this width is represented by
+[UIFocusRingStyle borderThickness], a constant of 3. WebKit has always
intended to match this width, as evidenced by the default outline-width
of 3px in the UA style sheet.
Considering the large disparity between the existing and expected radius
value, it may be surprising that this mistake has gone unnoticed since
2019, when focus rings were first introduced on iOS. This is where r276945
comes into play. Prior to r276945, the scale of the base CTM did not match
the device scale factor. This meant that CG scaled down the constant of 8
to 4 CSS pixels (1 (base CTM) / 2 (device scale factor)). After r276945,
the two scales are equal and the focus ring is drawn as 8 CSS pixels, much
larger than the expected 3px.
Test: fast/forms/ios/focus-ring-size.html
- platform/graphics/cocoa/GraphicsContextCocoa.mm: (WebCore::drawFocusRingAtTime):
To fix, use the correct SPI to get the focus ring width,
+[UIFocusRingStyle borderThickness]. This ensures that focus rings have
the right width, following r276945.
The change also fixes focus ring repaint issues that arose from the
fact that the outline-width was 3px, but the painted width was 4px.
Source/WebCore/PAL:
- pal/spi/ios/UIKitSPI.h:
LayoutTests:
Added a regression test to verify the size of the focus ring on iOS.
The test works by drawing an overlay on top of an input element, that
is just large enough to obscure the focus ring. If the focus ring is
too large, the ring will not obscured, leading to a mismatch failure.
- fast/forms/ios/focus-ring-size-expected.html: Added.
- fast/forms/ios/focus-ring-size.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277452 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:40 PM Changeset in webkit [277701] by
-
- 5 edits2 adds in branches/safari-612.1.15.3-branch
Cherry-pick r277452. rdar://problem/78181647
REGRESSION (r276945): [iOS] Focus rings are too large
https://bugs.webkit.org/show_bug.cgi?id=225778
<rdar://problem/77858341>
Reviewed by Tim Horton.
Source/WebCore:
r276945 updated scaling logic to ensure that the scale of the base CTM
matches the device scale factor. The change itself makes our base CTM
more correct, but exposed a longstanding bug with our focus ring
implementation.
Focus rings are drawn using CoreGraphics, using CGFocusRingStyle. On
macOS, the style is initialized using NSInitializeCGFocusRingStyleForTime.
However, on iOS, we initialize the style ourselves, using UIKit constants.
Currently, the focus ring's style's radius is set to
+[UIFocusRingStyle cornerRadius], a constant of 8. This is the longstanding
issue. CGFocusRingStyle's radius is not a corner radius, but is the
width of the focus ring. In UIKit, this width is represented by
+[UIFocusRingStyle borderThickness], a constant of 3. WebKit has always
intended to match this width, as evidenced by the default outline-width
of 3px in the UA style sheet.
Considering the large disparity between the existing and expected radius
value, it may be surprising that this mistake has gone unnoticed since
2019, when focus rings were first introduced on iOS. This is where r276945
comes into play. Prior to r276945, the scale of the base CTM did not match
the device scale factor. This meant that CG scaled down the constant of 8
to 4 CSS pixels (1 (base CTM) / 2 (device scale factor)). After r276945,
the two scales are equal and the focus ring is drawn as 8 CSS pixels, much
larger than the expected 3px.
Test: fast/forms/ios/focus-ring-size.html
- platform/graphics/cocoa/GraphicsContextCocoa.mm: (WebCore::drawFocusRingAtTime):
To fix, use the correct SPI to get the focus ring width,
+[UIFocusRingStyle borderThickness]. This ensures that focus rings have
the right width, following r276945.
The change also fixes focus ring repaint issues that arose from the
fact that the outline-width was 3px, but the painted width was 4px.
Source/WebCore/PAL:
- pal/spi/ios/UIKitSPI.h:
LayoutTests:
Added a regression test to verify the size of the focus ring on iOS.
The test works by drawing an overlay on top of an input element, that
is just large enough to obscure the focus ring. If the focus ring is
too large, the ring will not obscured, leading to a mismatch failure.
- fast/forms/ios/focus-ring-size-expected.html: Added.
- fast/forms/ios/focus-ring-size.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277452 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:33 PM Changeset in webkit [277700] by
-
- 8 edits in branches/safari-612.1.15.3-branch/Source
Versioning.
WebKit-7612.1.15.3.1
- 5:31 PM Changeset in webkit [277699] by
-
- 4 edits in trunk/LayoutTests
[GTK] Unreviewed test gardening. Update two baselines of inspector test that were failing.
- platform/gtk/TestExpectations:
- platform/gtk/http/tests/inspector/network/resource-sizes-network-expected.txt:
- platform/gtk/inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
- 5:26 PM Changeset in webkit [277698] by
-
- 3 edits in trunk/Source/WebCore
The containing block for a fixed renderer has to be a type of RenderBlock
https://bugs.webkit.org/show_bug.cgi?id=225924
<rdar://77968716>
Reviewed by Simon Fraser.
While an atomic inline level box with layout containment can certainly be the containing block for fixed (and absolute) boxes,
the current render tree logic requires a containing block to be the type of RenderBlock.
- rendering/RenderElement.cpp:
(WebCore::nearestNonAnonymousContainingBlockIncludingSelf): make this function static so that we can call it from containingBlockForFixedPosition()
(WebCore::RenderElement::containingBlockForFixedPosition const):
(WebCore::RenderElement::containingBlockForAbsolutePosition const):
- 4:55 PM Changeset in webkit [277697] by
-
- 5 edits2 adds in branches/safari-612.1.15.1-branch
Cherry-pick r277452. rdar://problem/78179698
REGRESSION (r276945): [iOS] Focus rings are too large
https://bugs.webkit.org/show_bug.cgi?id=225778
<rdar://problem/77858341>
Reviewed by Tim Horton.
Source/WebCore:
r276945 updated scaling logic to ensure that the scale of the base CTM
matches the device scale factor. The change itself makes our base CTM
more correct, but exposed a longstanding bug with our focus ring
implementation.
Focus rings are drawn using CoreGraphics, using CGFocusRingStyle. On
macOS, the style is initialized using NSInitializeCGFocusRingStyleForTime.
However, on iOS, we initialize the style ourselves, using UIKit constants.
Currently, the focus ring's style's radius is set to
+[UIFocusRingStyle cornerRadius], a constant of 8. This is the longstanding
issue. CGFocusRingStyle's radius is not a corner radius, but is the
width of the focus ring. In UIKit, this width is represented by
+[UIFocusRingStyle borderThickness], a constant of 3. WebKit has always
intended to match this width, as evidenced by the default outline-width
of 3px in the UA style sheet.
Considering the large disparity between the existing and expected radius
value, it may be surprising that this mistake has gone unnoticed since
2019, when focus rings were first introduced on iOS. This is where r276945
comes into play. Prior to r276945, the scale of the base CTM did not match
the device scale factor. This meant that CG scaled down the constant of 8
to 4 CSS pixels (1 (base CTM) / 2 (device scale factor)). After r276945,
the two scales are equal and the focus ring is drawn as 8 CSS pixels, much
larger than the expected 3px.
Test: fast/forms/ios/focus-ring-size.html
- platform/graphics/cocoa/GraphicsContextCocoa.mm: (WebCore::drawFocusRingAtTime):
To fix, use the correct SPI to get the focus ring width,
+[UIFocusRingStyle borderThickness]. This ensures that focus rings have
the right width, following r276945.
The change also fixes focus ring repaint issues that arose from the
fact that the outline-width was 3px, but the painted width was 4px.
Source/WebCore/PAL:
- pal/spi/ios/UIKitSPI.h:
LayoutTests:
Added a regression test to verify the size of the focus ring on iOS.
The test works by drawing an overlay on top of an input element, that
is just large enough to obscure the focus ring. If the focus ring is
too large, the ring will not obscured, leading to a mismatch failure.
- fast/forms/ios/focus-ring-size-expected.html: Added.
- fast/forms/ios/focus-ring-size.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277452 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:55 PM Changeset in webkit [277696] by
-
- 2 edits in branches/safari-612.1.15.1-branch/Source/WebCore
Revert "Cherry-pick r277459. rdar://problem/78110796"
This reverts commit r277597.
- 4:55 PM Changeset in webkit [277695] by
-
- 29 edits1 add1 delete in branches/safari-612.1.15.1-branch
Revert "Cherry-pick r277505. rdar://problem/78110796"
This reverts commit r277598.
- 4:55 PM Changeset in webkit [277694] by
-
- 2 edits in branches/safari-612.1.15.1-branch/Source/WebCore
Revert "Cherry-pick r277594. rdar://problem/78130222"
This reverts commit r277621
- 4:55 PM Changeset in webkit [277693] by
-
- 2 edits in branches/safari-612.1.15.1-branch/Source/WebCore
Revert "Cherry-pick r277603. rdar://problem/78130222"
This reverts commit r277623
- 4:55 PM Changeset in webkit [277692] by
-
- 10 edits in trunk/Source/WebCore
Layer names should not contain object addresses in release builds
https://bugs.webkit.org/show_bug.cgi?id=225926
Reviewed by Geoffrey Garen.
Avoid putting object addresses in layer name strings (which end up on CALayers)
to reduce string bloat.
RenderLayer::name() now calls a description() function on RenderObject, which
in turn calls the same on its Node. These description() functions don't put
object addresses in the string.
Alternatives considered: #ifdeffing in the debugDescription() implementations:
I decided not to because calling a function called debugFoo in release seems
wrong. It might also be useful to dump the string with addresses when debugging
in a release build.
Renaming debugDescription() to description() and passing a behavior enum:
Seems about as complicated as this change.
- dom/Element.cpp:
(WebCore::appendAttributes):
(WebCore::Element::description const):
(WebCore::Element::debugDescription const):
- dom/Element.h:
- dom/Node.cpp:
(WebCore::Node::description const):
- dom/Node.h:
- dom/Text.cpp:
(WebCore::appendTextRepresentation):
(WebCore::Text::description const):
(WebCore::Text::debugDescription const):
- dom/Text.h:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::name const):
- rendering/RenderObject.cpp:
(WebCore::RenderObject::description const):
- rendering/RenderObject.h:
- 4:34 PM Changeset in webkit [277691] by
-
- 2 edits in trunk/LayoutTests
Disable WebSQL in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=224144
Unreviewed test gardening.
Disabling consant failing test for wk1. Test has already been disabled for wk2.
- platform/mac-wk1/TestExpectations:
- 4:28 PM Changeset in webkit [277690] by
-
- 17 edits in branches/safari-612.1.12-branch
Cherry-pick r277124. rdar://problem/78177934
Sampled Page Top Color: make hit tests consider elements with
pointer-events: none
https://bugs.webkit.org/show_bug.cgi?id=225419
Reviewed by Tim Horton.
Source/WebCore:
Test: SampledPageTopColor.HitTestCSSPointerEventsNone
- rendering/HitTestRequest.h: (WebCore::HitTestRequest::ignoreCSSPointerEventsProperty const): Added.
- rendering/InlineBox.h: (WebCore::InlineBox::visibleToHitTesting const):
- rendering/RenderElement.h:
(WebCore::RenderElement::visibleToHitTesting const):
Add
RequestType::IgnoreCSSPointerEventsProperty
that's used insidevisibleToHitTesting
to control whetherstyle().pointerEvents() == PointerEvents::None
is checked.
- dom/Document.cpp:
(WebCore::isValidPageSampleLocation):
Include the new
RequestType::IgnoreCSSPointerEventsProperty
since we're not hit testing for interaction, rather we're hit testing in an attempt to see what will be painted.
- rendering/EllipsisBox.cpp: (WebCore::EllipsisBox::nodeAtPoint):
- rendering/InlineFlowBox.cpp: (WebCore::InlineFlowBox::nodeAtPoint):
- rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::nodeAtPoint):
- rendering/RenderBlock.cpp: (WebCore::RenderBlock::nodeAtPoint):
- rendering/RenderBox.cpp: (WebCore::RenderBox::nodeAtPoint):
- rendering/RenderInline.cpp: (WebCore::RenderInline::hitTestCulledInline):
- rendering/RenderTable.cpp: (WebCore::RenderTable::nodeAtPoint):
- rendering/RenderWidget.cpp: (WebCore::RenderWidget::nodeAtPoint):
- rendering/RootInlineBox.cpp: (WebCore::RootInlineBox::nodeAtPoint):
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::nodeAtPoint):
Pass the
HitTestRequest
tovisibleToHitTesting
.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm: (TEST.SampledPageTopColor.HitTestCSSPointerEventsNone): Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277124 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:28 PM Changeset in webkit [277689] by
-
- 4 edits in branches/safari-612.1.12-branch
Cherry-pick r277123. rdar://problem/78177928
Sampled Page Top Color: don't snapshot if the hit test location is a canvas
https://bugs.webkit.org/show_bug.cgi?id=225418
Reviewed by Tim Horton.
Source/WebCore:
Tests: SampledPageTopColor.HitTestHTMLCanvasWithoutRenderingContext
SampledPageTopColor.HitTestHTMLCanvasWithRenderingContext
- dom/Document.cpp: (WebCore::isValidPageSampleLocation):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm: (TEST.SampledPageTopColor.HitTestHTMLCanvasWithoutRenderingContext): Added. (TEST.SampledPageTopColor.HitTestHTMLCanvasWithRenderingContext): Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277123 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:15 PM Changeset in webkit [277688] by
-
- 18 edits1 add in trunk
[macOS] Titlebar separator doesn't show when WKWebView is scrolled
https://bugs.webkit.org/show_bug.cgi?id=220633
<rdar://problem/71094055>
Reviewed by Darin Adler.
Source/WebKit:
Starting in Big Sur, NSWindows with a titlebar display a separator if
there is a scrolled NSScrollView adjacent to the titlebar. Since
WKWebViews are scrollable views, but not backed by NSScrollView, we
need to adopt SPI to support this functionality.
This patch updates WKWebView to conform to the NSScrollViewSeparatorTrackingAdapter
protocol, ensuring the titlebar separator is displayed when
necessary. Note that since WKWebViews are not actually NSScrollView's we
don't already have the scroll position of the view in the UIProcess. To
determine whether or not the view is scrolled, this patch adds plumbing
so that the WebProcess can tell the UIProcess the new scroll position
when a page is scrolled.
Tests: WKWebViewTitlebarSeparatorTests.BackForwardCache
WKWebViewTitlebarSeparatorTests.ChangeTitlebarAdjacency
WKWebViewTitlebarSeparatorTests.ChangeViewVisibility
WKWebViewTitlebarSeparatorTests.NavigationResetsTitlebarAppearance
WKWebViewTitlebarSeparatorTests.ParentWhileScrolled
WKWebViewTitlebarSeparatorTests.ScrollWithTitlebarAdjacency
WKWebViewTitlebarSeparatorTests.ScrollWithoutTitlebarAdjacency
- Platform/spi/mac/AppKitSPI.h:
- UIProcess/API/mac/WKView.mm:
(-[WKView scrollViewFrame]):
(-[WKView hasScrolledContentsUnderTitlebar]):
- UIProcess/API/mac/WKWebViewMac.mm:
(-[WKWebView scrollViewFrame]):
(-[WKWebView hasScrolledContentsUnderTitlebar]):
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::updateWindowAndViewFrames):
If the WKWebView's frame changes, update the titlebar adjacency
state and notify observers of the change.
(WebKit::WebViewImpl::viewWillMoveToWindowImpl):
Unregister the WKWebView as an NSScrollViewSeparatorTrackingAdapter if
it is removed from the window.
(WebKit::WebViewImpl::viewDidHide):
Hidden views are not adjacent to the titlebar.
(WebKit::WebViewImpl::viewDidUnhide):
An unhidden view may be adjacent to the titlebar.
(WebKit::WebViewImpl::pageDidScroll):
Use the scroll position of the page to determine whether or not the
WKWebView is scrolled.
(WebKit::WebViewImpl::scrollViewFrame):
Needed to conform to NSScrollViewSeparatorTrackingAdapter.
(WebKit::WebViewImpl::hasScrolledContentsUnderTitlebar):
Needed to conform to NSScrollViewSeparatorTrackingAdapter. Returns true
if the view is registered as an NSScrollViewSeparatorTrackingAdapter
and is scrolled.
(WebKit::WebViewImpl::updateTitlebarAdjacencyState):
The WKWebView needs to be registered as an NSScrollViewSeparatorTrackingAdapter
if it's adjacent to the titlebar and unregistered otherwise.
- UIProcess/PageClient.h:
(WebKit::PageClient::pageDidScroll):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::pageDidScroll):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::didCommitLoadForMainFrame):
Reset the scroll position upon navigation, as pageDidScroll does not get
called when navigating.
(WebKit::PageClientImpl::pageDidScroll):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::pageDidScroll):
Pass the current scroll position when the page is scrolled, so that the
UIProcess knows whether or not the page has a non-zero scroll position.
Source/WTF:
- wtf/PlatformHave.h: Defined HAVE_NSSCROLLVIEW_SEPARATOR_TRACKING_ADAPTER.
Tools:
Added API tests to verify that the delegate implementation returns the
correct value forhasScrolledContentsUnderTitlebar
depending on
the view's scroll position, visibility, and frame.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/TestWebKitAPI/mac/AppKitSPI.h:
- TestWebKitAPI/Tests/mac/WKWebViewTitlebarSeparatorTests.mm: Added.
(-[TitlebarSeparatorTestWKWebView initWithFrame:configuration:]):
(-[TitlebarSeparatorTestWKWebView separatorTrackingAdapter]):
(BackForwardCache):
(ChangeTitlebarAdjacency):
(ChangeViewVisibility):
(NavigationResetsTitlebarAppearance):
(ParentWhileScrolled):
(ScrollWithTitlebarAdjacency):
(ScrollWithoutTitlebarAdjacency):
- 4:08 PM Changeset in webkit [277687] by
-
- 1 copy in branches/safari-612.1.15.3-branch
New branch.
- 4:08 PM Changeset in webkit [277686] by
-
- 1 copy in branches/safari-612.1.15.2-branch
New branch.
- 4:07 PM Changeset in webkit [277685] by
-
- 8 edits in branches/safari-612.1.12-branch/Source
Versioning.
WebKit-7612.1.12.11
- 4:05 PM Changeset in webkit [277684] by
-
- 1 copy in tags/Safari-612.1.12.10
Tag Safari-612.1.12.10.
- 3:34 PM Changeset in webkit [277683] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r275013): Trying to navigate in a WKWebView from a command line tool crashes the Web Content process
https://bugs.webkit.org/show_bug.cgi?id=225938
<rdar://problem/78029118>
Reviewed by Alex Christensen.
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
Some kinds of processes do not have a bundle identifier, so requiring one
is simply not going to work.
Also, make the other exit()s in this function use CRASH() instead, so
that they make traditional crash logs instead of just exiting with a
non-zero error code (which is much quieter).
- 3:24 PM Changeset in webkit [277682] by
-
- 2 edits in trunk/LayoutTests
[BigSur] imported/w3c/web-platform-tests/css/css-counter-styles/tibetan/css3-counter-styles-156.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=222118
Unreviewed test gardening.
Removing test expectation no longer needed.
- platform/mac/TestExpectations:
- 3:06 PM Changeset in webkit [277681] by
-
- 2 edits in branches/safari-612.1.15.1-branch/Source/ThirdParty/ANGLE
Cherry-pick r277661. rdar://problem/78175007
Stop compiling ANGLE metal files twice
https://bugs.webkit.org/show_bug.cgi?id=225919
<rdar://78013511>
Reviewed by Dean Jackson.
ANGLE currently generates an unused default.metallib that conflicts with other default.metallibs being built.
Since it is unused, remove it.
What we currently do is put all the source bytes into gDefaultMetallibSrc and compile it at runtime.
This could be optimized to do it at compile time and use newLibraryWithData instead of newLibraryWithSource,
but that should be done separately.
- ANGLE.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277661 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:30 PM Changeset in webkit [277680] by
-
- 25 edits in trunk/Source/JavaScriptCore
Add Data Call ICs that don't repatch and use them in the baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=225321
<rdar://problem/77773796>
Reviewed by Michael Saboff.
This patch adds Data ICs for calls. Data ICs for calls work by loading a code
pointer from CallLinkInfo, and indirect calling that pointer. This means that
to repatch such an IC, all we need to do is replace a code pointer inside
CallLinkInfo. No need to repatch the JIT code.
The current implementation only does this for monomorphic calls. We still
repatch the JIT code for polymorphic calls. In a followup, we will also
opt polymorphic call ICs into data-based calls:
https://bugs.webkit.org/show_bug.cgi?id=225793
This patch only uses Data Call ICs for the Baseline JIT. Even with that, it
reduces the number of calls to cacheFlush by ~45% on JetStream2.
Performance is neutral on AS Macs, but it paves the way towards doing
unlinked JITting in JSC.
- assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::addLateLinkTask):
- assembler/LinkBuffer.cpp:
(JSC::LinkBuffer::linkCode):
(JSC::LinkBuffer::performFinalization):
- assembler/LinkBuffer.h:
- bytecode/AccessCase.cpp:
(JSC::AccessCase::generateImpl):
- bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::CallLinkInfo):
(JSC::CallLinkInfo::unlink):
(JSC::CallLinkInfo::fastPathStart):
(JSC::CallLinkInfo::slowPathStart):
(JSC::CallLinkInfo::doneLocation):
(JSC::CallLinkInfo::setMonomorphicCallee):
(JSC::CallLinkInfo::clearCallee):
(JSC::CallLinkInfo::emitFirstInstructionForDataIC):
(JSC::CallLinkInfo::emitFastPathImpl):
(JSC::CallLinkInfo::emitFastPath):
(JSC::CallLinkInfo::emitTailCallFastPath):
(JSC::CallLinkInfo::emitSlowPath):
(JSC::CallLinkInfo::emitDirectFastPath):
(JSC::CallLinkInfo::emitDirectTailCallFastPath):
(JSC::CallLinkInfo::initializeDirectCall):
(JSC::CallLinkInfo::setDirectCallTarget):
(JSC::CallLinkInfo::setSlowPathCallDestination):
(JSC::CallLinkInfo::revertCallToStub):
(JSC::CallLinkInfo::setStub):
(JSC::CallLinkInfo::callReturnLocation): Deleted.
(JSC::CallLinkInfo::patchableJump): Deleted.
(JSC::CallLinkInfo::hotPathBegin): Deleted.
(JSC::CallLinkInfo::setCallee): Deleted.
- bytecode/CallLinkInfo.h:
(JSC::CallLinkInfo::calleeGPR const):
(JSC::CallLinkInfo::isDataIC const):
(JSC::CallLinkInfo::setUsesDataICs):
(JSC::CallLinkInfo::setCodeLocations):
(JSC::CallLinkInfo::offsetOfCallee):
(JSC::CallLinkInfo::offsetOfMonomorphicCallDestination):
(JSC::CallLinkInfo::offsetOfSlowPathCallDestination):
(JSC::CallLinkInfo::setCallLocations): Deleted.
(JSC::CallLinkInfo::hotPathOther): Deleted.
(JSC::CallLinkInfo::setStub): Deleted.
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::link):
- dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::addJSCall):
(JSC::DFG::JITCompiler::addJSDirectCall):
(JSC::DFG::JITCompiler::JSCallRecord::JSCallRecord):
(JSC::DFG::JITCompiler::JSDirectCallRecord::JSDirectCallRecord):
(JSC::DFG::JITCompiler::addJSDirectTailCall): Deleted.
(JSC::DFG::JITCompiler::JSDirectTailCallRecord::JSDirectTailCallRecord): Deleted.
- dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::callerReturnPC):
- dfg/DFGOperations.cpp:
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileDirectCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
- jit/CCallHelpers.cpp:
(JSC::CCallHelpers::emitJITCodeOver):
- jit/CCallHelpers.h:
- jit/JIT.cpp:
(JSC::JIT::link):
- jit/JIT.h:
- jit/JITCall.cpp:
(JSC::JIT::compileTailCall):
(JSC::JIT::compileOpCall):
(JSC::JIT::compileOpCallSlowCase):
- jit/JITCall32_64.cpp:
(JSC::JIT::compileOpCall):
(JSC::JIT::compileOpCallSlowCase):
- jit/JITOperations.cpp:
(JSC::JSC_DEFINE_JIT_OPERATION):
- jit/PolymorphicCallStubRoutine.cpp:
(JSC::PolymorphicCallNode::unlink):
- jit/Repatch.cpp:
(JSC::linkSlowPathTo):
(JSC::linkSlowFor):
(JSC::linkMonomorphicCall):
(JSC::linkDirectCall):
(JSC::revertCall):
(JSC::unlinkCall):
(JSC::linkPolymorphicCall):
(JSC::linkFor): Deleted.
(JSC::linkDirectFor): Deleted.
(JSC::unlinkFor): Deleted.
- jit/Repatch.h:
- wasm/js/WasmToJS.cpp:
(JSC::Wasm::wasmToJS):
- 2:25 PM Changeset in webkit [277679] by
-
- 2 edits in trunk/Websites/perf.webkit.org
Clean up git svn mapping when git pull
https://bugs.webkit.org/show_bug.cgi?id=225934
Reviewed by Ryosuke Niwa.
- tools/sync-commits.py:
(GitRepository._fetch_remote):
- 2:23 PM Changeset in webkit [277678] by
-
- 2 edits in trunk/Source/WebKit
Allow SafariForWebKitDevelopment to launch successfully
https://bugs.webkit.org/show_bug.cgi?id=223551
Suggested by BJ Burg. Reviewed by Tim Horton.
- UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:
- 2:04 PM Changeset in webkit [277677] by
-
- 9 edits in trunk/Source/WebKit
Enabling IPC testing API should prevent WebContent process from getting terminated in more cases
https://bugs.webkit.org/show_bug.cgi?id=225906
<rdar://problem/78138794>
Rebaselined the tests.
- Scripts/webkit/tests/TestWithIfMessageMessageReceiver.cpp:
(WebKit::TestWithIfMessage::didReceiveMessage):
- Scripts/webkit/tests/TestWithImageDataMessageReceiver.cpp:
(WebKit::TestWithImageData::didReceiveMessage):
(WebKit::TestWithImageData::didReceiveSyncMessage):
- Scripts/webkit/tests/TestWithLegacyReceiverMessageReceiver.cpp:
(WebKit::TestWithLegacyReceiver::didReceiveTestWithLegacyReceiverMessage):
(WebKit::TestWithLegacyReceiver::didReceiveSyncTestWithLegacyReceiverMessage):
- Scripts/webkit/tests/TestWithSemaphoreMessageReceiver.cpp:
(WebKit::TestWithSemaphore::didReceiveMessage):
(WebKit::TestWithSemaphore::didReceiveSyncMessage):
- Scripts/webkit/tests/TestWithStreamBufferMessageReceiver.cpp:
(WebKit::TestWithStreamBuffer::didReceiveMessage):
- Scripts/webkit/tests/TestWithStreamMessageReceiver.cpp:
(WebKit::TestWithStream::didReceiveStreamMessage):
- Scripts/webkit/tests/TestWithSuperclassMessageReceiver.cpp:
(WebKit::TestWithSuperclass::didReceiveSyncMessage):
- Scripts/webkit/tests/TestWithoutAttributesMessageReceiver.cpp:
(WebKit::TestWithoutAttributes::didReceiveMessage):
(WebKit::TestWithoutAttributes::didReceiveSyncMessage):
- 1:59 PM Changeset in webkit [277676] by
-
- 6 edits2 adds in trunk/Source/WebCore
[GPUP] RemoteAudioSession calls into AVAudioSession when GPUP is enabled, causing hangs
https://bugs.webkit.org/show_bug.cgi?id=223564
<rdar://74750291>
Reviewed by Eric Carlson.
Now that AudioSession can have two different implementations at runtime, it should be an
actual virtual class, whose concrete, per-platform implementations are derivations of the
base class. Make AudioSessionIOS and AudioSessionMac true subclasses of AudioSession, and
allow RemoteAudioSession to derive from that same base class (rather than AudioSessionIOS
or AudioSessionMac).
Also ensure AudioSessionIOS or AudioSessionMac is not accidentally created when calling
AudioSession::setSharedSession() by making the NeverDestroyed object holding the session
an Optional, and only lazily creating the session from AudioSession::sharedSession() if
one has not been explicitly set already.
- platform/audio/AudioSession.cpp:
(WebCore::sharedAudioSession):
(WebCore::AudioSession::create):
(WebCore::AudioSession::sharedSession):
(WebCore::AudioSession::addInterruptionObserver):
(WebCore::AudioSession::removeInterruptionObserver):
(WebCore::AudioSession::beginInterruption):
(WebCore::AudioSession::endInterruption):
(WebCore::AudioSession::setIsPlayingToBluetoothOverride):
(WebCore::AudioSession::AudioSession): Deleted.
- platform/audio/AudioSession.h:
- platform/audio/ios/AudioSessionIOS.h: Added.
- platform/audio/ios/AudioSessionIOS.mm:
(WebCore::AudioSessionIOS::AudioSessionIOS):
(WebCore::AudioSessionIOS::~AudioSessionIOS):
(WebCore::AudioSessionIOS::setCategory):
(WebCore::AudioSessionIOS::category const):
(WebCore::AudioSessionIOS::routeSharingPolicy const):
(WebCore::AudioSessionIOS::routingContextUID const):
(WebCore::AudioSessionIOS::setCategoryOverride):
(WebCore::AudioSessionIOS::categoryOverride const):
(WebCore::AudioSessionIOS::sampleRate const):
(WebCore::AudioSessionIOS::bufferSize const):
(WebCore::AudioSessionIOS::numberOfOutputChannels const):
(WebCore::AudioSessionIOS::maximumNumberOfOutputChannels const):
(WebCore::AudioSessionIOS::tryToSetActiveInternal):
(WebCore::AudioSessionIOS::preferredBufferSize const):
(WebCore::AudioSessionIOS::setPreferredBufferSize):
(WebCore::AudioSessionIOS::isMuted const):
(WebCore::AudioSessionIOS::handleMutedStateChange):
(WebCore::AudioSessionIOS::addInterruptionObserver):
(WebCore::AudioSessionIOS::removeInterruptionObserver):
(WebCore::AudioSessionIOS::beginInterruption):
(WebCore::AudioSessionIOS::endInterruption):
(WebCore::AudioSessionPrivate::AudioSessionPrivate): Deleted.
(WebCore::AudioSessionPrivate::~AudioSessionPrivate): Deleted.
(WebCore::AudioSession::AudioSession): Deleted.
(WebCore::AudioSession::~AudioSession): Deleted.
(WebCore::AudioSession::setCategory): Deleted.
(WebCore::AudioSession::category const): Deleted.
(WebCore::AudioSession::routeSharingPolicy const): Deleted.
(WebCore::AudioSession::routingContextUID const): Deleted.
(WebCore::AudioSession::setCategoryOverride): Deleted.
(WebCore::AudioSession::categoryOverride const): Deleted.
(WebCore::AudioSession::sampleRate const): Deleted.
(WebCore::AudioSession::bufferSize const): Deleted.
(WebCore::AudioSession::numberOfOutputChannels const): Deleted.
(WebCore::AudioSession::maximumNumberOfOutputChannels const): Deleted.
(WebCore::AudioSession::tryToSetActiveInternal): Deleted.
(WebCore::AudioSession::preferredBufferSize const): Deleted.
(WebCore::AudioSession::setPreferredBufferSize): Deleted.
(WebCore::AudioSession::isMuted const): Deleted.
(WebCore::AudioSession::handleMutedStateChange): Deleted.
(WebCore::AudioSession::addInterruptionObserver): Deleted.
(WebCore::AudioSession::removeInterruptionObserver): Deleted.
(WebCore::AudioSession::beginInterruption): Deleted.
(WebCore::AudioSession::endInterruption): Deleted.
- platform/audio/mac/AudioSessionMac.h: Added.
- platform/audio/mac/AudioSessionMac.mm:
(WebCore::AudioSessionMac::addSampleRateObserverIfNeeded const):
(WebCore::AudioSessionMac::handleSampleRateChange):
(WebCore::AudioSessionMac::addBufferSizeObserverIfNeeded const):
(WebCore::AudioSessionMac::handleBufferSizeChange):
(WebCore::AudioSessionMac::audioOutputDeviceChanged):
(WebCore::AudioSessionMac::setIsPlayingToBluetoothOverride):
(WebCore::AudioSessionMac::setCategory):
(WebCore::AudioSessionMac::setCategoryOverride):
(WebCore::AudioSessionMac::sampleRate const):
(WebCore::AudioSessionMac::bufferSize const):
(WebCore::AudioSessionMac::numberOfOutputChannels const):
(WebCore::AudioSessionMac::maximumNumberOfOutputChannels const):
(WebCore::AudioSessionMac::tryToSetActiveInternal):
(WebCore::AudioSessionMac::routeSharingPolicy const):
(WebCore::AudioSessionMac::routingContextUID const):
(WebCore::AudioSessionMac::preferredBufferSize const):
(WebCore::AudioSessionMac::setPreferredBufferSize):
(WebCore::AudioSessionMac::isMuted const):
(WebCore::AudioSessionMac::handleMutedStateChange):
(WebCore::AudioSessionMac::addMutedStateObserver):
(WebCore::AudioSessionMac::removeMutedStateObserver):
(): Deleted.
(WebCore::AudioSessionPrivate::addSampleRateObserverIfNeeded): Deleted.
(WebCore::AudioSessionPrivate::handleSampleRateChange): Deleted.
(WebCore::AudioSessionPrivate::addBufferSizeObserverIfNeeded): Deleted.
(WebCore::AudioSessionPrivate::handleBufferSizeChange): Deleted.
(WebCore::AudioSession::AudioSession): Deleted.
(WebCore::AudioSession::category const): Deleted.
(WebCore::AudioSession::audioOutputDeviceChanged): Deleted.
(WebCore::AudioSession::setIsPlayingToBluetoothOverride): Deleted.
(WebCore::AudioSession::setCategory): Deleted.
(WebCore::AudioSession::categoryOverride const): Deleted.
(WebCore::AudioSession::setCategoryOverride): Deleted.
(WebCore::AudioSession::sampleRate const): Deleted.
(WebCore::AudioSession::bufferSize const): Deleted.
(WebCore::AudioSession::numberOfOutputChannels const): Deleted.
(WebCore::AudioSession::maximumNumberOfOutputChannels const): Deleted.
(WebCore::AudioSession::tryToSetActiveInternal): Deleted.
(WebCore::AudioSession::routeSharingPolicy const): Deleted.
(WebCore::AudioSession::routingContextUID const): Deleted.
(WebCore::AudioSession::preferredBufferSize const): Deleted.
(WebCore::AudioSession::setPreferredBufferSize): Deleted.
(WebCore::AudioSession::isMuted const): Deleted.
(WebCore::AudioSession::handleMutedStateChange): Deleted.
(WebCore::AudioSession::addMutedStateObserver): Deleted.
(WebCore::AudioSession::removeMutedStateObserver): Deleted.
- 1:58 PM Changeset in webkit [277675] by
-
- 2 edits in trunk/Tools
[webkitpy] Forward booted simulators to children processes
https://bugs.webkit.org/show_bug.cgi?id=225933
<rdar://problem/78169900>
Rubber-stamped by Aakash Jain.
- Scripts/webkitpy/api_tests/runner.py:
(setup_shard): Set DeviceManager global variable from parent process.
(Runner.command_for_port): Use Port's device manager instead of simulated device manager.
(Runner.run): Pass DeviceManager details to children processes.
- 1:49 PM Changeset in webkit [277674] by
-
- 2 edits in trunk/LayoutTests
Disable WebSQL in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=224144
Unreviewed test gardening.
Remvoing test expectation that is causing this skipped test to run.
- platform/mac-wk1/TestExpectations:
- 1:35 PM Changeset in webkit [277673] by
-
- 2 edits in trunk/Tools
[ews] Style fixes in steps_unittest.py
https://bugs.webkit.org/show_bug.cgi?id=225932
Reviewed by Jonathan Bedard.
- CISupport/ews-build/steps_unittest.py:
- 1:26 PM Changeset in webkit [277672] by
-
- 15 edits3 copies in trunk/Source/WebKit
Unreviewed, reverting r277614.
<rdar://78167889>
Broke Mail
Reverted changeset:
"Remove API::Object::Type::BundlePageGroup"
https://bugs.webkit.org/show_bug.cgi?id=225611
https://commits.webkit.org/r277614
- 12:56 PM Changeset in webkit [277671] by
-
- 3 edits in trunk/Websites/perf.webkit.org
Commits updater should ignore null revision identifier
https://bugs.webkit.org/show_bug.cgi?id=225911
Reviewed by Ryosuke Niwa.
- public/include/commit-updater.php:
- server-tests/api-report-commits-tests.js:
- 12:52 PM Changeset in webkit [277670] by
-
- 5 edits in branches/safari-612.1.15.1-branch/Source
Apply patch. rdar://problem/77799537
- 12:46 PM Changeset in webkit [277669] by
-
- 8 edits in trunk/Source/JavaScriptCore
Unreviewed, reverting r276655.
https://bugs.webkit.org/show_bug.cgi?id=225930
caused a 2% PLT regression
Reverted changeset:
"StructureStubInfo and PolymorphicAccess should account for
their non-GC memory"
https://bugs.webkit.org/show_bug.cgi?id=225113
https://trac.webkit.org/changeset/276655
- 12:03 PM Changeset in webkit [277668] by
-
- 2 edits in trunk/Tools
[lint-test-expectations] Change shebang to Python 3
https://bugs.webkit.org/show_bug.cgi?id=225898
<rdar://problem/78130334>
Reviewed by Aakash Jain.
- Scripts/lint-test-expectations: Change shebang, remove version check.
- 11:59 AM Changeset in webkit [277667] by
-
- 4 edits in trunk/Source/WebCore
Use UTF-8 internally from Strings inside SQLiteStatement
https://bugs.webkit.org/show_bug.cgi?id=225890
Reviewed by Darin Adler.
Use UTF-8 internally from Strings inside SQLiteStatement. Our SQLite databases use UTF-8
internally for text encoding (since we open the database with sqlite3_open_v2() and not
sqlite3_open16()).
Previously, we were providing UTF-16 strings to SQLite, which meant it had to convert it
internally to UTF-8. Also, whenever we were requesting a string from SQLite, it had to
convert it from UTF-8 to UTF-16 before returning it to us. Our String constructed from
returned from SQLiteStatement would also be 16-bit encoded, even if all ASCII so we were
potentially wasting memory too.
We now provide UTF-8 to SQLite by using StringView::utf8(). We also request UTF-8 strings
from SQLite and rely on String::fromUTF8() to convert it to a WTF::String. For all ASCII
characters, this means we'll end up with a 8-bit String and save memory.
- platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::bindText):
(WebCore::SQLiteStatement::getColumnName):
(WebCore::SQLiteStatement::getColumnText):
- platform/sql/SQLiteStatement.h:
- 11:48 AM Changeset in webkit [277666] by
-
- 8 edits in trunk/Source
Allow logging minimal info about uploading media files
https://bugs.webkit.org/show_bug.cgi?id=225636
<rdar://problem/76639138>
Reviewed by Alex Christensen.
Source/WebCore:
Files can be uploaded to a server by many different ways: through a form
submit, an xhr, a file fetch or through a worker. r275103 handled the
form submit only. Instead of handling this case by case, we can add the
logging code in a shared place where all the file uploading goes through.
- html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::submit):
Delete the code which was part of r275103.
- page/Page.cpp:
(WebCore::Page::logMediaDiagnosticMessage const):
- page/Page.h:
Make the Page be responsible for logging the media files info.
- platform/network/FormData.cpp:
(WebCore::FormData::imageOrMediaFilesCount const):
- platform/network/FormData.h:
Make the FormData count how many images or media files it has.
Source/WebKit:
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::addParametersShared):
Centralize logging uploading the images and media files.
- 11:01 AM Changeset in webkit [277665] by
-
- 101 edits15 deletes in trunk
Temporarily revert r276592 as it breaks some native apps
https://bugs.webkit.org/show_bug.cgi?id=225917
JSTests:
Unreviewed, revert.
- microbenchmarks/put-slow-no-cache-array.js: Removed.
- microbenchmarks/put-slow-no-cache-function.js: Removed.
- microbenchmarks/put-slow-no-cache-js-proxy.js: Removed.
- microbenchmarks/put-slow-no-cache-long-prototype-chain.js: Removed.
- microbenchmarks/put-slow-no-cache.js: Removed.
- microbenchmarks/reflect-set-with-receiver.js: Removed.
- stress/custom-get-set-proto-chain-put.js:
(getObjects):
(let.base.of.getBases):
- stress/module-namespace-access-set-fails.js: Removed.
- stress/put-non-reified-static-accessor-or-custom.js: Removed.
- stress/put-non-reified-static-function-or-custom.js: Removed.
- stress/put-to-primitive-non-reified-static-custom.js: Removed.
- stress/put-to-primitive.js: Removed.
- stress/put-to-proto-chain-overrides-put.js: Removed.
- stress/typed-array-canonical-numeric-index-string-set.js: Removed.
LayoutTests/imported/w3c:
Unreviewed, revert.
- web-platform-tests/WebIDL/ecmascript-binding/interface-object-set-receiver-expected.txt: Removed.
- web-platform-tests/WebIDL/ecmascript-binding/interface-object-set-receiver.html: Removed.
- web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver-expected.txt:
- web-platform-tests/WebIDL/ecmascript-binding/interface-prototype-constructor-set-receiver.html:
Source/JavaScriptCore:
Unreviewed, revert.
- API/JSCallbackObject.h:
- API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject<Parent>::put):
- debugger/DebuggerScope.h:
- runtime/ClassInfo.h:
- runtime/ClonedArguments.h:
- runtime/CustomGetterSetter.cpp:
(JSC::callCustomSetter):
- runtime/CustomGetterSetter.h:
- runtime/ErrorConstructor.h:
- runtime/ErrorInstance.h:
- runtime/GenericArguments.h:
- runtime/GenericArgumentsInlines.h:
(JSC::GenericArguments<Type>::put):
- runtime/GetterSetter.h:
- runtime/JSArray.cpp:
(JSC::JSArray::put):
- runtime/JSArray.h:
- runtime/JSArrayBufferView.cpp:
(JSC::JSArrayBufferView::put):
- runtime/JSArrayBufferView.h:
- runtime/JSCJSValue.cpp:
(JSC::JSValue::putToPrimitive):
- runtime/JSCell.cpp:
(JSC::JSCell::doPutPropertySecurityCheck):
- runtime/JSCell.h:
- runtime/JSFunction.cpp:
(JSC::JSFunction::put):
- runtime/JSFunction.h:
- runtime/JSGenericTypedArrayView.h:
- runtime/JSGlobalLexicalEnvironment.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::put):
- runtime/JSGlobalObject.h:
- runtime/JSLexicalEnvironment.h:
- runtime/JSModuleEnvironment.h:
- runtime/JSModuleNamespaceObject.h:
- runtime/JSObject.cpp:
(JSC::JSObject::doPutPropertySecurityCheck):
(JSC::JSObject::putInlineSlow):
(JSC::JSObject::prototypeChainMayInterceptStoreTo):
(JSC::definePropertyOnReceiverSlow): Deleted.
(JSC::JSObject::definePropertyOnReceiver): Deleted.
(JSC::JSObject::putInlineFastReplacingStaticPropertyIfNeeded): Deleted.
- runtime/JSObject.h:
(JSC::JSObject::putByIndexInline):
(JSC::JSObject::doPutPropertySecurityCheck):
(JSC::JSObject::hasNonReifiedStaticProperties): Deleted.
- runtime/JSObjectInlines.h:
(JSC::JSObject::canPerformFastPutInlineExcludingProto):
(JSC::JSObject::putInlineForJSObject):
(JSC::JSObject::putDirectInternal):
(JSC::JSObject::putInlineFast): Deleted.
- runtime/JSProxy.h:
- runtime/JSTypeInfo.h:
(JSC::TypeInfo::overridesGetOwnPropertySlot const):
(JSC::TypeInfo::overridesAnyFormOfGetOwnPropertyNames const):
(JSC::TypeInfo::hasPutPropertySecurityCheck const):
(JSC::TypeInfo::hasStaticPropertyTable const): Deleted.
(JSC::TypeInfo::overridesPut const): Deleted.
- runtime/Lookup.h:
(JSC::putEntry):
(JSC::lookupPut):
- runtime/PropertySlot.h:
- runtime/ProxyObject.cpp:
(JSC::ProxyObject::put):
- runtime/ProxyObject.h:
- runtime/PutPropertySlot.h:
(JSC::PutPropertySlot::PutPropertySlot):
(JSC::PutPropertySlot::context const):
(JSC::PutPropertySlot::type const):
(JSC::PutPropertySlot::isInitialization const):
(JSC::PutPropertySlot::isTaintedByOpaqueObject const): Deleted.
(JSC::PutPropertySlot::setIsTaintedByOpaqueObject): Deleted.
- runtime/ReflectObject.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/RegExpObject.cpp:
(JSC::RegExpObject::put):
- runtime/RegExpObject.h:
- runtime/StringObject.cpp:
(JSC::StringObject::put):
- runtime/StringObject.h:
- runtime/StringPrototype.cpp:
(JSC::StringPrototype::finishCreation):
(JSC::StringPrototype::create):
- runtime/StringPrototype.h:
- runtime/Structure.cpp:
(JSC::Structure::validateFlags):
- runtime/Structure.h:
(JSC::Structure::takesSlowPathInDFGForImpureProperty):
(JSC::Structure::hasNonReifiedStaticProperties const): Deleted.
- tools/JSDollarVM.cpp:
Source/WebCore:
Unreviewed, revert.
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::doPutPropertySecurityCheck):
(WebCore::JSDOMWindow::put):
- bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::doPutPropertySecurityCheck):
- bindings/js/JSRemoteDOMWindowCustom.cpp:
(WebCore::JSRemoteDOMWindow::put):
- bindings/scripts/CodeGeneratorJS.pm:
(GeneratePut):
(GenerateHeader):
- bindings/scripts/test/JS/JSTestDomainSecurity.h:
- bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
(WebCore::JSTestIndexedSetterNoIdentifier::put):
- bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
(WebCore::JSTestIndexedSetterThrowingException::put):
- bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h:
- bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
(WebCore::JSTestIndexedSetterWithIdentifier::put):
- bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestInterface.h:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::put):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
(WebCore::JSTestNamedAndIndexedSetterThrowingException::put):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h:
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::put):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
(WebCore::JSTestNamedSetterNoIdentifier::put):
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
(WebCore::JSTestNamedSetterThrowingException::put):
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
(WebCore::JSTestNamedSetterWithIdentifier::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
(WebCore::JSTestNamedSetterWithIndexedGetter::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp:
(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:
(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.h:
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp:
(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::put):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.h:
- bindings/scripts/test/JS/JSTestPluginInterface.cpp:
(WebCore::JSTestPluginInterface::put):
- bindings/scripts/test/JS/JSTestPluginInterface.h:
- bridge/objc/objc_runtime.h:
- bridge/runtime_array.h:
- bridge/runtime_object.h:
Source/WebKit:
Unreviewed, revert.
- WebProcess/Plugins/Netscape/JSNPObject.h:
LayoutTests:
Unreviewed, revert
- http/tests/security/cross-frame-access-object-getPrototypeOf-in-put-expected.txt:
- http/tests/security/cross-frame-access-object-getPrototypeOf-in-put.html:
- js/dom/reflect-set-onto-dom-expected.txt:
- js/dom/script-tests/reflect-set-onto-dom.js:
- 10:55 AM Changeset in webkit [277664] by
-
- 5 edits in branches/safari-612.1.12-branch
Cherry-pick r277044. rdar://problem/78160469
Sampled Page Top Color: don't snapshot if the hit test location is an image or has an animation
https://bugs.webkit.org/show_bug.cgi?id=225338
Reviewed by Tim Horton.
Source/WebCore:
Tests: SampledPageTopColor.HitTestHTMLImage
SampledPageTopColor.HitTestCSSBackgroundImage
SampledPageTopColor.HitTestCSSAnimation
- dom/Document.h:
- dom/Document.cpp:
(WebCore::isValidPageSampleLocation): Added.
(WebCore::samplePageColor): Added.
(WebCore::Document::determineSampledPageTopColor):
(WebCore::Document::isHitTestLocationThirdPartyFrame): Deleted.
Refactor
isHitTestLocationThirdPartyFrame
(and thepixelColor
lambda) intostatic
functions that are right aboveDocument::determineSampledPageTopColor
for clarity and to allow for more flexibility. In order to check if the hit test node is an image (including having a CSSbackground-image
) or has a CSS animation (or CSS transition), it's necessary to continue to hit test beyond one node as the image and/or node with the CSS animation may be an ancestor (or unrelatedposition: absolute
node) to theHitTestResult::innerNode
.`
<div style="background-image: url(...)">
<button>Lorum ipsum ... </button>
</div>
`
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm: (TEST.SampledPageTopColor.HitTestHTMLImage): (TEST.SampledPageTopColor.HitTestCSSBackgroundImage): (TEST.SampledPageTopColor.HitTestCSSAnimation):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277044 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [277663] by
-
- 10 edits in branches/safari-612.1.12-branch
Cherry-pick r277030. rdar://problem/78160475
Sampled Page Top Color: take additional snapshots further down the page to see if the sampled top color is more than just a tiny strip
https://bugs.webkit.org/show_bug.cgi?id=225323
Reviewed by Beth Dakin.
Source/WebCore:
Add a
SampledPageTopColorMinHeight
setting that controls how far down the sampled page top
color needs to extend in order for us to not bail. If the value > 0, we take an additional
snapshot at (0, SampledPageTopColorMinHeight) and (width, SampledPageTopColorMinHeight),
comparing each to the snapshot directly above (e.g. (0, SampledPageTopColorMinHeight) is
compared to (0, 0)) using theSampledPageTopColorMaxDifference
. Depending on the value, if
the color across the top of the page is only a small strip, these extra snapshot comparisons
will prevent a resulting color from being derived.
Tests: SampledPageTopColor.VerticalGradientBelowMaxDifference
SampledPageTopColor.VerticalGradientAboveMaxDifference
- dom/Document.cpp: (WebCore::Document::determineSampledPageTopColor):
Source/WebKit:
Add a
SampledPageTopColorMinHeight
setting that controls how far down the sampled page top
color needs to extend in order for us to not bail. If the value > 0, we take an additional
snapshot at (0, SampledPageTopColorMinHeight) and (width, SampledPageTopColorMinHeight),
comparing each to the snapshot directly above (e.g. (0, SampledPageTopColorMinHeight) is
compared to (0, 0)) using theSampledPageTopColorMaxDifference
. Depending on the value, if
the color across the top of the page is only a small strip, these extra snapshot comparisons
will prevent a resulting color from being derived.
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]): (-[WKWebViewConfiguration copyWithZone:]): (-[WKWebViewConfiguration _setSampledPageTopColorMinHeight:]): Added. (-[WKWebViewConfiguration _sampledPageTopColorMinHeight]): Added.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setupPageConfiguration:]):
Provide SPI to configure the
SampledPageTopColorMinHeight
preference when creating theWKWebView
.
Source/WTF:
Add a
SampledPageTopColorMinHeight
setting that controls how far down the sampled page top
color needs to extend in order for us to not bail. If the value > 0, we take an additional
snapshot at (0, SampledPageTopColorMinHeight) and (width, SampledPageTopColorMinHeight),
comparing each to the snapshot directly above (e.g. (0, SampledPageTopColorMinHeight) is
compared to (0, 0)) using theSampledPageTopColorMaxDifference
. Depending on the value, if
the color across the top of the page is only a small strip, these extra snapshot comparisons
will prevent a resulting color from being derived.
- Scripts/Preferences/WebPreferences.yaml:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm: (createWebViewWithSampledPageTopColorMaxDifference): (createHTMLGradientWithColorStops): (TEST.SampledPageTopColor.ZeroMaxDifference): (TEST.SampledPageTopColor.NegativeMaxDifference): (TEST.SampledPageTopColor.SolidColor): (TEST.SampledPageTopColor.DifferentColorsWithoutOutlierBelowMaxDifference): (TEST.SampledPageTopColor.DifferentColorsWithLeftOutlierAboveMaxDifference): (TEST.SampledPageTopColor.DifferentColorsWithMiddleOutlierAboveMaxDifference): (TEST.SampledPageTopColor.DifferentColorsWithRightOutlierAboveMaxDifference): (TEST.SampledPageTopColor.DifferentColorsIndividuallyAboveMaxDifference): (TEST.SampledPageTopColor.DifferentColorsCumulativelyAboveMaxDifference): (TEST.SampledPageTopColor.VerticalGradientBelowMaxDifference): Added. (TEST.SampledPageTopColor.VerticalGradientAboveMaxDifference): Added. (TEST.SampledPageTopColor.DISABLED_DisplayP3): (TEST.SampledPageTopColor.ExperimentalUseSampledPageTopColorForScrollAreaBackgroundColor):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277030 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:55 AM Changeset in webkit [277662] by
-
- 2 edits in branches/safari-612.1.12-branch/Source/WebCore
Cherry-pick r276796. rdar://problem/78162377
Unreviewed, fix crashloop after r276744
<rdar://problem/77333886>
- dom/Document.cpp:
(WebCore::Document::determineSampledPageTopColor):
Don't attempt to get the value from the
Optional<Lab<float>>
unless we know for sure that it's valid. This amounts to always making sure we eithercontinue
(orreturn
if that snapshot is not an outlier) instead of only doing it if the snapshot is an outlier.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@276796 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:42 AM Changeset in webkit [277661] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Stop compiling ANGLE metal files twice
https://bugs.webkit.org/show_bug.cgi?id=225919
<rdar://78013511>
Reviewed by Dean Jackson.
ANGLE currently generates an unused default.metallib that conflicts with other default.metallibs being built.
Since it is unused, remove it.
What we currently do is put all the source bytes into gDefaultMetallibSrc and compile it at runtime.
This could be optimized to do it at compile time and use newLibraryWithData instead of newLibraryWithSource,
but that should be done separately.
- ANGLE.xcodeproj/project.pbxproj:
- 10:33 AM Changeset in webkit [277660] by
-
- 13 edits in trunk
[PlayStation] Fix PlayStation port
https://bugs.webkit.org/show_bug.cgi?id=225913
Reviewed by Don Olmstead.
Fix PlayStation port
.:
- Source/cmake/OptionsPlayStation.cmake: Rename
PLAYSTATION_COPY_SHARED_LIBRARIES to PLAYSTATION_COPY_REQUIREMENTS and
let it copy more general files.
Touch ebootparam.ini by the playstation_tools_copy custom_target.
Source/JavaScriptCore:
- jsc.cpp: Include LinkBuffer.h.
Source/WebCore:
- PlatformPlayStation.cmake: Rename
PLAYSTATION_COPY_SHARED_LIBRARIES to PLAYSTATION_COPY_REQUIREMENTS.
- accessibility/AccessibilityMenuList.cpp:
(WebCore::AccessibilityMenuList::didUpdateActiveOption):
- platform/graphics/PixelBufferFormat.h: Include wtf/Optional.h.
Source/WTF:
- wtf/PlatformPlayStation.cmake: Rename
PLAYSTATION_COPY_SHARED_LIBRARIES to PLAYSTATION_COPY_REQUIREMENTS.
Tools:
- MiniBrowser/playstation/CMakeLists.txt: Rename
PLAYSTATION_COPY_SHARED_LIBRARIES to PLAYSTATION_COPY_REQUIREMENTS.
- MiniBrowser/playstation/WebViewWindow.cpp:
(WebViewWindow::updateTitle): Add nullptr check.
(WebViewWindow::updateURL): Add nullptr check.
- 10:32 AM Changeset in webkit [277659] by
-
- 2 edits in trunk/Source/WebCore
Clean up code distinguishing between webgl/webgl2 contexts
https://bugs.webkit.org/show_bug.cgi?id=225887
Patch by Kenneth Russell <kbr@chromium.org> on 2021-05-18
Reviewed by Darin Adler.
Address code review feedback on earlier bug.
Covered by existing WebGL conformance tests.
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
(WebCore::HTMLCanvasElement::getContextWebGL):
- 10:04 AM Changeset in webkit [277658] by
-
- 3 edits in trunk/Source/WebKit
Add nil checks for LAContexts before inserting them in the dictionaries.
https://bugs.webkit.org/show_bug.cgi?id=225897
Patch by Garrett Davidson <garrett_davidson@apple.com> on 2021-05-18
Reviewed by Tim Horton.
In 225218 we stopped dropping requests that didn't have LAContexts. However, that let us
proceed only until we tried to put the (nil) LAContext in an NSDictionary to make a Sec*
call, which throws an exception. This patch adds proper nil checking before inserting the
contexts into the dictionaries.
Manually tested registration and assertion on macOS with and without LAContexts.
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserVerification):
- UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:
(WebKit::LocalConnection::createCredentialPrivateKey const):
- 10:03 AM Changeset in webkit [277657] by
-
- 1 copy in tags/Safari-611.3.4
Tag Safari-611.3.4.
- 9:52 AM Changeset in webkit [277656] by
-
- 3 edits in trunk/LayoutTests
[GLIB][GTK] Unreviewed test gardening. File several printing tests that were crashing under own bug.
Also updated baseline of tests that was failing.
- platform/glib/fast/selectors/unqualified-hover-strict-expected.txt: Updated.
- platform/gtk/TestExpectations:
- 9:07 AM Changeset in webkit [277655] by
-
- 2 edits in trunk/Source/WebKit
ReadOnlySharedRingBufferStorage::updateFrameBounds() should validate boundsBufferSize
https://bugs.webkit.org/show_bug.cgi?id=225918
Reviewed by Youenn Fablet.
ReadOnlySharedRingBufferStorage::updateFrameBounds() should validate boundsBufferSize since the
process writing the buffer size on the other end may not be trusted.
- Shared/Cocoa/SharedRingBufferStorage.cpp:
(WebKit::ReadOnlySharedRingBufferStorage::updateFrameBounds):
- 8:55 AM Changeset in webkit [277654] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Some mathml tests are failing in EWS GTK-WK2 but passing in post-commit bot.
- platform/glib/TestExpectations:
- 8:35 AM Changeset in webkit [277653] by
-
- 6 edits in trunk/Source
Make sure SQLiteStatement objects get destroyed before the database is closed
https://bugs.webkit.org/show_bug.cgi?id=225881
Reviewed by Darin Adler.
Make sure SQLiteStatement objects get destroyed before the database is closed. There are 2 issues
with destroying a SQLiteStatement after a database is closed:
- The underlying call to close the sqlite database will fail if the database still has statements and we will leak the database.
- SQLiteStatement has a reference to the database so it cannot outlive the SQLiteDatabase.
- Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::deleteOrigin):
- platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::close):
(WebCore::SQLiteDatabase::incrementStatementCount):
(WebCore::SQLiteDatabase::decrementStatementCount):
- platform/sql/SQLiteDatabase.h:
- platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::SQLiteStatement):
(WebCore::SQLiteStatement::~SQLiteStatement):
- 7:34 AM Changeset in webkit [277652] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening. fast/canvas/canvas-conic-gradient-angle.html is an image failure.
- platform/glib/TestExpectations:
- 6:46 AM Changeset in webkit [277651] by
-
- 4 edits in trunk
[MediaStream][GStreamer] Flaky fast/mediastream/MediaStream-video-element-video-tracks-disabled.html
https://bugs.webkit.org/show_bug.cgi?id=225651
Reviewed by Alicia Boya Garcia.
Source/WebCore:
Push the black frame as soon as the corresponding track has been disabled. The black frame
is also now created once only and reused, instead of re-creating it 30 times per second (or
whatever the frame rate is). The cached frame is updated when the track dimensions change as
well.
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
LayoutTests:
- fast/mediastream/MediaStream-video-element-video-tracks-disabled.html: Delay the
notifyDone call to give the video element some time to render the black frame corresponding
to the disabled track. This might still flake on the bots, if that is the case we might need
to reassess how the test behaves or decide to mark it as expected flaky on glib ports.
- 6:23 AM Changeset in webkit [277650] by
-
- 3 edits2 adds in trunk
Difficult to scroll calcalist.co.il webpage, scrolling gets 'stuck'
https://bugs.webkit.org/show_bug.cgi?id=225905
<rdar://77692680>
Reviewed by Simon Fraser.
Source/WebCore:
The (implicit) integral flooring on the line height may produce short containing block for the inline content.
Test: fast/inline/vertical-top-on-subpixel-makes-inline-box-overflow.html
- rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
LayoutTests:
- fast/inline/vertical-top-on-subpixel-makes-inline-box-overflow-expected.txt: Added.
- fast/inline/vertical-top-on-subpixel-makes-inline-box-overflow.html: Added.
- 4:27 AM Changeset in webkit [277649] by
-
- 2 edits6 adds in trunk/LayoutTests
Test expectation updates from bug 225728
https://bugs.webkit.org/show_bug.cgi?id=225902
Unreviewed test gardening.
- platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Added.
- platform/mac-bigsur/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt: Added.
- platform/mac-wk2/TestExpectations:
- 4:10 AM Changeset in webkit [277648] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSCOnly] Non unified build fixes
https://bugs.webkit.org/show_bug.cgi?id=225872
Unreviewed non-unified build fixes.
- jit/JITPropertyAccess.cpp: Add missing ThunkGenerators.h header.
- jit/SlowPathCall.cpp: Add missing JITInlines.h and ThunkGenerators.h headers.
- wasm/js/WebAssemblyFunctionBase.h: Add missing WasmFormat.h header.
- 3:01 AM Changeset in webkit [277647] by
-
- 2 edits in trunk/Source/WebCore
Use RefPtr for local ref counted objects of FrameSelection::setSelectionWithoutUpdatingAppearance
https://bugs.webkit.org/show_bug.cgi?id=225908
Patch by Frederic Wang <fwang@igalia.com> on 2021-05-18
Reviewed by Ryosuke Niwa.
A previous patch modified setSelectionWithoutUpdatingAppearance to take into account one
possible DOM mutation after focus change. This is a follow-up patch applying recommendation
from https://lists.webkit.org/pipermail/webkit-dev/2020-September/031386.html event if it is
not obvious whether any of the current uses is dangerous.
No new tests.
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::selectFrameElementInParentIfFullySelected): Use RefPtr for the
following variables:
- parent: used in the non-trivial setFocusedFrame function (where it is however immediately
stored in a RefPtr).
- ownerElement: used in the non-trivial function computeNodeIndex (which however only
performs simple tree navigation).
- ownerElementParent: used as a this of the non-trivial function hasEditableStyle (which
however does not update style when computing editability).
- 1:44 AM Changeset in webkit [277646] by
-
- 5 edits in trunk
ASSERTION FAILED: isReactionAllowed() in enqueueDisconnectedCallbackIfNeeded during document teardown
https://bugs.webkit.org/show_bug.cgi?id=224033
Reviewed by Maciej Stachowiak.
Source/WebCore:
Moved the bug assertion to after an early exit for when we're in the middle of destorying the document.
enqueueDisconnectedCallbackIfNeeded will be called on custom elements in these circumstances
but there is no correctness issue here since we exit early.
- dom/CustomElementReactionQueue.cpp:
(WebCore::CustomElementReactionQueue::enqueueDisconnectedCallbackIfNeeded):
LayoutTests:
Removed flaky test expectation.
- platform/ios-simulator/TestExpectations:
- platform/mac/TestExpectations:
- 1:10 AM Changeset in webkit [277645] by
-
- 3 edits in trunk/Source/WebKit
Resurrect WKWebView media controls API removed in https://bugs.webkit.org/show_bug.cgi?id=221929
https://bugs.webkit.org/show_bug.cgi?id=225696
<rdar://77863194>
Reviewed by Alex Christensen.
Revert closeAllMediaPresentations, pauseAllMediaPlayback, resumeAllMediaPlayback, suspendAllMediaPlayback and requestMediaPlaybackState.
Mark them as deprecated in favor of the latest API versions and implement them based on the latest API versions.
No change of behavior.
- UIProcess/API/Cocoa/WKWebView.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView closeAllMediaPresentations:]):
(-[WKWebView pauseAllMediaPlayback:]):
(-[WKWebView resumeAllMediaPlayback:]):
(-[WKWebView suspendAllMediaPlayback:]):
(-[WKWebView requestMediaPlaybackState:]):
- 12:01 AM Changeset in webkit [277644] by
-
- 3 edits2 adds in trunk
SHOULD NEVER BE REACHED in FrameSelection::setSelectionWithoutUpdatingAppearance
https://bugs.webkit.org/show_bug.cgi?id=225219
Patch by Frederic Wang <fwang@igalia.com> on 2021-05-18
Reviewed by Ryosuke Niwa.
Source/WebCore:
When FrameSelection::selectFrameElementInParentIfFullySelected sets focus on the parent
frame, that can trigger DOM events, possibly making orphan the newSelection prepared before.
This patch fixes that issue by clearing the selection on that parent frame in such a
situation.
Test: editing/selection/selection-in-iframe-removed-assert.html
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::selectFrameElementInParentIfFullySelected): Check if the
newSelection became orphan and if so, clear it.
LayoutTests:
Add a regression test.
- editing/selection/selection-in-iframe-removed-assert.html: Copied from
editing/selection/selection-in-iframe-removed-crash.html, with an additional
requestAnimationFrame.
- editing/selection/selection-in-iframe-removed-assert-expected.txt: Added.
May 17, 2021:
- 11:34 PM Changeset in webkit [277643] by
-
- 3 edits in trunk/Source/WebCore
Drop unused SQLiteStatement::returnsAtLeastOneResult()
https://bugs.webkit.org/show_bug.cgi?id=225901
Reviewed by Darin Adler.
- platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::returnsAtLeastOneResult): Deleted.
- platform/sql/SQLiteStatement.h:
- 10:36 PM Changeset in webkit [277642] by
-
- 4 edits in trunk/Source/WebCore
Drop SQLiteStatement::return*Results() functions
https://bugs.webkit.org/show_bug.cgi?id=225899
Reviewed by Alex Christensen.
Drop SQLiteStatement::return*Results() functions. All of them are unused
except for returnTextResults(), which is used only once in SQLiteDatabase.
- platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::clearAllTables):
- platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::returnTextResults): Deleted.
(WebCore::SQLiteStatement::returnIntResults): Deleted.
(WebCore::SQLiteStatement::returnInt64Results): Deleted.
(WebCore::SQLiteStatement::returnDoubleResults): Deleted.
- platform/sql/SQLiteStatement.h:
- 10:15 PM Changeset in webkit [277641] by
-
- 6 edits in trunk/Source/WebKit
Enabling IPC testing API should prevent WebContent process from getting terminated in more cases
https://bugs.webkit.org/show_bug.cgi?id=225906
Reviewed by Wenson Hsieh.
Avoid hitting debug assertions in WebContent process when a dispatched message isn't processed
in a message receivers and don't kill WebContent process in GPU processs when RemoteRenderingBackend
receives a bad IPC message.
Also fixed a typo in encodeSharedMemory where we were exiting early when the protection was ReadWrite
instead of when it was not ReadWrite or ReadOnly.
These fixes are needed to land tests for recent GPU process fixes.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
- Scripts/webkit/messages.py:
(generate_message_handler):
- WebProcess/WebPage/IPCTestingAPI.cpp:
(WebKit::IPCTestingAPI::encodeSharedMemory):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensureGPUProcessConnection):
- 9:26 PM Changeset in webkit [277640] by
-
- 3 edits1 copy5 deletes in trunk/LayoutTests
[GLIB] Garden a few tests and unify some expectations
Unreviewed test gardening.
Removed some deprecated WPE baselines, moving expectations from GTK to
Glib.
- platform/glib/TestExpectations:
- platform/glib/security/block-test-expected.txt: Renamed from LayoutTests/platform/gtk/security/block-test-expected.txt.
- platform/gtk/TestExpectations:
- platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/request-headers-case.any-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/fetch/api/basic/request-headers-case.any.worker-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/fetch/content-type/script.window-expected.txt: Removed.
- platform/wpe/imported/w3c/web-platform-tests/mimesniff/mime-types/charset-parameter.window-expected.txt: Removed.
- platform/wpe/security/block-test-expected.txt: Removed.
- 9:13 PM Changeset in webkit [277639] by
-
- 2 edits in branches/safari-611-branch/Source/WebKit
Apply patch. rdar://problem/78137134
- 9:10 PM Changeset in webkit [277638] by
-
- 8 edits in branches/safari-611-branch/Source
Versioning.
WebKit-7611.3.4
- 8:52 PM Changeset in webkit [277637] by
-
- 1 copy in tags/Safari-611.2.7.0.4
Tag Safari-611.2.7.0.4.
- 8:49 PM Changeset in webkit [277636] by
-
- 2 edits in branches/safari-611.2.7.0-branch/Source/WebKit
Apply patch. rdar://problem/78125245
- 8:45 PM Changeset in webkit [277635] by
-
- 8 edits in branches/safari-611.2.7.0-branch/Source
Versioning.
WebKit-7611.2.7.0.4
- 8:39 PM Changeset in webkit [277634] by
-
- 4 edits in trunk/Source/WebCore
Remove SQLiteStatement::isColumnNull and its use
https://bugs.webkit.org/show_bug.cgi?id=225892
Reviewed by Chris Dumez.
SQLiteStatement::isColumnNull is only used in SQLiteIDBBackingStore and it is actually not needed, because
SQLiteIDBBackingStore can use getColumnText to evaluate the statement and get the result. So the check is
redundant.
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::extractExistingDatabaseInfo):
- platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::isColumnNull): Deleted.
- platform/sql/SQLiteStatement.h:
- 7:35 PM Changeset in webkit [277633] by
-
- 4 edits in trunk/Source
Enable JS to emit sign posts and trace points under Options::exposeProfilersOnGlobalObject
https://bugs.webkit.org/show_bug.cgi?id=225895
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
- runtime/JSGlobalObject.cpp:
(JSC::asTracePointInt):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::asSignpostString):
(JSC::JSGlobalObject::init):
Source/WTF:
- wtf/SystemTracing.h:
- 7:34 PM Changeset in webkit [277632] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening. imported/w3c/web-platform-tests/eventsource/eventsource-close.htm is crashing since r277601.
- platform/gtk/TestExpectations:
- 7:33 PM Changeset in webkit [277631] by
-
- 8 edits in trunk
[GPU Process] Object identifiers with the deleted value should cause MESSAGE_CHECKs
https://bugs.webkit.org/show_bug.cgi?id=225886
rdar://78114708
Reviewed by Chris Dumez.
Source/WebCore:
Implement some stricter validation around object identifiers in when decoding display list items in the GPU
Process. Currently, we only check for the empty value (i.e. raw identifier value of 0) when iterating over these
items, but treat an identifier with the deleted value as valid; instead, we should be treating items with either
empty or deleted identifiers as invalid.
To address this, we introduce a new helper method,
ObjectIdentifier::isValid
, and turn existing checks for
!!identifier
intoidentifier.isValid()
.
Test: DisplayListTests.InlineItemValidationFailure
- platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::ClipToImageBuffer::isValid const):
(WebCore::DisplayList::DrawImageBuffer::isValid const):
(WebCore::DisplayList::DrawNativeImage::isValid const):
(WebCore::DisplayList::DrawPattern::isValid const):
(WebCore::DisplayList::PaintFrameForMedia::isValid const):
(WebCore::DisplayList::FlushContext::isValid const):
(WebCore::DisplayList::MetaCommandChangeItemBuffer::isValid const):
(WebCore::DisplayList::MetaCommandChangeDestinationImageBuffer::isValid const):
Source/WebKit:
See WebCore/ChangeLog for more details. Use
ObjectIdentifier::isValid()
instead of just checking for the empty
value, when determining whether an object identifier should trigger a message check to the web process.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::nextDestinationImageBufferAfterApplyingDisplayLists):
Source/WTF:
See WebCore/ChangeLog for more details. Add a helper method on
ObjectIdentifier
that returns true only if it
is the empty value or deleted value.
- wtf/ObjectIdentifier.h:
(WTF::ObjectIdentifier::isValid const):
Tools:
Adjust an existing API test to verify that the deleted object identifier value triggers an inline item decoding
failure.
- TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:
(TestWebKitAPI::TEST):
- 7:19 PM Changeset in webkit [277630] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening. imported/w3c/web-platform-tests/resource-timing/resource_connection_reuse_mixed_content.html is failing.
- platform/glib/TestExpectations:
- 7:14 PM Changeset in webkit [277629] by
-
- 3 edits in trunk/Source/WebCore
[Win] Unreviewed debug build fix for r277601.
https://bugs.webkit.org/show_bug.cgi?id=225855
<rdar://problem/78116715>
- platform/network/curl/CookieJarDB.cpp:
(WebCore::CookieJarDB::executeSQLStatement):
- platform/win/SearchPopupMenuDB.cpp:
(WebCore::SearchPopupMenuDB::executeSQLStatement):
Removed the undefined variables from debug messages.
- 6:52 PM Changeset in webkit [277628] by
-
- 5 edits1 add in trunk
WebFrameLoaderClient::dispatchWillSendRequest sometimes resets app-bound value
https://bugs.webkit.org/show_bug.cgi?id=225829
<rdar://problem/78034595>
Reviewed by Alex Christensen.
Source/WebKit:
webPage->injectedBundleResourceLoadClient().willSendRequestForFrame
can sometimes return a completely new request. We should make sure the
app-bound value is kept when this happens.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchWillSendRequest):
Tools:
API test coverage.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
- TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacyPlugIn.mm: Added.
(-[InAppBrowserPrivacyPlugIn webProcessPlugIn:didCreateBrowserContextController:]):
(-[InAppBrowserPrivacyPlugIn webProcessPlugInBrowserContextController:frame:willSendRequestForResource:request:redirectResponse:]):
- 6:33 PM Changeset in webkit [277627] by
-
- 14 edits9 copies in trunk
Unreviewed, reverting r277605.
Broke iOS tests
Reverted changeset:
"Remove _WKUserContentFilter and _WKUserContentExtensionStore"
https://bugs.webkit.org/show_bug.cgi?id=224391
https://commits.webkit.org/r277605
- 6:15 PM Changeset in webkit [277626] by
-
- 1 edit10 adds in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Reintroduce platform specific baselines removed in r277577 that are still needed.
- platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt: Added.
- platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt: Added.
- platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-003-expected.txt: Added.
- platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt: Added.
- platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt: Added.
- platform/glib/imported/w3c/web-platform-tests/mathml/relations/css-styling/lengths-2-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt: Added.
- platform/wpe/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt: Added.
- 6:06 PM Changeset in webkit [277625] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r277116): [ macOS Release wk2 ] media/modern-media-controls/pip-support/pip-support-enabled.html (layout-test) is a flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=225521
Unreviewed test gardening.
Updating expectations to Pass Failure while test is reviewed.
- platform/mac-wk2/TestExpectations:
- 5:56 PM Changeset in webkit [277624] by
-
- 2 edits in branches/safari-612.1.15.0-branch/Source/WebCore
Cherry-pick r277600. rdar://problem/78130123
REGRESSION(r277425): Crash in FrameSelection::selectFrameElementInParentIfFullySelected
https://bugs.webkit.org/show_bug.cgi?id=225795
Patch by Frederic Wang <fwang@igalia.com> on 2021-05-17
Reviewed by Ryosuke Niwa.
r277425 claimed that in FrameSelection::setSelectionWithoutUpdatingAppearance,
!m_document->frame() was equivalent to !selectionEndpointsBelongToMultipleDocuments &&
!selectionIsInAnotherDocument && selectionIsInDetachedDocument, but it misses the case when
newSelection.document() is null. So this patch adds back this particular case to the
original "if" block. This patch also adds an ASSERT on m_document->frame().
No new tests.
- editing/FrameSelection.cpp: (WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): Add back the case !m_document->frame() && !newSelection.document() to the first sanity check and ASSERT on m_document->frame() after the second sanity check.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277600 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:44 PM Changeset in webkit [277623] by
-
- 2 edits in branches/safari-612.1.15.1-branch/Source/WebCore
Cherry-pick r277603. rdar://problem/78130222
Null check m_resource in SubresourceLoader::didReceiveResponse
https://bugs.webkit.org/show_bug.cgi?id=225879
Reviewed by Chris Dumez.
Add ASSERT_NOT_REACHED and RELEASE_LOG_FAULT if m_resource is null.
This will help us notice this invalid state in debug builds and diagnose strange loading failures in simulated crash logs.
On further investigation, the crash fixed in r277594 was likely already fixed by something else, but that made it more robust.
- loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::didReceiveResponse):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277603 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:44 PM Changeset in webkit [277622] by
-
- 2 edits in branches/safari-612.1.15.1-branch/Source/WebCore
Cherry-pick r277600. rdar://problem/78130132
REGRESSION(r277425): Crash in FrameSelection::selectFrameElementInParentIfFullySelected
https://bugs.webkit.org/show_bug.cgi?id=225795
Patch by Frederic Wang <fwang@igalia.com> on 2021-05-17
Reviewed by Ryosuke Niwa.
r277425 claimed that in FrameSelection::setSelectionWithoutUpdatingAppearance,
!m_document->frame() was equivalent to !selectionEndpointsBelongToMultipleDocuments &&
!selectionIsInAnotherDocument && selectionIsInDetachedDocument, but it misses the case when
newSelection.document() is null. So this patch adds back this particular case to the
original "if" block. This patch also adds an ASSERT on m_document->frame().
No new tests.
- editing/FrameSelection.cpp: (WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): Add back the case !m_document->frame() && !newSelection.document() to the first sanity check and ASSERT on m_document->frame() after the second sanity check.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277600 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:44 PM Changeset in webkit [277621] by
-
- 2 edits in branches/safari-612.1.15.1-branch/Source/WebCore
Cherry-pick r277594. rdar://problem/78130222
Null check m_resource in SubresourceLoader::didReceiveResponse
https://bugs.webkit.org/show_bug.cgi?id=225879
<rdar://78084804>
Reviewed by Chris Dumez.
- loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::didReceiveResponse):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277594 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:41 PM Changeset in webkit [277620] by
-
- 4 edits in trunk/Source/JavaScriptCore
StructureRareData::m_replacementWatchpointSets should not be a pointer to a pointer
https://bugs.webkit.org/show_bug.cgi?id=225840
Reviewed by Mark Lam.
HashMap is already just one pointer. Making it a pointer to a pointer
causes heap fragmentation. Worth about 1MB on GMail.
- runtime/Structure.cpp:
(JSC::Structure::ensurePropertyReplacementWatchpointSet):
- runtime/StructureInlines.h:
(JSC::Structure::didReplaceProperty):
(JSC::Structure::propertyReplacementWatchpointSet):
- runtime/StructureRareData.h:
- 5:26 PM Changeset in webkit [277619] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix the internal macOS build
Add a missing
WebCore::
namespace beforeTranslationContextMenuInfo
.
This error was likely masked by ausing namespace WebCore;
present in an earlier unified source.
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::handleContextMenuTranslation):
- 5:11 PM Changeset in webkit [277618] by
-
- 6 edits in trunk/Source/WebCore
Drop unnecessary SQLiteDatabase::updateLastChangesCount()
https://bugs.webkit.org/show_bug.cgi?id=225885
Reviewed by Alex Christensen.
Drop unnecessary SQLiteDatabase::updateLastChangesCount() and have SQLiteDatabase::lastChanges()
rely on sqlite3_changes() instead of sqlite3_total_changes(). We started using updateLastChangesCount()
+ sqlite3_total_changes() in https://commits.webkit.org/r130891 to address an issue in WebSQL
SQLResultSet.rowsAffected would not be 0 for SELECT statement. This patch reverts r130891 and instead
sets SQLResultSet.rowsAffected when the statement is not a read-only statement.
This is covered by storage/websql/execute-sql-rowsAffected.html which is still passing after
this change.
- Modules/webdatabase/SQLStatement.cpp:
(WebCore::SQLStatement::execute):
- platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::lastChanges):
(WebCore::SQLiteDatabase::updateLastChangesCount): Deleted.
- platform/sql/SQLiteDatabase.h:
- platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::step):
(WebCore::SQLiteStatement::isReadOnly):
- platform/sql/SQLiteStatement.h:
- 5:09 PM Changeset in webkit [277617] by
-
- 2 edits in trunk/Source/WebCore
Fix Windows debug build.
https://bugs.webkit.org/show_bug.cgi?id=225855
- platform/network/curl/CookieJarDB.cpp:
(WebCore::CookieJarDB::executeSQLStatement):
- 5:09 PM Changeset in webkit [277616] by
-
- 10 edits in trunk
[Modern Media Controls] promote submenus items if there is only one
https://bugs.webkit.org/show_bug.cgi?id=225883
Reviewed by Eric Carlson.
Source/WebCore:
As an example, if a
<video>
only has subtitles and not any other languages, the "Subtitles"
submenu should really be top-level (i.e. have "Subtitles" be the title of the entire
contextmenu instead of being a submenu of a title-less contextmenu) in the contextmenu shown
when tapping the tracks button.
Tests: media/modern-media-controls/tracks-support/auto-text-track.html
media/modern-media-controls/tracks-support/click-track-in-contextmenu.html
media/modern-media-controls/tracks-support/hidden-tracks.html
media/modern-media-controls/tracks-support/off-text-track.html
media/modern-media-controls/tracks-support/text-track-selected-via-media-api.html
- Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::showMediaControlsContextMenu):
Source/WebKit:
As an example, if a
<video>
only has subtitles and not any other languages, the "Subtitles"
submenu should really be top-level (i.e. have "Subtitles" be the title of the entire
contextmenu instead of being a submenu of a title-less contextmenu) in the contextmenu shown
when tapping the tracks button.
- UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant showMediaControlsContextMenu:items:completionHandler:]):
LayoutTests:
- media/modern-media-controls/tracks-support/auto-text-track.html:
- media/modern-media-controls/tracks-support/click-track-in-contextmenu.html:
- media/modern-media-controls/tracks-support/hidden-tracks.html:
- media/modern-media-controls/tracks-support/off-text-track.html:
- media/modern-media-controls/tracks-support/text-track-selected-via-media-api.html:
- 4:45 PM Changeset in webkit [277615] by
-
- 6 edits in trunk/Tools
[webkitscmpy] Support testing on machines without svn installed
https://bugs.webkit.org/show_bug.cgi?id=225891
<rdar://problem/78126369>
Reviewed by Dewei Zhu.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py:
- Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:
(Scm.executable): Ensure whichcraft import support mock.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
(Git.enter): Mock git executable location.
- Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/svn.py:
(Svn.enter): Mock svn executable location.
- 4:24 PM Changeset in webkit [277614] by
-
- 20 edits3 deletes in trunk
Remove API::Object::Type::BundlePageGroup
https://bugs.webkit.org/show_bug.cgi?id=225611
Reviewed by Brady Eidson.
Source/WebKit:
Its last use was removed in rdar://77775952
- Shared/API/APIObject.h:
- Shared/API/APIPageGroupHandle.cpp: Removed.
- Shared/API/APIPageGroupHandle.h: Removed.
- Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
- Shared/Cocoa/SharedRingBufferStorage.cpp:
(WebKit::SharedRingBufferStorage::setStorage):
(WebKit::SharedRingBufferStorage::allocate):
- Shared/UserData.cpp:
(WebKit::UserData::encode):
(WebKit::UserData::decode):
- Shared/mac/MediaFormatReader/MediaSampleCursor.h:
- Sources.txt:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::transformHandlesToObjects):
(WebKit::WebProcessProxy::transformObjectsToHandles):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.h:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.mm:
(-[WKWebProcessPlugInPageGroup identifier]): Deleted.
(-[WKWebProcessPlugInPageGroup dealloc]): Deleted.
(-[WKWebProcessPlugInPageGroup _apiObject]): Deleted.
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroupInternal.h: Removed.
- WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h:
- WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:
(-[WKWebProcessPlugInBrowserContextController pageGroup]): Deleted.
- WebProcess/WebPage/WebPageGroupProxy.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::transformHandlesToObjects):
(WebKit::WebProcess::transformObjectsToHandles):
Tools:
Some tests were trying to encode a page group, but it was unused so I just removed them.
- TestWebKitAPI/Tests/WebKit/DOMWindowExtensionBasic.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/DocumentStartUserScriptAlertCrash.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/InjectedBundleDisableOverrideBuiltinsBehavior.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/InjectedBundleMakeAllShadowRootsOpen.cpp:
(TestWebKitAPI::TEST):
- 4:20 PM Changeset in webkit [277613] by
-
- 5 edits1 add in trunk
REGRESSION (r271119): Object methods defined with shorthand notation cannot access "caller" in non-strict mode
https://bugs.webkit.org/show_bug.cgi?id=225277
Reviewed by Darin Adler.
JSTests:
- stress/caller-and-arguments-properties-for-functions-that-dont-have-them.js: Now covers #157461 and #157863.
- stress/function-caller-cross-realm-via-call-apply.js: Added, coverage for #34553.
- stress/function-hidden-as-caller.js: Also adds test case for #102276.
Source/JavaScriptCore:
This patch loosens
function.caller
to allow non-strict getters, setters, arrow functions,
and ES6 methods to be returned as callers, fixing web compatibility.
The intent of r230662 is preserved: generator / async functions are never exposed. There is
no good way to acquire wrapper function from the internal body one, nor from its arguments.
Also, this behavior is on standards track [1] (seems to be considered desirable).
[1]: https://github.com/claudepache/es-legacy-function-reflection/blob/master/spec.md#get-functionprototypecaller (step 14)
- runtime/JSFunction.cpp:
(JSC::JSC_DEFINE_CUSTOM_GETTER):
- 4:12 PM Changeset in webkit [277612] by
-
- 7 edits1 add in trunk/Tools
Style checker should check for non-inclusive terminology
https://bugs.webkit.org/show_bug.cgi?id=213088
Reviewed by Jonathan Bedard.
Style checker should check for non-inclusive terminology so that we can avoid unintentional addition
of non-inclusive terminology in our codebase.
- Scripts/webkitpy/style/checkers/inclusive_language.py: Added inclusive language checker.
(InclusiveLanguageChecker):
(InclusiveLanguageChecker.check):
- Scripts/webkitpy/style/checkers/changelog.py: Check for inclusive language.
- Scripts/webkitpy/style/checkers/cpp.py: Ditto.
- Scripts/webkitpy/style/checkers/js.py: Ditto.
- Scripts/webkitpy/style/checkers/python.py: Ditto.
- Scripts/webkitpy/style/checkers/text.py: Ditto.
- Scripts/report-non-inclusive-language: Ignore the newly added inclusive_language.py file.
- 4:03 PM Changeset in webkit [277611] by
-
- 8 edits in branches/safari-612.1.12-branch/Source
Versioning.
WebKit-7612.1.12.10
- 4:00 PM Changeset in webkit [277610] by
-
- 1 copy in tags/Safari-612.1.12.9
Tag Safari-612.1.12.9.
- 3:55 PM Changeset in webkit [277609] by
-
- 2 edits in trunk/Source/WebCore
[GTK] [2.33.1] Fails to build when HAVE_OPENGL_ES_3 is on
https://bugs.webkit.org/show_bug.cgi?id=225867
Reviewed by Adrian Perez de Castro.
Include GLES3/gl3.h if HAVE_OPENGL_ES_3 is set.
- platform/graphics/opengl/ExtensionsGLOpenGLES.h:
- 3:11 PM Changeset in webkit [277608] by
-
- 2 edits in trunk/Tools
Fix clean build after r277606
https://bugs.webkit.org/show_bug.cgi?id=223658
- TestWebKitAPI/Tests/WebKitCocoa/ContentSecurityPolicy.mm:
(TEST):
Use API instead of removed API.
Why EWS didn't find this, we may never know.
- 2:26 PM Changeset in webkit [277607] by
-
- 8 edits in trunk/Source
Use kAudioObjectPropertyElementMain where available
https://bugs.webkit.org/show_bug.cgi?id=224635
Patch by Alex Christensen <achristensen@webkit.org> on 2021-05-17
Reviewed by Eric Carlson.
Source/WebCore:
- platform/audio/mac/AudioHardwareListenerMac.cpp:
(WebCore::isAudioHardwareProcessRunning):
(WebCore::currentDeviceSupportedBufferSizes):
(WebCore::processIsRunningPropertyDescriptor):
(WebCore::outputDevicePropertyDescriptor):
- platform/audio/mac/AudioSessionMac.mm:
(WebCore::defaultDevice):
(WebCore::defaultDeviceTransportIsBluetooth):
(WebCore::AudioSessionPrivate::addSampleRateObserverIfNeeded):
(WebCore::AudioSessionPrivate::addBufferSizeObserverIfNeeded):
(WebCore::AudioSession::sampleRate const):
(WebCore::AudioSession::bufferSize const):
(WebCore::AudioSession::maximumNumberOfOutputChannels const):
(WebCore::AudioSession::setPreferredBufferSize):
(WebCore::AudioSession::isMuted const):
(WebCore::AudioSession::addMutedStateObserver):
(WebCore::AudioSession::removeMutedStateObserver):
- platform/mediastream/mac/CoreAudioCaptureDevice.cpp:
(WebCore::getDeviceInfo):
(WebCore::CoreAudioCaptureDevice::CoreAudioCaptureDevice):
(WebCore::CoreAudioCaptureDevice::relatedAudioDeviceIDs):
- platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp:
(WebCore::deviceHasInputStreams):
(WebCore::deviceHasOutputStreams):
(WebCore::isValidCaptureDevice):
(WebCore::CoreAudioCaptureDeviceManager::coreAudioCaptureDevices):
(WebCore::computeAudioDeviceList):
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioSharedUnit::defaultOutputDevice):
Source/WTF:
- wtf/PlatformHave.h:
- 2:21 PM Changeset in webkit [277606] by
-
- 5 edits in trunk
[Cocoa] Remove prototype loadSimulatedRequest methods
https://bugs.webkit.org/show_bug.cgi?id=223658
Patch by Alex Christensen <achristensen@webkit.org> on 2021-05-17
Reviewed by Geoffrey Garen.
Source/WebKit:
Now that rdar://75892301 is fixed we can remove the original API.
- UIProcess/API/Cocoa/WKWebView.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView loadSimulatedRequest:withResponse:responseData:]): Deleted.
(-[WKWebView loadSimulatedRequest:withResponseHTMLString:]): Deleted.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewLoadAPIs.mm:
(TEST):
- 2:13 PM Changeset in webkit [277605] by
-
- 14 edits9 deletes in trunk
Remove _WKUserContentFilter and _WKUserContentExtensionStore
https://bugs.webkit.org/show_bug.cgi?id=224391
Patch by Alex Christensen <achristensen@webkit.org> on 2021-05-17
Reviewed by Darin Adler.
Source/WebKit:
I removed their use in rdar://75889414
They were replaced by WKContentRuleList and WKContentRuleListStore.
- UIProcess/API/Cocoa/WKUserContentController.mm:
(-[WKUserContentController _addUserContentFilter:]):
(-[WKUserContentController _removeAllUserContentFilters]):
- UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
- UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:
- UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:
(+[_WKUserContentExtensionStore defaultStore]):
(+[_WKUserContentExtensionStore storeWithURL:]):
(-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
(-[_WKUserContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]):
(-[_WKUserContentExtensionStore removeContentExtensionForIdentifier:completionHandler:]):
(toUserContentRuleListStoreError): Deleted.
(-[_WKUserContentExtensionStore _apiObject]): Deleted.
(-[_WKUserContentExtensionStore _removeAllContentExtensions]): Deleted.
(-[_WKUserContentExtensionStore _invalidateContentExtensionVersionForIdentifier:]): Deleted.
(-[_WKUserContentExtensionStore _initWithWKContentRuleListStore:]): Deleted.
(-[_WKUserContentExtensionStore _contentRuleListStore]): Deleted.
- UIProcess/API/Cocoa/_WKUserContentExtensionStoreInternal.h: Removed.
- UIProcess/API/Cocoa/_WKUserContentExtensionStorePrivate.h: Removed.
- UIProcess/API/Cocoa/_WKUserContentFilter.h:
- UIProcess/API/Cocoa/_WKUserContentFilter.mm:
(-[_WKUserContentFilter _initWithWKContentRuleList:]):
(-[_WKUserContentFilter _apiObject]): Deleted.
- UIProcess/API/Cocoa/_WKUserContentFilterInternal.h: Removed.
- UIProcess/API/Cocoa/_WKUserContentFilterPrivate.h: Removed.
- UIProcess/WebProcessPool.h:
- WebKit.xcodeproj/project.pbxproj:
Tools:
- MiniBrowser/mac/ExtensionManagerWindowController.m:
(-[ExtensionManagerWindowController init]):
(-[ExtensionManagerWindowController add:]):
(-[ExtensionManagerWindowController remove:]):
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/_WKUserContentExtensionStore.mm: Removed.
These tests had already been copied to a version that uses WKContentRuleList.
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::resetContentExtensions):
- WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::TestController::configureContentExtensionForTest):
- 1:51 PM Changeset in webkit [277604] by
-
- 2 edits in trunk/LayoutTests
[ Mac ] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-process-frozen-array.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=225882
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 1:27 PM Changeset in webkit [277603] by
-
- 2 edits in trunk/Source/WebCore
Null check m_resource in SubresourceLoader::didReceiveResponse
https://bugs.webkit.org/show_bug.cgi?id=225879
Reviewed by Chris Dumez.
Add ASSERT_NOT_REACHED and RELEASE_LOG_FAULT if m_resource is null.
This will help us notice this invalid state in debug builds and diagnose strange loading failures in simulated crash logs.
On further investigation, the crash fixed in r277594 was likely already fixed by something else, but that made it more robust.
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveResponse):
- 12:42 PM Changeset in webkit [277602] by
-
- 3 edits in trunk/Source/WebCore
[GPU Process] Validate DocumentMarkerLineStyle::Mode when decoding DrawDotsForDocumentMarker
https://bugs.webkit.org/show_bug.cgi?id=225874
rdar://77885775
Reviewed by Simon Fraser.
Add validation around the style mode enum in
DrawDotsForDocumentMarker
'sDocumentMarkerLineStyle
. To ensure
that these enum values are safely decoded when deserializingDrawDotsForDocumentMarker
items from arbitrary
data, we store and read the style mode asDocumentMarkerLineStyle::Mode
's underlying type: auint8_t
. Upon
item validation, we'll then returnfalse
fromisValid()
in the case where the underlying value is not a
validDocumentMarkerLineStyle::Mode
.
This is necessary because copying invalid enum class types triggers undefined behavior in C++, so we need to
avoid copying the enum value as aDocumentMarkerLineStyle::Mode
prior to validation.
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::operator<<):
(WebCore::DisplayList::DrawDotsForDocumentMarker::isValid const):
- platform/graphics/displaylists/DisplayListItems.h:
- 12:26 PM Changeset in webkit [277601] by
-
- 24 edits in trunk/Source
Avoid more String creations when preparing SQLite statements
https://bugs.webkit.org/show_bug.cgi?id=225855
Reviewed by Alex Christensen.
Avoid more String creations when preparing SQLite statements by using ASCIILiteral. Also rename the
Source/WebCore:
SQLiteDatabase::prepareStatement() / SQLiteDatabase::executeCommand() overloads that take in a
String to make sure they are not called by mistake.
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::v3RecordsTableSchema):
(WebCore::IDBServer::v3RecordsTableSchemaAlternate):
(WebCore::IDBServer::v3IndexRecordsTableSchema):
(WebCore::IDBServer::v3IndexRecordsTableSchemaAlternate):
(WebCore::IDBServer::blobRecordsTableSchema):
(WebCore::IDBServer::blobRecordsTableSchemaAlternate):
(WebCore::IDBServer::blobFilesTableSchema):
(WebCore::IDBServer::blobFilesTableSchemaAlternate):
(WebCore::IDBServer::createOrMigrateRecordsTableIfNecessary):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidRecordsTable):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsTable):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::createAndPopulateInitialDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidObjectStoreInfoTable):
(WebCore::IDBServer::SQLiteIDBBackingStore::migrateIndexInfoTableForIDUpdate):
(WebCore::IDBServer::SQLiteIDBBackingStore::migrateIndexRecordsTableForIDUpdate):
- Modules/indexeddb/server/SQLiteIDBCursor.cpp:
(WebCore::IDBServer::SQLiteIDBCursor::createSQLiteStatement):
(WebCore::IDBServer::SQLiteIDBCursor::resetAndRebindPreIndexStatementIfNecessary):
- Modules/webdatabase/Database.cpp:
(WebCore::setTextValueInDatabase):
(WebCore::retrieveTextResultFromDatabase):
(WebCore::Database::performOpenAndVerify):
- Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::openTrackerDatabase):
(WebCore::DatabaseTracker::deleteDatabaseFileIfEmpty):
- Modules/webdatabase/SQLStatement.cpp:
(WebCore::SQLStatement::execute):
- loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::executeSQLCommand):
(WebCore::ApplicationCacheStorage::verifySchemaVersion):
(WebCore::ApplicationCacheStorage::openDatabase):
(WebCore::ApplicationCacheStorage::empty):
(WebCore::ApplicationCacheStorage::checkForDeletedResources):
- loader/appcache/ApplicationCacheStorage.h:
- platform/network/curl/CookieJarDB.cpp:
(WebCore::CookieJarDB::verifySchemaVersion):
(WebCore::CookieJarDB::createPrepareStatement):
(WebCore::executeSQLStatement):
(WebCore::CookieJarDB::executeSqlSlow):
(WebCore::CookieJarDB::executeSql):
- platform/network/curl/CookieJarDB.h:
- platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::setMaximumSize):
(WebCore::SQLiteDatabase::setSynchronous):
(WebCore::SQLiteDatabase::executeCommandSlow):
(WebCore::SQLiteDatabase::tableExists):
(WebCore::SQLiteDatabase::clearAllTables):
(WebCore::SQLiteDatabase::prepareStatementSlow):
(WebCore::SQLiteDatabase::prepareHeapStatementSlow):
- platform/sql/SQLiteDatabase.h:
- platform/sql/SQLiteTransaction.cpp:
(WebCore::SQLiteTransaction::begin):
(WebCore::SQLiteTransaction::commit):
(WebCore::SQLiteTransaction::rollback):
- platform/win/SearchPopupMenuDB.cpp:
(WebCore::SearchPopupMenuDB::verifySchemaVersion):
(WebCore::executeSQLStatement):
(WebCore::SearchPopupMenuDB::executeSimpleSql):
- platform/win/SearchPopupMenuDB.h:
Source/WebKit:
SQLiteDatabase::prepareStatement() / SQLiteDatabase::executeCommand() overloads that take in a
String to make sure they are not called by mistake.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::currentTableAndIndexQueries):
(WebKit::insertDistinctValuesInTableStatement):
(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToNewTablesIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::columnsForTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingColumnsToTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::renameColumnInTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationshipList):
(WebKit::joinSubStatisticsForSorting):
(WebKit::ResourceLoadStatisticsDatabaseStore::aggregatedThirdPartyData const):
(WebKit::ResourceLoadStatisticsDatabaseStore::incrementRecordsDeletedCountForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAsPrevalentIfHasRedirectedToPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::findNotVeryPrevalentResources):
(WebKit::ResourceLoadStatisticsDatabaseStore::grandfatherDataForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::setDomainsAsPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearGrandfathering):
(WebKit::ResourceLoadStatisticsDatabaseStore::pruneStatisticsIfNeeded):
(WebKit::ResourceLoadStatisticsDatabaseStore::getSubStatisticStatement const):
(WebKit::ResourceLoadStatisticsDatabaseStore::appendSubStatisticList const):
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/WebStorage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::openDatabase):
(WebKit::LocalStorageDatabase::migrateItemTableIfNeeded):
- UIProcess/API/glib/IconDatabase.cpp:
(WebKit::IconDatabase::createTablesIfNeeded):
(WebKit::IconDatabase::populatePageURLToIconURLMap):
Source/WebKitLegacy:
SQLiteDatabase::prepareStatement() / SQLiteDatabase::executeCommand() overloads that take in a
String to make sure they are not called by mistake.
- Storage/StorageAreaSync.cpp:
(WebKit::StorageAreaSync::openDatabase):
(WebKit::StorageAreaSync::migrateItemTableIfNeeded):
- Storage/StorageTracker.cpp:
(WebKit::StorageTracker::openTrackerDatabase):
- 12:09 PM Changeset in webkit [277600] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r277425): Crash in FrameSelection::selectFrameElementInParentIfFullySelected
https://bugs.webkit.org/show_bug.cgi?id=225795
Patch by Frederic Wang <fwang@igalia.com> on 2021-05-17
Reviewed by Ryosuke Niwa.
r277425 claimed that in FrameSelection::setSelectionWithoutUpdatingAppearance,
!m_document->frame() was equivalent to !selectionEndpointsBelongToMultipleDocuments &&
!selectionIsInAnotherDocument && selectionIsInDetachedDocument, but it misses the case when
newSelection.document() is null. So this patch adds back this particular case to the
original "if" block. This patch also adds an ASSERT on m_document->frame().
No new tests.
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance): Add back the case
!m_document->frame() && !newSelection.document() to the first sanity check and ASSERT on
m_document->frame() after the second sanity check.
- 12:07 PM Changeset in webkit [277599] by
-
- 2 edits in trunk/LayoutTests
Skip WebXR tests again. They are flakey.
- 11:54 AM Changeset in webkit [277598] by
-
- 29 edits1 add1 delete in branches/safari-612.1.15.1-branch
Cherry-pick r277505. rdar://problem/78110796
Promote
-[WKWebView _pageExtendedBackgroundColor]
SPI to-[WKWebView underPageBackgroundColor]
API
https://bugs.webkit.org/show_bug.cgi?id=225615
<rdar://problem/76568094>
Reviewed by Wenson Hsieh.
Source/WebCore:
underPageBackgroundColor
is anull_resettable
property that will return (in order of validity)
- the most recent non-null value provided
- the CSS
background-color
of the<body>
and/or<html>
(this is the current value of_pageExtendedBackgroundColor
) - the underlying platform view's background color
Modifications to this property will not have any effect until control is returned to the runloop.
Tests: WKWebViewUnderPageBackgroundColor.OnLoad
WKWebViewUnderPageBackgroundColor.SingleSolidColor
WKWebViewUnderPageBackgroundColor.SingleBlendedColor
WKWebViewUnderPageBackgroundColor.MultipleSolidColors
WKWebViewUnderPageBackgroundColor.MultipleBlendedColors
WKWebViewUnderPageBackgroundColor.KVO
WKWebViewUnderPageBackgroundColor.MatchesScrollView
- page/Page.h: (WebCore::Page::underPageBackgroundColorOverride const): Added.
- page/Page.cpp:
(WebCore::Page::setUnderPageBackgroundColorOverride): Added.
Hold the client-overriden value for
underPageBackgroundColor
so that it can be used when drawing the overscroll layer.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateLayerForOverhangAreasBackgroundColor):
Remove the experimental settings
UseSampledPageTopColorForScrollAreaBackgroundColor
andUseThemeColorForScrollAreaBackgroundColor
now that clients can override the default overscroll area background color using-[WKWebView setUnderPageBackgroundColor:]
.
- dom/Document.cpp:
(WebCore::Document::themeColorChanged):
It's no longer necessary to force the overscroll area to redraw since that'll be handled by
a client calling
-[WKWebView setUnderPageBackgroundColor:]
(possibly in response to a-[WKWebView themeColor]
KVO notification).
Source/WebKit:
underPageBackgroundColor
is anull_resettable
property that will return (in order of validity)
- the most recent non-null value provided
- the CSS
background-color
of the<body>
and/or<html>
(this is the current value of_pageExtendedBackgroundColor
) - the underlying platform view's background color
Modifications to this property will not have any effect until control is returned to the runloop.
- UIProcess/API/Cocoa/WKWebView.h:
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView underPageBackgroundColor]): Added. (-[WKWebView setUnderPageBackgroundColor:]): Added. (+[WKWebView automaticallyNotifiesObserversOfUnderPageBackgroundColor]): Added.
- UIProcess/API/ios/WKWebViewIOS.mm:
(baseScrollViewBackgroundColor):
(scrollViewBackgroundColor):
Remove the experimental settings
UseSampledPageTopColorForScrollAreaBackgroundColor
andUseThemeColorForScrollAreaBackgroundColor
now that clients can override the default overscroll area background color using-[WKWebView setUnderPageBackgroundColor:]
.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::underPageBackgroundColor const): Added. (WebKit::WebPageProxy::setUnderPageBackgroundColorOverride): Added. (WebKit::WebPageProxy::pageExtendedBackgroundColorDidChange): (WebKit::WebPageProxy::platformUnderPageBackgroundColor const): Added. (WebKit::WebPageProxy::scrollAreaBackgroundColor const): Deleted.
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::platformUnderPageBackgroundColor const): Added.
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::platformUnderPageBackgroundColor const): Added.
Store the client-overriden value for
underPageBackgroundColor
and manage state changes.
- UIProcess/PageClient.h: (WebKit::PageClient::underPageBackgroundColorWillChange): Added. (WebKit::PageClient::underPageBackgroundColorDidChange): Added.
- UIProcess/Cocoa/PageClientImplCocoa.h:
- UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::underPageBackgroundColorWillChange): Added.
(WebKit::PageClientImplCocoa::underPageBackgroundColorDidChange): Added.
Add ObjC KVO support for
-[WKWebView underPageBackgroundColor]
.
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::contentViewBackgroundColor): Added.
Provide a way to get the
backgroundColor
of theWKContentView
. This is needed on iOS becausescrollViewBackgroundColor
(nowWebPageProxy::platformUnderPageBackgroundColor
) would use this value before falling back to the underlying platform view's background color.
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setUnderPageBackgroundColorOverride): Added.
Pass the client-overriden value for
underPageBackgroundColor
to the WebProcess so that it can be used when drawing the overscroll layer.
- UIProcess/ViewSnapshotStore.cpp:
(WebKit::ViewSnapshotStore::recordSnapshot):
Go back to using the
pageExtendedBackgroundColor
(before r273083).
Source/WTF:
underPageBackgroundColor
is anull_resettable
property that will return (in order of validity)
- the most recent non-null value provided
- the CSS
background-color
of the<body>
and/or<html>
(this is the current value of_pageExtendedBackgroundColor
) - the underlying platform view's background color
Modifications to this property will not have any effect until control is returned to the runloop.
- Scripts/Preferences/WebPreferencesInternal.yaml:
Remove the experimental settings
UseSampledPageTopColorForScrollAreaBackgroundColor
andUseThemeColorForScrollAreaBackgroundColor
now that clients can override the default overscroll area background color using-[WKWebView setUnderPageBackgroundColor:]
.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewUnderPageBackgroundColor.mm: Renamed from PageExtendedBackgroundColor.mm. (defaultBackgroundColor): Added. (TEST.WKWebViewUnderPageBackgroundColor.OnLoad): (TEST.WKWebViewUnderPageBackgroundColor.SingleSolidColor): Added. (TEST.WKWebViewUnderPageBackgroundColor.SingleBlendedColor): Added. (TEST.WKWebViewUnderPageBackgroundColor.MultipleSolidColors): Added. (TEST.WKWebViewUnderPageBackgroundColor.MultipleBlendedColors): Added. (-[WKWebViewUnderPageBackgroundColorObserver initWithWebView:]): Added. (-[WKWebViewUnderPageBackgroundColorObserver observeValueForKeyPath:ofObject:change:context:]): Added. (TEST.WKWebViewUnderPageBackgroundColor.KVO): (TEST.WKWebViewUnderPageBackgroundColor.MatchesScrollView): Added. (TEST.WKWebViewUnderPageBackgroundColor.MultipleStyles): Deleted. (-[WKWebViewPageExtendedBackgroundColorObserver initWithWebView:]): Deleted. (-[WKWebViewPageExtendedBackgroundColorObserver observeValueForKeyPath:ofObject:change:context:]): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm: (createWebViewWithSampledPageTopColorMaxDifference): (TEST.SampledPageTopColor.ExperimentalUseSampledPageTopColorForScrollAreaBackgroundColor): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewThemeColor.mm:
(createWebView): Deleted.
(TEST.WKWebView.ExperimentalUseThemeColorForScrollAreaBackgroundColor): Deleted.
Remove the experimental settings
UseSampledPageTopColorForScrollAreaBackgroundColor
andUseThemeColorForScrollAreaBackgroundColor
now that clients can override the default overscroll area background color using-[WKWebView setUnderPageBackgroundColor:]
.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277505 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:54 AM Changeset in webkit [277597] by
-
- 2 edits in branches/safari-612.1.15.1-branch/Source/WebCore
Cherry-pick r277459. rdar://problem/78110796
[macOS] experimental "Use theme color for scroll area background" isn't working
https://bugs.webkit.org/show_bug.cgi?id=225726
<rdar://problem/77933000>
Reviewed by Tim Horton.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateLayerForOverhangAreasBackgroundColor):
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
Fix last remaining
m_layerForOverhangAreas->setBackgroundColor
to use the helper functionRenderLayerCompositor::updateLayerForOverhangAreasBackgroundColor
instead so that all paths that update the overscroll area color check the experimental settings too.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277459 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:54 AM Changeset in webkit [277596] by
-
- 2 edits in branches/safari-612.1.15.1-branch/Source/WebKit
Cherry-pick r277528. rdar://problem/78109685
REGRESSION (r269824): Random tile corruption when scrolling/zooming in macCatalyst
https://bugs.webkit.org/show_bug.cgi?id=225837
<rdar://problem/75053997>
Reviewed by Simon Fraser.
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer): Mark the newly front buffer non-volatile before painting into it. This was lost in r269824. Oddly, this caused less trouble than one might expect, except on some particular hardware.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277528 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:54 AM Changeset in webkit [277595] by
-
- 35 edits in branches/safari-612.1.15.1-branch/Source
Cherry-pick r277453. rdar://problem/78108967
Add textIndicator bounce for AppHighlights on scroll.
https://bugs.webkit.org/show_bug.cgi?id=225727
Reviewed by Tim Horton.
- Modules/highlight/AppHighlightStorage.cpp: (WebCore::AppHighlightStorage::attemptToRestoreHighlightAndScroll):
- loader/EmptyClients.cpp: (WebCore::EmptyChromeClient::setTextIndicator const):
- loader/EmptyClients.h:
- page/ChromeClient.h:
- page/TextIndicator.h:
- page/cocoa/WebTextIndicatorLayer.h:
- page/cocoa/WebTextIndicatorLayer.mm: (-[WebTextIndicatorLayer initWithFrame:textIndicator:margin:offset:]): (createBounceAnimation): (-[WebTextIndicatorLayer _animationDuration]):
- page/mac/TextIndicatorWindow.h:
- page/mac/TextIndicatorWindow.mm: (WebCore::TextIndicatorWindow::~TextIndicatorWindow): (WebCore::TextIndicatorWindow::clearTextIndicator): (WebCore::TextIndicatorWindow::setTextIndicator):
Use factored out textIndicator code to add a bounce to an appHighlight
when it is scrolled to.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm: (-[WKWindowVisibilityObserver _dictionaryLookupPopoverWillClose:]): (WebKit::WebViewImpl::setTextIndicator): (WebKit::WebViewImpl::clearTextIndicatorWithAnimation): (WebKit::WebViewImpl::dismissContentRelativeChildWindowsWithAnimationFromViewOnly): (WebKit::WebViewImpl::dismissContentRelativeChildWindowsFromViewOnly):
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setTextIndicator): (WebKit::WebPageProxy::clearTextIndicator):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::setTextIndicator): (WebKit::PageClientImpl::clearTextIndicator): (WebKit::PageClientImpl::setTextIndicatorAnimationProgress):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setUpTextIndicator:]): (-[WKContentView clearTextIndicator:]): (-[WKContentView setTextIndicatorAnimationProgress:]): (-[WKContentView teardownTextIndicatorLayer]): (-[WKContentView startFadeOut]):
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/PageClientImplMac.mm: (WebKit::PageClientImpl::setTextIndicator): (WebKit::PageClientImpl::clearTextIndicator): (WebKit::PageClientImpl::didPerformDictionaryLookup):
- UIProcess/mac/WKImmediateActionController.mm: (-[WKImmediateActionController _animationControllerForText]):
- WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::setTextIndicator const):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/FindController.cpp: (WebKit::FindController::updateFindIndicator):
- WebCoreSupport/WebChromeClient.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277453 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:44 AM Changeset in webkit [277594] by
-
- 2 edits in trunk/Source/WebCore
Null check m_resource in SubresourceLoader::didReceiveResponse
https://bugs.webkit.org/show_bug.cgi?id=225879
<rdar://78084804>
Reviewed by Chris Dumez.
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveResponse):
- 11:42 AM Changeset in webkit [277593] by
-
- 8 edits in branches/safari-612.1.15.1-branch/Source
Versioning.
WebKit-7612.1.15.1.1
- 11:35 AM Changeset in webkit [277592] by
-
- 35 edits in branches/safari-612.1.15.0-branch/Source
Cherry-pick r277453. rdar://problem/78112386
Add textIndicator bounce for AppHighlights on scroll.
https://bugs.webkit.org/show_bug.cgi?id=225727
Reviewed by Tim Horton.
- Modules/highlight/AppHighlightStorage.cpp: (WebCore::AppHighlightStorage::attemptToRestoreHighlightAndScroll):
- loader/EmptyClients.cpp: (WebCore::EmptyChromeClient::setTextIndicator const):
- loader/EmptyClients.h:
- page/ChromeClient.h:
- page/TextIndicator.h:
- page/cocoa/WebTextIndicatorLayer.h:
- page/cocoa/WebTextIndicatorLayer.mm: (-[WebTextIndicatorLayer initWithFrame:textIndicator:margin:offset:]): (createBounceAnimation): (-[WebTextIndicatorLayer _animationDuration]):
- page/mac/TextIndicatorWindow.h:
- page/mac/TextIndicatorWindow.mm: (WebCore::TextIndicatorWindow::~TextIndicatorWindow): (WebCore::TextIndicatorWindow::clearTextIndicator): (WebCore::TextIndicatorWindow::setTextIndicator):
Use factored out textIndicator code to add a bounce to an appHighlight
when it is scrolled to.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm: (-[WKWindowVisibilityObserver _dictionaryLookupPopoverWillClose:]): (WebKit::WebViewImpl::setTextIndicator): (WebKit::WebViewImpl::clearTextIndicatorWithAnimation): (WebKit::WebViewImpl::dismissContentRelativeChildWindowsWithAnimationFromViewOnly): (WebKit::WebViewImpl::dismissContentRelativeChildWindowsFromViewOnly):
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setTextIndicator): (WebKit::WebPageProxy::clearTextIndicator):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::setTextIndicator): (WebKit::PageClientImpl::clearTextIndicator): (WebKit::PageClientImpl::setTextIndicatorAnimationProgress):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setUpTextIndicator:]): (-[WKContentView clearTextIndicator:]): (-[WKContentView setTextIndicatorAnimationProgress:]): (-[WKContentView teardownTextIndicatorLayer]): (-[WKContentView startFadeOut]):
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/PageClientImplMac.mm: (WebKit::PageClientImpl::setTextIndicator): (WebKit::PageClientImpl::clearTextIndicator): (WebKit::PageClientImpl::didPerformDictionaryLookup):
- UIProcess/mac/WKImmediateActionController.mm: (-[WKImmediateActionController _animationControllerForText]):
- WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::setTextIndicator const):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/FindController.cpp: (WebKit::FindController::updateFindIndicator):
- WebCoreSupport/WebChromeClient.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277453 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:35 AM Changeset in webkit [277591] by
-
- 5 edits2 adds in branches/safari-612.1.15.0-branch
Cherry-pick r277452. rdar://problem/78109565
REGRESSION (r276945): [iOS] Focus rings are too large
https://bugs.webkit.org/show_bug.cgi?id=225778
<rdar://problem/77858341>
Reviewed by Tim Horton.
Source/WebCore:
r276945 updated scaling logic to ensure that the scale of the base CTM
matches the device scale factor. The change itself makes our base CTM
more correct, but exposed a longstanding bug with our focus ring
implementation.
Focus rings are drawn using CoreGraphics, using CGFocusRingStyle. On
macOS, the style is initialized using NSInitializeCGFocusRingStyleForTime.
However, on iOS, we initialize the style ourselves, using UIKit constants.
Currently, the focus ring's style's radius is set to
+[UIFocusRingStyle cornerRadius], a constant of 8. This is the longstanding
issue. CGFocusRingStyle's radius is not a corner radius, but is the
width of the focus ring. In UIKit, this width is represented by
+[UIFocusRingStyle borderThickness], a constant of 3. WebKit has always
intended to match this width, as evidenced by the default outline-width
of 3px in the UA style sheet.
Considering the large disparity between the existing and expected radius
value, it may be surprising that this mistake has gone unnoticed since
2019, when focus rings were first introduced on iOS. This is where r276945
comes into play. Prior to r276945, the scale of the base CTM did not match
the device scale factor. This meant that CG scaled down the constant of 8
to 4 CSS pixels (1 (base CTM) / 2 (device scale factor)). After r276945,
the two scales are equal and the focus ring is drawn as 8 CSS pixels, much
larger than the expected 3px.
Test: fast/forms/ios/focus-ring-size.html
- platform/graphics/cocoa/GraphicsContextCocoa.mm: (WebCore::drawFocusRingAtTime):
To fix, use the correct SPI to get the focus ring width,
+[UIFocusRingStyle borderThickness]. This ensures that focus rings have
the right width, following r276945.
The change also fixes focus ring repaint issues that arose from the
fact that the outline-width was 3px, but the painted width was 4px.
Source/WebCore/PAL:
- pal/spi/ios/UIKitSPI.h:
LayoutTests:
Added a regression test to verify the size of the focus ring on iOS.
The test works by drawing an overlay on top of an input element, that
is just large enough to obscure the focus ring. If the focus ring is
too large, the ring will not obscured, leading to a mismatch failure.
- fast/forms/ios/focus-ring-size-expected.html: Added.
- fast/forms/ios/focus-ring-size.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@277452 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:28 AM Changeset in webkit [277590] by
-
- 8 edits in branches/safari-612.1.15.0-branch/Source
Versioning.
WebKit-7612.1.15.0.1
- 11:19 AM Changeset in webkit [277589] by
-
- 5 edits3 adds in trunk
[ BigSur Debug wk2 ARM64 ] imported/w3c/web-platform-tests/webrtc-encoded-transform/sframe-transform-readable.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=225534
<rdar://problem/77679466>
Reviewed by Eric Carlson.
Source/WebCore:
In case the transform is stopped, the pipeTo operation will propagate the error/closure to the ReadableStream.
In that case, we need to stop enqueuing or we end up hitting the assert.
Handle this by adding a boolean which is set to true when SimpleReadableStreamSource::doCancel is called.
Make close and enqueue as no-op if that boolean is true.
Covered by test no longer crashing.
In addition, make sure to skip frames for which the array buffer is null as it might trigger debug asserts in libwebrtc.
Add a test to cover that case.
Test: http/wpt/webrtc/video-script-transform-keyframe-only.html
- Modules/mediastream/RTCRtpScriptTransformer.cpp:
(WebCore::RTCRtpScriptTransformer::writable):
- Modules/streams/ReadableStreamSource.cpp:
(WebCore::SimpleReadableStreamSource::doCancel):
(WebCore::SimpleReadableStreamSource::close):
(WebCore::SimpleReadableStreamSource::enqueue):
- Modules/streams/ReadableStreamSource.h:
LayoutTests:
- http/wpt/webrtc/video-script-transform-keyframe-only-expected.txt: Added.
- http/wpt/webrtc/video-script-transform-keyframe-only-worker.js: Added.
- http/wpt/webrtc/video-script-transform-keyframe-only.html: Added.
- 11:12 AM Changeset in webkit [277588] by
-
- 3 edits2 adds in trunk
MediaSession action handlers aren't treated as having a user gesture
https://bugs.webkit.org/show_bug.cgi?id=225875
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/media-session/user-gesture-action-handlers.html
We treat remote control commands as having a user gesture, but not when firing
a MediaSession action handler; we should treat them the same.
- Modules/mediasession/MediaSession.cpp:
(WebCore::MediaSession::callActionHandler):
LayoutTests:
- media/media-session/user-gesture-action-handlers-expected.txt: Added.
- media/media-session/user-gesture-action-handlers.html: Added.
- 10:59 AM Changeset in webkit [277587] by
-
- 5 edits in trunk/Source/WebKit
Allow wheel events to be coalesced during scroll deceleration
https://bugs.webkit.org/show_bug.cgi?id=225834
<rdar://70402512>
Reviewed by Tim Horton.
When scrolling slows down towards the tail end of a momentum scroll, we can reduce our
commit frequency to save power, but we only want to do this on displays whose refresh rate
is higher than the default "update rendering" frequency.
We do this by leveraging the existing WebWheelEventCoalescer, which coalesces events
in the UI process. It tracks time since previous event, and coalesces when the
instantaneous velocity is less than 320 points per second (matching other frameworks
on the system).
WebWheelEventCoalescer needs to know when to enable coalescing, which it computes
on creation, and when the window is moved to a different screen with potentially
a different refresh rate.
- Shared/WebWheelEventCoalescer.cpp:
(WebKit::WebWheelEventCoalescer::isInMomentumPhase):
(WebKit::WebWheelEventCoalescer::shouldDispatchEvent):
- Shared/WebWheelEventCoalescer.h:
(WebKit::WebWheelEventCoalescer::shouldCoalesceEventsDuringDeceleration const):
(WebKit::WebWheelEventCoalescer::setShouldCoalesceEventsDuringDeceleration):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::wheelEventCoalescer):
(WebKit::WebPageProxy::shouldCoalesceWheelEventsDuringDeceleration const):
(WebKit::WebPageProxy::windowScreenDidChange):
- UIProcess/WebPageProxy.h:
- 9:53 AM Changeset in webkit [277586] by
-
- 11 edits in trunk/Source/WebCore
Move more logic from AudioDestinationNode to its subclasses
https://bugs.webkit.org/show_bug.cgi?id=225849
Reviewed by Sam Weinig.
Move more logic from AudioDestinationNode to its subclasses. In particular, AudioDestinationNode
contains a lot of things that are specific to real-time audio rendering and those should go to
DefaultAudioDestinationNode.
This allows us to move isPlayingAudioDidChange() from BaseAudioContext to AudioContext also.
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::isPlayingAudioDidChange):
- Modules/webaudio/AudioContext.h:
- Modules/webaudio/AudioDestinationNode.cpp:
(WebCore::AudioDestinationNode::renderQuantum):
- Modules/webaudio/AudioDestinationNode.h:
- Modules/webaudio/BaseAudioContext.cpp:
- Modules/webaudio/BaseAudioContext.h:
- Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::createDestination):
(WebCore::DefaultAudioDestinationNode::framesPerBuffer const):
(WebCore::DefaultAudioDestinationNode::render):
(WebCore::DefaultAudioDestinationNode::setIsSilent):
(WebCore::DefaultAudioDestinationNode::isPlayingDidChange):
(WebCore::DefaultAudioDestinationNode::updateIsEffectivelyPlayingAudio):
- Modules/webaudio/DefaultAudioDestinationNode.h:
- Modules/webaudio/OfflineAudioDestinationNode.cpp:
(WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):
(WebCore::OfflineAudioDestinationNode::startRendering):
(WebCore::OfflineAudioDestinationNode::renderOnAudioThread):
- Modules/webaudio/OfflineAudioDestinationNode.h:
- 9:31 AM Changeset in webkit [277585] by
-
- 1 copy in branches/safari-612.1.15.1-branch
New branch.
- 9:31 AM Changeset in webkit [277584] by
-
- 27 edits in trunk/Source
[GPUP] WebContent process should not pull audio session category from the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=225826
Reviewed by Darin Adler.
Source/WebCore:
Change AudioSession::Category to be an enum class.
- platform/audio/AudioSession.cpp:
(WebCore::AudioSession::categoryOverride const):
(WebCore::AudioSession::category const):
- platform/audio/AudioSession.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::updateSessionState):
- platform/audio/ios/AudioSessionIOS.mm:
(WebCore::AudioSessionPrivate::AudioSessionPrivate):
(WebCore::AudioSession::setCategory):
(WebCore::AudioSession::category const):
- platform/audio/mac/AudioSessionMac.mm:
(WebCore::AudioSession::setCategory):
- platform/audio/mac/SharedRoutingArbitrator.h:
- platform/audio/mac/SharedRoutingArbitrator.mm:
(WebCore::SharedRoutingArbitrator::beginRoutingArbitrationForToken):
- platform/mediastream/mac/BaseAudioSharedUnit.cpp:
(WebCore::BaseAudioSharedUnit::startUnit):
- platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::startProducingData):
- testing/Internals.cpp:
(WebCore::Internals::audioSessionCategory const):
Source/WebKit:
Remove
category
androuteSharingPolicy
fromRemoteAudioSessionConfiguration
because we should not pull these properties from the GPU process.
Remove IPC message
RemoteAudioSession::ConfigurationChanged
because it is not used.
- GPUProcess/mac/LocalAudioSessionRoutingArbitrator.h:
- GPUProcess/media/RemoteAudioSessionProxy.cpp:
(WebKit::RemoteAudioSessionProxy::configuration):
- GPUProcess/media/RemoteAudioSessionProxy.h:
- GPUProcess/media/RemoteAudioSessionProxyManager.cpp:
(WebKit::categoryCanMixWithOthers):
(WebKit::RemoteAudioSessionProxyManager::updateCategory):
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
- UIProcess/Media/AudioSessionRoutingArbitratorProxy.h:
- WebProcess/GPU/media/RemoteAudioSession.cpp:
(WebKit::RemoteAudioSession::setCategory):
(WebKit::RemoteAudioSession::category const):
(WebKit::RemoteAudioSession::configurationChanged): Deleted.
- WebProcess/GPU/media/RemoteAudioSession.h:
- WebProcess/GPU/media/RemoteAudioSession.messages.in:
- WebProcess/GPU/media/RemoteAudioSessionConfiguration.h:
(WebKit::RemoteAudioSessionConfiguration::encode const):
(WebKit::RemoteAudioSessionConfiguration::decode):
- WebProcess/Speech/SpeechRecognitionRealtimeMediaSourceManager.cpp:
Source/WebKitLegacy/mac:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences setAudioSessionCategoryOverride:]):
- 9:31 AM Changeset in webkit [277583] by
-
- 1 copy in branches/safari-612.1.15.0-branch
New branch.
- 8:30 AM Changeset in webkit [277582] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Several OffscreenCanvas tests are failing since r277543.
- platform/glib/TestExpectations:
- 8:18 AM Changeset in webkit [277581] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Unreviewed test gardening. Skip tests requiring support for 'display-p3'.
- platform/glib/TestExpectations:
- 6:32 AM Changeset in webkit [277580] by
-
- 5 edits in trunk
will-change: contain should create a containing block
https://bugs.webkit.org/show_bug.cgi?id=225442
Patch by Rob Buis <rbuis@igalia.com> on 2021-05-17
Reviewed by Antti Koivisto.
Source/WebCore:
Make will-change: contain cause the element to be a containing block for both
position: fixed and position: absolute cases as well as create a CSS stacking
context for the element.
Tests: imported/w3c/web-platform-tests/css/css-contain/contain-paint-stacking-context-001b.html
imported/w3c/web-platform-tests/css/css-will-change/will-change-fixpos-cb-contain-1.html
- rendering/style/WillChangeData.cpp:
(WebCore::WillChangeData::createsContainingBlockForOutOfFlowPositioned const):
(WebCore::WillChangeData::propertyCreatesStackingContext):
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyValueWillChange):
LayoutTests:
Tests contain-paint-stacking-context-001b.html (testing
that will-change: contain creates a containing block) and
contain-paint-stacking-context-001b.html (which tests that
will-change: contain creates a CSS stacking context) now
pass, so no longer mark them as image failures.
- 3:09 AM Changeset in webkit [277579] by
-
- 6 edits in trunk
will-change: position should not create a containing block for position: fixed elements
https://bugs.webkit.org/show_bug.cgi?id=225443
Reviewed by Antti Koivisto.
This partially undoes r276627 which made will-change: position create a CB for all out-of-flow elements:
- Removed CSSPropertyPosition from createsContainingBlockForOutOfFlowPositioned() to not create a containing block
for position: fixed; children.
- Added createsContainingBlockForAbsolutelyPositioned() with CSSPropertyPosition to still create a containing block
for position: absolute; children.
Enabled WPT (which covers both cases): css/css-will-change/will-change-fixpos-cb-position-1.html
Source/WebCore:
- rendering/RenderElement.h:
(WebCore::RenderElement::canContainAbsolutelyPositionedObjects const):
- rendering/style/WillChangeData.cpp:
(WebCore::WillChangeData::createsContainingBlockForAbsolutelyPositioned const):
(WebCore::WillChangeData::createsContainingBlockForOutOfFlowPositioned const):
- rendering/style/WillChangeData.h:
LayoutTests:
- 1:56 AM Changeset in webkit [277578] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION(r277560): conditional attribute typos in IDLs for OffscreenCanvas, OffscreenCanvasRenderingContext2D
https://bugs.webkit.org/show_bug.cgi?id=225858
Unreviewed. Tweaking the for-worker conditional attribute values for the
OffscreenCanvas and OffscreenCanvasRenderingContext2D interfaces after
the r277560 refactoring. The mismatch in the conditional values left the
two interfaces outside any worker global space.
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-05-17
- html/OffscreenCanvas.idl:
- html/canvas/OffscreenCanvasRenderingContext2D.idl:
May 16, 2021:
- 10:22 PM Changeset in webkit [277577] by
-
- 90 edits4 copies35 moves2 adds115 deletes in trunk/LayoutTests
Make MathML WPTs wait for all font loads
https://bugs.webkit.org/show_bug.cgi?id=225728
Reviewed by Darin Adler.
With current interop issues around font loading, there's no guarantee
that waiting on the document.fonts.ready promise in the load event will
catch font loads initiated by content. Since these tests are not
explicitly testing font loading behavior, change to wait explicitly for
all fonts to load.
LayoutTests/imported/w3c:
- web-platform-tests/mathml/presentation-markup/fractions/frac-1-expected.txt:
- web-platform-tests/mathml/presentation-markup/fractions/frac-1.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-bar-002.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-expected.txt:
- web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-1.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-2.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-3-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-3-expected.txt.
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-3.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-001-expected.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-001.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-002-expected.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-002.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-003-expected.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-003.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-004-expected.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-004.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-005-expected.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-005.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-006-expected.html:
- web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-gap-006.html:
- web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-stretchy-expected.txt:
- web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-stretchy.html:
- web-platform-tests/mathml/presentation-markup/mrow/no-spacing-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/no-spacing-expected.txt.
- web-platform-tests/mathml/presentation-markup/mrow/no-spacing.html:
- web-platform-tests/mathml/presentation-markup/mrow/spacing-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/spacing-expected.txt.
- web-platform-tests/mathml/presentation-markup/mrow/spacing.html:
- web-platform-tests/mathml/presentation-markup/operators/mo-axis-height-1.html:
- web-platform-tests/mathml/presentation-markup/operators/mo-font-relative-lengths-001-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-font-relative-lengths-001-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/mo-font-relative-lengths-001.html:
- web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001.html:
- web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-001-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-001-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-001.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-002-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-002-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-002.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-003-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-003-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-003.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-004-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-004-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-004.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-005-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-005-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-005.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-006-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-006-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-006.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-001-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-001-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-001.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-002-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-002-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-002.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-003-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-003-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-003.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-004-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-004-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-004.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-005-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-005-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-005.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-006-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-006-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-006.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-001-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-001-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-001.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-002-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-002-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-002.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-003-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-003-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-003.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-004-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-004-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-004.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-005-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-005-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-005.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-006-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-006-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-006.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-003-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-003-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-003.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-004-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-004-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-004.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-005-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-005-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-005.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-006-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-006-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-006.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-002-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-002-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-002.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-003-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-003-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-003.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-004-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-004-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-004.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005.html:
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt: Renamed from LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt.
- web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006.html:
- web-platform-tests/mathml/presentation-markup/radicals/dynamic-radical-paint-invalidation-001.html:
- web-platform-tests/mathml/presentation-markup/radicals/root-parameters-1.html:
- web-platform-tests/mathml/presentation-markup/radicals/root-parameters-2-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/radicals/root-parameters-2-expected.txt.
- web-platform-tests/mathml/presentation-markup/radicals/root-parameters-2.html:
- web-platform-tests/mathml/presentation-markup/scripts/cramped-001-expected.txt:
- web-platform-tests/mathml/presentation-markup/scripts/cramped-001.html:
- web-platform-tests/mathml/presentation-markup/scripts/empty-underover-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/empty-underover-expected.txt.
- web-platform-tests/mathml/presentation-markup/scripts/empty-underover.html:
- web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-1.html:
- web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2-expected.txt:
- web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2.html:
- web-platform-tests/mathml/presentation-markup/scripts/underover-1.html:
- web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-1.html:
- web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-2.html:
- web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3-expected.txt:
- web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3.html:
- web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-4.tentative-expected.txt: Renamed from LayoutTests/platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-4.tentative-expected.txt.
- web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-4.tentative.html:
- web-platform-tests/mathml/presentation-markup/tables/table-axis-height.html:
- web-platform-tests/mathml/relations/css-styling/color-005.html:
- web-platform-tests/mathml/relations/css-styling/displaystyle-013.html:
- web-platform-tests/mathml/relations/css-styling/displaystyle-014.html:
- web-platform-tests/mathml/relations/css-styling/displaystyle-1.html:
- web-platform-tests/mathml/relations/css-styling/displaystyle-2.html:
- web-platform-tests/mathml/relations/css-styling/displaystyle-3.html:
- web-platform-tests/mathml/relations/css-styling/lengths-2.html:
- web-platform-tests/mathml/relations/css-styling/visibility-005.html:
- web-platform-tests/mathml/support/fonts.js: Added.
(loadAllFonts):
LayoutTests:
Many of these tests were flaky due to this, and so we now no longer
need platform specific expectations.
- TestExpectations:
- platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-1-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-003-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/cramped-001-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3-expected.txt: Removed.
- platform/gtk/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt: Removed.
- platform/gtk/imported/w3c/web-platform-tests/mathml/relations/css-styling/lengths-2-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-1-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-3-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/no-spacing-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/spacing-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-font-relative-lengths-001-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-001-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-002-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-003-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-004-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-005-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-006-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-001-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-002-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-003-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-004-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-005-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-006-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-001-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-002-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-003-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-004-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-005-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-006-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-004-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-005-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-006-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-002-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-003-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-004-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/radicals/root-parameters-2-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/cramped-001-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/empty-underover-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3-expected.txt: Removed.
- platform/ios-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-4.tentative-expected.txt: Removed.
- platform/mac-catalina/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt: Removed.
- platform/mac-catalina/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-1-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-3-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/inferred-mrow-stretchy-expected.txt: Added.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/no-spacing-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/spacing-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-font-relative-lengths-001-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-001-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-002-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-003-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-004-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-005-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-006-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-001-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-002-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-003-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-004-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-005-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-006-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-001-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-002-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-003-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-004-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-005-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-006-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-004-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-005-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-006-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-002-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-003-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-004-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/radicals/root-parameters-2-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/empty-underover-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3-expected.txt: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-4.tentative-expected.txt: Removed.
- platform/mac-wk2/TestExpectations:
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-1-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-3-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/no-spacing-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/mrow/spacing-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-font-relative-lengths-001-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-minsize-maxsize-001-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/mo-stretch-properties-dynamic-001-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-001-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-002-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-003-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-004-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-005-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-largeop-006-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-001-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-002-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-003-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-004-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-005-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-movablelimits-006-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-001-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-002-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-003-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-004-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-005-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-spacing-006-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-002-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-003-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-004-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-005-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-006-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-001-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-002-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-003-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-004-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-005-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-symmetric-006-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/radicals/root-parameters-2-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/empty-underover-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3-expected.txt: Removed.
- platform/mac-wk2/imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-4.tentative-expected.txt: Removed.
- platform/mac/TestExpectations:
- platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/ignored-properties-001-expected.txt:
- platform/mac/imported/w3c/web-platform-tests/mathml/relations/css-styling/padding-border-margin/padding-002-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-stretchy-001-expected.txt: Removed.
- 9:20 PM Changeset in webkit [277576] by
-
- 10 edits in trunk/Source/JavaScriptCore
Implement baseline op_enter, op_ret, op_check_traps, op_throw using JIT thunks.
https://bugs.webkit.org/show_bug.cgi?id=225846
Reviewed by Filip Pizlo.
op_enter, op_ret, op_check_traps are 3 of the most common opcodes. Throwing in
op_throw because it's easy.
In this patch, the following changes were also made:
- Renamed copyCalleeSavesFromFrameOrRegisterToEntryFrameCalleeSavesBuffer() to copyLLIntBaselineCalleeSavesFromFrameOrRegisterToEntryFrameCalleeSavesBuffer().
It is only used by the baseline JIT. Changed it to always operate on
RegisterAtOffsetList::llintBaselineCalleeSaveRegisters(). This removes the
dependency on a current codeBlock being compiled, and allows us to use it
for a JIT thunk.
- Added JIT::emitNakedNearJump() to make it easy to emit direct jumps to JIT thunks.
Currently, it is only used by op_ret and op_throw.
- Changed some thunks to use emitNonPatchableExceptionCheck() instead emitExceptionCheck() to make it explicit that these are not intended to be patchable.
With this patch, --dumpLinkBufferStats shows the following changes in emitted
JIT code size (using a single run of the CLI version of JetStream2 on AS Mac)
comparing to current tip of tree:
Base New Diff
BaselineJIT: 77429400 (73.842430 MB) 72407904 (69.053558 MB) 0.94x (reduction)
DFG: 36160880 (34.485703 MB) 36622176 (34.925629 MB) 1.01x
Thunk: 23159024 (22.086166 MB) 23295448 (22.216270 MB) 1.01x
InlineCache: 22068348 (21.046017 MB) 22157236 (21.130787 MB) 1.00x
FTL: 6004736 (5.726562 MB) 6030536 (5.751167 MB) 1.00x
Wasm: 2429204 (2.316669 MB) 2300872 (2.194283 MB) 0.95x (probably noise)
YarrJIT: 1522488 (1.451958 MB) 1522616 (1.452080 MB) 1.00x
CSSJIT: 0 0
Uncategorized: 0 0
Cumulative diff since the start of this effort to put more code in JIT thunks:
Base New Diff
BaselineJIT: 89089964 (84.962811 MB) 72407904 (69.053558 MB) 0.81x (reduction)
DFG: 39117360 (37.305222 MB) 36622176 (34.925629 MB) 0.94x (reduction)
Thunk: 23230968 (22.154778 MB) 23295448 (22.216270 MB) 1.00x
InlineCache: 22027416 (21.006981 MB) 22157236 (21.130787 MB) 1.01x
FTL: 6575772 (6.271145 MB) 6030536 (5.751167 MB) 0.92x (reduction)
Wasm: 2302724 (2.196049 MB) 2300872 (2.194283 MB) 1.00x
YarrJIT: 1538956 (1.467663 MB) 1522616 (1.452080 MB) 0.99x
CSSJIT: 0 0
Uncategorized: 0 0
- assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::sub64):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitRestoreCalleeSavesFor):
(JSC::AssemblyHelpers::copyLLIntBaselineCalleeSavesFromFrameOrRegisterToEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::copyCalleeSavesFromFrameOrRegisterToEntryFrameCalleeSavesBuffer): Deleted.
- jit/JIT.cpp:
(JSC::JIT::emitEnterOptimizationCheck):
(JSC::JIT::link):
- jit/JIT.h:
(JSC::NearJumpRecord::NearJumpRecord):
- jit/JITInlines.h:
(JSC::JIT::emitNakedNearJump):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_ret):
(JSC::JIT::op_ret_handlerGenerator):
(JSC::JIT::emit_op_throw):
(JSC::JIT::op_throw_handlerGenerator):
(JSC::JIT::emit_op_enter):
(JSC::JIT::op_enter_handlerGenerator):
(JSC::JIT::emitSlow_op_loop_hint):
(JSC::JIT::emitSlow_op_check_traps):
(JSC::JIT::op_check_traps_handlerGenerator):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::slow_op_get_from_scopeGenerator):
(JSC::JIT::slow_op_put_to_scopeGenerator):
- jit/JITThunks.cpp:
(JSC::JITThunks::preinitializeExtraCTIThunks):
- jit/SlowPathCall.cpp:
(JSC::JITSlowPathCall::generateThunk):
- 3:42 PM Changeset in webkit [277575] by
-
- 7 edits in branches/safari-612.1.12-branch/Source/WebCore
Apply patch. rdar://problem/78084125
- 3:00 PM Changeset in webkit [277574] by
-
- 8 edits2 adds in trunk
Support serializing ImageData object colorSpace property in SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=225854
Reviewed by Chris Dumez.
Source/WebCore:
Test: storage/indexeddb/structured-clone-image-data-display-p3.html
Update SerializedScriptValue schema to version 8 and add serialization
of the colorSpace property.
- bindings/js/SerializedScriptValue.cpp:
(WebCore::PredefinedColorSpaceTag):
Add copy of the PredefinedColorSpace values that are guaranteed to
stay consistent forever.
(WebCore::CloneSerializer::dumpIfTerminal):
Add encoding of the colorSpace when serializing ImageData.
(WebCore::CloneSerializer::write):
(WebCore::CloneDeserializer::read):
Add coders for PredefinedColorSpaceTag.
(WebCore::CloneDeserializer::getJSValue):
Replace multiple overloads with one perfect forwarding overload which does
what we want and works with r-values.
(WebCore::CloneDeserializer::readImageBitmap):
Use auto in two places.
(WebCore::CloneDeserializer::readTerminal):
Add decoding of the colorSpace when deserializing ImageData. For prior versions,
the colorSpace defaults to sRGB, which was the only color space supported.
LayoutTests:
Updates existing tests for new serialization version (version 8) and support
for serializing color space in ImageData.
To avoid multiple result files due to lack of support for display-p3, testing
that the display-p3 color space is serialized correctly was put into its own
test that is skipped on non-supporting platforms.
- platform/glib/TestExpectations:
- platform/win/TestExpectations:
Skip structured-clone-image-data-display-p3.html on platforms that don't support
display-p3 color spaces.
- fast/storage/serialized-script-value.html:
Bump version to version 8.
- storage/indexeddb/resources/structured-clone.js:
- storage/indexeddb/structured-clone-expected.txt:
Add tests for ImageData colorSpace round tripping.
- storage/indexeddb/structured-clone-image-data-display-p3-expected.txt: Added.
- storage/indexeddb/structured-clone-image-data-display-p3.html: Added.
Add test for ImageData display-p3 colorSpace round tripping as its own test
to allow targetted skipping by non-supporting platforms.
- 1:32 PM Changeset in webkit [277573] by
-
- 29 edits in trunk
MediaSessionCoordinator survives page reload/navigation
https://bugs.webkit.org/show_bug.cgi?id=225822
Reviewed by Eric Carlson.
Source/WebCore:
Because the MediaSessionCoordinator is created and owned by Page, it will survive
a reload (as Page is not re-created), and the same MediaSessionCoordinator object
will be added to MediaSession when the new Navigator is created.
Rather than have Page own the coordinator itself, it can instead own the
MediaSessionCoordinatorPrivate used to create the coordinator. When the MediaSession
is created, it will query the Page to ask for a MediaSessionCoordinatorPrivate to
use to create the coordinator, guaranteeing a new object is created.
The session itself should be left when the document is put into Back/Forward
Cache, or closed when the document is stopped entirely.
A few drive-by fixes:
The direction of coordinatorStateChanged() is now reversed; it flows down from the
UIProcess to update the state of the MediaSessionCoordinator. This allows the coordinator
to react when it's private implementation changes state.
Add a new upward notification when the trackIdentifier in MediaMetadata changes.
- Modules/mediasession/MediaSession.cpp:
(WebCore::MediaSession::MediaSession):
(WebCore::MediaSession::suspend):
(WebCore::MediaSession::stop):
(WebCore::MediaSession::createCoordinator):
(WebCore::MediaSession::setCoordinator): Deleted.
- Modules/mediasession/MediaSession.h:
- Modules/mediasession/MediaSessionCoordinator.cpp:
(WebCore::MediaSessionCoordinator::join):
(WebCore::MediaSessionCoordinator::leave):
(WebCore::MediaSessionCoordinator::close):
(WebCore::MediaSessionCoordinator::metadataChanged):
(WebCore::MediaSessionCoordinator::positionStateChanged):
(WebCore::MediaSessionCoordinator::playbackStateChanged):
(WebCore::MediaSessionCoordinator::readyStateChanged):
(WebCore::MediaSessionCoordinator::seekSessionToTime):
(WebCore::MediaSessionCoordinator::pauseSession):
(WebCore::MediaSessionCoordinator::coordinatorStateChanged):
- Modules/mediasession/MediaSessionCoordinator.h:
- Modules/mediasession/MediaSessionCoordinatorPrivate.h:
(WebCore::MediaSessionCoordinatorClient::coordinatorStateChanged):
- page/Page.cpp:
(WebCore::Page::setMediaSessionCoordinator):
(WebCore::Page::invalidateMediaSessionCoordinator):
- page/Page.h:
(WebCore::Page::mediaSessionCoordinator):
- testing/Internals.cpp:
(WebCore::Internals::registerMockMediaSessionCoordinator):
- testing/Internals.h:
- testing/MockMediaSessionCoordinator.cpp:
(WebCore::MockMediaSessionCoordinator::trackIdentifierChanged):
(WebCore::MockMediaSessionCoordinator::coordinatorStateChanged): Deleted.
- testing/MockMediaSessionCoordinator.h:
Source/WebKit:
Update the classes affected by virtual function changes in MediaSessionCoordinator. Update
the creation mechanism inside WebPage/Proxy.
- UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
- UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _createMediaSessionCoordinatorForTesting:completionHandler:]):
- UIProcess/Media/MediaSessionCoordinatorProxyPrivate.h:
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.cpp:
(WebKit::RemoteMediaSessionCoordinatorProxy::trackIdentifierChanged):
(WebKit::RemoteMediaSessionCoordinatorProxy::coordinatorStateChanged):
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.h:
- UIProcess/Media/RemoteMediaSessionCoordinatorProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createMediaSessionCoordinator):
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.cpp:
(WebKit::RemoteMediaSessionCoordinator::trackIdentifierChanged):
(WebKit::RemoteMediaSessionCoordinator::coordinatorStateChanged):
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.h:
- WebProcess/MediaSession/RemoteMediaSessionCoordinator.messages.in:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::createMediaSessionCoordinator):
(WebKit::WebPage::invalidateMediaSessionCoordinator):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Tools:
- TestWebKitAPI/Tests/WebKit/MediaSessionCoordinatorTest.mm:
(-[_WKMockMediaSessionCoordinator trackIdentifierChanged:]):
- 10:46 AM Changeset in webkit [277572] by
-
- 3 edits in trunk/Source/JavaScriptCore
IsoAlignedMemoryAllocator should use BitVector
https://bugs.webkit.org/show_bug.cgi?id=225852
Reviewed by Mark Lam.
Right now IsoAlignedMemoryAllocator uses FastBitVector, which does
not have inline storage for small sizes. However, it's not
uncommon for IsoAlignedMemoryAllocator to be holding onto only a
few blocks. Those blocks may exist for a long time, which some
data indicates causes IsoAlignedMemoryAllocator's FastBitVector to
pin a full physical page for one 8 byte allocation. Since
accessing the commited blocks list is not a particularly hot
operation, we should just use a BitVector instead.
This seems to be perf neutral on benchmarks.
- heap/IsoAlignedMemoryAllocator.cpp:
(JSC::IsoAlignedMemoryAllocator::~IsoAlignedMemoryAllocator):
(JSC::IsoAlignedMemoryAllocator::tryAllocateAlignedMemory):
(JSC::IsoAlignedMemoryAllocator::freeAlignedMemory):
- heap/IsoAlignedMemoryAllocator.h:
- 10:18 AM Changeset in webkit [277571] by
-
- 29 edits in trunk
Modernize / Optimize SQLiteStatement creation and preparation
https://bugs.webkit.org/show_bug.cgi?id=225791
Reviewed by Sam Weinig.
Source/WebCore:
Modernize / Optimize SQLiteStatement creation and preparation:
- The SQLiteStatement constructor is now private so that we never have a SQLiteStatement that has not been "prepared". Only the SQLiteDatabase can now construct SQLiteStatement objects. We already needed to pass a SQLiteDatabase reference when constructing the SQLiteStatement anyway.
- The construct AND prepare a SQLiteStatement, we now call SQLiteDatabase::prepareStatement() to get a stack object or SQLiteDatabase::prepareHeapStatement() to get a heap one. These functions return an Expected<> type so they will either return a "prepared" SQLiteStatement or an unexpected SQLite error code.
- The prepare*Statement() functions now avoid String allocations in most cases thanks to overloads taking in the query as an ASCIILiteral.
- Drop finalize() function on SQLiteStatement so SQLiteStatement objects are always valid. It simplifies the implementation of SQLiteStatement member functions. The SQLiteStatement destructor "finalizes" the statement so users can simply destroy the SQLiteStatement if they need the object to be finalize at a certain point (e.g. before closing a database).
- Drop the prepare() & prepareAndStep() SQLiteStatement member functions now that SQLiteStatement are always prepared.
- Stop storing the SQL query as a String data member in SQLiteStatement class. This is no longer needed now that they is no separe prepare step after the construction. This makes the SQLiteStatement a bit smaller.
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::createOrMigrateRecordsTableIfNecessary):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidBlobTables):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsTable):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsRecordIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::createAndPopulateInitialDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidObjectStoreInfoTable):
(WebCore::IDBServer::SQLiteIDBBackingStore::migrateIndexInfoTableForIDUpdate):
(WebCore::IDBServer::SQLiteIDBBackingStore::migrateIndexRecordsTableForIDUpdate):
(WebCore::IDBServer::SQLiteIDBBackingStore::extractExistingDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::databaseNameAndVersionFromFile):
(WebCore::IDBServer::SQLiteIDBBackingStore::beginTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::cachedStatement):
- Modules/indexeddb/server/SQLiteIDBCursor.cpp:
(WebCore::IDBServer::SQLiteIDBCursor::createSQLiteStatement):
(WebCore::IDBServer::SQLiteIDBCursor::resetAndRebindPreIndexStatementIfNecessary):
(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):
- Modules/webdatabase/Database.cpp:
(WebCore::setTextValueInDatabase):
(WebCore::retrieveTextResultFromDatabase):
(WebCore::Database::performGetTableNames):
- Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::hasEntryForOriginNoLock):
(WebCore::DatabaseTracker::hasEntryForDatabase):
(WebCore::DatabaseTracker::fullPathForDatabaseNoLock):
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::databaseNamesNoLock):
(WebCore::DatabaseTracker::detailsForNameAndOrigin):
(WebCore::DatabaseTracker::setDatabaseDetails):
(WebCore::DatabaseTracker::quotaNoLock):
(WebCore::DatabaseTracker::setQuota):
(WebCore::DatabaseTracker::addDatabase):
(WebCore::DatabaseTracker::deleteOrigin):
(WebCore::DatabaseTracker::deleteDatabase):
(WebCore::DatabaseTracker::removeDeletedOpenedDatabases):
(WebCore::DatabaseTracker::deleteDatabaseFileIfEmpty):
- Modules/webdatabase/SQLStatement.cpp:
(WebCore::SQLStatement::execute):
- loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::loadCacheGroup):
(WebCore::ApplicationCacheStorage::loadManifestHostHashes):
(WebCore::ApplicationCacheStorage::cacheGroupForURL):
(WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
(WebCore::ApplicationCacheStorage::calculateQuotaForOrigin):
(WebCore::ApplicationCacheStorage::calculateUsageForOrigin):
(WebCore::ApplicationCacheStorage::calculateRemainingSizeForOriginExcludingCache):
(WebCore::ApplicationCacheStorage::storeUpdatedQuotaForOrigin):
(WebCore::ApplicationCacheStorage::verifySchemaVersion):
(WebCore::ApplicationCacheStorage::executeStatement):
(WebCore::ApplicationCacheStorage::store):
(WebCore::ApplicationCacheStorage::storeUpdatedType):
(WebCore::ApplicationCacheStorage::ensureOriginRecord):
(WebCore::ApplicationCacheStorage::storeNewestCache):
(WebCore::ApplicationCacheStorage::loadCache):
(WebCore::ApplicationCacheStorage::remove):
(WebCore::ApplicationCacheStorage::manifestURLs):
(WebCore::ApplicationCacheStorage::deleteCacheGroupRecord):
(WebCore::ApplicationCacheStorage::checkForDeletedResources):
(WebCore::ApplicationCacheStorage::flatFileAreaSize):
- platform/network/curl/CookieJarDB.cpp:
(WebCore::CookieJarDB::verifySchemaVersion):
(WebCore::CookieJarDB::checkDatabaseValidity):
(WebCore::CookieJarDB::searchCookies):
(WebCore::CookieJarDB::getAllCookies):
(WebCore::CookieJarDB::allDomains):
(WebCore::CookieJarDB::createPrepareStatement):
(WebCore::CookieJarDB::executeSql):
- platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::open):
(WebCore::SQLiteDatabase::useWALJournalMode):
(WebCore::SQLiteDatabase::maximumSize):
(WebCore::SQLiteDatabase::setMaximumSize):
(WebCore::SQLiteDatabase::pageSize):
(WebCore::SQLiteDatabase::freeSpaceSize):
(WebCore::SQLiteDatabase::totalSize):
(WebCore::SQLiteDatabase::executeCommand):
(WebCore::SQLiteDatabase::returnsAtLeastOneResult):
(WebCore::SQLiteDatabase::tableExists):
(WebCore::SQLiteDatabase::clearAllTables):
(WebCore::SQLiteDatabase::turnOnIncrementalAutoVacuum):
(WebCore::constructAndPrepareStatement):
(WebCore::SQLiteDatabase::prepareStatement):
(WebCore::SQLiteDatabase::prepareHeapStatement):
- platform/sql/SQLiteDatabase.h:
- platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::SQLiteStatement):
(WebCore::SQLiteStatement::~SQLiteStatement):
(WebCore::SQLiteStatement::step):
(WebCore::SQLiteStatement::reset):
(WebCore::SQLiteStatement::executeCommand):
(WebCore::SQLiteStatement::returnsAtLeastOneResult):
(WebCore::SQLiteStatement::bindBlob):
(WebCore::SQLiteStatement::bindText):
(WebCore::SQLiteStatement::bindInt):
(WebCore::SQLiteStatement::bindInt64):
(WebCore::SQLiteStatement::bindDouble):
(WebCore::SQLiteStatement::bindNull):
(WebCore::SQLiteStatement::bindParameterCount const):
(WebCore::SQLiteStatement::columnCount):
(WebCore::SQLiteStatement::isColumnNull):
(WebCore::SQLiteStatement::isColumnDeclaredAsBlob):
(WebCore::SQLiteStatement::getColumnName):
(WebCore::SQLiteStatement::getColumnValue):
(WebCore::SQLiteStatement::getColumnText):
(WebCore::SQLiteStatement::getColumnDouble):
(WebCore::SQLiteStatement::getColumnInt):
(WebCore::SQLiteStatement::getColumnInt64):
(WebCore::SQLiteStatement::getColumnBlobAsString):
(WebCore::SQLiteStatement::getColumnBlobAsVector):
(WebCore::SQLiteStatement::returnTextResults):
(WebCore::SQLiteStatement::returnIntResults):
(WebCore::SQLiteStatement::returnInt64Results):
(WebCore::SQLiteStatement::returnDoubleResults):
- platform/sql/SQLiteStatement.h:
- platform/win/SearchPopupMenuDB.cpp:
(WebCore::SearchPopupMenuDB::checkDatabaseValidity):
(WebCore::SearchPopupMenuDB::verifySchemaVersion):
(WebCore::SearchPopupMenuDB::executeSimpleSql):
(WebCore::SearchPopupMenuDB::createPreparedStatement):
- workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::ensureValidRecordsTable):
(WebCore::RegistrationDatabase::doPushChanges):
(WebCore::RegistrationDatabase::importRecords):
Source/WebKit:
Update code base now that the SQLiteDatabase & SQLiteStatement API has changed.
Also use more ASCIILiterals.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::checkForMissingTablesInSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::enableForeignKeys):
(WebKit::ResourceLoadStatisticsDatabaseStore::currentTableAndIndexQueries):
(WebKit::ResourceLoadStatisticsDatabaseStore::missingUniqueIndices):
(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToNewTablesIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::columnsForTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingColumnsToTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::renameColumnInTable):
(WebKit::ResourceLoadStatisticsDatabaseStore::openAndUpdateSchemaIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::scopedStatement const):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationshipList):
(WebKit::ResourceLoadStatisticsDatabaseStore::aggregatedThirdPartyData const):
(WebKit::ResourceLoadStatisticsDatabaseStore::incrementRecordsDeletedCountForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::recursivelyFindNonPrevalentDomainsThatRedirectedToThisDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAsPrevalentIfHasRedirectedToPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::findNotVeryPrevalentResources):
(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::grandfatherDataForDomains):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearTopFrameUniqueRedirectsToSinceSameSiteStrictEnforcement):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::setDomainsAsPrevalent):
(WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::hasUserGrantedStorageAccessThroughPrompt):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainsToBlockAndDeleteCookiesFor const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainsToBlockButKeepCookiesFor const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainsWithUserInteractionAsFirstParty const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainsWithStorageAccess const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domains const):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearGrandfathering):
(WebKit::ResourceLoadStatisticsDatabaseStore::pruneStatisticsIfNeeded):
(WebKit::ResourceLoadStatisticsDatabaseStore::isCorrectSubStatisticsCount):
(WebKit::ResourceLoadStatisticsDatabaseStore::appendSubStatisticList const):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateOperatingDatesParameters):
(WebKit::ResourceLoadStatisticsDatabaseStore::includeTodayAsOperatingDateIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertPrivateClickMeasurement):
(WebKit::ResourceLoadStatisticsDatabaseStore::privateClickMeasurementToString):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearSentAttribution):
(WebKit::ResourceLoadStatisticsDatabaseStore::markAttributedPrivateClickMeasurementsAsExpiredForTesting):
- NetworkProcess/WebStorage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::migrateItemTableIfNeeded):
(WebKit::LocalStorageDatabase::databaseIsEmpty const):
(WebKit::LocalStorageDatabase::scopedStatement const):
- NetworkProcess/WebStorage/LocalStorageDatabase.h:
- UIProcess/API/glib/IconDatabase.cpp:
(WebKit::IconDatabase::IconDatabase):
(WebKit::IconDatabase::populatePageURLToIconURLMap):
(WebKit::IconDatabase::pruneTimerFired):
(WebKit::IconDatabase::iconIDForIconURL):
(WebKit::IconDatabase::setIconIDForPageURL):
(WebKit::IconDatabase::iconData):
(WebKit::IconDatabase::addIcon):
(WebKit::IconDatabase::updateIconTimestamp):
(WebKit::IconDatabase::deleteIcon):
Source/WebKitLegacy:
Update code base now that the SQLiteDatabase & SQLiteStatement API has changed.
Also use more ASCIILiterals.
- Storage/StorageAreaSync.cpp:
(WebKit::StorageAreaSync::migrateItemTableIfNeeded):
(WebKit::StorageAreaSync::performImport):
(WebKit::StorageAreaSync::sync):
(WebKit::StorageAreaSync::deleteEmptyDatabase):
- Storage/StorageTracker.cpp:
(WebKit::StorageTracker::syncImportOriginIdentifiers):
(WebKit::StorageTracker::syncSetOriginDetails):
(WebKit::StorageTracker::syncDeleteAllOrigins):
(WebKit::StorageTracker::syncDeleteOrigin):
(WebKit::StorageTracker::databasePathForOrigin):
Source/WTF:
Allow constructing a UniqueRef<> from a C++ reference. std::unique_ptr<>() can be constructed
using a raw pointer and we can construct a UniqueRef<> from a std::unique_ptr<>() so I see
no reason not to allow that.
The reason I needed this is that I want to prevent call sites from allocating SQLiteStatement
without going through the SQLiteDatabase. As a result, I made the SQLiteStatement constructor
private and marked SQLiteDatabase as a friend class. SQLiteDatabase has to heap-allocate
a SQLiteStatement via new and then construct a UniqueRef<> for it. SQLiteDatabase cannot use
makeUniqueRef() because the SQLiteStatement constructor is private. I also cannot mark
makeUniqueRef() as a friend function of SQLiteStatement or anybody could heap allocate a
SQLiteStatement via makeUniqueRef (not just the SQLiteDatabase).
- wtf/UniqueRef.h:
(WTF::UniqueRef::UniqueRef):
Tools:
Update code base now that the SQLiteDatabase & SQLiteStatement API has changed.
Also use more ASCIILiterals.
- TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm:
(TestWebKitAPI::addToDatabasesTable):
- 8:57 AM Changeset in webkit [277570] by
-
- 18 edits in trunk/Source/WebCore
[LFC] Cleanup FormattingContext class
https://bugs.webkit.org/show_bug.cgi?id=225744
Reviewed by Antti Koivisto.
This final patch makes the FormattingContext interface uncluttered.
- WebCore.xcodeproj/project.pbxproj:
- layout/FormattingState.h:
(WebCore::Layout::FormattingState::setIntrinsicWidthConstraints):
(WebCore::Layout::FormattingState::intrinsicWidthConstraints const):
(WebCore::Layout::FormattingState::setIntrinsicWidthConstraintsForBox):
(WebCore::Layout::FormattingState::intrinsicWidthConstraintsForBox const):
- layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):
- layout/LayoutUnits.h:
(WebCore::Layout::IntrinsicWidthConstraints::expand):
(WebCore::Layout::IntrinsicWidthConstraints::operator+=):
(WebCore::Layout::IntrinsicWidthConstraints::operator-=):
- layout/formattingContexts/FormattingContext.cpp:
- layout/formattingContexts/FormattingContext.h:
(WebCore::Layout::FormattingContext::root const):
(WebCore::Layout::FormattingContext::formattingState const):
(WebCore::Layout::FormattingContext::isBlockFormattingContext const):
(WebCore::Layout::FormattingContext::isInlineFormattingContext const):
(WebCore::Layout::FormattingContext::isTableFormattingContext const):
(WebCore::Layout::FormattingContext::isTableWrapperBlockFormattingContext const):
(WebCore::Layout::FormattingContext::isFlexFormattingContext const):
(WebCore::Layout::FormattingContext::IntrinsicWidthConstraints::expand): Deleted.
(WebCore::Layout::FormattingContext::IntrinsicWidthConstraints::operator+=): Deleted.
(WebCore::Layout::FormattingContext::IntrinsicWidthConstraints::operator-=): Deleted.
- layout/formattingContexts/FormattingGeometry.cpp:
(WebCore::Layout::FormattingGeometry::computedWidthValue):
(WebCore::Layout::FormattingGeometry::shrinkToFitWidth):
(WebCore::Layout::FormattingGeometry::constrainByMinMaxWidth const):
(WebCore::Layout::FormattingGeometry::constraintsForOutOfFlowContent):
(WebCore::Layout::FormattingGeometry::constraintsForInFlowContent const):
- layout/formattingContexts/FormattingGeometry.h:
- layout/formattingContexts/block/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computedIntrinsicWidthConstraints):
- layout/formattingContexts/block/BlockFormattingGeometry.cpp:
(WebCore::Layout::BlockFormattingGeometry::intrinsicWidthConstraints):
- layout/formattingContexts/block/BlockFormattingGeometry.h:
- layout/formattingContexts/block/BlockMarginCollapse.cpp:
- layout/formattingContexts/flex/FlexFormattingContext.cpp:
(WebCore::Layout::FlexFormattingContext::computedIntrinsicWidthConstraints):
- layout/formattingContexts/flex/FlexFormattingGeometry.cpp:
(WebCore::Layout::FlexFormattingGeometry::intrinsicWidthConstraints):
- layout/formattingContexts/flex/FlexFormattingGeometry.h:
- layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
- layout/formattingContexts/table/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::TableFormattingContext::computedPreferredWidthForColumns):
- layout/formattingContexts/table/TableFormattingGeometry.cpp:
(WebCore::Layout::TableFormattingGeometry::intrinsicWidthConstraintsForCell):
- layout/formattingContexts/table/TableFormattingGeometry.h:
- layout/formattingContexts/table/TableGrid.h:
(WebCore::Layout::TableGrid::setWidthConstraints):
(WebCore::Layout::TableGrid::widthConstraints const):
(WebCore::Layout::TableGrid::Slot::widthConstraints const):
(WebCore::Layout::TableGrid::Slot::setWidthConstraints):
- 8:21 AM Changeset in webkit [277569] by
-
- 37 edits2 copies2 adds in trunk
Add support for creating/accessing/setting non-sRGB ImageData via canvas
https://bugs.webkit.org/show_bug.cgi?id=225841
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/html/canvas/element/wide-gamut-canvas/2d.color.space.p3.to.p3-expected.txt:
Update result to passing.
Source/WebCore:
Test: fast/canvas/canvas-color-space-display-p3-ImageData.html
Add support for accessing non-sRGB (only DisplayP3 for now due
to the specification, but the support is general) pixel data in
HTML canvas.
Updates ImageData constructors and CanvasImageData operations to
take optional ImageDataSettings dictionaries, which contain an
optional color space (otherwise defaulting back to sRGB).
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- html/ImageDataSettings.h: Added.
- html/ImageDataSettings.idl: Added.
Add new ImageDataSettings.idl and related files.
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::readImageBitmap):
Fixes FIXME and uses PixelBuffer directly rather than allocating
an unnecessary ImageData. This was done now since the relevent
ImageData constructor has gone away.
- html/ImageData.cpp:
(WebCore::computeDataSize):
(WebCore::ImageData::computeColorSpace):
(WebCore::ImageData::create):
(WebCore::ImageData::createUninitialized):
(WebCore::ImageData::ImageData):
(WebCore::ImageData::pixelBuffer const):
(WebCore::ImageData::dataSize): Deleted.
(WebCore::ImageData::deepClone const): Deleted.
- html/ImageData.h:
(WebCore::ImageData::size const):
(WebCore::ImageData::width const):
(WebCore::ImageData::height const):
(WebCore::ImageData::data const):
(WebCore::ImageData::colorSpace const):
(WebCore::ImageData::pixelBuffer const): Deleted.
- Reworked ImageData to no longer store a PixelBuffer, which has extraneous information in it, but rather to store just what it needs IntSize, Ref<JSC::Uint8ClampedArray>, and now PredefinedColorSpace.
- Updates create functions for new optional ImageDataSettings.
- Adds createUninitialized which follows spec language for ImageData creation and is used by CanvasRenderingContext2D to create ImageData objects of with the right color spaces, allowing for fallback to the canvas' own color space when no ImageDataSettings color space is provided. It is uninitialized and therefore requires the client to initialize the data to allow for support for no alpha support in the future, which requires a non-zero initialization pattern.
- html/ImageData.idl:
Add optional ImageDataSettings parameters and the new colorSpace attribute.
- html/canvas/CanvasImageData.idl:
Add optional ImageDataSettings parameters.
- html/canvas/CanvasRenderingContext2DBase.h:
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::initializeEmptyImageData):
Add helper to initialize the ImageData buffer. Right now it always calls
zeroFill(), but in the future it will need to do more.
(WebCore::CanvasRenderingContext2DBase::createImageData const):
Update to account for this function being able to throw an exception (when
out of memory) and use the new createUninitialized/initializeEmptyImageData
to create a correctly color spaced ImageData.
(WebCore::CanvasRenderingContext2DBase::createImageData const):
Update for new optional ImageDataSettings and use the new createUninitialized
initializeEmptyImageData to create a correctly color spaced ImageData.
(WebCore::CanvasRenderingContext2DBase::getImageData const):
Moves parameter checks to the begining to match the spec, and uses new
createUninitialized/initializeEmptyImageData to create a correctly color
spaced ImageData. Also, use the ImageData's color space when getting
the pixel buffer to actually return the right data!
- html/canvas/PredefinedColorSpace.cpp:
(WebCore::toPredefinedColorSpace):
- html/canvas/PredefinedColorSpace.h:
Add conversion function from DestinationColorSpace to PredefinedColorSpace.
Since DestinationColorSpace is a superset of PredefinedColorSpace, this can
fail, so this conversion returns an Optional.
- inspector/InspectorCanvas.cpp:
- inspector/InspectorCanvasCallTracer.cpp:
- inspector/InspectorCanvasCallTracer.h:
Stub out inspector support for ImageDataSettings.
- platform/graphics/ImageBufferBackend.cpp:
(WebCore::ImageBufferBackend::getPixelBuffer const):
Use the ImageBuffer's actual color space as the source color space
rather than hard coding sRGB. This allows the color space conversion
to take place. Also remove some unnecessary temporary variables.
(WebCore::ImageBufferBackend::putPixelBuffer):
Use the ImageBuffer's actual color space as the destination color space
rather than hard coding sRGB. This allows the color space conversion
to take place. Also remove some unnecessary temporary variables.
- platform/graphics/PixelBuffer.cpp:
(WebCore::PixelBuffer::tryCreate):
(WebCore::PixelBuffer::PixelBuffer):
- platform/graphics/PixelBuffer.h:
(WebCore::PixelBuffer::takeData):
Add a few helpers to allow creationg to/from PixelBuffer
a bit easier.
- platform/graphics/PixelBufferConversion.cpp:
(WebCore::convertImagePixelsAccelerated):
Fix incorrect assertion. We want to assert that there is no error, not that
there is one.
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::convertImageBufferToColorSpace):
(WebCore::FilterEffect::copyUnmultipliedResult):
(WebCore::FilterEffect::copyPremultipliedResult):
(WebCore::FilterEffect::createUnmultipliedImageResult):
(WebCore::FilterEffect::createPremultipliedImageResult):
Stop hard coding SRGB for PixelBuffer color spaces and use the appropriate
color space for the task. We still do color space conversion through ImageBuffer
so we should come back and simplify code here to not always require that.
- testing/Internals.cpp:
(WebCore::Internals::videoSampleAvailable):
(WebCore::Internals::loadArtworkImage):
Update to specify a color space to maintain existing behavior.
Source/WebKitLegacy/win:
Add support for tests enabling the CanvasColorSpaceEnabled preference.
- WebPreferences.cpp:
(WebPreferences::canvasColorSpaceEnabled):
- WebPreferences.h:
- WebView.cpp:
(WebView::notifyPreferencesChanged):
LayoutTests:
Remove wide-gamut-canvas now that they should pass.
- fast/canvas/canvas-color-space-display-p3-ImageData-expected.txt: Added.
- fast/canvas/canvas-color-space-display-p3-ImageData.html: Added.
Add new test exercising getImageData and putImageData with non-sRGB canvases
and non-sRGB ImageData.
- fast/canvas/canvas-imageData-expected.txt:
Update results for updated error messages, which are a bit worse due additional
ambiguity in signatures.
- platform/glib/TestExpectations:
Mark new test as failing on glib due to lack of display-p3 support.
- platform/win/TestExpectations:
Mark new test as failing on Windows due to lack of display-p3 support.
Unskip CanvasRenderingContext2DSettings-colorSpace-enabled.html which
should now pass due to adding manual preferences support in WebKitLegacy/win.
- storage/indexeddb/modern/objectstore-autoincrement-types-expected.txt:
Update results due to new attribute in ImageData that is auto printed.
- 8:00 AM Changeset in webkit [277568] by
-
- 11 edits in trunk/Source/WebCore
[LFC] Cleanup margin collapsing class
https://bugs.webkit.org/show_bug.cgi?id=225745
Reviewed by Antti Koivisto.
BlockMarginCollapse needs LayoutState and BlockFormattingState only.
- layout/MarginTypes.h:
- layout/formattingContexts/FormattingGeometry.cpp:
(WebCore::Layout::FormattingGeometry::constraintsForInFlowContent const):
(WebCore::Layout::FormattingGeometry::constraintsForInFlowContent): Deleted.
- layout/formattingContexts/FormattingGeometry.h:
- layout/formattingContexts/block/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForBoxAndAncestors):
(WebCore::Layout::BlockFormattingContext::geometry const):
(WebCore::Layout::BlockFormattingContext::marginCollapse const):
- layout/formattingContexts/block/BlockFormattingGeometry.cpp:
(WebCore::Layout::BlockFormattingGeometry::inFlowNonReplacedContentHeightAndMargin):
- layout/formattingContexts/block/BlockFormattingQuirks.cpp:
(WebCore::Layout::BlockFormattingQuirks::stretchedInFlowHeightIfApplicable const):
- layout/formattingContexts/block/BlockFormattingQuirks.h:
- layout/formattingContexts/block/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockMarginCollapse::BlockMarginCollapse):
(WebCore::Layout::BlockMarginCollapse::hasClearance const):
(WebCore::Layout::BlockMarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::positiveNegativeValues const):
(WebCore::Layout::BlockMarginCollapse::positiveNegativeMarginBefore const):
- layout/formattingContexts/block/BlockMarginCollapse.h:
(WebCore::Layout::BlockMarginCollapse::inQuirksMode const):
(WebCore::Layout::BlockMarginCollapse::layoutState const):
(WebCore::Layout::BlockMarginCollapse::formattingState const):
(WebCore::Layout::BlockMarginCollapse::layoutState): Deleted.
(WebCore::Layout::BlockMarginCollapse::formattingContext const): Deleted.
- layout/formattingContexts/block/PrecomputedBlockMarginCollapse.cpp:
(WebCore::Layout::BlockMarginCollapse::precomputedPositiveNegativeValues const):
(WebCore::Layout::BlockMarginCollapse::precomputedPositiveNegativeMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::precomputedMarginBefore):
- 6:50 AM Changeset in webkit [277567] by
-
- 27 edits in trunk/Source/WebCore
[LFC] Cleanup FormattingQuirk classes
https://bugs.webkit.org/show_bug.cgi?id=225746
Reviewed by Antti Koivisto.
Quirk functions should only be called when not in standards mode.
- layout/formattingContexts/FormattingQuirks.cpp:
(WebCore::Layout::FormattingQuirks::heightValueOfNearestContainingBlockWithFixedHeight const):
(WebCore::Layout::FormattingQuirks::heightValueOfNearestContainingBlockWithFixedHeight): Deleted.
- layout/formattingContexts/FormattingQuirks.h:
(WebCore::Layout::FormattingQuirks::layoutState const):
(WebCore::Layout::FormattingQuirks::layoutState): Deleted.
- layout/formattingContexts/block/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::quirks const): Deleted.
- layout/formattingContexts/block/BlockFormattingContext.h:
- layout/formattingContexts/block/BlockFormattingGeometry.cpp:
(WebCore::Layout::BlockFormattingGeometry::inFlowContentHeightAndMargin):
- layout/formattingContexts/block/BlockFormattingQuirks.cpp:
(WebCore::Layout::BlockFormattingQuirks::BlockFormattingQuirks):
(WebCore::Layout::needsStretching):
(WebCore::Layout::BlockFormattingQuirks::stretchedInFlowHeightIfApplicable const):
(WebCore::Layout::BlockFormattingQuirks::shouldIgnoreCollapsedQuirkMargin):
(WebCore::Layout::BlockFormattingQuirks::shouldCollapseMarginBeforeWithParentMarginBefore):
(WebCore::Layout::BlockFormattingQuirks::shouldCollapseMarginAfterWithParentMarginAfter):
(WebCore::Layout::BlockFormattingQuirks::needsStretching const): Deleted.
(WebCore::Layout::BlockFormattingQuirks::stretchedInFlowHeight): Deleted.
(WebCore::Layout::BlockFormattingQuirks::shouldIgnoreCollapsedQuirkMargin const): Deleted.
(WebCore::Layout::BlockFormattingQuirks::shouldCollapseMarginBeforeWithParentMarginBefore const): Deleted.
(WebCore::Layout::BlockFormattingQuirks::shouldCollapseMarginAfterWithParentMarginAfter const): Deleted.
- layout/formattingContexts/block/BlockFormattingQuirks.h:
(WebCore::Layout::BlockFormattingQuirks::formattingContext const): Deleted.
- layout/formattingContexts/block/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockMarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::positiveNegativeMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::quirks const): Deleted.
- layout/formattingContexts/block/BlockMarginCollapse.h:
- layout/formattingContexts/block/PrecomputedBlockMarginCollapse.cpp:
(WebCore::Layout::BlockMarginCollapse::precomputedPositiveNegativeMarginBefore const):
- layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.cpp:
(WebCore::Layout::TableWrapperBlockFormattingContext::computeHeightAndMarginForTableBox):
(WebCore::Layout::TableWrapperBlockFormattingContext::quirks const): Deleted.
- layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.h:
- layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingQuirks.cpp:
(WebCore::Layout::TableWrapperQuirks::TableWrapperQuirks):
(WebCore::Layout::TableWrapperQuirks::overriddenTableHeight const):
- layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingQuirks.h:
- layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::quirks const): Deleted.
- layout/formattingContexts/inline/InlineFormattingContext.h:
- layout/formattingContexts/inline/InlineFormattingGeometry.cpp:
(WebCore::Layout::InlineFormattingGeometry::inlineLevelBoxAffectsLineBox const):
- layout/formattingContexts/inline/InlineFormattingGeometry.h:
- layout/formattingContexts/inline/InlineFormattingQuirks.cpp:
(WebCore::Layout::InlineFormattingQuirks::initialLineHeight const):
(WebCore::Layout::InlineFormattingQuirks::inlineLevelBoxAffectsLineBox const):
- layout/formattingContexts/inline/InlineFormattingQuirks.h:
(WebCore::Layout::InlineFormattingQuirks::formattingContext const): Deleted.
- layout/formattingContexts/table/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::quirks const): Deleted.
- layout/formattingContexts/table/TableFormattingContext.h:
- layout/formattingContexts/table/TableFormattingGeometry.cpp:
(WebCore::Layout::TableFormattingGeometry::cellHeigh const):
- layout/formattingContexts/table/TableFormattingQuirks.cpp:
(WebCore::Layout::TableFormattingQuirks::TableFormattingQuirks):
(WebCore::Layout::TableFormattingQuirks::shouldIgnoreChildContentVerticalMargin):
(WebCore::Layout::TableFormattingQuirks::shouldIgnoreChildContentVerticalMargin const): Deleted.
- layout/formattingContexts/table/TableFormattingQuirks.h:
(WebCore::Layout::TableFormattingQuirks::formattingContext const): Deleted.
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayNonRootInlineBoxes const):
- 1:30 AM Changeset in webkit [277566] by
-
- 4 edits in trunk
Make will-change: transform-style create a containing block
https://bugs.webkit.org/show_bug.cgi?id=225441
Reviewed by Simon Fraser.
Marked relevant WPT as pass.
Source/WebCore:
- rendering/style/WillChangeData.cpp:
(WebCore::WillChangeData::createsContainingBlockForOutOfFlowPositioned const):
LayoutTests:
- 12:30 AM Changeset in webkit [277565] by
-
- 3 edits1 add in trunk
DFGVarargsForwardingPhase shouldn't consult Flush
https://bugs.webkit.org/show_bug.cgi?id=225824
Reviewed by Filip Pizlo and Yusuke Suzuki.
JSTests:
- microbenchmarks/tail-call-forward-arguments-arguments-elimination.js: Added.
Source/JavaScriptCore:
In the Varargs Forwarding Phase, we were treating Flush as if it
were any other form of node that interferes with an argument
via clobbering a stack location.
This isn't how Flush works though. It doesn't have execution
semantics at the node's graph location. Instead, Flush means that
any variable it's linked to in CPS should be flushed to the stack
between it and the Flush.
The semantics of arguments is that they're already flushed to the
stack, and they've always been. Seeing a Flush node doesn't prevent
arguments elimination, we already know the arguments are on the stack,
and all we're searching for is if there is an interference operation
that says it'll clobber that stack slot. Flush isn't an interference operation.
This is a 0.5% Speedometer progression.
- dfg/DFGVarargsForwardingPhase.cpp:
May 15, 2021:
- 11:36 PM Changeset in webkit [277564] by
-
- 22 edits in trunk
Delete WebSQL code from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=225739
Reviewed by Sihui Liu.
Source/WebCore:
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setWebSQLEnabled): Replaced setWebSQLDisabled.
Source/WebKit:
Deleted WebSQL code. We keep some code for website data store since it's possible
for user's device to still have WebSQL data, and we should be able to delete them.
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::monitoredDataTypes):
- Shared/WebProcessDataStoreParameters.h:
(WebKit::WebProcessDataStoreParameters::encode const):
(WebKit::WebProcessDataStoreParameters::decode):
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetWebSQLDisabled):
(WKPreferencesGetWebSQLDisabled):
- UIProcess/API/C/WKPreferencesRef.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::webProcessDataStoreParameters):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setWebsiteDataStoreParameters):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformSetWebsiteDataStoreParameters):
Source/WebKitLegacy/mac:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Source/WebKitLegacy/win:
- WebView.cpp:
(WebView::notifyPreferencesChanged):
Source/WTF:
Deleted the experimental feature to disable WebSQL since we've been shipping this,
and made the flag to selectively enable WebSQL in WebKit1 an internal debug setting
since nobody should be enabling this now.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- Scripts/Preferences/WebPreferencesInternal.yaml:
Tools:
- MiniBrowser/playstation/WebContext.cpp:
(WebContext::WebContext):
- TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(runWebsiteDataStoreCustomPaths):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::configureWebsiteDataStoreTemporaryDirectories):
- 9:07 PM Changeset in webkit [277563] by
-
- 4 edits in trunk/Source/WebCore
[LFC] Make redundant public helpers private in FormattingContext
https://bugs.webkit.org/show_bug.cgi?id=225747
Reviewed by Antti Koivisto.
- layout/formattingContexts/FormattingContext.h:
- layout/formattingContexts/FormattingGeometry.cpp:
(WebCore::Layout::FormattingGeometry::computedHeightValue const):
- layout/formattingContexts/FormattingQuirks.cpp:
(WebCore::Layout::FormattingQuirks::heightValueOfNearestContainingBlockWithFixedHeight):
- 9:06 PM Changeset in webkit [277562] by
-
- 5 edits in trunk/Source/WebKit
[GPU Process] Ensure RemoteRenderingBackendProxy is restored to its original state when GPUP connection is closed
https://bugs.webkit.org/show_bug.cgi?id=225781
<rdar://76678163>
Reviewed by Darin Adler.
GPUProcess may exit in different scenarios: a crash, under memory pressure
or when it is not being used; see r276148. In all cases, the state of
RemoteRenderingBackendProxy has to be restored to its original state when
it was created. gpuProcessConnectionDidClose() is supposed to do that.
But some members are not cleared in this function.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::gpuProcessConnectionDidClose):
Make sure the resource cache and the getImageData memory and semaphore
are cleared.
(WebKit::RemoteRenderingBackendProxy::createRemoteImageBuffer):
Add this helper method to be called when a RemoteImageBufferProxy is first
created or when its backend is cleared.
(WebKit::RemoteRenderingBackendProxy::createImageBuffer):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:
(WebKit::RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed):
Add this new function to restore RemoteResourceCacheProxy to its original
state.
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:
(WebKit::RemoteResourceCacheProxy::imageBuffers const): Deleted.
- 8:32 PM Changeset in webkit [277561] by
-
- 4 edits in trunk/Source/WebCore
[LFC] Make redundant public helpers private in TableFormattingContext
https://bugs.webkit.org/show_bug.cgi?id=225748
Reviewed by Antti Koivisto.
- layout/formattingContexts/table/TableFormattingContext.h:
- layout/formattingContexts/table/TableFormattingGeometry.cpp:
(WebCore::Layout::TableFormattingGeometry::cellHeigh const):
- layout/formattingContexts/table/TableFormattingQuirks.h:
(WebCore::Layout::TableFormattingQuirks::formattingContext const):
(WebCore::Layout::TableFormattingQuirks::geometry const): Deleted.
- 8:14 PM Changeset in webkit [277560] by
-
- 27 edits in trunk
Allow conditionally enabling OffscreenCanvas only for non-worker contexts
https://bugs.webkit.org/show_bug.cgi?id=225845
Reviewed by Darin Adler.
.:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
- Source/cmake/WebKitFeatures.cmake:
Match current behavior of ENABLE_OFFSCREEN_CANVAS for ENABLE_OFFSCREEN_CANVAS_IN_WORKERS.
Source/WebCore:
Enable both compile time and runtime conditional enablement of just the
non-worker OffscreenCanvas code path.
To make this work a new IDL extended attribute was needed, ConditionalForWorker=FOO,
which allows specifying an additional macro to check for whether the constructor
should be exposed on workers. Ideally this would be generic for any context type,
but at the moment, the limited syntax of extended attributes makes that hard. If
generalization is needed (or a similar syntax is needed for something else) this can
be revisited.
To support runtime conditional exposure, the existing EnabledForContext, which calls
a static function on the implementation class passing the ScriptExecutationContext
is used. If conditional per context type ever becomes a common thing, we should add
another extended attribute (and add syntax to support like above) that allows specifying
both the context type and the setting name.
Other than that, uses of ENABLE_OFFSCREEN_CANVAS that guarded worker specific functionality
were replaced by ENABLE_OFFSCREEN_CANVAS_IN_WORKERS.
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::serialize):
(WebCore::CloneSerializer::CloneSerializer):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneDeserializer::deserialize):
(WebCore::CloneDeserializer::CloneDeserializer):
(WebCore::CloneDeserializer::readTerminal):
(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::computeMemoryCost const):
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::deserialize):
- bindings/js/SerializedScriptValue.h:
(WebCore::SerializedScriptValue::SerializedScriptValue):
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/preprocess-idls.pl:
(GenerateConstructorAttributes):
- html/HTMLCanvasElement.idl:
- html/OffscreenCanvas.cpp:
(WebCore::OffscreenCanvas::enabledForContext):
- html/OffscreenCanvas.h:
- html/OffscreenCanvas.idl:
- html/canvas/OffscreenCanvasRenderingContext2D.cpp:
(WebCore::OffscreenCanvasRenderingContext2D::enabledForContext):
- html/canvas/OffscreenCanvasRenderingContext2D.h:
- html/canvas/OffscreenCanvasRenderingContext2D.idl:
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setOffscreenCanvasInWorkersEnabled):
(WebCore::RuntimeEnabledFeatures::offscreenCanvasInWorkersEnabled const):
- workers/DedicatedWorkerGlobalScope.h:
- workers/DedicatedWorkerGlobalScope.idl:
- workers/WorkerAnimationController.cpp:
- workers/WorkerAnimationController.h:
Source/WTF:
- Scripts/Preferences/WebPreferencesInternal.yaml:
Add new OffscreenCanvasInWorkersEnabled preference.
- wtf/PlatformEnable.h:
Add new ENABLE_OFFSCREEN_CANVAS_IN_WORKERS macro.
Tools:
- Scripts/webkitperl/FeatureList.pm:
- WebKitTestRunner/TestOptions.cpp:
(WTR::TestOptions::defaults):
Match current behavior of ENABLE_OFFSCREEN_CANVAS and OffscreenCanvasEnabled
for ENABLE_OFFSCREEN_CANVAS_IN_WORKERS and OffscreenCanvasInWorkersEnabled.
- 8:04 PM Changeset in webkit [277559] by
-
- 5 edits in trunk/Source/WebCore
[LFC] Make redundant public helpers private in InlineFormattingContext
https://bugs.webkit.org/show_bug.cgi?id=225749
Reviewed by Antti Koivisto.
- layout/formattingContexts/inline/InlineFormattingContext.h:
- layout/formattingContexts/inline/InlineFormattingGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::isAtSoftWrapOpportunity):
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayNonRootInlineBoxes const):
- 7:35 PM Changeset in webkit [277558] by
-
- 8 edits in trunk/Source/WebCore
[LFC] Make redundant public helpers private in BlockFormattingContext
https://bugs.webkit.org/show_bug.cgi?id=225750
Reviewed by Antti Koivisto.
- layout/formattingContexts/block/BlockFormattingContext.h:
- layout/formattingContexts/block/BlockFormattingGeometry.cpp:
(WebCore::Layout::BlockFormattingGeometry::inFlowNonReplacedContentHeightAndMargin):
(WebCore::Layout::BlockFormattingGeometry::inFlowContentHeightAndMargin):
- layout/formattingContexts/block/BlockFormattingQuirks.cpp:
(WebCore::Layout::BlockFormattingQuirks::stretchedInFlowHeight):
- layout/formattingContexts/block/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockMarginCollapse::quirks const):
(WebCore::Layout::BlockMarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::positiveNegativeMarginBefore const):
- layout/formattingContexts/block/BlockMarginCollapse.h:
- layout/formattingContexts/block/PrecomputedBlockMarginCollapse.cpp:
(WebCore::Layout::BlockMarginCollapse::precomputedPositiveNegativeValues const):
(WebCore::Layout::BlockMarginCollapse::precomputedPositiveNegativeMarginBefore const):
- layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingQuirks.cpp:
(WebCore::Layout::TableWrapperQuirks::overriddenTableHeight const):
- 7:18 PM Changeset in webkit [277557] by
-
- 5 edits in trunk/Source/WebCore
[LFC] Make FormattingGeometry c'tors public
https://bugs.webkit.org/show_bug.cgi?id=225751
Reviewed by Antti Koivisto.
Remove unnecessary class friending.
- layout/formattingContexts/FormattingGeometry.h:
- layout/formattingContexts/block/BlockFormattingGeometry.h:
- layout/formattingContexts/inline/InlineFormattingGeometry.h:
- layout/formattingContexts/inline/InlineFormattingQuirks.h:
- layout/formattingContexts/table/TableFormattingGeometry.h:
- 6:56 PM Changeset in webkit [277556] by
-
- 14 edits1 move1 add in trunk/Source/WebCore
[LFC] Move base formatting geometry to its own class
https://bugs.webkit.org/show_bug.cgi?id=225752
Reviewed by Antti Koivisto.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/formattingContexts/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::geometry const):
- layout/formattingContexts/FormattingContext.h:
(WebCore::Layout::FormattingContext::Geometry::layoutState const): Deleted.
(WebCore::Layout::FormattingContext::Geometry::layoutState): Deleted.
(WebCore::Layout::FormattingContext::Geometry::formattingContext const): Deleted.
(WebCore::Layout::FormattingContext::geometry const): Deleted.
(WebCore::Layout::FormattingContext::Geometry::Geometry): Deleted.
- layout/formattingContexts/FormattingContextGeometry.cpp: Removed.
- layout/formattingContexts/block/BlockFormattingGeometry.cpp:
(WebCore::Layout::BlockFormattingGeometry::BlockFormattingGeometry):
(WebCore::Layout::BlockFormattingGeometry::inFlowNonReplacedContentHeightAndMargin):
(WebCore::Layout::BlockFormattingGeometry::inFlowNonReplacedContentWidthAndMargin):
- layout/formattingContexts/block/BlockFormattingGeometry.h:
(WebCore::Layout::BlockFormattingGeometry::formattingContext const):
- layout/formattingContexts/flex/FlexFormattingGeometry.cpp:
(WebCore::Layout::FlexFormattingGeometry::FlexFormattingGeometry):
- layout/formattingContexts/flex/FlexFormattingGeometry.h:
(WebCore::Layout::FlexFormattingGeometry::formattingContext const):
- layout/formattingContexts/inline/InlineFormattingGeometry.cpp:
(WebCore::Layout::InlineFormattingGeometry::InlineFormattingGeometry):
(WebCore::Layout::InlineFormattingGeometry::inlineBlockContentWidthAndMargin):
- layout/formattingContexts/inline/InlineFormattingGeometry.h:
(WebCore::Layout::InlineFormattingGeometry::formattingContext const):
- layout/formattingContexts/table/TableFormattingGeometry.cpp:
(WebCore::Layout::TableFormattingGeometry::TableFormattingGeometry):
- layout/formattingContexts/table/TableFormattingGeometry.h:
(WebCore::Layout::TableFormattingGeometry::formattingContext const):
- layout/formattingContexts/table/TableFormattingQuirks.h:
(WebCore::Layout::TableFormattingQuirks::geometry const):
- 6:50 PM Changeset in webkit [277555] by
-
- 13 edits3 deletes in trunk
Remove _WKWebsitePolicies
https://bugs.webkit.org/show_bug.cgi?id=224293
Patch by Alex Christensen <achristensen@webkit.org> on 2021-05-15
Reviewed by Darin Adler.
Source/WebKit:
Its last use was removed in rdar://problem/58064847 and we've released a Safari version since then.
It was replaced by WKWebpagePreferences
- SourcesCocoa.txt:
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _updateWebsitePolicies:]): Deleted.
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/Cocoa/WKWebpagePreferences.mm:
- UIProcess/API/Cocoa/WKWebpagePreferencesInternal.h:
- UIProcess/API/Cocoa/_WKWebsitePolicies.h:
- UIProcess/API/Cocoa/_WKWebsitePolicies.mm: Removed.
- UIProcess/API/Cocoa/_WKWebsitePoliciesInternal.h: Removed.
- UIProcess/Cocoa/NavigationState.h:
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::sendAudioComponentRegistrations):
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::draggingExited):
(WebKit::WebViewImpl::performDragOperation):
(WebKit::WebViewImpl::setPromisedDataForImage):
- WebKit.xcodeproj/project.pbxproj:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
(-[CustomUserAgentDelegate _webView:decidePolicyForNavigationAction:preferences:userInfo:decisionHandler:]):
(-[CustomJavaScriptUserAgentDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(-[CustomNavigatorPlatformDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(-[PopUpPoliciesDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[PopUpPoliciesDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(-[CustomUserAgentDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]): Deleted.
(-[CustomJavaScriptUserAgentDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]): Deleted.
(-[CustomNavigatorPlatformDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]): Deleted.
(-[PopUpPoliciesDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]): Deleted.
- 6:21 PM Changeset in webkit [277554] by
-
- 5 edits1 move1 add in trunk/Source/WebCore
[LFC] Move table formatting geometry to its own class
https://bugs.webkit.org/show_bug.cgi?id=225753
Reviewed by Antti Koivisto.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/formattingContexts/table/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::geometry const):
- layout/formattingContexts/table/TableFormattingContext.h:
(WebCore::Layout::TableFormattingContext::Geometry::Geometry): Deleted.
- layout/formattingContexts/table/TableFormattingContextGeometry.cpp: Removed.
- 6:05 PM Changeset in webkit [277553] by
-
- 23 edits in trunk/Source/WebCore
Clean up BaseAudioContext now that legacy/prefixed WebAudio is gone
https://bugs.webkit.org/show_bug.cgi?id=225843
Reviewed by Darin Adler.
The BaseAudioContext class hierarchy used to be a bit complicated when
we supposed legacy WebAudio because OfflineAudioContext would subclass
BaseAudioContext directly, while WebKitOfflineAudioContext would
subclass BaseAudioContext via AudioContext. The class hierarchy is now
a lot simpler, BaseAudioContext is the base class and it has exactly
2 subclasses: OfflineAudioContext and AudioContext (for real-time
rendering). Now that the legacy WebAudio code is gone, this patch
cleans up BaseAudioContext and moves as much code as possible to its
subclasses (OfflineAudioContext & AudioContext).
- Modules/webaudio/AudioBuffer.cpp:
(WebCore::AudioBuffer::create):
- Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::setBuffer):
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::create):
(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::uninitialize):
(WebCore::AudioContext::lazyInitialize):
(WebCore::AudioContext::activeDOMObjectName const):
- Modules/webaudio/AudioContext.h:
(isType):
- Modules/webaudio/AudioContextState.h:
- Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::setChannelCount):
- Modules/webaudio/AudioNodeOutput.cpp:
(WebCore::AudioNodeOutput::AudioNodeOutput):
(WebCore::AudioNodeOutput::setNumberOfChannels):
- Modules/webaudio/AudioWorkletNode.cpp:
(WebCore::AudioWorkletNode::create):
- Modules/webaudio/BaseAudioContext.cpp:
(WebCore::generateContextID):
(WebCore::BaseAudioContext::BaseAudioContext):
(WebCore::BaseAudioContext::lazyInitialize):
(WebCore::BaseAudioContext::uninitialize):
(WebCore::BaseAudioContext::stop):
(WebCore::BaseAudioContext::createScriptProcessor):
(WebCore::BaseAudioContext::derefFinishedSourceNodes):
(WebCore::BaseAudioContext::lockInternal):
(WebCore::BaseAudioContext::tryLock):
(WebCore::BaseAudioContext::unlock):
(WebCore::BaseAudioContext::handlePostRenderTasks):
(WebCore::BaseAudioContext::deleteMarkedNodes):
(WebCore::BaseAudioContext::updateAutomaticPullNodes):
(WebCore::BaseAudioContext::postTask):
(WebCore::BaseAudioContext::workletIsReady):
- Modules/webaudio/BaseAudioContext.h:
(WebCore::BaseAudioContext::isInitialized const):
(WebCore::BaseAudioContext::currentSampleFrame const):
(WebCore::BaseAudioContext::currentTime const):
(WebCore::BaseAudioContext::sampleRate const):
(WebCore::BaseAudioContext::listener):
(WebCore::BaseAudioContext::incrementConnectionCount):
(WebCore::BaseAudioContext::isAudioThread const):
(WebCore::BaseAudioContext::isAudioThreadFinished const):
(WebCore::BaseAudioContext::isGraphOwner const):
- Modules/webaudio/ChannelMergerNode.cpp:
(WebCore::ChannelMergerNode::create):
- Modules/webaudio/ChannelSplitterNode.cpp:
(WebCore::ChannelSplitterNode::create):
- Modules/webaudio/DefaultAudioDestinationNode.cpp:
(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
(WebCore::DefaultAudioDestinationNode::context):
(WebCore::DefaultAudioDestinationNode::context const):
- Modules/webaudio/DefaultAudioDestinationNode.h:
- Modules/webaudio/MediaElementAudioSourceNode.cpp:
(WebCore::MediaElementAudioSourceNode::setFormat):
- Modules/webaudio/MediaStreamAudioSourceNode.cpp:
(WebCore::MediaStreamAudioSourceNode::setFormat):
- Modules/webaudio/OfflineAudioContext.cpp:
(WebCore::OfflineAudioContext::OfflineAudioContext):
(WebCore::OfflineAudioContext::create):
(WebCore::OfflineAudioContext::uninitialize):
(WebCore::OfflineAudioContext::activeDOMObjectName const):
(WebCore::OfflineAudioContext::startRendering):
(WebCore::OfflineAudioContext::suspendRendering):
(WebCore::OfflineAudioContext::resumeRendering):
(WebCore::OfflineAudioContext::didSuspendRendering):
(WebCore::OfflineAudioContext::finishedRendering):
(WebCore::OfflineAudioContext::settleRenderingPromise):
(WebCore::OfflineAudioContext::dispatchEvent):
- Modules/webaudio/OfflineAudioContext.h:
(isType):
- Modules/webaudio/OfflineAudioContext.idl:
- Modules/webaudio/OfflineAudioDestinationNode.cpp:
(WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):
(WebCore::OfflineAudioDestinationNode::context):
(WebCore::OfflineAudioDestinationNode::context const):
- Modules/webaudio/OfflineAudioDestinationNode.h:
- Modules/webaudio/ScriptProcessorNode.cpp:
(WebCore::ScriptProcessorNode::ScriptProcessorNode):
- 4:55 PM Changeset in webkit [277552] by
-
- 5 edits1 move1 add in trunk/Source/WebCore
[LFC] Move inline formatting geometry to its own class
https://bugs.webkit.org/show_bug.cgi?id=225754
Reviewed by Antti Koivisto.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::geometry const):
- layout/formattingContexts/inline/InlineFormattingContext.h:
(WebCore::Layout::InlineFormattingContext::Geometry::Geometry): Deleted.
- layout/formattingContexts/inline/InlineFormattingContextGeometry.cpp: Removed.
- 4:54 PM Changeset in webkit [277551] by
-
- 2 edits in trunk/Source/WTF
CeilingOnPageSize too low for Loongson CPUs
https://bugs.webkit.org/show_bug.cgi?id=221198
<rdar://problem/74089683>
Reviewed by Michael Catanzaro.
Increase the page size to 16KB in MIPS64.
- wtf/PageBlock.h:
- 4:03 PM Changeset in webkit [277550] by
-
- 5 edits1 move1 add in trunk/Source/WebCore
[LFC] Move flex formatting geometry to its own class
https://bugs.webkit.org/show_bug.cgi?id=225755
Reviewed by Antti Koivisto.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/formattingContexts/flex/FlexFormattingContext.cpp:
(WebCore::Layout::FlexFormattingContext::geometry const):
- layout/formattingContexts/flex/FlexFormattingContext.h:
(WebCore::Layout::FlexFormattingContext::Geometry::Geometry): Deleted.
- layout/formattingContexts/flex/FlexFormattingContextGeometry.cpp: Removed.
- 3:47 PM WebKitGTK/2.32.x edited by
- (diff)
- 3:30 PM Changeset in webkit [277549] by
-
- 10 edits1 move1 add in trunk/Source/WebCore
[LFC] Move block formatting geometry to its own class
https://bugs.webkit.org/show_bug.cgi?id=225756
Reviewed by Antti Koivisto.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/formattingContexts/block/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::geometry const):
- layout/formattingContexts/block/BlockFormattingContext.h:
(WebCore::Layout::BlockFormattingContext::Geometry::formattingContext const): Deleted.
(WebCore::Layout::BlockFormattingContext::geometry const): Deleted.
(WebCore::Layout::BlockFormattingContext::Geometry::Geometry): Deleted.
- layout/formattingContexts/block/BlockFormattingContextGeometry.cpp: Removed.
- layout/formattingContexts/block/BlockFormattingQuirks.cpp:
(WebCore::Layout::BlockFormattingQuirks::stretchedInFlowHeight):
- layout/formattingContexts/block/BlockFormattingQuirks.h:
(WebCore::Layout::BlockFormattingQuirks::formattingContext const):
(WebCore::Layout::BlockFormattingQuirks::geometry const): Deleted.
- layout/formattingContexts/block/PrecomputedBlockMarginCollapse.cpp:
- layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.cpp:
- layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingQuirks.cpp:
(WebCore::Layout::TableWrapperQuirks::overriddenTableHeight const):
- 2:11 PM Changeset in webkit [277548] by
-
- 11 edits1 copy1 move in trunk/Source/WebCore
[LFC] Move base formatting quirks to its own class
https://bugs.webkit.org/show_bug.cgi?id=225757
Reviewed by Antti Koivisto.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/formattingContexts/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::quirks const):
- layout/formattingContexts/FormattingContext.h:
(WebCore::Layout::FormattingContext::formattingState):
(WebCore::Layout::FormattingContext::Quirks::layoutState const): Deleted.
(WebCore::Layout::FormattingContext::Quirks::layoutState): Deleted.
(WebCore::Layout::FormattingContext::Quirks::formattingContext const): Deleted.
(WebCore::Layout::FormattingContext::quirks const): Deleted.
(WebCore::Layout::FormattingContext::Quirks::Quirks): Deleted.
- layout/formattingContexts/FormattingContextQuirks.cpp: Removed.
- layout/formattingContexts/block/BlockFormattingQuirks.cpp:
(WebCore::Layout::BlockFormattingQuirks::BlockFormattingQuirks):
- layout/formattingContexts/block/BlockFormattingQuirks.h:
(WebCore::Layout::BlockFormattingQuirks::formattingContext const):
- layout/formattingContexts/inline/InlineFormattingQuirks.cpp:
(WebCore::Layout::InlineFormattingQuirks::InlineFormattingQuirks):
- layout/formattingContexts/inline/InlineFormattingQuirks.h:
(WebCore::Layout::InlineFormattingQuirks::formattingContext const):
- layout/formattingContexts/table/TableFormattingQuirks.cpp:
(WebCore::Layout::TableFormattingQuirks::TableFormattingQuirks):
- layout/formattingContexts/table/TableFormattingQuirks.h:
(WebCore::Layout::TableFormattingQuirks::formattingContext const):
- 1:46 PM Changeset in webkit [277547] by
-
- 16 edits6 adds in trunk
Implement CanvasRenderingContext2D.createConicGradient
https://bugs.webkit.org/show_bug.cgi?id=225539
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic-expected.txt:
Source/WebCore:
Proposal document:
https://github.com/fserb/canvas2D/blob/master/spec/conic-gradient.md
MDN documentation:
https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/createConicGradient
Tests: fast/canvas/canvas-conic-gradient-angle.html
fast/canvas/canvas-conic-gradient-center.html
fast/canvas/conicGradient-infinite-values.html
- html/canvas/CanvasFillStrokeStyles.idl:
- html/canvas/CanvasGradient.cpp:
(WebCore::CanvasGradient::CanvasGradient):
(WebCore::m_canvas):
(WebCore::CanvasGradient::create):
- html/canvas/CanvasGradient.h:
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::createConicGradient):
- html/canvas/CanvasRenderingContext2DBase.h:
Source/WebInspectorUI:
- UserInterface/Models/NativeFunctionParameters.js:
- UserInterface/Models/Recording.js:
(WI.Recording.prototype.async swizzle):
- UserInterface/Views/RecordingActionTreeElement.js:
(WI.RecordingActionTreeElement._classNameForAction):
LayoutTests:
- fast/canvas/canvas-conic-gradient-angle-expected.html: Added.
- fast/canvas/canvas-conic-gradient-angle.html: Added.
- fast/canvas/canvas-conic-gradient-center-expected.html: Added.
- fast/canvas/canvas-conic-gradient-center.html: Added.
- fast/canvas/conicGradient-infinite-values-expected.txt: Added.
- fast/canvas/conicGradient-infinite-values.html: Added.
- inspector/canvas/recording-html-2d-expected.txt:
- inspector/canvas/recording-html-2d.html:
- platform/win/TestExpectations:
- 1:22 PM Changeset in webkit [277546] by
-
- 5 edits1 copy1 move in trunk/Source/WebCore
[LFC] Move table formatting quirks to its own class
https://bugs.webkit.org/show_bug.cgi?id=225758
Reviewed by Antti Koivisto.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/formattingContexts/table/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::quirks const):
- layout/formattingContexts/table/TableFormattingContext.h:
(WebCore::Layout::TableFormattingContext::Quirks::Quirks): Deleted.
- layout/formattingContexts/table/TableFormattingContextQuirks.cpp: Removed.
- 12:50 PM Changeset in webkit [277545] by
-
- 6 edits1 move1 add in trunk/Source/WebCore
[LFC] Move inline formatting quirks to its own class
https://bugs.webkit.org/show_bug.cgi?id=225759
Reviewed by Antti Koivisto.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::quirks const):
- layout/formattingContexts/inline/InlineFormattingContext.h:
(WebCore::Layout::InlineFormattingContext::Quirks::Quirks): Deleted.
- layout/formattingContexts/inline/InlineFormattingContextQuirks.cpp: Removed.
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
- 11:27 AM Changeset in webkit [277544] by
-
- 5 edits1 copy1 move in trunk/Source/WebCore
[LFC] Move table wrapper quirks to its own class
https://bugs.webkit.org/show_bug.cgi?id=225760
Reviewed by Antti Koivisto.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.cpp:
(WebCore::Layout::TableWrapperBlockFormattingContext::quirks const):
- layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.h:
(WebCore::Layout::TableWrapperBlockFormattingContext::Quirks::Quirks): Deleted.
- layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContextQuirks.cpp: Removed.
- 10:51 AM Changeset in webkit [277543] by
-
- 9 edits in trunk/Source/WebCore
Move CanvasRenderingContext2DSettings down to CanvasRenderingContext2DBase so it can be used there (and to support OffscreenCanvas)
https://bugs.webkit.org/show_bug.cgi?id=225836
Reviewed by Simon Fraser.
In subsequent changes, it will be useful to have CanvasRenderingContext2DSettings accessible
in CanvasRenderingContext2DBase for implementing color space support in ImageData.
While doing this, I noticed it was trivial to add support for passing the settings
to OffscreenCanvasRenderingContext2D, so I add that as well.
- html/OffscreenCanvas.cpp:
(WebCore::OffscreenCanvas::getContext):
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
(WebCore::CanvasRenderingContext2D::pixelFormat const): Deleted.
(WebCore::CanvasRenderingContext2D::colorSpace const): Deleted.
- html/canvas/CanvasRenderingContext2D.h:
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::CanvasRenderingContext2DBase):
(WebCore::CanvasRenderingContext2DBase::pixelFormat const):
(WebCore::CanvasRenderingContext2DBase::colorSpace const):
- html/canvas/CanvasRenderingContext2DBase.h:
(WebCore::CanvasRenderingContext2DBase::getContextAttributes const):
- html/canvas/OffscreenCanvasRenderingContext2D.cpp:
(WebCore::OffscreenCanvasRenderingContext2D::OffscreenCanvasRenderingContext2D):
- html/canvas/OffscreenCanvasRenderingContext2D.h:
- html/canvas/PaintRenderingContext2D.cpp:
(WebCore::PaintRenderingContext2D::PaintRenderingContext2D):
- 10:50 AM Changeset in webkit [277542] by
-
- 8 edits1 move1 add in trunk/Source/WebCore
[LFC] Move block formatting quirks to its own class
https://bugs.webkit.org/show_bug.cgi?id=225761
Reviewed by Antti Koivisto.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/formattingContexts/FormattingContext.h:
(WebCore::Layout::FormattingContext::Quirks::layoutState const):
(WebCore::Layout::FormattingContext::Quirks::layoutState):
(WebCore::Layout::FormattingContext::Quirks::formattingContext const):
(WebCore::Layout::FormattingContext::quirks const):
- layout/formattingContexts/block/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::quirks const):
- layout/formattingContexts/block/BlockFormattingContext.h:
(WebCore::Layout::BlockFormattingContext::Quirks::formattingContext const): Deleted.
(WebCore::Layout::BlockFormattingContext::Quirks::geometry const): Deleted.
(WebCore::Layout::BlockFormattingContext::quirks const): Deleted.
(WebCore::Layout::BlockFormattingContext::Quirks::Quirks): Deleted.
- layout/formattingContexts/block/BlockFormattingContextQuirks.cpp: Removed.
- layout/formattingContexts/block/BlockMarginCollapse.cpp:
- layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.h:
(WebCore::Layout::TableWrapperBlockFormattingContext::Quirks::Quirks):
- 9:59 AM Changeset in webkit [277541] by
-
- 12 edits1 add in trunk
Turn callGetter() / callSetter() into instance methods
https://bugs.webkit.org/show_bug.cgi?id=225831
Reviewed by Ross Kirsling.
JSTests:
- microbenchmarks/put-slow-no-cache-setter.js: Added.
Source/JavaScriptCore:
- Turn callGetter() / callSetter() into instance methods to simplify their signatures.
- Rename
base
parameter tothisValue
, avoiding similarity with slotBase(). - Accept
bool shouldThrow
in callSetter() since ECMAMode is cumbersome to construct. - Replace isSetterNull(), which does LIKELY(inherits), with direct JSType check.
- Introduce getCallData(VM&, JSCell*) overload to avoid extra checks / casts.
- Move isValidCallee() to JSCell and handle primitives gracefully.
No behavior change. Advances provided callSetter() microbenchmark by 2%.
- runtime/GetterSetter.cpp:
(JSC::GetterSetter::callGetter):
(JSC::GetterSetter::callSetter):
(JSC::callGetter): Deleted.
(JSC::callSetter): Deleted.
- runtime/GetterSetter.h:
- runtime/JSCJSValue.cpp:
(JSC::JSValue::isValidCallee): Deleted.
- runtime/JSCJSValue.h:
- runtime/JSCell.cpp:
(JSC::JSCell::isValidCallee const):
- runtime/JSCell.h:
- runtime/JSObject.cpp:
(JSC::JSObject::putInlineSlow):
- runtime/JSObjectInlines.h:
(JSC::getCallData):
(JSC::getConstructData):
- runtime/PropertySlot.cpp:
(JSC::PropertySlot::functionGetter const):
- runtime/SparseArrayValueMap.cpp:
(JSC::SparseArrayEntry::put):
- 9:21 AM Changeset in webkit [277540] by
-
- 8 edits1 add in trunk/Source/WebCore
[LFC] Move BlockMarginCollapse to its own class
https://bugs.webkit.org/show_bug.cgi?id=225762
Reviewed by Antti Koivisto.
- WebCore.xcodeproj/project.pbxproj:
- layout/formattingContexts/FormattingContext.h:
(WebCore::Layout::FormattingContext::formattingState const):
- layout/formattingContexts/block/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::updateMarginAfterForPreviousSibling):
(WebCore::Layout::BlockFormattingContext::marginCollapse const):
- layout/formattingContexts/block/BlockFormattingContext.h:
(WebCore::Layout::BlockFormattingContext::formattingState const):
(WebCore::Layout::BlockFormattingContext::Quirks::formattingContext const):
(WebCore::Layout::BlockFormattingContext::Quirks::geometry const):
(WebCore::Layout::BlockFormattingContext::quirks const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::layoutState): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::layoutState const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::formattingContext const): Deleted.
(WebCore::Layout::BlockFormattingContext::marginCollapse const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::MarginCollapse): Deleted.
- layout/formattingContexts/block/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockMarginCollapse::BlockMarginCollapse):
(WebCore::Layout::BlockMarginCollapse::hasClearance const):
(WebCore::Layout::BlockMarginCollapse::marginBeforeCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::marginBeforeCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::marginBeforeCollapsesWithPreviousSiblingMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::marginBeforeCollapsesWithFirstInFlowChildMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithSiblingMarginBeforeWithClearance const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithParentMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithParentMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::marginAfterCollapsesWithNextSiblingMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::marginsCollapseThrough const):
(WebCore::Layout::BlockMarginCollapse::computedPositiveAndNegativeMargin const):
(WebCore::Layout::BlockMarginCollapse::marginValue const):
(WebCore::Layout::BlockMarginCollapse::positiveNegativeValues const):
(WebCore::Layout::BlockMarginCollapse::positiveNegativeMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::positiveNegativeMarginAfter const):
(WebCore::Layout::BlockMarginCollapse::marginBeforeIgnoringCollapsingThrough):
(WebCore::Layout::BlockMarginCollapse::collapsedVerticalValues):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::hasClearance const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginAfter const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithParentMarginBefore const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithPreviousSiblingMarginAfter const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithFirstInFlowChildMarginBefore const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithSiblingMarginBeforeWithClearance const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginBefore const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithParentMarginAfter const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithNextSiblingMarginBefore const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginsCollapseThrough const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::computedPositiveAndNegativeMargin const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginValue const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updateMarginAfterForPreviousSibling): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginBefore const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginAfter const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeIgnoringCollapsingThrough): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::collapsedVerticalValues): Deleted.
- layout/formattingContexts/block/PrecomputedBlockMarginCollapse.cpp:
(WebCore::Layout::BlockMarginCollapse::precomputedPositiveNegativeValues const):
(WebCore::Layout::BlockMarginCollapse::precomputedPositiveNegativeMarginBefore const):
(WebCore::Layout::BlockMarginCollapse::precomputedMarginBefore):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedPositiveNegativeValues const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedPositiveNegativeMarginBefore const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedMarginBefore): Deleted.
- layout/formattingContexts/block/tablewrapper/TableWrapperBlockFormattingContext.cpp:
(WebCore::Layout::TableWrapperBlockFormattingContext::computeHeightAndMarginForTableBox):
- 7:26 AM Changeset in webkit [277539] by
-
- 2 edits in trunk/Source/WebCore
[GTK] REGRESSION: Kinetic scrolling on touchpad doesn't work with async scrolling off
https://bugs.webkit.org/show_bug.cgi?id=224182
Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2021-05-15
Reviewed by Michael Catanzaro.
Don't clear the scroll history every time we scroll, that defeats the whole point of having
the scroll history.
- platform/generic/ScrollAnimatorGeneric.cpp:
(WebCore::ScrollAnimatorGeneric::scrollToPositionWithoutAnimation):
- 5:47 AM Changeset in webkit [277538] by
-
- 7 edits2 adds in trunk
Don't allow :visited link style in subtrees that use mix-blend-mode
https://bugs.webkit.org/show_bug.cgi?id=225446
rdar://65686091
Reviewed by Darin Adler.
Source/WebCore:
Test: fast/css/visited-link-mix-blend-mode.html
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::visitedDependentColor const):
Return unvisited style in substrees that use mix-blend-mode.
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::setBlendMode):
(WebCore::RenderStyle::isInSubtreeWithBlendMode const):
Add an inherited fake property for tracking this.
- rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):
- rendering/style/StyleRareInheritedData.h:
LayoutTests:
- fast/css/visited-link-mix-blend-mode-expected.html: Added.
- fast/css/visited-link-mix-blend-mode.html: Added.
- 4:00 AM Changeset in webkit [277537] by
-
- 2 edits in trunk/Tools
report-non-inclusive-language should skip node_modules directory
https://bugs.webkit.org/show_bug.cgi?id=225827
Reviewed by Darin Adler.
- Scripts/report-non-inclusive-language: Skip node_modules directory as it contains external code.
- 12:40 AM Changeset in webkit [277536] by
-
- 5 edits in trunk/Source/WebKit
Replace PlatformCAAnimationRemote::KeyframeValue with Variant
https://bugs.webkit.org/show_bug.cgi?id=225474
Patch by Ian Gilbert <iang@apple.com> on 2021-05-15
Reviewed by Ryosuke Niwa.
KeyframeValue was effectively a Variant. Replaced the existing class with a WTF::Variant.
No test as this does not change code behavior.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<RefPtr<WebCore::FilterOperation>>::encode):
(IPC::ArgumentCoder<RefPtr<WebCore::FilterOperation>>::decode):
- Shared/WebCoreArgumentCoders.h:
- WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.h:
- WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:
(WebKit::animationValueFromKeyframeValue):
(WebKit::operator<<):
(WebKit::PlatformCAAnimationRemote::KeyframeValue::encode const): Deleted.
(WebKit::PlatformCAAnimationRemote::KeyframeValue::decode): Deleted.
May 14, 2021:
- 10:46 PM Changeset in webkit [277535] by
-
- 28 edits1 delete in trunk
Drop FileSystem::fileMetadata() / fileMetadataFollowingSymlinks()
https://bugs.webkit.org/show_bug.cgi?id=225820
Reviewed by Darin Adler.
Source/JavaScriptCore:
Update our code base because of the FileSystem API changes.
- API/JSScript.mm:
(validateBytecodeCachePath):
Source/WebCore:
Update our code base because of the FileSystem API changes.
- Modules/entriesapi/DOMFileSystem.cpp:
(WebCore::listDirectoryWithMetadata):
(WebCore::toFileSystemEntries):
(WebCore::fileTypeIgnoringHiddenFiles):
(WebCore::validatePathIsExpectedType):
(WebCore::DOMFileSystem::getParent):
(WebCore::DOMFileSystem::getEntry):
(WebCore::DOMFileSystem::getFile):
- editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::attachmentForFilePath):
- fileapi/File.cpp:
(WebCore::File::isDirectory const):
- html/DirectoryFileListCreator.cpp:
(WebCore::appendDirectoryFiles):
(WebCore::gatherFileInformation):
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setStorageDirectory):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::ensureAssetCacheExistsForPath):
- platform/network/BlobDataFileReference.cpp:
(WebCore::BlobDataFileReference::startTrackingModifications):
- platform/network/BlobRegistryImpl.cpp:
- platform/network/FormData.cpp:
(WebCore::FormData::prepareForUpload):
- platform/network/mac/BlobDataFileReferenceMac.mm:
(WebCore::BlobDataFileReference::generateReplacementFile):
Source/WebKit:
Update our code base because of the FileSystem API changes.
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::getDirectorySize):
(WebKit::CacheStorage::Engine::getDirectories):
(WebKit::CacheStorage::Engine::clearAllCachesFromDisk):
- NetworkProcess/cache/NetworkCacheFileSystem.cpp:
(WebKit::NetworkCache::traverseDirectory):
- Shared/mac/AuxiliaryProcessMac.mm:
(WebKit::ensureSandboxCacheDirectory):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::isInternalInstall):
Source/WTF:
Drop FileSystem::fileMetadata() / fileMetadataFollowingSymlinks(). Those don't match very closely the
std::filesystem API we use internally and they are not very efficient because we gather several attributes
of a file but the callers are usually only interested in one thing (e.g. file type or file size).
Callers interested in the file size, can call the pre-existing FileSystem::fileSize(). For call sites
wanting to check if it is a hidden file, I introduced a new FileSystem::isHiddenFile() API. For call sites
interested in the file type, I replaced FileSystem::isDirectory() / FileSystem::isDirectoryFollowingSymlinks()
with more generic FileSystem::fileType() / FileSystem::fileTypeFollowingSymlinks().
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/FileMetadata.h: Removed.
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::isHiddenFile):
(WTF::FileSystemImpl::fileTypePotentiallyFollowingSymLinks):
(WTF::FileSystemImpl::fileType):
(WTF::FileSystemImpl::fileTypeFollowingSymlinks):
- wtf/FileSystem.h:
- wtf/glib/FileSystemGlib.cpp:
- wtf/posix/FileSystemPOSIX.cpp:
- wtf/win/FileSystemWin.cpp:
Tools:
Update the FileSystem API tests accordingly.
- TestWebKitAPI/Tests/WTF/FileSystem.cpp:
(TestWebKitAPI::TEST_F):
- 10:26 PM Changeset in webkit [277534] by
-
- 19 edits in trunk
Javascript can't access a SameSite=Strict cookie after page is loaded after a redirect from a third party site
https://bugs.webkit.org/show_bug.cgi?id=208049
<rdar://problem/59701889>
Reviewed by Chris Dumez.
The HTTP WG has decided that SameSite=strict cookies should be returned in document.cookie
even in cases where they are not sent in the HTTP request for the page. Chromium and Gecko
now work according to those rules and the spec is being updated.
See:
- https://github.com/httpwg/http-extensions/issues/769
- https://github.com/httpwg/http-extensions/pull/1428/files.
Source/WebCore:
Here's an excerpt from the spec change:
'If a user agent does return cookies for a given call to a "non-HTTP" API with
an associated Document, then the user agent MUST compute the cookie-string
following the algorithm defined in {{retrieval-algorithm}}, indicating that the
retrieval is from a "non-HTTP" API. The retrieval-uri is the associated
Document's cookie URL {{COOKIE-URL}}, and the retrieval is same-site if the
Document's "site for cookies" is same-site with the top-level origin as defined
in {{document-requests}}.'
Existing layout tests changed and rebased.
- loader/CookieJar.cpp:
(WebCore::CookieJar::sameSiteInfo):
Now takes a IsCookieAccessForDOM parameter and forwards it to SameSiteInfo::create().
(WebCore::CookieJar::cookies const):
Now sends IsCookieAccessForDOM::Yes to CookieJar::sameSiteInfo().
(WebCore::CookieJar::setCookies):
Now sends IsCookieAccessForDOM::Yes to CookieJar::sameSiteInfo().
- loader/CookieJar.h:
- platform/network/SameSiteInfo.cpp:
(WebCore::SameSiteInfo::create):
Now takes a IsForDOMCookieAccess parameter and if it's IsForDOMCookieAccess::Yes and
the site is top site, sets isSameSite.
- platform/network/SameSiteInfo.h:
Now has an enum IsForDOMCookieAccess.
Source/WebKit:
Here's an excerpt from the spec change:
'If a user agent does return cookies for a given call to a "non-HTTP" API with
an associated Document, then the user agent MUST compute the cookie-string
following the algorithm defined in {{retrieval-algorithm}}, indicating that the
retrieval is from a "non-HTTP" API. The retrieval-uri is the associated
Document's cookie URL {{COOKIE-URL}}, and the retrieval is same-site if the
Document's "site for cookies" is same-site with the top-level origin as defined
in {{document-requests}}.'
Existing layout tests changed and rebased.
- WebProcess/WebPage/WebCookieJar.cpp:
(WebKit::WebCookieJar::cookies const):
Now sends WebCore::IsCookieAccessForDOM::Yes to WebCore::CookieJar::sameSiteInfo().
(WebKit::WebCookieJar::setCookies):
Now sends WebCore::IsCookieAccessForDOM::Yes to WebCore::CookieJar::sameSiteInfo().
LayoutTests:
Tests changed and rebased accordingly.
- http/tests/cookies/same-site/fetch-after-top-level-cross-origin-redirect-expected.txt:
- http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt:
- http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt:
- http/tests/cookies/same-site/popup-cross-site-post.html:
- http/tests/cookies/same-site/popup-cross-site.html:
- http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html:
- http/tests/cookies/same-site/resources/fetch-after-top-level-cross-origin-redirect.py:
- http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-from-cross-origin-page.py:
- http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.py:
- http/tests/cookies/same-site/user-load-cross-site-redirect-expected.txt:
- http/tests/cookies/same-site/user-load-cross-site-redirect.py:
- 10:02 PM Changeset in webkit [277533] by
-
- 4 edits in trunk/Tools
[WebKitTestRunner] Forward WebContent termination reason
https://bugs.webkit.org/show_bug.cgi?id=225818
<rdar://problem/78027164>
Reviewed by Chris Dumez.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::createOtherPage): Use didTerminate callback instead of didCrash callback.
(WTR::TestController::createWebViewWithOptions): Ditto.
(WTR::TestController::webProcessDidTerminate):
(WTR::TestController::processDidCrash): Renamed webProcessDidTerminate.
- WebKitTestRunner/TestController.h: Replace processDidCrash with webProcessDidTerminate.
- WebKitTestRunner/win/TestControllerWin.cpp:
(WTR::TestController::platformRunUntil):
- 9:59 PM Changeset in webkit [277532] by
-
- 3 edits in trunk/Source/WebCore
Provide custom SetInlineFillGradient copy ctor
https://bugs.webkit.org/show_bug.cgi?id=225688
Patch by Rob Buis <rbuis@igalia.com> on 2021-05-14
Reviewed by Wenson Hsieh.
Provide custom SetInlineFillGradient copy ctor
to deal with invalid SetInlineFillGradient source.
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::SetInlineFillGradient::SetInlineFillGradient):
- platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::SetInlineFillGradient::isValid const):
- 9:58 PM Changeset in webkit [277531] by
-
- 3 edits in trunk/Tools
[run-webkit-tests] Handle missing simulator state plist
https://bugs.webkit.org/show_bug.cgi?id=225833
<rdar://problem/78036930>
Rubber-stamped by Aakash Jain.
- Scripts/webkitpy/xcode/simulated_device.py:
(SimulatedDevice.state): If no device plist is found, assume the device is shut down.
- Scripts/webkitpy/xcode/simulated_device_unittest.py:
- 9:18 PM Changeset in webkit [277530] by
-
- 32 edits17 deletes in trunk/Source
Drop legacy / prefixed WebAudio implementation
https://bugs.webkit.org/show_bug.cgi?id=225832
Reviewed by Darin Adler.
Source/WebCore:
Drop legacy / prefixed WebAudio implementation now that it is no longer
present in shipping and we have received any reports of issues.
This drops all the legacy code but she should be able to clean up the
code further in follow-ups. In particular, I believe some code can
now be moved from BaseAudioContext to OfflineAudioContext.
- CMakeLists.txt:
- DerivedSources.make:
- Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::~AudioBufferSourceNode):
(WebCore::AudioBufferSourceNode::totalPitchRate):
- Modules/webaudio/AudioBufferSourceNode.h:
- Modules/webaudio/AudioBufferSourceNode.idl:
- Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::create):
(WebCore::AudioContext::AudioContext):
- Modules/webaudio/AudioContext.h:
- Modules/webaudio/AudioListener.h:
- Modules/webaudio/AudioListener.idl:
- Modules/webaudio/AudioNode.cpp:
- Modules/webaudio/AudioNode.h:
- Modules/webaudio/AudioNode.idl:
- Modules/webaudio/AudioParam.h:
- Modules/webaudio/BaseAudioContext.cpp:
(WebCore::BaseAudioContext::BaseAudioContext):
- Modules/webaudio/BaseAudioContext.h:
(WebCore::BaseAudioContext::isOfflineContext const):
(WebCore::BaseAudioContext::BaseAudioContext):
- Modules/webaudio/DynamicsCompressorNode.cpp:
- Modules/webaudio/DynamicsCompressorNode.h:
- Modules/webaudio/OfflineAudioContext.cpp:
(WebCore::OfflineAudioContext::OfflineAudioContext):
- Modules/webaudio/OscillatorNode.h:
- Modules/webaudio/OscillatorNode.idl:
- Modules/webaudio/WebKitAudioBufferSourceNode.h: Removed.
- Modules/webaudio/WebKitAudioBufferSourceNode.idl: Removed.
- Modules/webaudio/WebKitAudioContext.cpp: Removed.
- Modules/webaudio/WebKitAudioContext.h: Removed.
- Modules/webaudio/WebKitAudioContext.idl: Removed.
- Modules/webaudio/WebKitAudioListener.h: Removed.
- Modules/webaudio/WebKitAudioListener.idl: Removed.
- Modules/webaudio/WebKitAudioPannerNode.cpp: Removed.
- Modules/webaudio/WebKitAudioPannerNode.h: Removed.
- Modules/webaudio/WebKitAudioPannerNode.idl: Removed.
- Modules/webaudio/WebKitDynamicsCompressorNode.h: Removed.
- Modules/webaudio/WebKitDynamicsCompressorNode.idl: Removed.
- Modules/webaudio/WebKitOfflineAudioContext.cpp: Removed.
- Modules/webaudio/WebKitOfflineAudioContext.h: Removed.
- Modules/webaudio/WebKitOfflineAudioContext.idl: Removed.
- Modules/webaudio/WebKitOscillatorNode.h: Removed.
- Modules/webaudio/WebKitOscillatorNode.idl: Removed.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- testing/Internals.cpp:
(WebCore::Internals::setAudioContextRestrictions):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKitLegacy/win:
Stop explicitly disabled with prefixed WebAudio implementation given that
it no longer exists.
- WebView.cpp:
(WebView::notifyPreferencesChanged):
Source/WTF:
Drop preference for prefixed WebAudio, which was disabled everywhere.
- Scripts/Preferences/WebPreferencesInternal.yaml:
- 8:34 PM Changeset in webkit [277529] by
-
- 3 edits2 moves in trunk/Source/WebCore
CustomPaintImage being in platform/graphics is a layering violation
https://bugs.webkit.org/show_bug.cgi?id=225356
Reviewed by Darin Adler.
It is layering violation for a file in platform/ to reference classes
like RenderElement or PaintWorkletGlobalScope. This fixes this by moving
CustomPaintImage out of platform/graphics to html/, next to the existing
CustomPaintCanvas class.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- html/CustomPaintImage.cpp: Copied from Source/WebCore/platform/graphics/CustomPaintImage.cpp.
- html/CustomPaintImage.h: Copied from Source/WebCore/platform/graphics/CustomPaintImage.h.
- platform/graphics/CustomPaintImage.cpp: Removed.
- platform/graphics/CustomPaintImage.h: Removed.
- 8:15 PM Changeset in webkit [277528] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r269824): Random tile corruption when scrolling/zooming in macCatalyst
https://bugs.webkit.org/show_bug.cgi?id=225837
<rdar://problem/75053997>
Reviewed by Simon Fraser.
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
Mark the newly front buffer non-volatile before painting into it.
This was lost in r269824. Oddly, this caused less trouble than
one might expect, except on some particular hardware.
- 7:05 PM Changeset in webkit [277527] by
-
- 22 edits in trunk
output element doesn't react properly to node tree mutations
https://bugs.webkit.org/show_bug.cgi?id=196532
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
- web-platform-tests/custom-elements/builtin-coverage-expected.txt:
Updated since HTMLOptionElement now has a constructor. Still not passing, but closer to correct.
- web-platform-tests/custom-elements/form-associated/form-reset-callback-expected.txt:
Updated due to changes in HTMLOptionElement, but still not passing.
- web-platform-tests/html/semantics/forms/the-output-element/mutations.window-expected.txt:
Updated to reflect passing test.
- web-platform-tests/html/semantics/forms/the-output-element/mutations.window.js:
Updated to a newer version of the upstream version of this. Decided to just update this one file
rather than importing the latest version across more tests at this time.
Source/WebCore:
- dom/ContainerNode.cpp:
(WebCore::ContainerNode::replaceAll): Refactored most of the functions
replaceAllChildren and replaceAllChildrenWithNewText into this new one,
and named it based on the name of the operation in the HTML specification.
The function is incomplete, but preserves existing behavior.
(WebCore::ContainerNode::stringReplaceAll): Refactored the rest of the
replaceAllChildrenWithNewText function and renamed to the name from the
HTML specification.
- dom/ContainerNode.h: Updated for the above changes.
- dom/Node.cpp:
(WebCore::Node::setTextContent): Updated for name change above.
- dom/Range.cpp:
(WebCore::Range::surroundContents): Ditto.
- editing/ios/EditorIOS.mm:
(WebCore::Editor::setTextAsChildOfElement): Ditto.
- html/HTMLElement.cpp:
(WebCore::HTMLElement::setInnerText): Ditto.
- html/HTMLOutputElement.cpp:
(WebCore::HTMLOutputElement::HTMLOutputElement): Moved data member
initialization into the class definition.
(WebCore::HTMLOutputElement::create): Added an overload that takes just
a document, for use when invoked from as a constructor.
(WebCore::HTMLOutputElement::parseAttribute): Tightened the logic for the
for attribute. I decided it's better to call through to the base class, even
though we often don't do that for attributes that don't expect the base
class to pay attention to.
(WebCore::HTMLOutputElement::childrenChanged): Deleted. No need for this in
the improved HTML specification version of this element's algorithms.
(WebCore::HTMLOutputElement::reset): Updated based on the HTML specification,
using the default value algorithm rather than the default value mode flag we
were using before.
(WebCore::HTMLOutputElement::setValue): Updated based on the HTML specification,
always setting the default value override based on the current default value,
and using stringReplaceAll. There's no need for the old setTextContentInternal,
since that was all due to the need to avoid infinite recursion in childrenChanged.
(WebCore::HTMLOutputElement::defaultValue const): Updated based on the HTML
specification, deriving the default value from the default value override and
the descendant text content.
(WebCore::HTMLOutputElement::setDefaultValue): Updated based on the HTML
specification, doing a string replace all with the value if the default
value override is null, and updating the default value override otherwise.
(WebCore::HTMLOutputElement::htmlFor): Updated to rename m_tokens to m_forTokens.
(WebCore::HTMLOutputElement::setTextContentInternal): Deleted.
- html/HTMLOutputElement.h: Moved DOMTokenList to be a forward declaration
instead of an include. Adde a constructor that takes only a document to be used
from JavaScript. Made the canContainRangeEndPoint override be private like the
other overrides. Removed the childrenChange override and the
setTextContentInternal function. Removed m_isDefaultValueMode,
m_isSetTextContentInProgress, and m_defaultValue. Added m_defaultValueOverride.
Renamed m_tokens to m_forTokens.
- html/HTMLOutputElement.idl: Updated to match the HTML specification. This
involved adding a constructor, adding SameObject for the htmlFor attribute,
making the form attribute nullable, and removing [LegacyNullToEmptyString]
from the defaultValue and value attributes.
LayoutTests:
- TestExpectations: Removed an expectation for a directory that no longer exists.
- platform/mac-wk2/TestExpectations: Removed an expectation for a test that no longer exists.
- platform/mac/TestExpectations: Removed an expectation for a directory that no longer exists.
- platform/gtk/imported/w3c/web-platform-tests/custom-elements/builtin-coverage-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/custom-elements/builtin-coverage-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/custom-elements/builtin-coverage-expected.txt:
Updated since HTMLOptionElement now has a constructor. Still not passing, but closer to correct.
- 6:50 PM Changeset in webkit [277526] by
-
- 4 edits in trunk
Fix iOS 14.5 embedded build
https://bugs.webkit.org/show_bug.cgi?id=225835
<rdar://problem/78039315>
Reviewed by Dewei Zhu.
Source/WebKit:
No new tests, build fix.
- WebProcess/cocoa/WebProcessCocoa.mm: Import mach.h.
Tools:
- Scripts/configure-xcode-for-embedded-development: Add mach.h, mach_error.h and task.h.
- 5:59 PM Changeset in webkit [277525] by
-
- 38 edits in trunk/Source
Source/WebCore:
Use PixelBufferFormat to specify ImageBuffer::getPixelData destination format allowing for more control over data conversion
https://bugs.webkit.org/show_bug.cgi?id=225813
Reviewed by Darin Adler.
The reprevious signature of ImageBuffer::getPixelBuffer:
ImageBuffer::getPixelBuffer(AlphaPremultiplication, const IntRect&);
only allowed specifying the type of alpha premultiplication wanted, and hard coded
a pixel format of RGBA8 and color space of SRGB. To support accurate and efficient
access to pixel buffers with different pixel formats and color spaces we need to be
able to tell getPixelBuffer what we want up front, so that if the ImageBuffer already
has a DisplayP3 buffer, and we want DisplayP3 pixels, we don't first convert to SRGB
and then convert back to DisplayP3 (which would be slow and lose any out of gamut
data). The new signature allows us to specify the entire format triple:
ImageBuffer::getPixelBuffer(const PixelBufferFormat&, const IntRect&);
Additionally, ImageBuffer::putPixelBuffer() no longer needs to provide the source
AlphaPremultiplication either, as the PixelBuffer itself also contains that information.
Now that we are passing color space information, we need to support color space conversion,
so PixelBufferConversion was updated to support color space conversion on CG platforms
using vImageConvert_AnyToAny. This is not currently excersised, but will be in a subsequent
change where canvas ImageData gains a color space setting, at which point it can be tested.
We also don't currently support color space conversion on non-CG platforms. This won't
be a problem in the short term, as only CG platforms support DisplayP3, the only other
color space that can be specified currently, but as cleanup, we should add support for
color space conversion using the ColorConversion and ColorTransferFunction infrastructure
for other ports, moving the existing support for SRGB to/from LinearSRGB conversions from
ImageBufferCairoBackend and ImageBufferCairoImageSurfaceBackend.
- html/ImageBitmap.cpp:
(WebCore::ImageBitmap::createPromise):
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::getImageData const):
(WebCore::CanvasRenderingContext2DBase::putImageData):
- page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::screenshot):
- platform/graphics/ConcreteImageBuffer.h:
(WebCore::ConcreteImageBuffer::putPixelBuffer):
- platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::putPixelBuffer):
- platform/graphics/ImageBufferBackend.cpp:
(WebCore::ImageBufferBackend::convertToLuminanceMask):
(WebCore::ImageBufferBackend::getPixelBuffer const):
(WebCore::ImageBufferBackend::putPixelBuffer):
- platform/graphics/ImageBufferBackend.h:
- platform/graphics/PixelBufferConversion.cpp:
(WebCore::makeVImageCGImageFormat):
(WebCore::makeVImageBuffer):
(WebCore::convertImagePixelsAccelerated):
(WebCore::convertImagePixels):
- platform/graphics/ShadowBlur.cpp:
(WebCore::ShadowBlur::blurShadowBuffer):
- platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp:
(WebCore::ImageBufferCairoSurfaceBackend::getPixelBuffer const):
(WebCore::ImageBufferCairoSurfaceBackend::putPixelBuffer):
- platform/graphics/cairo/ImageBufferCairoSurfaceBackend.h:
- platform/graphics/cg/ImageBufferCGBackend.cpp:
(WebCore::ImageBufferCGBackend::toCFData const):
- platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:
(WebCore::ImageBufferCGBitmapBackend::getPixelBuffer const):
(WebCore::ImageBufferCGBitmapBackend::putPixelBuffer):
- platform/graphics/cg/ImageBufferCGBitmapBackend.h:
- platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::getPixelBuffer const):
(WebCore::ImageBufferIOSurfaceBackend::putPixelBuffer):
- platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::PutPixelBuffer::PutPixelBuffer):
(WebCore::DisplayList::PutPixelBuffer::swap):
(WebCore::DisplayList::operator<<):
- platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::GetPixelBuffer::GetPixelBuffer):
(WebCore::DisplayList::GetPixelBuffer::outputFormat const):
(WebCore::DisplayList::PutPixelBuffer::encode const):
(WebCore::DisplayList::PutPixelBuffer::decode):
(WebCore::DisplayList::PutPixelBuffer::inputFormat const): Deleted.
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::getPixelBuffer):
(WebCore::DisplayList::Recorder::putPixelBuffer):
- platform/graphics/displaylists/DisplayListRecorder.h:
- platform/graphics/filters/FEColorMatrix.cpp:
(WebCore::FEColorMatrix::platformApplySoftware):
- platform/graphics/filters/FEDropShadow.cpp:
(WebCore::FEDropShadow::platformApplySoftware):
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::imageBufferResult):
(WebCore::FilterEffect::convertPixelBufferToColorSpace):
(WebCore::FilterEffect::convertImageBufferToColorSpace):
(WebCore::FilterEffect::copyConvertedPixelBufferToDestination):
(WebCore::FilterEffect::copyUnmultipliedResult):
(WebCore::FilterEffect::copyPremultipliedResult):
- platform/graphics/filters/FilterEffect.h:
- platform/graphics/win/ImageBufferDirect2DBackend.cpp:
(WebCore::ImageBufferDirect2DBackend::getPixelBuffer const):
(WebCore::ImageBufferDirect2DBackend::putPixelBuffer):
- platform/graphics/win/ImageBufferDirect2DBackend.h:
- rendering/shapes/Shape.cpp:
(WebCore::Shape::createRasterShape):
Source/WebKit:
Use PixelBufferFormat to specify ImageBuffer::getPixelBuffer destination format allowing for more control over data conversion
https://bugs.webkit.org/show_bug.cgi?id=225813
Reviewed by Darin Adler.
Update calls/implementations of getPixelBuffer/putPixelBuffer to adjust
to new signature.
- GPUProcess/graphics/RemoteImageBuffer.h:
- Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:
(WebKit::CGDisplayListImageBufferBackend::getPixelBuffer const):
(WebKit::CGDisplayListImageBufferBackend::putPixelBuffer):
- Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h:
- WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:
(WebKit::ImageBufferShareableBitmapBackend::getPixelBuffer const):
(WebKit::ImageBufferShareableBitmapBackend::putPixelBuffer):
- WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
(WebKit::RemoteImageBufferProxy::putPixelBuffer):
- WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.cpp:
(WebKit::ImageBufferShareableIOSurfaceBackend::getPixelBuffer const):
(WebKit::ImageBufferShareableIOSurfaceBackend::putPixelBuffer):
- WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.h:
- 5:47 PM Changeset in webkit [277524] by
-
- 2 edits in trunk/Source/JavaScriptCore
REGRESSION (r277221): 2 test262 tests failing
https://bugs.webkit.org/show_bug.cgi?id=225819
Reviewed by Alexey Shvayka.
Undo the other part of r277221's code consolidation --
I'd forgotten that this exists to enforce a evaluation order on AggregateError's arguments.
- runtime/AggregateError.cpp:
(JSC::createAggregateError):
- 5:29 PM Changeset in webkit [277523] by
-
- 12 edits2 adds in trunk
Sampled Page Top Color: move logic out of
Document
https://bugs.webkit.org/show_bug.cgi?id=225480
<rdar://problem/77984539>
Reviewed by Tim Horton.
Source/WebCore:
Having
determineSampledPageTopColor
be called inenqueuePaintTimingEntryIfNeeded
as what
is basically a side effect is not great. The only reason it was there in the first place was
to take advantage of the logic that decided "is this the first contentful paint", but that
logic can be replicated elsewhere. Since the sampled page top color deals more with the page
as a whole instead of an individualDocument
(which includes subframes), it makes more
sense to have this logic be on a utilityPageColorSampler
that's used inPage
instead.
Test: SampledPageTopColor.MainDocumentChange
- page/PageColorSampler.h: Added.
- page/PageColorSampler.cpp: Added.
(WebCore::isValidSampleLocation):
(WebCore::sampleColor):
(WebCore::colorDifference):
(WebCore::averageColor):
(WebCore::PageColorSampler::sampleTop):
- page/Page.h:
- page/Page.cpp:
(WebCore::Page::doAfterUpdateRendering):
(WebCore::Page::sampledPageTopColor const):
(WebCore::Page::didChangeMainDocument):
- dom/Document.h:
(WebCore::Document::sampledPageTopColor const): Deleted.
- dom/Document.cpp:
(WebCore::Document::enqueuePaintTimingEntryIfNeeded):
(WebCore::isValidPageSampleLocation): Deleted.
(WebCore::samplePageColor): Deleted.
(WebCore::colorDifference): Deleted.
(WebCore::averageColor): Deleted.
(WebCore::Document::determineSampledPageTopColor): Deleted.
- page/FrameView.h:
- page/FrameView.cpp:
(WebCore::FrameView::hasContentfulDescendants const): Added.
(WebCore::FrameView::hasContenfulDescendants const): Deleted.
Drive-by: Fix incorrect spelling.
- Source/WebCore/Headers.cmake:
- Source/WebCore/Sources.txt:
- Source/WebCore/WebCore.xcodeproj/project.pbxproj:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm:
(TEST.SampledPageTopColor.MainDocumentChange): Added.
- 5:26 PM Changeset in webkit [277522] by
-
- 6 edits in trunk
Port WTF::FileSystem::realPath() to std::filesystem
https://bugs.webkit.org/show_bug.cgi?id=225828
Reviewed by Darin Adler.
Source/WTF:
Port WTF::FileSystem::realPath() to std::filesystem (in particular std::filesystem::canonical())
so that we no longer need platform-specific code.
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::realPath):
- wtf/posix/FileSystemPOSIX.cpp:
- wtf/win/FileSystemWin.cpp:
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WTF/FileSystem.cpp:
(TestWebKitAPI::TEST_F):
- 5:18 PM Changeset in webkit [277521] by
-
- 8 edits in branches/safari-612.1.12-branch/Source
Versioning.
WebKit-7612.1.12.9
- 5:00 PM Changeset in webkit [277520] by
-
- 5 edits2 adds in trunk
[GPUP] a media element with a data url and "crossorigin='anonymous'" doesn't load
https://bugs.webkit.org/show_bug.cgi?id=225786
<rdar://77625185>
Reviewed by Jer Noble.
Source/WebCore:
Test: media/data-url-cross-origin.html
- loader/MediaResourceLoader.cpp:
(WebCore::MediaResourceLoader::requestResource): Set loader options
sameOriginDataURLFlag
toSameOriginDataURLFlag::Set
so data: urls are treated as same origin.
LayoutTests:
- media/data-url-cross-origin-expected.txt: Added.
- media/data-url-cross-origin.html: Added.
- media/media-file.js:
(findDataURL):
- media/sources-fallback-codecs.html:
- 4:46 PM Changeset in webkit [277519] by
-
- 4 edits in trunk
REGRESSION: [ Mac WK2 ] fast/mediastream/audio-track-enabled.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=221985
Reviewed by Eric Carlson.
Source/WebCore:
When
MediaSessionManagerCocoa::updateSessionState()
goes through all sessions, it
counts all WebAudio sessions regardless their states, and it may set the shared audio
session's category to beAudioSession::AmbientSound
if the count of WebAudio sessions
is not zero.
However, when we close a page with WebAudio, we should not count the WebAudio session
here because the corresponding AudioContext is suspended and will be destroyed soon.
Without this patch, the shared audio session's category might beAudioSession::AmbientSound
after we close the WebAudio page.
- Modules/webaudio/AudioContext.h:
LayoutTests:
- platform/mac-wk2/TestExpectations:
- 4:34 PM Changeset in webkit [277518] by
-
- 2 edits in trunk/Source/WebKit
Web Inspector:
_WKInspector
leaksWebInspectorUIProxy
https://bugs.webkit.org/show_bug.cgi?id=225815
Reviewed by Tim Horton.
Add a missing call in
_WKInspector
's destructor to destruct theWebInspectorUIProxy
in API object storage.
- UIProcess/API/Cocoa/_WKInspector.mm:
(-[_WKInspector dealloc]):
- 4:30 PM Changeset in webkit [277517] by
-
- 1 copy in tags/Safari-612.1.12.8
Tag Safari-612.1.12.8.
- 4:20 PM Changeset in webkit [277516] by
-
- 2 edits in trunk/Source/WebCore
[showRenderTree] Do not integral floor the overflow values
https://bugs.webkit.org/show_bug.cgi?id=225825
Reviewed by Simon Fraser.
Integral flooring may hide fractional values caused by rounding bugs.
- rendering/RenderObject.cpp:
(WebCore::RenderObject::outputRenderObject const):
- 4:12 PM Changeset in webkit [277515] by
-
- 23 edits in trunk
Drop "get" prefix from WTF::FileSystem's getFileModificationTime() / getFileCreationTime()
https://bugs.webkit.org/show_bug.cgi?id=225812
Reviewed by Darin Adler.
Source/WebCore:
Update code base due to WTF API change.
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::removeAllDatabasesForFullOriginPath):
- Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::deleteDatabasesModifiedSince):
- fileapi/File.cpp:
(WebCore::File::lastModified const):
- page/Page.cpp:
(WebCore::Page::userStyleSheet const):
- platform/FileStream.cpp:
(WebCore::FileStream::getSize):
- platform/network/FormData.cpp:
(WebCore::FormDataElement::EncodedFileData::fileModificationTimeMatchesExpectation const):
- platform/network/curl/CurlCacheEntry.cpp:
(WebCore::CurlCacheEntry::parseResponseHeaders):
- platform/sql/SQLiteFileSystem.cpp:
(WebCore::SQLiteFileSystem::databaseCreationTime):
(WebCore::SQLiteFileSystem::databaseModificationTime):
Source/WebKit:
Update code base due to WTF API change.
- NetworkProcess/cache/NetworkCacheFileSystem.cpp:
(WebKit::NetworkCache::fileTimes):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeMediaKeys):
- WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:
(WebKit::removeAllMediaKeyStorageForOriginPath):
Source/WebKitLegacy/win:
Update code base due to WTF API change.
- Plugins/PluginDatabase.cpp:
(WebCore::PluginDatabase::refresh):
Source/WTF:
We avoid the "get" prefix in WebKit.
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::fileModificationTime):
- wtf/FileSystem.h:
- wtf/glib/FileSystemGlib.cpp:
(WTF::FileSystemImpl::fileCreationTime):
- wtf/posix/FileSystemPOSIX.cpp:
(WTF::FileSystemImpl::fileCreationTime):
- wtf/win/FileSystemWin.cpp:
(WTF::FileSystemImpl::fileCreationTimeFromFindData):
(WTF::FileSystemImpl::fileModificationTimeFromFindData):
(WTF::FileSystemImpl::fileCreationTime):
Tools:
Update code base due to WTF API change.
- TestWebKitAPI/Tests/WTF/FileSystem.cpp:
(TestWebKitAPI::runGetFileModificationTimeTest):
(TestWebKitAPI::TEST_F):
- 4:08 PM Changeset in webkit [277514] by
-
- 7 edits in trunk
Rename FileSystem::getVolumeFreeSpace() to FileSystem::volumeFreeSpace()
https://bugs.webkit.org/show_bug.cgi?id=225811
Reviewed by Darin Adler.
Source/WebKit:
Update code base due to API change.
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::computeCapacity):
Source/WTF:
Rename FileSystem::getVolumeFreeSpace() to FileSystem::volumeFreeSpace() given that we
avoid the "get" prefix in WebKit. Also modernize the function by returning an
Optional<uint64_t> instead of using an out-parameter.
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::volumeFreeSpace):
- wtf/FileSystem.h:
Tools:
Update code base due to API change.
- TestWebKitAPI/Tests/WTF/FileSystem.cpp:
(TestWebKitAPI::TEST_F):
- 3:32 PM Changeset in webkit [277513] by
-
- 2 edits in trunk/Source/WebCore
[LFC] Add enclosing line top/bottom to showInlineTreeAndRuns
https://bugs.webkit.org/show_bug.cgi?id=225821
Reviewed by Simon Fraser.
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::showInlineTreeAndRuns):
- page/FrameViewLayoutContext.cpp:
(WebCore::FrameViewLayoutContext::layout):
- 3:27 PM Changeset in webkit [277512] by
-
- 3 edits in trunk/Source/WebCore
Add ScriptDisallowedScope to MediaPlayerPrivateAVFoundation
https://bugs.webkit.org/show_bug.cgi?id=225797
Reviewed by Eric Carlson.
Deployed ScriptDisallowedScope to a bunch of functions in MediaPlayerPrivateAVFoundation.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::updateStates):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
(-[WebCoreAVFMovieObserver metadataOutput:didOutputTimedMetadataGroups:fromPlayerItemTrack:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
- 3:26 PM Changeset in webkit [277511] by
-
- 2 edits in trunk/LayoutTests
[ iOS14-Simulator ] wk2imported/w3c/web-platform-tests/css/css-will-change/will-change-transform-huge-offset-scrolled.html is a flaky ImageOnlyFailure
Nhttps://bugs.webkit.org/show_bug.cgi?id=225830
Unreviewed test gardening.
Setting expectation to Pass ImageOnlyFailure due to causing an EWS slowdown.
- platform/ios-simulator-wk2/TestExpectations:
- 3:23 PM Changeset in webkit [277510] by
-
- 3 edits in trunk/Source/WebKit
Replace -[WKContentView _hasPendingImageExtraction] with a monotonically increasing ID
https://bugs.webkit.org/show_bug.cgi?id=225823
rdar://77519437
Reviewed by Tim Horton.
Refactor some image extraction code by turning this boolean flag into a monotonically increasing
ObjectIdentifier
instead; see the bug for more details.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _doAfterPendingImageExtraction:]):
(-[WKContentView _invokeAllActionsToPerformAfterPendingImageExtraction:]):
- 3:23 PM Changeset in webkit [277509] by
-
- 1 copy in tags/Safari-612.1.15
Tag Safari-612.1.15.
- 3:18 PM Changeset in webkit [277508] by
-
- 2 edits in trunk/Tools
TestWebKitAPI.Fullscreen.WKViewDelegate is timing out
https://bugs.webkit.org/show_bug.cgi?id=223282
rdar://75495585
Reviewed by Jer Noble.
- TestWebKitAPI/Tests/WebKitCocoa/FullscreenDelegate.mm:
(TestWebKitAPI::TEST): Use WkView/NSWindow directly instead of using a
PlatformWebView. A PlatformWebView uses an OffscreenWindow which is a
NSWindow placed with a -10000 offset. This configuration appears to fail
to go into full screen in automation.
- 3:02 PM Changeset in webkit [277507] by
-
- 6 edits in trunk
Bad media session artwork URL results in blue "broken image" icon being shown in Now Playing
https://bugs.webkit.org/show_bug.cgi?id=225799
rdar://77990886
Reviewed by Eric Carlson.
Source/WebCore:
By default, when the image's URL doesn't point to an image the CachedImage
will return a default image consistent of a blue interrogation mark.
We need to explicitely check that an error occurred. The naming used in the
method didn't make this need obvious.
- Modules/mediasession/MediaMetadata.cpp:
(WebCore::ArtworkImageLoader::notifyFinished): Check for a status error.
- testing/Internals.cpp:
(WebCore::Internals::loadArtworkImage): Fix spelling
LayoutTests:
- fast/mediasession/metadata/artworkdownload-expected.txt:
- fast/mediasession/metadata/artworkdownload.html: Add test case.
- 2:35 PM Changeset in webkit [277506] by
-
- 2 edits in trunk/Tools
REGRESSION(r277313): [ Debug ] 2 TestWebKitAPI.IPCTestingAPI (API-Tests) are constant timeouts
https://bugs.webkit.org/show_bug.cgi?id=225816
<rdar://problem/78025515>
Reviewed by Ryosuke Niwa.
- TestWebKitAPI/Tests/WebKitCocoa/IPCTestingAPI.mm:
Update test for rename from ImageData to PixelBuffer.
- 2:34 PM Changeset in webkit [277505] by
-
- 29 edits1 add1 delete in trunk
Promote
-[WKWebView _pageExtendedBackgroundColor]
SPI to-[WKWebView underPageBackgroundColor]
API
https://bugs.webkit.org/show_bug.cgi?id=225615
<rdar://problem/76568094>
Reviewed by Wenson Hsieh.
Source/WebCore:
underPageBackgroundColor
is anull_resettable
property that will return (in order of validity)
- the most recent non-null value provided
- the CSS
background-color
of the<body>
and/or<html>
(this is the current value of_pageExtendedBackgroundColor
) - the underlying platform view's background color
Modifications to this property will not have any effect until control is returned to the runloop.
Tests: WKWebViewUnderPageBackgroundColor.OnLoad
WKWebViewUnderPageBackgroundColor.SingleSolidColor
WKWebViewUnderPageBackgroundColor.SingleBlendedColor
WKWebViewUnderPageBackgroundColor.MultipleSolidColors
WKWebViewUnderPageBackgroundColor.MultipleBlendedColors
WKWebViewUnderPageBackgroundColor.KVO
WKWebViewUnderPageBackgroundColor.MatchesScrollView
- page/Page.h:
(WebCore::Page::underPageBackgroundColorOverride const): Added.
- page/Page.cpp:
(WebCore::Page::setUnderPageBackgroundColorOverride): Added.
Hold the client-overriden value forunderPageBackgroundColor
so that it can be used when
drawing the overscroll layer.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateLayerForOverhangAreasBackgroundColor):
Remove the experimental settingsUseSampledPageTopColorForScrollAreaBackgroundColor
and
UseThemeColorForScrollAreaBackgroundColor
now that clients can override the default
overscroll area background color using-[WKWebView setUnderPageBackgroundColor:]
.
- dom/Document.cpp:
(WebCore::Document::themeColorChanged):
It's no longer necessary to force the overscroll area to redraw since that'll be handled by
a client calling-[WKWebView setUnderPageBackgroundColor:]
(possibly in response to a
-[WKWebView themeColor]
KVO notification).
Source/WebKit:
underPageBackgroundColor
is anull_resettable
property that will return (in order of validity)
- the most recent non-null value provided
- the CSS
background-color
of the<body>
and/or<html>
(this is the current value of_pageExtendedBackgroundColor
) - the underlying platform view's background color
Modifications to this property will not have any effect until control is returned to the runloop.
- UIProcess/API/Cocoa/WKWebView.h:
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView underPageBackgroundColor]): Added.
(-[WKWebView setUnderPageBackgroundColor:]): Added.
(+[WKWebView automaticallyNotifiesObserversOfUnderPageBackgroundColor]): Added.
- UIProcess/API/ios/WKWebViewIOS.mm:
(baseScrollViewBackgroundColor):
(scrollViewBackgroundColor):
Remove the experimental settingsUseSampledPageTopColorForScrollAreaBackgroundColor
and
UseThemeColorForScrollAreaBackgroundColor
now that clients can override the default
overscroll area background color using-[WKWebView setUnderPageBackgroundColor:]
.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::underPageBackgroundColor const): Added.
(WebKit::WebPageProxy::setUnderPageBackgroundColorOverride): Added.
(WebKit::WebPageProxy::pageExtendedBackgroundColorDidChange):
(WebKit::WebPageProxy::platformUnderPageBackgroundColor const): Added.
(WebKit::WebPageProxy::scrollAreaBackgroundColor const): Deleted.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::platformUnderPageBackgroundColor const): Added.
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::platformUnderPageBackgroundColor const): Added.
Store the client-overriden value forunderPageBackgroundColor
and manage state changes.
- UIProcess/PageClient.h:
(WebKit::PageClient::underPageBackgroundColorWillChange): Added.
(WebKit::PageClient::underPageBackgroundColorDidChange): Added.
- UIProcess/Cocoa/PageClientImplCocoa.h:
- UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::underPageBackgroundColorWillChange): Added.
(WebKit::PageClientImplCocoa::underPageBackgroundColorDidChange): Added.
Add ObjC KVO support for-[WKWebView underPageBackgroundColor]
.
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::contentViewBackgroundColor): Added.
Provide a way to get thebackgroundColor
of theWKContentView
. This is needed on iOS
becausescrollViewBackgroundColor
(nowWebPageProxy::platformUnderPageBackgroundColor
)
would use this value before falling back to the underlying platform view's background color.
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setUnderPageBackgroundColorOverride): Added.
Pass the client-overriden value forunderPageBackgroundColor
to the WebProcess so that it
can be used when drawing the overscroll layer.
- UIProcess/ViewSnapshotStore.cpp:
(WebKit::ViewSnapshotStore::recordSnapshot):
Go back to using thepageExtendedBackgroundColor
(before r273083).
Source/WTF:
underPageBackgroundColor
is anull_resettable
property that will return (in order of validity)
- the most recent non-null value provided
- the CSS
background-color
of the<body>
and/or<html>
(this is the current value of_pageExtendedBackgroundColor
) - the underlying platform view's background color
Modifications to this property will not have any effect until control is returned to the runloop.
- Scripts/Preferences/WebPreferencesInternal.yaml:
Remove the experimental settings
UseSampledPageTopColorForScrollAreaBackgroundColor
and
UseThemeColorForScrollAreaBackgroundColor
now that clients can override the default
overscroll area background color using-[WKWebView setUnderPageBackgroundColor:]
.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewUnderPageBackgroundColor.mm: Renamed from PageExtendedBackgroundColor.mm.
(defaultBackgroundColor): Added.
(TEST.WKWebViewUnderPageBackgroundColor.OnLoad):
(TEST.WKWebViewUnderPageBackgroundColor.SingleSolidColor): Added.
(TEST.WKWebViewUnderPageBackgroundColor.SingleBlendedColor): Added.
(TEST.WKWebViewUnderPageBackgroundColor.MultipleSolidColors): Added.
(TEST.WKWebViewUnderPageBackgroundColor.MultipleBlendedColors): Added.
(-[WKWebViewUnderPageBackgroundColorObserver initWithWebView:]): Added.
(-[WKWebViewUnderPageBackgroundColorObserver observeValueForKeyPath:ofObject:change:context:]): Added.
(TEST.WKWebViewUnderPageBackgroundColor.KVO):
(TEST.WKWebViewUnderPageBackgroundColor.MatchesScrollView): Added.
(TEST.WKWebViewUnderPageBackgroundColor.MultipleStyles): Deleted.
(-[WKWebViewPageExtendedBackgroundColorObserver initWithWebView:]): Deleted.
(-[WKWebViewPageExtendedBackgroundColorObserver observeValueForKeyPath:ofObject:change:context:]): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/SampledPageTopColor.mm:
(createWebViewWithSampledPageTopColorMaxDifference):
(TEST.SampledPageTopColor.ExperimentalUseSampledPageTopColorForScrollAreaBackgroundColor): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewThemeColor.mm:
(createWebView): Deleted.
(TEST.WKWebView.ExperimentalUseThemeColorForScrollAreaBackgroundColor): Deleted.
Remove the experimental settingsUseSampledPageTopColorForScrollAreaBackgroundColor
and
UseThemeColorForScrollAreaBackgroundColor
now that clients can override the default
overscroll area background color using-[WKWebView setUnderPageBackgroundColor:]
.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- 2:26 PM Changeset in webkit [277504] by
-
- 2 edits in trunk/Source/WebCore
Fix a build after r277493
- editing/cocoa/AttributedString.h:
I removed an unneeded NSDictionary declaration that was being used here.
- 1:33 PM Changeset in webkit [277503] by
-
- 2 edits in trunk/LayoutTests
[WPE] Bot exiting early with crashes in new window layout tests inside wl_proxy_marshal_constructor
https://bugs.webkit.org/show_bug.cgi?id=225555
Unreviewed test gardening.
Basically revert the changes from r277223 as the SDK was updated with
a new wpebackend-fdo in r277436.
- platform/wpe/TestExpectations:
- 1:18 PM Changeset in webkit [277502] by
-
- 8 edits in branches/safari-612.1.12-branch/Source
Versioning.
WebKit-7612.1.12.8
- 11:56 AM Changeset in webkit [277501] by
-
- 7 edits in trunk
[iOS] contextmenu hints can be clipped by the WKWebView
https://bugs.webkit.org/show_bug.cgi?id=224204
<rdar://problem/77089174>
Reviewed by Wenson Hsieh.
Source/WebKit:
r275562 tried to fix this by moving the interaction previews to a separate
UIWindow
, but
this had the unfortunate consequence of placing those previews on top of everything in the
currentUIWindow
(e.g. above the share sheet). As such, WebKit can't use aUIWindow
for
this as theWKWebView
has no idea what the view hierarchy above it looks like.
Test: ContextMenu.HintPreviewContainer
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
Add new SPI
-[WKUIDelegate _contextMenuHintPreviewContainerViewForWebView:]
that's used as
the container for theUIPreviewTarget
created for the contextmenu hint preview.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cleanUpInteraction]):
(-[WKContentView cleanUpInteractionPreviewContainers]): Added.
(-[WKContentView _didCommitLoadForMainFrame]):
(-[WKContentView _createPreviewContainerWithLayerName:]):
(-[WKContentView containerForDropPreviews]):
(-[WKContentView _removeContainerForDropPreviews]): Added.
(-[WKContentView containerForDragPreviews]):
(-[WKContentView _removeContainerForDragPreviews]): Added.
(-[WKContentView containerForContextMenuHintPreviews]):
(-[WKContentView _removeContainerForContextMenuHintPreviews]): Added.
(-[WKContentView cleanUpDragSourceSessionState]):
(-[WKContentView _removeContextMenuViewIfPossible]):
(-[WKContentView dropInteraction:concludeDrop:]):
(-[WKContentView _hideTargetedPreviewContainerViews]): Deleted.
Clean up and centralize logic around creating and removing interaction preview containers.
- UIProcess/ios/WKContentView.mm:
(-[WKContentView didMoveToWindow]):
If theWKWebView
is removed from it's parent, make sure to remove the contextmenu hint
preview as well as it could be outside the view hierarchy of theWKWebView
from the SPI.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm:
(-[TestContextMenuHintPreviewContainerUIDelegate webView:contextMenuWillPresentForElement:]): Added.
(-[TestContextMenuHintPreviewContainerUIDelegate _contextMenuHintPreviewContainerViewForWebView:]): Added.
(TEST.ContextMenu.HintPreviewContainer): Added.
- 11:34 AM Changeset in webkit [277500] by
-
- 9 edits in trunk/Source/JavaScriptCore
Implement Baseline JIT property access slow paths using JIT thunks.
https://bugs.webkit.org/show_bug.cgi?id=225771
Reviewed by Yusuke Suzuki and Saam Barati.
This patch applies the following strategy to Baseline JIT property access slow paths:
- If the slow path operation call is not patchable, emit a near call to a JIT thunk to do the entire operation call.
- If the slow path operation call is patachable, emit a near call to a prepare call JIT thunk before the patchable operation call, and a near call to an exception check JIT thunk after.
This strategy reduces the amount of instructions emitted for all the slow paths.
Performance is expected to be neutral or slightly improved due to the reduced
compile times and better cache locality.
With this patch, --dumpLinkBufferStats shows the following changes in emitted
JIT code size (using a single run of the CLI version of JetStream2 on AS Mac)
comparing to current tip of tree:
Base New Diff
BaselineJIT: 84624776 (80.704475 MB) 77429400 (73.842430 MB) 0.91x (reduction)
DFG: 36415264 (34.728302 MB) 36160880 (34.485703 MB) 0.99x
Thunk: 23130336 (22.058807 MB) 23159024 (22.086166 MB) 1.00x
InlineCache: 21969728 (20.951965 MB) 22068348 (21.046017 MB) 1.00x
FTL: 6097336 (5.814873 MB) 6004736 (5.726562 MB) 0.98x
Wasm: 2301956 (2.195316 MB) 2429204 (2.316669 MB) 1.06x (probably noise)
YarrJIT: 1522488 (1.451958 MB) 1522488 (1.451958 MB) 1.00x
CSSJIT: 0
Uncategorized: 0
Comparing to tip of tree at the start of this effort to move put slow paths in
JIT thunks:
Base New Diff
BaselineJIT: 89089964 (84.962811 MB) 77429400 (73.842430 MB) 0.87x (reduction)
DFG: 39117360 (37.305222 MB) 36160880 (34.485703 MB) 0.92x (reduction)
Thunk: 23230968 (22.154778 MB) 23159024 (22.086166 MB) 1.00x
InlineCache: 22027416 (21.006981 MB) 22068348 (21.046017 MB) 1.00x
FTL: 6575772 (6.271145 MB) 6004736 (5.726562 MB) 0.91x (reduction)
Wasm: 2302724 (2.196049 MB) 2429204 (2.316669 MB) 1.05x (probably noise)
YarrJIT: 1538956 (1.467663 MB) 1522488 (1.451958 MB) 0.99x
CSSJIT: 0 0
Uncategorized: 0 0
This patch has passed the JSC tests on AS Mac, and also a subset of the JSC tests
(as a smoke test) on x86_64.
- bytecode/CodeBlock.h:
(JSC::CodeBlock::offsetOfGlobalObject):
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::callExceptionFuzz):
(JSC::AssemblyHelpers::emitExceptionCheck):
(JSC::AssemblyHelpers::emitNonPatchableExceptionCheck):
- jit/JIT.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::slow_op_get_by_val_prepareCallGenerator):
(JSC::JIT::emitSlow_op_get_private_name):
(JSC::JIT::slow_op_get_private_name_prepareCallGenerator):
(JSC::JIT::emitSlow_op_set_private_brand):
(JSC::JIT::emitSlow_op_check_private_brand):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::slow_op_put_by_val_prepareCallGenerator):
(JSC::JIT::emitSlow_op_put_private_name):
(JSC::JIT::slow_op_put_private_name_prepareCallGenerator):
(JSC::JIT::emitSlow_op_del_by_id):
(JSC::JIT::slow_op_del_by_id_prepareCallGenerator):
(JSC::JIT::emitSlow_op_del_by_val):
(JSC::JIT::slow_op_del_by_val_prepareCallGenerator):
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::slow_op_get_by_id_prepareCallGenerator):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::slow_op_get_by_id_with_this_prepareCallGenerator):
(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::slow_op_put_by_id_prepareCallGenerator):
(JSC::JIT::emitSlow_op_in_by_id):
(JSC::JIT::emitSlow_op_get_from_scope):
(JSC::JIT::slow_op_get_from_scopeGenerator):
(JSC::JIT::emitSlow_op_put_to_scope):
(JSC::JIT::slow_op_put_to_scopeGenerator):
- jit/JITThunks.cpp:
(JSC::JITThunks::preinitializeExtraCTIThunks):
- jit/SlowPathCall.cpp:
(JSC::JITSlowPathCall::call):
- jit/ThunkGenerators.cpp:
(JSC::checkExceptionGenerator):
- jit/ThunkGenerators.h:
- 11:26 AM Changeset in webkit [277499] by
-
- 7 edits in trunk
Introduce FileSystem::updateFileModificationTime()
https://bugs.webkit.org/show_bug.cgi?id=225810
Reviewed by Darin Adler.
Source/WebKit:
Call the new FileSystem::updateFileModificationTime() API to modify the
file modification time instead of having low-level platform-specific
file system code at the WebKit2 layer.
- NetworkProcess/cache/NetworkCacheFileSystem.cpp:
(WebKit::NetworkCache::updateFileModificationTimeIfNeeded):
Source/WTF:
Introduce FileSystem::updateFileModificationTime() to update the modification time of a
file. The implementation is cross-platform and relies on std::filesystem. It allows us
to replace platform-specific code that we had at the WebKit2 layer.
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::updateFileModificationTime):
- wtf/FileSystem.h:
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WTF/FileSystem.cpp:
(TestWebKitAPI::TEST_F):
- 10:54 AM Changeset in webkit [277498] by
-
- 7 edits in trunk/Source
Drop unused FileSystem::homeDirectoryPath()
https://bugs.webkit.org/show_bug.cgi?id=225808
Reviewed by Anders Carlsson.
Source/WebKitLegacy/win:
Fix Window-specific code that was calling FileSystem::homeDirectoryPath(),
which would always return the empty string on Windows. Call
FileSystem::roamingUserSpecificStorageDirectory() since it returns the
%AppData% folder and this is what the code actually wants.
- Plugins/PluginDatabase.cpp:
(WebCore::PluginDatabase::defaultPluginDirectories):
(WebCore::PluginDatabase::isPreferredPluginDirectory):
Source/WTF:
Only Windows-specific code was calling FileSystem::homeDirectoryPath() but the Windows implementation
for this was always returning the empty string.
- wtf/FileSystem.h:
- wtf/cocoa/FileSystemCocoa.mm:
(WTF::FileSystemImpl::homeDirectoryPath): Deleted.
- wtf/glib/FileSystemGlib.cpp:
(WTF::FileSystemImpl::homeDirectoryPath): Deleted.
- wtf/win/FileSystemWin.cpp:
(WTF::FileSystemImpl::homeDirectoryPath): Deleted.
- 10:28 AM Changeset in webkit [277497] by
-
- 15 edits in trunk
Wrong static position for out-of-flow positioned element with different writing-mode than its containing block
https://bugs.webkit.org/show_bug.cgi?id=189513
Patch by Ziran Sun <Ziran Sun> on 2021-05-14
Reviewed by Sergio Villar Senin.
LayoutTests/imported/w3c:
Updated the following WPT tests that are now passing.
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-001-expected.txt:
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-002-expected.txt:
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-003-expected.txt:
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-004-expected.txt:
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-005-expected.txt:
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-007-expected.txt:
- web-platform-tests/css/css-grid/abspos/orthogonal-positioned-grid-descendants-010-expected.txt:
Source/WebCore:
The static distance computations (computeBlockStaticDistance & computeInlineStaticDistance) in RenderBox have
not been patched for mixed writing modes. This CL adds support for the case that child is orthogonal to its
container block when container block's text direction is LTR. It aims at fixing failures in
orthogonal-positioned-grid-descendants*.html tests. It is noted that this CL only covers specific case when child's
writing mode is vlr and parent is horizontal tb rather than all cases of mixed writing modes in the static distance
computations.
- rendering/RenderBox.cpp:
(WebCore::computeInlineStaticDistance):
(WebCore::computeBlockStaticDistance):
LayoutTests:
- TestExpectations: updating 22 css-writing-modes tests that are passing.
- 10:15 AM Changeset in webkit [277496] by
-
- 2 edits in trunk/Tools
[run-api-tests] Use Python 3 (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=225427
<rdar://problem/77584713>
Reviewed by Aakash Jain.
- Scripts/run-api-tests: Change she-bang to Python 3.
- 10:15 AM Changeset in webkit [277495] by
-
- 1 copy in tags/Safari-612.1.14.3
Tag Safari-612.1.14.3.
- 10:00 AM Changeset in webkit [277494] by
-
- 8 edits in branches/safari-612.1.14-branch/Source
Versioning.
WebKit-7612.1.14.3
- 9:56 AM Changeset in webkit [277493] by
-
- 14 edits in trunk
Resource Timing: secureConnectionStart == 0 when a connection is re-used
https://bugs.webkit.org/show_bug.cgi?id=225733
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/resource-timing/resource_connection_reuse_mixed_content-expected.txt:
Source/WebCore:
Covered by a newly-passing web platform test, which was already passed by Chrome and Firefox.
- page/PerformanceResourceTiming.cpp:
(WebCore::PerformanceResourceTiming::secureConnectionStart const):
- platform/network/NetworkLoadMetrics.h:
I use a sentinel value to distinguish no secure connection from a reused secure connection.
- platform/network/ResourceHandle.h:
- platform/network/cocoa/NetworkLoadMetrics.mm:
(WebCore::packageTimingData):
(WebCore::copyTimingData):
Introduce a way to get timing data from CFNetwork using a more modern API.
(WebCore::timingValue): Deleted.
- platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSessionDataTask _timingData]):
- platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::getConnectionTimingData): Deleted.
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
Source/WebKit:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
LayoutTests:
- 9:10 AM Changeset in webkit [277492] by
-
- 39 edits in trunk
Rename FileSystem::getFileSize() to FileSystem::fileSize()
https://bugs.webkit.org/show_bug.cgi?id=225798
Reviewed by Alex Christensen.
Source/JavaScriptCore:
Update code path to due to the API change.
- inspector/remote/socket/RemoteInspectorSocket.cpp:
(Inspector::RemoteInspector::backendCommands const):
- jsc.cpp:
Source/WebCore:
Update code path to due to the API change.
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::databasesSizeForDirectory):
- Modules/webdatabase/DatabaseDetails.h:
(WebCore::DatabaseDetails::DatabaseDetails):
- Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::hasAdequateQuotaForOrigin):
(WebCore::DatabaseTracker::canEstablishDatabase):
(WebCore::DatabaseTracker::retryCanEstablishDatabase):
(WebCore::DatabaseTracker::maximumSize):
(WebCore::DatabaseTracker::detailsForNameAndOrigin):
(WebCore::DatabaseTracker::setDatabaseDetails):
(WebCore::DatabaseTracker::usage):
(WebCore::DatabaseTracker::quotaNoLock):
(WebCore::DatabaseTracker::quota):
(WebCore::DatabaseTracker::setQuota):
(WebCore::isZeroByteFile):
- Modules/webdatabase/DatabaseTracker.h:
- editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::attachmentForFilePath):
- loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::spaceNeeded):
(WebCore::ApplicationCacheStorage::loadCache):
(WebCore::ApplicationCacheStorage::flatFileAreaSize):
- platform/FileStream.cpp:
(WebCore::FileStream::getSize):
- platform/network/FormData.cpp:
(WebCore::FormDataElement::lengthInBytes const):
- platform/network/curl/CurlCacheEntry.cpp:
(WebCore::CurlCacheEntry::loadFileToBuffer):
- platform/network/curl/CurlCacheManager.cpp:
(WebCore::CurlCacheManager::loadIndex):
- platform/sql/SQLiteFileSystem.cpp:
(WebCore::SQLiteFileSystem::databaseFileSize):
- platform/sql/SQLiteFileSystem.h:
- rendering/RenderThemeWin.cpp:
(WebCore::RenderThemeWin::stringWithContentsOfFile):
- workers/service/server/SWScriptStorage.cpp:
(WebCore::shouldUseFileMapping):
(WebCore::SWScriptStorage::retrieve):
Source/WebKit:
Update code path to due to the API change.
- NetworkProcess/WebStorage/LocalStorageDatabase.cpp:
(WebKit::LocalStorageDatabase::setItem):
- NetworkProcess/WebStorage/LocalStorageDatabase.h:
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::getDirectorySize):
(WebKit::CacheStorage::Engine::readSizeFile):
- NetworkProcess/cache/NetworkCacheBlobStorage.cpp:
(WebKit::NetworkCache::BlobStorage::synchronize):
- NetworkProcess/cache/NetworkCacheData.cpp:
(WebKit::NetworkCache::mapFile):
- NetworkProcess/cache/NetworkCacheIOChannelCurl.cpp:
(WebKit::NetworkCache::IOChannel::read):
- Shared/PersistencyUtils.cpp:
(WebKit::createForFile):
- UIProcess/DeviceIdHashSaltStorage.cpp:
(WebKit::DeviceIdHashSaltStorage::loadStorageFromDisk):
Source/WebKitLegacy:
Update code path to due to the API change.
- Storage/StorageTracker.cpp:
(WebKit::StorageTracker::diskUsageForOrigin):
- Storage/StorageTracker.h:
Source/WTF:
Rename FileSystem::getFileSize() to FileSystem::fileSize() as we usually avoid the "get"
prefix in WebKit. It is also more consistent with the std::filesystem::file_size() the
implementation relies on.
Also have it return an Optional<uint64_t> instead of taking a long long out-parameter, as
this is more modern.
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::fileSize):
- wtf/FileSystem.h:
- wtf/glib/FileSystemGlib.cpp:
(WTF::FileSystemImpl::fileSize):
- wtf/posix/FileSystemPOSIX.cpp:
(WTF::FileSystemImpl::fileSize):
- wtf/win/FileSystemWin.cpp:
(WTF::FileSystemImpl::getFileSizeFromByHandleFileInformationStructure):
(WTF::FileSystemImpl::fileSize):
(WTF::FileSystemImpl::MappedFileData::mapFileHandle):
Tools:
Update code path to due to the API change.
- TestWebKitAPI/Tests/WTF/FileSystem.cpp:
(TestWebKitAPI::TEST_F):
- TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm:
(TestWebKitAPI::TEST):
- 9:01 AM Changeset in webkit [277491] by
-
- 22 edits in trunk
Rename FileSystem::pathGetFileName() to FileSystem::pathFileName()
https://bugs.webkit.org/show_bug.cgi?id=225806
Reviewed by Alex Christensen.
Rename FileSystem::pathGetFileName() to FileSystem::pathFileName(), as we avoid "get" prefixes in WebKit.
Source/WebCore:
- Modules/entriesapi/FileSystemEntry.cpp:
(WebCore::FileSystemEntry::FileSystemEntry):
- Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::removeDeletedOpenedDatabases):
- editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::attachmentForFilePath):
- fileapi/File.cpp:
(WebCore::File::computeNameAndContentType):
- fileapi/FileCocoa.mm:
(WebCore::File::computeNameAndContentTypeForReplacedFile):
- html/DirectoryFileListCreator.cpp:
(WebCore::gatherFileInformation):
- loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::store):
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setStorageDirectory):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::purgeOldDownloadFiles):
Source/WebKit:
- NetworkProcess/WebStorage/LocalStorageDatabaseTracker.cpp:
(WebKit::LocalStorageDatabaseTracker::origins const):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
Source/WebKitLegacy/win:
- Plugins/PluginDatabase.cpp:
(WebCore::PluginDatabase::fileExistsAndIsNotDisabled const):
- Plugins/PluginPackage.cpp:
(WebCore::PluginPackage::PluginPackage):
- WebDownloadCurl.cpp:
(WebDownload::didReceiveResponse):
Source/WTF:
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::pathFileName):
(WTF::FileSystemImpl::pathGetFileName): Deleted.
- wtf/FileSystem.h:
Tools:
- TestWebKitAPI/Tests/WTF/FileSystem.cpp:
(TestWebKitAPI::TEST_F):
- 8:54 AM Changeset in webkit [277490] by
-
- 57 edits in trunk/Tools
[webkitpy] Remove unused imports
https://bugs.webkit.org/show_bug.cgi?id=225776
<rdar://problem/77982408>
Reviewed by Dewei Zhu.
- Scripts/webkitpy/benchmark_runner/benchmark_json_merge.py:
- Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:
- Scripts/webkitpy/browserperfdash/browserperfdash_runner.py:
- Scripts/webkitpy/common/config/ports.py:
- Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py:
- Scripts/webkitpy/common/net/layouttestresults_unittest.py:
- Scripts/webkitpy/common/net/networktransaction_unittest.py:
- Scripts/webkitpy/common/system/zipfileset_unittest.py:
- Scripts/webkitpy/common/test_expectations_unittest.py:
- Scripts/webkitpy/inspector/main.py:
- Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py:
- Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
- Scripts/webkitpy/layout_tests/controllers/manager.py:
- Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py:
- Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:
- Scripts/webkitpy/layout_tests/models/test_expectations.py:
- Scripts/webkitpy/layout_tests/models/test_run_results.py:
- Scripts/webkitpy/layout_tests/servers/websocket_server.py:
- Scripts/webkitpy/layout_tests/views/printing.py:
- Scripts/webkitpy/minibrowser/run_webkit_app.py:
- Scripts/webkitpy/performance_tests/perftest.py:
- Scripts/webkitpy/port/base.py:
- Scripts/webkitpy/port/builders.py:
- Scripts/webkitpy/port/config_unittest.py:
- Scripts/webkitpy/results/upload_unittest.py:
- Scripts/webkitpy/style/checkers/test_expectations.py:
- Scripts/webkitpy/style/checkers/test_expectations_unittest.py:
- Scripts/webkitpy/style/checkers/text_unittest.py:
- Scripts/webkitpy/style/filereader_unittest.py:
- Scripts/webkitpy/style/optparser.py:
- Scripts/webkitpy/test/printer.py:
- Scripts/webkitpy/tool/bot/flakytestreporter_unittest.py:
- Scripts/webkitpy/tool/bot/retrylogic_unittest.py:
- Scripts/webkitpy/tool/commands/queuestest.py:
- Scripts/webkitpy/tool/commands/rebaselineserver.py:
- Scripts/webkitpy/tool/commands/setupgitclone.py:
- Scripts/webkitpy/tool/commands/suggestnominations.py:
- Scripts/webkitpy/tool/commands/upload.py:
- Scripts/webkitpy/tool/main.py:
- Scripts/webkitpy/tool/mocktool.py:
- Scripts/webkitpy/tool/multicommandtool_unittest.py:
- Scripts/webkitpy/tool/servers/gardeningserver.py:
- Scripts/webkitpy/tool/servers/gardeningserver_unittest.py:
- Scripts/webkitpy/tool/servers/reflectionhandler.py:
- Scripts/webkitpy/tool/steps/updatechangelogswithreviewer.py:
- Scripts/webkitpy/tool/steps/wptchangeexport.py:
- Scripts/webkitpy/w3c/wpt_runner.py:
- Scripts/webkitpy/webdriver_tests/pytest_runner.py:
- Scripts/webkitpy/webdriver_tests/webdriver_selenium_executor.py:
- Scripts/webkitpy/webdriver_tests/webdriver_test_result.py:
- Scripts/webkitpy/webdriver_tests/webdriver_test_runner_selenium.py:
- Scripts/webkitpy/webdriver_tests/webdriver_test_runner_w3c.py:
- 8:51 AM Changeset in webkit [277489] by
-
- 4 edits in trunk/Tools
test-lldb-webkit failing with import of lldb
https://bugs.webkit.org/show_bug.cgi?id=225792
<rdar://problem/77993980>
Reviewed by Dewei Zhu.
- CISupport/build-webkit-org/steps.py:
(RunLLDBWebKitTests): Invoke test-lldb-webkit with Python 3.
- CISupport/build-webkit-org/steps_unittest.py:
- Scripts/test-lldb-webkit: Change shebang to Python 3.
- 7:36 AM Changeset in webkit [277488] by
-
- 2 edits in trunk/LayoutTests
[MacOS] imported/w3c/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=225804
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 3:26 AM Changeset in webkit [277487] by
-
- 1 copy in releases/WebKitGTK/webkit-2.33.1
WebKitGTK 2.33.1
- 3:25 AM Changeset in webkit [277486] by
-
- 4 edits in trunk
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.33.1 release
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.33.1.
- 3:22 AM Changeset in webkit [277485] by
-
- 4 edits in trunk
Unreviewed. [GTK] Fix make distcheck
.:
Use WEBKITGTK_API_DOC_VERSION instead of WEBKITGTK_API_VERSION or the documentation install rules.
- Source/PlatformGTK.cmake:
Tools:
Update library version now that we build with soup3 by default.
- Scripts/make-dist:
(Distcheck.check_symbols):
(ensure_version_if_possible):