Timeline
Mar 15, 2021:
- 11:55 PM Changeset in webkit [274467] by
-
- 5 edits in trunk
Fix table-element-001.html
https://bugs.webkit.org/show_bug.cgi?id=223063
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-15
Reviewed by Simon Fraser.
Source/WebCore:
The aspect-ratio property should not apply to table boxes [1].
Tables themselves should respect the property.
[1] https://drafts.csswg.org/css-sizing-4/#aspect-ratio
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeLogicalHeight const):
(WebCore::RenderBox::shouldIgnoreAspectRatio const):
(WebCore::RenderBox::shouldComputeLogicalHeightFromAspectRatio const):
(WebCore::RenderBox::shouldComputeLogicalWidthFromAspectRatio const):
- rendering/RenderBox.h:
LayoutTests:
Enable test that passes now.
- 10:55 PM Changeset in webkit [274466] by
-
- 5 edits in trunk/Source/WebInspectorUI
Web Inspector: remove experimental setting and enable Layout sidebar
https://bugs.webkit.org/show_bug.cgi?id=221246
<rdar://problem/74130753>
Reviewed by BJ Burg.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Base/Setting.js:
- UserInterface/Views/ElementsTabContentView.js:
(WI.ElementsTabContentView):
- UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
- 10:08 PM Changeset in webkit [274465] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector:
Stylessidebar pseudo-class checkboxes appear cramped after resizing window at narrow widths
https://bugs.webkit.org/show_bug.cgi?id=222990
Reviewed by Devin Rousso.
Fixed two compounding bugs that meant that a sidebar could end up using the base minimum width of 250px
instead of the actual minimum width as reported by the selected panel.
- UserInterface/Views/MultiSidebar.js:
(WI.MultiSidebar.prototype.didInsertSidebarPanel):
(WI.MultiSidebar.prototype.didRemoveSidebarPanel):
(WI.MultiSidebar.prototype.didSetCollapsed):
- Drive-by: Remove unused (and always undefined)
flagargument.
(WI.MultiSidebar.prototype._updateMinimumWidthForMultipleSidebars):
- Add logic to make sure we can calculate a valid
_minimumWidthForMultipleSidebars, and add a mechanism to
allow ignoring the presence of a cached value to force a recalculation.
(WI.MultiSidebar.prototype.get _hasWidthForMultipleSidebars):
- Ensure if possible that there is a valid
_minimumWidthForMultipleSidebars.
(WI.MultiSidebar.prototype._makeSidebarPanelExclusive):
- Sets the sidebar as non-collapsible (which sets
collapsedtofalse) before adding the panel and setting it
as the selected panel so that we don't set the selected panel on a collapsed sidebar.
- UserInterface/Views/SingleSidebar.js:
(WI.SingleSidebar.prototype.didSetCollapsed):
- Drive-by: Remove always undefined
flagargument, usethis.collapsedinstead.
- 9:33 PM Changeset in webkit [274464] by
-
- 7 edits in trunk/Source/WebCore
Web Inspector: Grid overlay does not adjust for element inside iframes
https://bugs.webkit.org/show_bug.cgi?id=222920
Reviewed by Simon Fraser.
Resolves an issue when overlays are applied to grids within iframes, which need to account for the
position/transform of their containing frame, and any other parent frames, to appear correctly in relation to
the root frame. This patch also has the side effect of changing how drawing the grid overlay while the page is
scrolled by allowinglocalPointToRootPointto account for the scroll translation instead of explicitly
offsetting drawing by the scroll offset.
Widget,ScrollView, andFrameVieware updated to retain floating-point precision where necessary.
- inspector/InspectorOverlay.cpp:
(WebCore::localPointToRootPoint):
- Use floating-point precision instead of integer precision.
(WebCore::InspectorOverlay::drawGridOverlay):
- Use
localPointToRootPointto calculate absolute points relative to arenderGrid's parent hierarchy. - Remove graphics context translation, as
localPointToRootPointwill account for this translation. - page/FrameView.cpp:
(WebCore::FrameView::convertFromRendererToContainingView const):
(WebCore::FrameView::convertToContainingView const):
- page/FrameView.h:
- platform/ScrollView.cpp:
(WebCore::ScrollView::contentsToView const):
- platform/ScrollView.h:
(WebCore::ScrollView::convertChildToSelf const):
- platform/Widget.cpp:
(WebCore::Widget::convertToContainingView const):
- 8:54 PM Changeset in webkit [274463] by
-
- 5 edits in trunk
REGRESSION: (r255611) [ Mac ] 3 lldb tests failing related to HashMap
https://bugs.webkit.org/show_bug.cgi?id=207204
Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-15
Reviewed by Simon Fraser.
Source/WTF:
- wtf/HashTable.h:
Tools:
In r255780 I removed WebKit LLDB support for HashTables because the LLDB python API doesn't have a way to
do the equivalent of reinterpret_cast. With clever use of a union, I can get a pointer to the table and
tell LLDB it is actually a pointer to an unsigned integer array. Then, using pointer->unsigned->pointer
transformations I can dereference a negative index. It's gross, but it works and makes the tests pass again.
- lldb/lldb_webkit.py:
(lldb_init_module):
(lldb_init_module.lldb_webkit):
(WTFHashTable_SummaryProvider):
(WTFHashMap_SummaryProvider):
(WTFHashSet_SummaryProvider):
(WTFHashMapProvider):
(WTFHashMapProvider.init):
(WTFHashMapProvider.tableSize):
(WTFHashMapProvider.keyCount):
(WTFHashSetProvider):
(WTFHashSetProvider.init):
(WTFHashSetProvider.tableSize):
(WTFHashSetProvider.keyCount):
(WTFHashTableProvider):
(WTFHashTableProvider.init):
(WTFHashTableProvider.metadataWithIndex):
(WTFHashTableProvider.tableSize):
(WTFHashTableProvider.keyCount):
(WTFHashTableProvider.num_children):
(WTFHashTableProvider.get_child_index):
(WTFHashTableProvider.get_child_at_index):
(WTFHashTableProvider.update):
(WTFHashTableProvider.has_children):
- lldb/lldb_webkit_unittest.py:
(TestSummaryProviders):
(TestSummaryProviders.serial_test_WTFHashMap_tablesize_and_size):
(TestSummaryProviders.serial_test_WTFHashMap_of_vectors_tablesize_and_size):
(TestSummaryProviders.serial_test_WTFHashSet_tablesize_and_size):
- 8:24 PM Changeset in webkit [274462] by
-
- 18 edits2 deletes in trunk/Source/WebKit
Unreviewed, revert r272629 as it caused regressions in some apps
https://bugs.webkit.org/show_bug.cgi?id=223232
<rdar://75440378>
- SourcesCocoa.txt:
- UIProcess/API/Cocoa/WKWebView.mm:
- UIProcess/API/Cocoa/WKWebViewInternal.h:
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/Cocoa/PageClientImplCocoa.h:
- UIProcess/Cocoa/PageClientImplCocoa.mm:
- UIProcess/Cocoa/WKBlankOverlayView.h: Removed.
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::runJavaScriptAlert):
(WebKit::WebPageProxy::runJavaScriptConfirm):
(WebKit::WebPageProxy::runJavaScriptPrompt):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didCommitLayerTree):
- UIProcess/mac/WebPageProxyMac.mm:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCommitLoad):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updateRendering):
- WebProcess/WebPage/mac/WebPageMac.mm:
- 8:07 PM Changeset in webkit [274461] by
-
- 6 edits in trunk/Source/WebCore
Optimize canvas repaints
https://bugs.webkit.org/show_bug.cgi?id=223056
Reviewed by Said Abou-Hallawa.
Currently many draw operations in a canvas trigger a repaint via the didDraw()
code path which goes to HTMLCanvasElement::didDraw(). HTMLCanvasElement did track
a dirty rect and short-circuited repaints which were already dirty, but we paid
the cost of computing the dirty rect (e.g. getting the bounds of a path), and of
the hash lookup in Document::prepareCanvasesForDisplayIfNeeded() every time.
Optimize this by moving the dirty rect tracking into CanvasRenderingContext2DBase.
If the entire canvas is already dirty, we can avoid all the work (this is common,
since pages often clear the entire canvas at the start of every frame). Otherwise,
accumulate into m_dirtyRect. m_dirtyRect is cleared when we paint the canvas.
It would be nice to share more of the didDraw() code in CanvasRenderingContext2DBase
functions, but we want to be able to compute the dirty rect only if it's used, and
a WTF::function()-based approach benchmarked as slower.
This patch is an up-to-10% progression on some canvas subtests in MotionMark.
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::didDraw):
(WebCore::HTMLCanvasElement::paint):
- html/HTMLCanvasElement.h:
- html/canvas/CanvasRenderingContext.h:
(WebCore::CanvasRenderingContext::clearAccumulatedDirtyRect):
(WebCore::CanvasRenderingContext::paintRenderingResultsToCanvas):
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::fillInternal):
(WebCore::CanvasRenderingContext2DBase::strokeInternal):
(WebCore::CanvasRenderingContext2DBase::fillRect):
(WebCore::CanvasRenderingContext2DBase::strokeRect):
(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::CanvasRenderingContext2DBase::didDraw):
(WebCore::CanvasRenderingContext2DBase::clearAccumulatedDirtyRect):
(WebCore::CanvasRenderingContext2DBase::isEntireBackingStoreDirty const):
(WebCore::CanvasRenderingContext2DBase::putImageData):
(WebCore::CanvasRenderingContext2DBase::drawTextUnchecked):
- html/canvas/CanvasRenderingContext2DBase.h:
(WebCore::CanvasRenderingContext2DBase::didDraw):
(WebCore::CanvasRenderingContext2DBase::backingStoreBounds const):
- 8:03 PM Changeset in webkit [274460] by
-
- 7 edits1 add in trunk
[WK2] Can get stuck in fullscreen mode if node is removed prior to receiving willEnterFullscreen()
https://bugs.webkit.org/show_bug.cgi?id=223218
<rdar://75009548>
Reviewed by Eric Carlson.
Source/WebCore:
Return false from the following functions if a preflight check kept the function
from completing.
- dom/FullscreenManager.cpp:
(WebCore::FullscreenManager::willEnterFullscreen):
(WebCore::FullscreenManager::didEnterFullscreen):
(WebCore::FullscreenManager::willExitFullscreen):
(WebCore::FullscreenManager::didExitFullscreen):
- dom/FullscreenManager.h:
Source/WebKit:
There are a number of preflight checks made in each of the listed functions below,
and those preflights can corrupt the state machine of the UIProcess's fullscreen
code. If any of the preflights fail, use the new return value of those methods to
close() the fullscreen presentation.
- WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::willEnterFullScreen):
(WebKit::WebFullScreenManager::didEnterFullScreen):
(WebKit::WebFullScreenManager::willExitFullScreen):
(WebKit::WebFullScreenManager::requestExitFullScreen):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/FullscreenRemoveNodeBeforeEnter.mm: Added.
(TestWebKitAPI::TEST):
- 7:01 PM Changeset in webkit [274459] by
-
- 2 edits in trunk/Source/WebKit
Avoid heap allocation in RemoteAudioDestinationProxy::renderQuantum()
https://bugs.webkit.org/show_bug.cgi?id=223228
Reviewed by Darin Adler.
Avoid heap allocation in RemoteAudioDestinationProxy::renderQuantum() since this runs on the
audio thread.
- WebProcess/GPU/media/RemoteAudioDestinationProxy.cpp:
(WebKit::RemoteAudioDestinationProxy::connectToGPUProcess):
(WebKit::RemoteAudioDestinationProxy::renderQuantum):
- 6:57 PM Changeset in webkit [274458] by
-
- 3 edits in trunk/Source/WTF
RunLoop::isMain() should not need to do any heap allocations
https://bugs.webkit.org/show_bug.cgi?id=223227
Reviewed by Darin Adler.
RunLoop::isMain() should not need to do any heap allocations. Before this change,
calling RunLoop::isMain() on a non-main thread would call RunLoop::current() which
would allocate the RunLoop for the current thread. This is inefficient and an issue
for WebAudio since we're not allowed to do heap allocation on the audio rendering
thread.
- wtf/RunLoop.cpp:
(WTF::RunLoop::runLoopHolder):
(WTF::RunLoop::current):
(WTF::RunLoop::isMain):
- wtf/RunLoop.h:
- 6:25 PM Changeset in webkit [274457] by
-
- 15 edits2 adds in trunk
[iOS] WebPageProxy's EditorState may be stale until the next remote layer tree commit
https://bugs.webkit.org/show_bug.cgi?id=223207
<rdar://problem/75410700>
Reviewed by Tim Horton.
Source/WebKit:
Fixes a race condition wherein it's possible for the cached
EditorStatein the UI process (onWebPageProxy)
to be set to a stale (older) value after being set to a newer value. This can happen in the case where:
- An editor state update is computed and set on a remote layer tree transaction in the web process, inside
WebPage::willCommitLayerTree. A pendingBackingStoreFlusheris created, and we dispatch a task onto a
background queue to flush the layer tree commit.
- IPC that updates the selection arrives in the web process (e.g. WebPage::selectTextWithGranularityAtPoint),
and causes us to send an
EditorStateChangedmessage to the UI process with this new selection.
- The pending
BackingStoreFlushercreated in step (1) dispatches on the background queue, and sends its
editor state over to the UI process.
As a result, the UI process receives the
EditorStateChangedmessage in step (2) before it receives the remote
layer tree transaction sent in step (3), which contains the editor state computed prior to step (2); we then set
WebPageProxy::m_editorStatefrom its value computed in step (2) to the value computed in step (1).
To fix this (and any similar issues involving out-of-band editor state updates), we introduce a monotonically
increasing transaction ID on editor state that's similar to the one used for remote layer tree commits; we then
avoid updating the editor state inWebPageProxyif we receive anEditorStatewhose transaction ID is less
than our current ID.
Test: fast/images/image-extraction/ios/reselect-word-in-image-overlay.html
- Shared/EditorState.cpp:
(WebKit::EditorState::encode const):
(WebKit::EditorState::decode):
- Shared/EditorState.h:
Add the TransactionID, and add encoding/decoding support for the new member.
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::editorStateChanged):
(WebKit::WebPageProxy::updateEditorState):
Refactor this to return a
bool, indicating whether the editor state was modified (this only returnsfalsein
the case where the incoming editor state was older than the one we currently have). We also make this method
platform-agnostic, and move the platform-dependent logic previously implemented by individualupdateEditorState
implementations intoWebPageProxy::didUpdateEditorStateinstead.
- UIProcess/WebPageProxy.h:
- UIProcess/gtk/WebPageProxyGtk.cpp:
(WebKit::WebPageProxy::didUpdateEditorState):
(WebKit::WebPageProxy::updateEditorState): Deleted.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didUpdateEditorState):
Add a new platform method hook that is called when
m_editorStateis updated due to an incomingEditorState
from the web process. The old and new cachedEditorStatevalues are passed into this method; note that even
though only the previous value is necessary as an argument (sincem_editorStateis already equal to the new
value here), I chose to pass in both to make it clear that both old and new values can be consulted here.
(WebKit::WebPageProxy::updateEditorState): Deleted.
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::didUpdateEditorState):
(WebKit::WebPageProxy::updateEditorState): Deleted.
- UIProcess/playstation/WebPageProxyPlayStation.cpp:
(WebKit::WebPageProxy::didUpdateEditorState):
(WebKit::WebPageProxy::updateEditorState): Deleted.
- UIProcess/win/WebPageProxyWin.cpp:
(WebKit::WebPageProxy::didUpdateEditorState):
(WebKit::WebPageProxy::updateEditorState): Deleted.
- UIProcess/wpe/WebPageProxyWPE.cpp:
(WebKit::WebPageProxy::didUpdateEditorState):
(WebKit::WebPageProxy::updateEditorState): Deleted.
Rename these method implementations, and adjust them to use
oldEditorStateandnewEditorState.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::editorState const):
- WebProcess/WebPage/WebPage.h:
LayoutTests:
- fast/images/image-extraction/ios/reselect-word-in-image-overlay-expected.txt: Added.
- fast/images/image-extraction/ios/reselect-word-in-image-overlay.html: Added.
- 5:52 PM Changeset in webkit [274456] by
-
- 4 edits2 adds in trunk
[Multi-column] Ignore line grid offset when the grid line is shorter than 0.5px
https://bugs.webkit.org/show_bug.cgi?id=223220
<rdar://73192773>
Reviewed by Simon Fraser.
Source/WebCore:
This is a simple check on roundToInt(line box height) to make sure we don't divide by zero.
Test: fast/multicol/crash-when-line-grid-is-shorter-than-half-px.html
- rendering/RenderLayoutState.cpp:
(WebCore::RenderLayoutState::computeLineGridPaginationOrigin):
- rendering/RootInlineBox.h:
(WebCore::RootInlineBox::lineBoxHeight const):
LayoutTests:
- fast/multicol/crash-when-line-grid-is-shorter-than-half-px-expected.txt: Added.
- fast/multicol/crash-when-line-grid-is-shorter-than-half-px.html: Added.
- 5:37 PM Changeset in webkit [274455] by
-
- 10 edits in trunk
REGRESSION(r271642) Another app was relying on DOMWindow reuse
https://bugs.webkit.org/show_bug.cgi?id=223217
<rdar://75186172>
Patch by Alex Christensen <achristensen@webkit.org> on 2021-03-15
Reviewed by Geoff Garen.
Source/WebCore:
We already fixed an app in r273817 but in rdar://75186172 we have another broken app.
It's time for a linkedOnOrAfter check.
- bindings/js/JSWindowProxy.cpp:
(WebCore::JSWindowProxy::setWindow):
- platform/cocoa/VersionChecks.h:
Source/WebKit:
- UIProcess/API/Cocoa/WKProcessPool.mm:
(+[WKProcessPool _setLinkedOnOrBeforeEverythingForTesting]):
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
Source/WTF:
- Scripts/Preferences/WebPreferencesInternal.yaml:
Tools:
- TestWebKitAPI/Tests/mac/JSWrapperForNodeInWebFrame.mm:
(TestWebKitAPI::TEST):
- 5:24 PM Changeset in webkit [274454] by
-
- 2 edits in trunk/LayoutTests
[ macOS Debug ARM64 ] 2X w3c/svg tests are constantly text failing
https://bugs.webkit.org/show_bug.cgi?id=223223
Unreviewed test gardening.
- platform/mac/TestExpectations: Updating test expectations to constantly fail in Apple Silicon while test is being looked at.
- 4:44 PM Changeset in webkit [274453] by
-
- 8 edits in trunk
PCM: Split attributionReportURL() into attributionReportSourceURL() and attributionReportAttributeOnURL()
https://bugs.webkit.org/show_bug.cgi?id=223210
<rdar://problem/75442246>
Reviewed by Brent Fulgham.
This patch splits WebCore::PrivateClickMeasurement::attributionReportURL() into
Source/WebCore:
PrivateClickMeasurement::attributionReportSourceURL() and
PrivateClickMeasurement::attributionReportAttributeOnURL() to
facilitate sending attribution reports to both the click source and destination.
No new tests. This patch doesn't change functionality and the functionality is
covered by existing tests.
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::handleClick):
Changed the assertion to check both the attribution URLs.
- loader/PrivateClickMeasurement.cpp:
(WebCore::attributionReportURL):
Static convenience function to share code between
PrivateClickMeasurement::attributionReportSourceURL() and
PrivateClickMeasurement::attributionReportAttributeOnURL().
(WebCore::PrivateClickMeasurement::attributionReportSourceURL const):
Generates the well-known location for the click source.
(WebCore::PrivateClickMeasurement::attributionReportAttributeOnURL const):
Generates the well-known location for the click destination.
(WebCore::PrivateClickMeasurement::attributionReportURL const): Deleted.
No mostly exists as a static convenience function (see above).
- loader/PrivateClickMeasurement.h:
Source/WebKit:
WebCore::PrivateClickMeasurement::attributionReportSourceURL() and
WebCore::PrivateClickMeasurement::attributionReportAttributeOnURL() to
facilitate sending attribution reports to both the click source and destination.
- NetworkProcess/PrivateClickMeasurementManager.cpp:
(WebKit::PrivateClickMeasurementManager::storeUnattributed):
Removed a reference to ads in a log statement.
(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):
Now uses WebCore::PrivateClickMeasurement::attributionReportSourceURL().
Tools:
WebCore::PrivateClickMeasurement::attributionReportSourceURL() and
WebCore::PrivateClickMeasurement::attributionReportAttributeOnURL() to
facilitate sending attribution reports to both the click source and destination.
- TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:
(TestWebKitAPI::TEST):
Updated to use the new functions and also not repeat tests of static
data.
- 4:41 PM Changeset in webkit [274452] by
-
- 3 edits in branches/safari-611.1.21.2-branch/Source/WebKit
Cherry-pick r274439. rdar://problem/75450678
Enforce subcommand filtering
https://bugs.webkit.org/show_bug.cgi?id=223192
<rdar://75434409>
Reviewed by Brent Fulgham.
Enforce subcommand filtering in the WebContent process' sandbox.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274439 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:41 PM Changeset in webkit [274451] by
-
- 3 edits in branches/safari-611.1.21.2-branch/Source/WebKit
Cherry-pick r274295. rdar://problem/75450678
[macOS] Add additional telemetry to WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=223080
Reviewed by Brent Fulgham.
Add additional telemetry to WebContent sandbox on macOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274295 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:30 PM Changeset in webkit [274450] by
-
- 3 edits in branches/safari-611.1.21.0-branch/Source/WebKit
Cherry-pick r274439. rdar://problem/75450660
Enforce subcommand filtering
https://bugs.webkit.org/show_bug.cgi?id=223192
<rdar://75434409>
Reviewed by Brent Fulgham.
Enforce subcommand filtering in the WebContent process' sandbox.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274439 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:30 PM Changeset in webkit [274449] by
-
- 3 edits in branches/safari-611.1.21.0-branch/Source/WebKit
Cherry-pick r274295. rdar://problem/75450660
[macOS] Add additional telemetry to WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=223080
Reviewed by Brent Fulgham.
Add additional telemetry to WebContent sandbox on macOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274295 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:29 PM Changeset in webkit [274448] by
-
- 8 edits in branches/safari-611.1.21.2-branch/Source
Versioning.
WebKit-7611.1.21.2.3
- 4:26 PM Changeset in webkit [274447] by
-
- 2 edits in trunk/LayoutTests
[ MacOS wk2 ] inspector/debugger/breakpoints/resolved-dump-all-inline-script-pause-locations.html is flakey timing out
https://bugs.webkit.org/show_bug.cgi?id=221759
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Re-updating test expectations to include release. Prior test expectation update gave us unexpected crashes.
- 3:53 PM Changeset in webkit [274446] by
-
- 8 edits in branches/safari-611.1.21.0-branch/Source
Versioning.
WebKit-7611.1.21.0.7
- 3:46 PM Changeset in webkit [274445] by
-
- 3 edits in branches/safari-611.1.21.1-branch/Source/WebKit
Cherry-pick r274439. rdar://problem/75450672
Enforce subcommand filtering
https://bugs.webkit.org/show_bug.cgi?id=223192
<rdar://75434409>
Reviewed by Brent Fulgham.
Enforce subcommand filtering in the WebContent process' sandbox.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@274439 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:46 PM Changeset in webkit [274444] by
-
- 2 edits in branches/safari-611.1.21.1-branch/Source/WebKit
Cherry-pick r274231. rdar://problem/75450672
- 3:39 PM Changeset in webkit [274443] by
-
- 3 edits2 adds in trunk
Image overlay creation should be idempotent
https://bugs.webkit.org/show_bug.cgi?id=223199
Reviewed by Tim Horton.
Source/WebCore:
Make sure that
updateWithImageExtractionResultis idempotent given the same results object, and does not
inject redundant styles or DOM elements in the user agent shadow root.
Test: fast/images/image-extraction/image-overlay-creation-is-idempotent.html
- html/HTMLElement.cpp:
(WebCore::HTMLElement::updateWithImageExtractionResult):
When updating the image overlay, remove the existing overlay container element if needed, and don't bother
re-injecting the style sheet if it has already been created and inserted.
LayoutTests:
- fast/images/image-extraction/image-overlay-creation-is-idempotent-expected.txt: Added.
- fast/images/image-extraction/image-overlay-creation-is-idempotent.html: Added.
- 3:25 PM Changeset in webkit [274442] by
-
- 8 edits in branches/safari-611.1.21.1-branch/Source
Versioning.
WebKit-7611.1.21.1.10
- 3:06 PM Changeset in webkit [274441] by
-
- 1 edit1 delete in trunk/Tools
Delete unused build-launcher-dmg script
https://bugs.webkit.org/show_bug.cgi?id=222923
Reviewed by Alexey Proskuryakov.
- CISupport/build-launcher-dmg: Removed.
- 2:27 PM Changeset in webkit [274440] by
-
- 3 edits2 adds in trunk
RenderStyle::getRoundedInnerBorderFor should never produce a rect with negative width/height
https://bugs.webkit.org/show_bug.cgi?id=223147
Reviewed by Simon Fraser.
Source/WebCore:
Width/height may get resolved to negative values when the rect goemetry (left/top) is at maximum LayoutUnit.
Test: fast/shapes/assert-when-rounded-rect-overflows.html
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::getRoundedInnerBorderFor const):
LayoutTests:
- fast/shapes/assert-when-rounded-rect-overflows-expected.txt: Added.
- fast/shapes/assert-when-rounded-rect-overflows.html: Added.
- 2:22 PM Changeset in webkit [274439] by
-
- 3 edits in trunk/Source/WebKit
Enforce subcommand filtering
https://bugs.webkit.org/show_bug.cgi?id=223192
<rdar://75434409>
Reviewed by Brent Fulgham.
Enforce subcommand filtering in the WebContent process' sandbox.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
- 1:49 PM Changeset in webkit [274438] by
-
- 4 edits2 adds in trunk
WebGL should be aware of [AllowShared]
https://bugs.webkit.org/show_bug.cgi?id=223167
Reviewed by Saam Barati.
Source/WebCore:
This patch attaches [AllowShared] IDL annotations to appropriate WebGL types, so that these functions
can accept array buffers / array buffer views which are created from SharedArrayBuffer.
- html/canvas/WebGL2RenderingContext.idl:
- html/canvas/WebGLRenderingContextBase.idl:
LayoutTests:
Test that these functions accept (not throwing a TypeError) array buffers etc. created from SharedArrayBuffer.
- webgl/webgl-allow-shared-expected.txt: Added.
- webgl/webgl-allow-shared.html: Added.
- 1:45 PM Changeset in webkit [274437] by
-
- 2 edits in trunk/Source/WebCore
Do not collapse the anonymous block when it is a candidate container for the list marker
https://bugs.webkit.org/show_bug.cgi?id=223196
<rdar://74574330>
Reviewed by Antti Koivisto.
Do not merge empty anonymous siblings when the callers says "do not collpase anonymous block". Those merge candidate
anonymous blocks may be candidate containers for some other conent (we expand on r238119 here).
- rendering/updating/RenderTreeBuilderBlock.cpp:
(WebCore::RenderTreeBuilder::Block::detach):
- 1:43 PM Changeset in webkit [274436] by
-
- 19 edits in trunk/Source/WebCore
Change canvasChanged() to take a Optional<FloatRect>
https://bugs.webkit.org/show_bug.cgi?id=223203
Reviewed by Said Abou-Hallawa.
As a precursor to webkit.org/b/223056, change the FloatRect argument to
canvasChanged() to be an Optional<FloatRect>. A nullopt value here indicates
that the changed rect is inside the existing dirtied bounds of the canvas backing
store since the last repaint, so clients that are using the callback for repaint
don't need to do anything.
- Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
(WebCore::CanvasCaptureMediaStreamTrack::Source::canvasChanged):
- Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
- Modules/webxr/WebXRWebGLLayer.h:
- css/CSSCanvasValue.cpp:
(WebCore::CSSCanvasValue::canvasChanged):
- css/CSSCanvasValue.h:
- dom/Document.cpp:
(WebCore::Document::canvasChanged):
- dom/Document.h:
- html/CanvasBase.cpp:
(WebCore::CanvasBase::notifyObserversCanvasChanged):
- html/CanvasBase.h:
- html/CustomPaintCanvas.h:
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::didDraw):
- html/HTMLCanvasElement.h:
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::didDrawEntireCanvas):
(WebCore::CanvasRenderingContext2DBase::paintRenderingResultsToCanvas):
- html/canvas/CanvasRenderingContext2DBase.h:
(WebCore::CanvasRenderingContext2DBase::backingStoreBounds const):
- inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::canvasChanged):
- inspector/agents/InspectorCanvasAgent.h:
- 1:38 PM Changeset in webkit [274435] by
-
- 10 edits in trunk/Source
[Cocoa] Adopt AudioComponentApplyServerRegistrations()
https://bugs.webkit.org/show_bug.cgi?id=223188
<rdar://75433850>
Reviewed by Eric Carlson.
Source/WebCore/PAL:
- pal/cf/AudioToolboxSoftLink.cpp:
- pal/cf/AudioToolboxSoftLink.h:
Source/WebKit:
The WebKit sandbox will block access to the AudioComponent XPC service when the
GPU process is enabled. Adopt new API to fetch the registered component data from
the priviledged UIProcess and consume that registration data in the WebContent
process, making it unnecessary to communicate with the AudioComponent XPC service
to instantiate components.
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::sendAudioComponentRegistrations):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
- UIProcess/WebProcessProxy.h:
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::consumeAudioComponentRegistrations):
- 1:11 PM Changeset in webkit [274434] by
-
- 8 edits in trunk/LayoutTests
Enable the layout test 2d.path.stroke.scale2.html
https://bugs.webkit.org/show_bug.cgi?id=223176
Reviewed by Tim Horton.
LayoutTests/imported/w3c:
- web-platform-tests/html/canvas/element/path-objects/2d.path.stroke.scale2-expected.txt:
LayoutTests:
This layout test is now fixed on macOS and iOS after enabling GPUP for
2D canvas rendering. The reason is CGPathAddRect() has a bug which is
tracked by rdar://75419465. Encoding the CGPath converts the rectangle
command to moveTo and lineTo commands. This is unintentional workaround
for the CGPathAddRect() bug.
- TestExpectations:
- platform/ios-wk1/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- 1:02 PM Changeset in webkit [274433] by
-
- 30 edits in trunk
WebGL IPC should use shared memory for synchronous messages
https://bugs.webkit.org/show_bug.cgi?id=220974
<rdar://problem/73876947>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-15
Reviewed by Geoffrey Garen.
Source/WebKit:
Send synchronous messages via the stream shared memory.
Improves MotionMark on iMac1,1 from 5000 to ~5300 pts.
If the message is encodable as a value, try to do so.
If the reply is encodable as a value, try to do so.
A message or a reply is not encodable if an argument in the message
must be passed by reference via the OS specific mechanism
(e.g. a iosurface or a file handle cannot be sent as a value).
Similar to asynchronous messages, if the synchronous message fits to
the stream buffer, the message is sent via the buffer. Same with the
reply.
If the message or reply is not sent via the stream buffer, it is sent via
the normal IPC.
The client protocol is:
1) Write the message to the buffer and release it.
2) Wait until the server releases the whole buffer back to the client.
3) Read the reply from index 0.
4) Continue sending next message from index 0.
The server protocol is upon receiving a message that is synchronous:
1) Read the message from the message position, dispatch it.
2) Write the reply to index 0.
3) Release the whole buffer back to the client.
4) Continue reading next message from index 0.
The client will not know at the send time whether the server will reply
via the stream or via normal IPC message. The client will reserve
a IPC sync request ID for normal IPC reply purposes.
In case a message or a reply does not fit to the stream buffer, the
ProcessOutOfStreamMessage message is written to the buffer instead.
This will make the reader to wait for the normal IPC message.
Changes temporarily so that the creation of the context waits for the
confirmation that the creation was done. This is due to synchrononous
stream send unable to deliver the WasCreated message during
wait for reply, at the moment.
- GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
- Platform/IPC/ArgumentCoder.h:
- Platform/IPC/ArgumentCoders.h:
- Platform/IPC/Connection.cpp:
(IPC::Connection::createSyncMessageEncoder):
(IPC::Connection::pushPendingSyncRequestID):
(IPC::Connection::popPendingSyncRequestID):
(IPC::Connection::sendSyncMessage):
- Platform/IPC/Connection.h:
(IPC::Connection::makeSyncRequestID):
Move the code from sendSyncMessage to individual functions so
that the client can reserve a sync request ID for reply purposes.
- Platform/IPC/StreamClientConnection.h:
(IPC::StreamClientConnection::send):
(IPC::StreamClientConnection::trySendStream):
(IPC::StreamClientConnection::sendSync):
(IPC::StreamClientConnection::trySendSyncStream):
(IPC::StreamClientConnection::tryAcquireAll):
- Platform/IPC/StreamConnectionBuffer.h:
- Platform/IPC/StreamServerConnection.cpp:
(IPC::StreamServerConnectionBase::acquireAll):
(IPC::StreamServerConnectionBase::release):
(IPC::StreamServerConnectionBase::releaseAll):
- Platform/IPC/StreamServerConnection.h:
(IPC::StreamServerConnectionBase::sendSyncReply):
The implementation.
(IPC::StreamServerConnectionBase::tryAcquire):
(IPC::StreamServerConnection<Receiver>::dispatchStreamMessages):
Fix a typo StreamServerConnectionBase::tryAquire
(IPC::StreamServerConnection<Receiver>::dispatchStreamMessage):
If the message comes in as normal IPC message, it must be replied
via normal IPC.
Add a flag m_isDispatchingStreamMessage to indicate whether the
message being processed comes as a normal IPC message or a
stream message. This information must be stateful in the connection
class, as it is not passable as arguments when the execution goes through:
StreamServerConnection<Receiver>::dispatchStreamMessage()
Receiver::didReceiveStreamMessage()
handleMessageSynchronous()
StreamServerConnection<Receiver>::sendSyncReply()
- Scripts/webkit/messages.py:
Add properties NotStreamEncodable, NotStreamEncodableReply
that indicate if the message parameters are such that they
cannot be encoded into plain data buffer as values.
This is encoded as 'constexpr bool isStreamEncodable' and
'constexpr bool isStreamEncodableReply' for the stream messages.
- Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
(IPC::jsValueForArguments):
(IPC::messageArgumentDescriptions):
- Scripts/webkit/tests/MessageNames.cpp:
(IPC::description):
(IPC::receiverName):
(IPC::isValidMessageName):
- Scripts/webkit/tests/MessageNames.h:
- Scripts/webkit/tests/TestWithIfMessageMessages.h:
- Scripts/webkit/tests/TestWithImageDataMessages.h:
- Scripts/webkit/tests/TestWithLegacyReceiverMessages.h:
- Scripts/webkit/tests/TestWithSemaphoreMessages.h:
- Scripts/webkit/tests/TestWithStream.messages.in:
- Scripts/webkit/tests/TestWithStreamBufferMessages.h:
- Scripts/webkit/tests/TestWithStreamMessageReceiver.cpp:
(WebKit::TestWithStream::didReceiveStreamMessage):
- Scripts/webkit/tests/TestWithStreamMessages.h:
(Messages::TestWithStream::SendMachSendRight::name):
(Messages::TestWithStream::SendMachSendRight::SendMachSendRight):
(Messages::TestWithStream::SendMachSendRight::arguments const):
(Messages::TestWithStream::ReceiveMachSendRight::name):
(Messages::TestWithStream::ReceiveMachSendRight::arguments const):
(Messages::TestWithStream::SendAndReceiveMachSendRight::name):
(Messages::TestWithStream::SendAndReceiveMachSendRight::SendAndReceiveMachSendRight):
(Messages::TestWithStream::SendAndReceiveMachSendRight::arguments const):
- Scripts/webkit/tests/TestWithSuperclassMessages.h:
- Scripts/webkit/tests/TestWithoutAttributesMessages.h:
Test changes related to NotStreamEncodable, NotStreamEncodableReply.
Other changes indicate an auxiliary change to message structs:
changing 'const bool isSync' to 'constexpr bool isSync'.
This is done for consistency, since 'isStreamEncodable*' properties
are also added as constexpr.
- Shared/WebCoreArgumentCoders.cpp:
- Shared/WebCoreArgumentCoders.h:
Make types that are WebGL sync message parameters or reply parameters
now encodable to a stream by making the encoder part a template.
Previously these were sent only by normal IPC, and did not need
to be polymorphic to the encoder.
Tools:
Mark PrepareForDisplay() as "not replyable through the stream"
since it replies with MachSendRight.
- Scripts/generate-gpup-webgl:
- 12:51 PM Changeset in webkit [274432] by
-
- 3 edits in trunk/Source/WebCore
Avoid doing a heap allocation in AudioParam::calculateFinalValues() on the audio thread
https://bugs.webkit.org/show_bug.cgi?id=223197
<rdar://60700260>
Reviewed by Jer Noble.
Avoid doing a heap allocation in AudioParam::calculateFinalValues() on the audio thread, for
performance reasons.
- Modules/webaudio/AudioParam.cpp:
(WebCore::AudioParam::AudioParam):
(WebCore::AudioParam::calculateFinalValues):
- Modules/webaudio/AudioParam.h:
- 12:34 PM Changeset in webkit [274431] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ARM64 ] http/tests/local/loading-stylesheet-import-remove.html is a flakey image failure
https://bugs.webkit.org/show_bug.cgi?id=223206
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Updating test expectations to Pass ImageOnlyFailure while test is being looked at.
- 12:32 PM WebKitGTK/2.32.x edited by
- (diff)
- 12:28 PM WebKitGTK/2.32.x edited by
- (diff)
- 11:54 AM Changeset in webkit [274430] by
-
- 11 edits in trunk
Update getUserMedia delegate to expose frame info
https://bugs.webkit.org/show_bug.cgi?id=223178
Reviewed by Eric Carlson.
Source/WebKit:
Covered by API test.
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest):
Expose frame information in the permission delegate.
Tools:
- TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
(-[UserMediaCaptureUIDelegateForParameters _webView:requestMediaCapturePermissionForOrigin:initiatedByFrame:audio:video:decisionHandler:]):
- TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:
(-[NavigationWhileGetUserMediaPromptDisplayedUIDelegate _webView:requestMediaCapturePermissionForOrigin:initiatedByFrame:audio:video:decisionHandler:]):
(-[NavigationWhileGetUserMediaPromptDisplayedUIDelegate _webView:requestMediaCapturePermission:video:decisionHandler:]): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm:
(-[SpeechRecognitionUIDelegate _webView:requestMediaCapturePermissionForOrigin:initiatedByFrame:audio:video:decisionHandler:]):
(-[SpeechRecognitionUIDelegate _webView:requestMediaCapturePermission:video:decisionHandler:]): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/UserMediaDisabled.mm:
(-[UserMediaUIDelegate _webView:requestMediaCapturePermissionForOrigin:initiatedByFrame:audio:video:decisionHandler:]):
(-[UserMediaUIDelegate _webView:requestMediaCapturePermission:video:decisionHandler:]): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm:
(-[SimulateFailedSandboxUIDelegate _webView:requestMediaCapturePermissionForOrigin:initiatedByFrame:audio:video:decisionHandler:]):
(-[SimulateFailedSandboxUIDelegate _webView:requestMediaCapturePermission:video:decisionHandler:]): Deleted.
- TestWebKitAPI/cocoa/UserMediaCaptureUIDelegate.h:
- TestWebKitAPI/cocoa/UserMediaCaptureUIDelegate.mm:
(-[UserMediaCaptureUIDelegate _webView:requestMediaCapturePermissionForOrigin:initiatedByFrame:audio:video:decisionHandler:]):
(-[UserMediaCaptureUIDelegate _webView:requestMediaCapturePermission:video:decisionHandler:]): Deleted.
- 10:41 AM Changeset in webkit [274429] by
-
- 2 edits in trunk/Source/WebCore
Stop calling [NSHTTPCookieStorage sharedHTTPCookieStorage] in the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=223186
<rdar://75018105>
Reviewed by Geoffrey Garen.
NetworkStorageSession::nsCookieStorage() was calling [NSHTTPCookieStorage sharedHTTPCookieStorage]
even if cookieStorage() is not nil. I updated the condition so that we do not attempt to call
[NSHTTPCookieStorage sharedHTTPCookieStorage] when the m_isInMemoryCookieStore flag is set. The
WebProcess is using an in-memory cookie store (thus has m_isInMemoryCookieStore flag set) and
is definitely not using the shared HTTP cookie store.
- platform/network/cocoa/NetworkStorageSessionCocoa.mm:
(WebCore::NetworkStorageSession::nsCookieStorage const):
- 10:38 AM Changeset in webkit [274428] by
-
- 2 edits in trunk/Source/JavaScriptCore
postprocess-asm/resolve-asm-file-conflicts.rb build failure after upgrading to F34
https://bugs.webkit.org/show_bug.cgi?id=223136
Reviewed by Michael Catanzaro.
When parsing .file assembler directives (for the purpose of
deduplicating the file slots), also accept
.file "path/to/CWD" "path/to/include"
that seems to be emitted by GCC in some configurations. This also
uses Pathname.cleanpath on the resulting path to canonicalize the
paths. We could use .realpath, but since we only run this on the
paths in a single compilation unit and the first component is
supposed to be the CWD, this both seems unnecessary and would
complicate our selftests.
- Scripts/resolve-asm-file-conflicts.rb:
- 10:34 AM Changeset in webkit [274427] by
-
- 1 copy in tags/Safari-612.1.5.5
Tag Safari-612.1.5.5.
- 10:30 AM Changeset in webkit [274426] by
-
- 8 edits in branches/safari-612.1.5-branch/Source
Versioning.
WebKit-7612.1.5.5
- 10:02 AM Changeset in webkit [274425] by
-
- 2 edits in trunk/Source/WebCore
Add a WebAudio quirk for Zoom
https://bugs.webkit.org/show_bug.cgi?id=223180
<rdar://75070331>
Reviewed by Eric Carlson.
Manually tested.
- page/Quirks.cpp:
(WebCore::Quirks::shouldAutoplayWebAudioForArbitraryUserGesture const):
This allows playing audio through web audio even in cases where microphone is not yet granted or denied.
- 9:44 AM Changeset in webkit [274424] by
-
- 2 edits in trunk/Source/WTF
Turn CSS aspect-ratio on by default
https://bugs.webkit.org/show_bug.cgi?id=223117
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-15
Reviewed by Simon Fraser.
Turn CSS aspect-ratio on by default.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 9:42 AM WebKitGTK/2.32.x edited by
- (diff)
- 9:39 AM Changeset in webkit [274423] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r233845): EME Keysystem permission when MediaStream is disabled
https://bugs.webkit.org/show_bug.cgi?id=223185
Patch by Philippe Normand <pnormand@igalia.com> on 2021-03-15
Reviewed by Eric Carlson.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestMediaKeySystemPermissionForFrame): This method is required for
EME build configurations, not MediaStream...
- 9:08 AM Changeset in webkit [274422] by
-
- 7 edits in trunk
[GPUP][MSE] Add an IPC message to implement SourceBufferPrivateRemote::canSwitchToType()
https://bugs.webkit.org/show_bug.cgi?id=223152
Reviewed by Eric Carlson.
Source/WebKit:
Add a synchronous message to implement
SourceBufferPrivateRemote::canSwitchToType().
No new tests. This patch fixes a test failure.
- GPUProcess/media/RemoteSourceBufferProxy.cpp:
(WebKit::RemoteSourceBufferProxy::canSwitchToType):
- GPUProcess/media/RemoteSourceBufferProxy.h:
- GPUProcess/media/RemoteSourceBufferProxy.messages.in:
- WebProcess/GPU/media/SourceBufferPrivateRemote.cpp:
(WebKit::SourceBufferPrivateRemote::canSwitchToType):
LayoutTests:
- platform/mac/TestExpectations:
- 8:52 AM WebKitGTK/2.32.x edited by
- (diff)
- 8:20 AM Changeset in webkit [274421] by
-
- 4 edits2 adds in trunk
Fit-border-to-line may change the layout constraints between 2 paginated line layouts
https://bugs.webkit.org/show_bug.cgi?id=223169
<rdar://73147358>
Reviewed by Antti Koivisto.
Source/WebCore:
In paginated context, we keep triggering layout until all the widows/orphans are cleared.
This happens within the same layout frame (in practice this is a recursive call in
RenderBlockFlow::layoutBlock -see relayoutToAvoidWidows).
The constraints for these subsequent/recursive layouts should stay the same in order
to be able to clear any potential widows/orphans
(e.g first layout produces 5 lines but we can only have 3 on this page due to the widow/orphan values.
Now the subsequent/recursive layout is going to break the content at the 3rd line,
but if the constraints change in between and this layout only produces 2 lines, we'll keep trying
until we manage to produce at least 3 lines. Fit-border-to-line implemented in such an intrusive way that
it overrides previously computed logical width (mutates the constraint) -see RenderBlockFlow::fitBorderToLinesIfNeeded)
This patch ensures that we bail out of the recursive re-layout if we fail to produce the same set of lines.
Test: fast/multicol/widow-relayout-with-border-fit.html
- rendering/ComplexLineLayout.cpp:
(WebCore::ComplexLineLayout::layoutRunsAndFloatsInRange):
LayoutTests:
- fast/multicol/widow-relayout-with-border-fit-expected.txt: Added.
- fast/multicol/widow-relayout-with-border-fit.html: Added.
- 6:36 AM Changeset in webkit [274420] by
-
- 5 edits5 adds in trunk
[macOS] Selecting text via mouse drag in image documents shouldn't trigger click events
https://bugs.webkit.org/show_bug.cgi?id=223075
<rdar://problem/75334611>
Reviewed by Tim Horton.
Source/WebCore:
Improve image overlay support in image documents, by setting
-webkit-user-select: text;on the image overlay
container andcursor: text;on each of the text children. Additionally, make it so that text selection in
image overlays doesn't trigger a click event, so that attempting to select text doesn't trigger click events.
Tests: fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag-does-not-fire-click.html
fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag.html
- html/HTMLElement.cpp:
(WebCore::HTMLElement::isImageOverlayText):
Make a slight adjustment here to handle the case where the host element's shadow root is not installed by the
user agent, and also so that we returntruefor all nodes underneath the image overlay container as well (not
just text nodes). SeeDragControllerchange below for more details.
(WebCore::HTMLElement::updateWithImageExtractionResult):
- page/DragController.cpp:
(WebCore::DragController::draggableElement const):
Make another adjustment to
DragController::draggableElement, such that we don't initiate image drags when
dragging over text inside the image overlay. Note that this does not prevent drag start when the text is
selected, since that does not result in an image drag (i.e.,DragSourceAction::Image).
- page/EventHandler.cpp:
(WebCore::EventHandler::updateSelectionForMouseDrag):
LayoutTests:
Add a couple of new layout tests to exercise the new behavior.
- fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag-does-not-fire-click-expected.txt: Added.
- fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag-does-not-fire-click.html: Added.
- fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag-expected-mismatch.html: Added.
- fast/images/image-extraction/mac/select-image-overlay-with-mouse-drag.html: Added.
- 6:18 AM Changeset in webkit [274419] by
-
- 3 edits2 adds in trunk
Treat min-intrinsic like *-content
https://bugs.webkit.org/show_bug.cgi?id=222854
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-15
Reviewed by Sergio Villar Senin.
Source/WebCore:
Treat min-intrinsic like *-content for intrinsic logical
content calculations.
Test: fast/flexbox/indefinite-width-crash.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::computeIntrinsicLogicalContentHeightUsing const):
(WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing const):
LayoutTests:
Add test for this.
- fast/flexbox/indefinite-width-crash-expected.txt: Added.
- fast/flexbox/indefinite-width-crash.html: Added.
- 6:15 AM Changeset in webkit [274418] by
-
- 2 edits in trunk/Tools
[GLIB] Filter cppfilt output when generating crash logs
https://bugs.webkit.org/show_bug.cgi?id=223171
Reviewed by Carlos Garcia Campos.
Like the output from other external commands, the output of cppfilt
must also be decoded.
This should fix the early exits due to unicode exceptions when
running the GTK4 bot layout tests.
- Scripts/webkitpy/port/linux_get_crash_log.py:
(GDBCrashLogGenerator.generate_crash_log): Decode cppfilt output.
- 6:15 AM Changeset in webkit [274417] by
-
- 2 edits in trunk/Source/WebKit
[GLIB] Be more selective about bublewrapping libdirs
https://bugs.webkit.org/show_bug.cgi?id=221709
Patch by Daniel Kolesa <Daniel Kolesa> on 2021-03-15
Reviewed by Carlos Garcia Campos.
On 32-bit systems, bubblewrap lib32 instead of lib64. This unbreaks
sandbox on some distributions that have lib32 (which glibc defaults
its ld cache lookups to) but configure default libdir to lib rather
than lib32.
- UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::bubblewrapSpawn):
- 6:00 AM Changeset in webkit [274416] by
-
- 12 edits1 add in trunk
Split WebXR features into enabledFeatures, supportedFeatures and requestedFeatures
https://bugs.webkit.org/show_bug.cgi?id=222796
Reviewed by Sergio Villar Senin.
LayoutTests/imported/w3c:
Update xrSession_requestReferenceSpace_features expectations.
- web-platform-tests/webxr/xrSession_requestReferenceSpace_features.https-expected.txt: Added.
Source/WebCore:
Currently enabledFeatures array is used both for checking supported and enabled features. This is causing some tests to fail,
such as "test that reference spaces that aren't default features are rejected when not requested as a feature".
This patchs splits WebXR features into:
- enabledFeatures: features thas has been granted by the permission system.
- supportedFeatures: features that the device supports.
- requestedFeatures: specific features that have been enabled for a specific session.
Tested by xrSession_requestReferenceSpace_features.html
- Modules/webxr/WebXRSession.cpp:
(WebCore::WebXRSession::create):
(WebCore::WebXRSession::WebXRSession):
(WebCore::WebXRSession::referenceSpaceIsSupported const):
- Modules/webxr/WebXRSession.h:
- Modules/webxr/WebXRSystem.cpp:
(WebCore::WebXRSystem::resolveRequestedFeatures const):
(WebCore::WebXRSystem::resolveFeaturePermissions const):
(WebCore::WebXRSystem::requestSession):
(WebCore::WebXRSystem::DummyInlineDevice::DummyInlineDevice):
- Modules/webxr/WebXRSystem.h:
- platform/xr/PlatformXR.h:
(PlatformXR::Device::setSupportedFeatures):
(PlatformXR::Device::supportedFeatures const):
- platform/xr/openxr/PlatformXROpenXR.cpp:
(PlatformXR::OpenXRDevice::collectSupportedFeatures):
(PlatformXR::OpenXRDevice::collectSupportedSessionModes):
- platform/xr/openxr/PlatformXROpenXR.h:
- testing/WebXRTest.cpp:
(WebCore::WebXRTest::simulateDeviceConnection):
LayoutTests:
Update xrSession_requestReferenceSpace_features expectations.
- platform/wpe/TestExpectations:
- 6:00 AM Changeset in webkit [274415] by
-
- 3 edits2 adds in trunk
CSS aspect-ratio interpolation
https://bugs.webkit.org/show_bug.cgi?id=220848
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-15
Reviewed by Antoine Quint.
LayoutTests/imported/w3c:
Import relevant test.
- web-platform-tests/css/css-sizing/animation/aspect-ratio-interpolation-expected.txt: Added.
- web-platform-tests/css/css-sizing/animation/aspect-ratio-interpolation.html: Added.
Source/WebCore:
Implement CSS aspect-ratio interpolation as defined here:
https://drafts.csswg.org/css-values/#combine-ratio
Test: imported/w3c/web-platform-tests/css/css-sizing/animation/aspect-ratio-interpolation.html
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- 5:45 AM Changeset in webkit [274414] by
-
- 17 edits in trunk/Source
Move vertex array functionality from ExtensionsGL to GraphicsContextGL
https://bugs.webkit.org/show_bug.cgi?id=221665
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-15
Reviewed by Simon Fraser.
Source/WebCore:
There's no benefit in using ExtensionsGL, it is just adding bugs.
This commit is working towards removing ExtensionsGL.
The vertex array functionality already exists in GraphicsContextGL, use
it from there.
In WebGL1 case, the OES extension is used.
In WebGL2 case, all the functions end up calling the same functionality
underneath, regardless if client calls WebGL2 function or WebGL1
extension function.
ANGLE GenVertexArrays is the same function as GenVertexArraysOES except
GenVertexArrays is not enabled for ES 2.0 contexts.
No new tests, tested by WebGL conformance.
- html/canvas/OESVertexArrayObject.cpp:
(WebCore::OESVertexArrayObject::isVertexArrayOES):
(WebCore::OESVertexArrayObject::bindVertexArrayOES):
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::getParameter):
- html/canvas/WebGLVertexArrayObjectOES.cpp:
(WebCore::WebGLVertexArrayObjectOES::WebGLVertexArrayObjectOES):
(WebCore::WebGLVertexArrayObjectOES::deleteObjectImpl):
- platform/graphics/ExtensionsGL.h:
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/angle/ExtensionsGLANGLE.cpp:
- platform/graphics/angle/ExtensionsGLANGLE.h:
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::createVertexArray):
(WebCore::GraphicsContextGLOpenGL::deleteVertexArray):
(WebCore::GraphicsContextGLOpenGL::isVertexArray):
(WebCore::GraphicsContextGLOpenGL::bindVertexArray):
- platform/graphics/opengl/ExtensionsGLOpenGL.cpp:
(WebCore::ExtensionsGLOpenGL::createVertexArrayOES):
(WebCore::ExtensionsGLOpenGL::deleteVertexArrayOES):
(WebCore::ExtensionsGLOpenGL::isVertexArrayOES):
(WebCore::ExtensionsGLOpenGL::bindVertexArrayOES):
- platform/graphics/opengl/ExtensionsGLOpenGLCommon.h:
- platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
(WebCore::GraphicsContextGLOpenGL::createVertexArray):
(WebCore::GraphicsContextGLOpenGL::deleteVertexArray):
(WebCore::GraphicsContextGLOpenGL::isVertexArray):
(WebCore::GraphicsContextGLOpenGL::bindVertexArray):
Source/WebKit:
Generate WebGL GPUP implementation after the change.
- GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
- GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:
(getGraphicsResetStatusARB):
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
- WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:
- 4:34 AM Changeset in webkit [274413] by
-
- 2 edits in trunk/Source/WebKit
RemoteRenderingBackend commands are not processed in order if GPU process is waiting for replies
https://bugs.webkit.org/show_bug.cgi?id=222099
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-15
Reviewed by Simon Fraser.
Mark all asynchronous message sends with DispatchMessageEvenWhenWaitingForSyncReply.
Otherwise synchronous messages will be dispatched before asynchronous messages.
The messages are temporally dependent.
Consider initial message exchange in canvas-blending-color-over-image.html:
GPUConnectionToWebProcess_CreateRenderingBackend
RemoteRenderingBackend_CreateImageBuffer
RemoteRenderingBackend_DidCreateSharedDisplayListHandle
RemoteRenderingBackend_CreateImageBuffer
RemoteRenderingBackend_WakeUpAndApplyDisplayList
RemoteRenderingBackend_GetDataURLForImageBuffer
RemoteRenderingBackendProxy_DidCreateImageBufferBackend
RemoteRenderingBackendProxy_DidCreateImageBufferBackend
If GPU process is waiting for a sync reply when the sequence up
until GetDataURL.. arrives, then the dispatch order is:
GPUConnectionToWebProcess_CreateRenderingBackend
RemoteRenderingBackend_GetDataURLForImageBuffer
[... rest of the messages]
This is a rare case, affects only the case where:
1) These messages arrive before main thread processes the message queue
2) GPU process has sent a synchronous message and is waiting for a reply
In base case after RenderingBackend has been created and the work queue
receive queue has been installed, all messages are moved to the work
queue thread and dispatched in order of arrival.
No new tests, timing dependent and WebKit code cannot be
unit tested.
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::~RemoteRenderingBackendProxy):
(WebKit::RemoteRenderingBackendProxy::reestablishGPUProcessConnection):
(WebKit::RemoteRenderingBackendProxy::createImageBuffer):
(WebKit::RemoteRenderingBackendProxy::cacheNativeImage):
(WebKit::RemoteRenderingBackendProxy::cacheFont):
(WebKit::RemoteRenderingBackendProxy::deleteAllFonts):
(WebKit::RemoteRenderingBackendProxy::releaseRemoteResource):
(WebKit::RemoteRenderingBackendProxy::sendWakeupMessage):
(WebKit::RemoteRenderingBackendProxy::createItemBuffer):
- 4:33 AM Changeset in webkit [274412] by
-
- 4 edits in trunk/Source/WebKit
Simulated WebGL context screen change events should work with GPU process
https://bugs.webkit.org/show_bug.cgi?id=223121
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-15
Reviewed by Darin Adler.
Add a hunk missing from "WebGL context screen change events should work with GPU process"
that implements the context-specific event for simulating the context change.
Fixes
fast/canvas/webgl/webglcontextchangedevent.html
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::simulateEventForTesting):
- 4:27 AM Changeset in webkit [274411] by
-
- 6 edits in trunk
Do not shrink radio buttons bellow its size
https://bugs.webkit.org/show_bug.cgi?id=215575
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-flexbox/radiobutton-min-size-expected.txt: Replaced FAIL by PASS expectations.
Source/WebCore:
A radio button used as a flex item would be invisible by default because it'll compute is
min-size to 0. That's why we should not let them shrink below their size (width/height).
- platform/Theme.cpp:
(WebCore::Theme::minimumControlSize const): Do not let Radio buttons shrink bellow their size.
- platform/Theme.h: make minimumControlSize() protected. Add a new non-virtual method with the same parameter
plus another one (the minimum size under which we cannot shrink) which calls the virtual method.
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle): Pass the {style.width(),style.height()} as the minimum size under which
we should not shrink the control.
- 4:15 AM Changeset in webkit [274410] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r270185) [GTK] Some webgl failures after multivalue setter refactor
https://bugs.webkit.org/show_bug.cgi?id=219340
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-03-15
Reviewed by Simon Fraser.
Construct the simulated vertex attrib 0 buffer GCGLSpan with correct size -- the
pointer is GCGLfloat, so the length should be the count of floats.
No new tests, tested by the regressed tests:
fast/canvas/webgl/gl-bind-attrib-location-test.html
fast/canvas/webgl/gl-bind-attrib-mapped-names.html
webgl/1.0.3/conformance/attribs/gl-disabled-vertex-attrib.html
webgl/1.0.3/conformance/extensions/angle-instanced-arrays-out-of-bounds.html
webgl/1.0.3/conformance/programs/gl-bind-attrib-location-long-names-test.html
webgl/1.0.3/conformance/programs/gl-bind-attrib-location-test.html
webgl/1.0.3/conformance/rendering/draw-elements-out-of-bounds.html
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::simulateVertexAttrib0):
- 12:36 AM Changeset in webkit [274409] by
-
- 2 edits in trunk/Source/WebCore
Improve coding style of CSSPropertyAnimation.cpp
https://bugs.webkit.org/show_bug.cgi?id=223148
Reviewed by Darin Adler.
As much as possible, do the following:
- mark classes as final
- mark overridden methods as final
- move overridden methods in private sections
- failing that, move them to protected sections
- stay clear from abbreviated terms
- prop => property
- anim => client
- dst => destination
- use from/to as parameter names instead of a/b for any method where the role of the parameters warrant it (eg. blend, canInterpolate)
This should greatly improve the coding style used throughout CSSPropertyAnimation.cpp
and make it cohesive.
- animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
(WebCore::blendFilterOperations):
(WebCore::blendFilter):
(WebCore::AnimationPropertyWrapperBase::AnimationPropertyWrapperBase):
(WebCore::AnimationPropertyWrapperBase::property const):
(WebCore::PropertyWrapperGetter::PropertyWrapperGetter):
(WebCore::PropertyWrapperGetter::value const):
(WebCore::PropertyWrapper::PropertyWrapper):
(WebCore::RefCountedPropertyWrapper::RefCountedPropertyWrapper):
(WebCore::canInterpolateLengths):
(WebCore::canInterpolateLengthVariants):
(WebCore::NonNegativeFloatPropertyWrapper::NonNegativeFloatPropertyWrapper):
(WebCore::CSSPropertyAnimation::blendProperties):
(WebCore::CSSPropertyAnimation::isPropertyAnimatable):
(WebCore::CSSPropertyAnimation::animationOfPropertyIsAccelerated):
(WebCore::CSSPropertyAnimation::propertiesEqual):
(WebCore::CSSPropertyAnimation::canPropertyBeInterpolated):
(WebCore::DiscretePropertyWrapper::DiscretePropertyWrapper): Deleted.
(WebCore::LengthPropertyWrapper::LengthPropertyWrapper): Deleted.
(WebCore::LengthVariantPropertyWrapper::LengthVariantPropertyWrapper): Deleted.
(WebCore::LengthBoxPropertyWrapper::LengthBoxPropertyWrapper): Deleted.
(WebCore::PropertyWrapperClipPath::PropertyWrapperClipPath): Deleted.
(WebCore::PropertyWrapperFontVariationSettings::PropertyWrapperFontVariationSettings): Deleted.
(WebCore::PropertyWrapperShape::PropertyWrapperShape): Deleted.
(WebCore::StyleImagePropertyWrapper::StyleImagePropertyWrapper): Deleted.
(WebCore::AcceleratedPropertyWrapper::AcceleratedPropertyWrapper): Deleted.
(WebCore::PropertyWrapperFilter::PropertyWrapperFilter): Deleted.
(WebCore::PropertyWrapperShadow::PropertyWrapperShadow): Deleted.
(WebCore::PropertyWrapperShadow::blendSimpleOrMatchedShadowLists const): Deleted.
(WebCore::PropertyWrapperShadow::blendMismatchedShadowLists const): Deleted.
(WebCore::PropertyWrapperMaybeInvalidColor::PropertyWrapperMaybeInvalidColor): Deleted.
(WebCore::PropertyWrapperMaybeInvalidColor::value const): Deleted.
(WebCore::PropertyWrapperVisitedAffectedColor::PropertyWrapperVisitedAffectedColor): Deleted.
(WebCore::FillLayerPropertyWrapper::FillLayerPropertyWrapper): Deleted.
(WebCore::FillLayerPositionPropertyWrapper::FillLayerPositionPropertyWrapper): Deleted.
(WebCore::FillLayerStyleImagePropertyWrapper::FillLayerStyleImagePropertyWrapper): Deleted.
(WebCore::FillLayersPropertyWrapper::FillLayersPropertyWrapper): Deleted.
(WebCore::ShorthandPropertyWrapper::ShorthandPropertyWrapper): Deleted.
(WebCore::ShorthandPropertyWrapper:: const): Deleted.
(WebCore::PropertyWrapperFlex::PropertyWrapperFlex): Deleted.
(WebCore::PropertyWrapperSVGPaint::PropertyWrapperSVGPaint): Deleted.
(WebCore::PropertyWrapperFontStyle::PropertyWrapperFontStyle): Deleted.
(WebCore::AutoPropertyWrapper::AutoPropertyWrapper): Deleted.
(WebCore::PerspectiveWrapper::PerspectiveWrapper): Deleted.
(WebCore::CSSPropertyAnimationWrapperMap::singleton): Deleted.
(WebCore::CSSPropertyAnimationWrapperMap::wrapperForProperty): Deleted.
(WebCore::CSSPropertyAnimationWrapperMap::wrapperForIndex): Deleted.
(WebCore::CSSPropertyAnimationWrapperMap::size): Deleted.
(WebCore::CSSPropertyAnimationWrapperMap::indexFromPropertyID): Deleted.
Mar 14, 2021:
- 1:16 AM Changeset in webkit [274397] by
-
- 3 edits in trunk
[GLIB] Keep GPUProcess disabled when using experimental features
https://bugs.webkit.org/show_bug.cgi?id=223155
Reviewed by Philippe Normand.
At least two recent GPUProcess-related revisions caused issues in
GLIB, causing serious regressions in the bots. Disabling it for now
until we improve its support.
Revisions:
r274327 - 2D Canvas enabled by default in GPUProcess
r272842 - Media enabled by default in GPUProcess
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
Mar 13, 2021:
- 11:20 PM Changeset in webkit [274408] by
-
- 9 edits in trunk
Match other browsers by interpolating colors in floating point space rather than uint8_t space
https://bugs.webkit.org/show_bug.cgi?id=223165
Reviewed by Antoine Quint.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-backgrounds/animations/background-color-interpolation-expected.txt:
- web-platform-tests/css/css-backgrounds/animations/box-shadow-interpolation-expected.txt:
- web-platform-tests/css/css-transitions/animations/text-shadow-interpolation-expected.txt:
- web-platform-tests/css/css-ui/animation/caret-color-interpolation-expected.txt:
- web-platform-tests/css/css-ui/outline-017-expected.txt:
Update color interpolation results.
Source/WebCore:
- platform/graphics/ColorBlending.cpp:
(WebCore::blend):
(WebCore::blendWithoutPremultiply):
Rather than blending the components as uint8_t channels, match other browsers by blending
them as float channels. I have not yet determined if a spec says this, but matching other
browsers makes sense and fixes a bunch of WPT results. I will follow up with the CSS WG to
determine where/if this is/should be specified.
- platform/graphics/ColorUtilities.cpp:
(WebCore::unpremultiplied):
Avoid division by zero.
- 5:57 PM Changeset in webkit [274407] by
-
- 6 edits in trunk
[Win][WK1] Add a new API IWebPreferences::startBatchingUpdates to defer WebPreferencesChangedNotification
https://bugs.webkit.org/show_bug.cgi?id=223109
Reviewed by Sam Weinig.
Source/WebKitLegacy/win:
Some JS tests are timing out for Windows WebKit1 Debug build since
r274111. Those tests generate very large pages. r274111 resets
WebPreferences to the initial state. Changing a preference causes
relayout. Thus, resetting preferences caused layouts repeatedly.
r274040 (Bug 218024) added _batchUpdatePreferencesInBlock to
WebPreferences for Mac WebKit1 to defer the notification.
- Interfaces/IWebPreferencesPrivate.idl:
- WebPreferences.cpp:
(WebPreferences::postPreferencesChangesNotification):
(WebPreferences::startBatchingUpdates): Added.
(WebPreferences::stopBatchingUpdates): Added.
- WebPreferences.h:
Tools:
- DumpRenderTree/win/DumpRenderTree.cpp:
(resetWebViewToConsistentStateBeforeTesting):
- 3:18 PM Changeset in webkit [274406] by
-
- 4 edits in trunk/Source/JavaScriptCore
REGRESSION (r274308): Two assertions in JSGlobalObject::defineOwnProperty() are failing
https://bugs.webkit.org/show_bug.cgi?id=223134
Reviewed by Yusuke Suzuki.
This patch:
- Simplifies exception check after validateAndApplyPropertyDescriptor() as it conditionally throws on failure.
- Creates new SymbolTableEntry when global variable is redefined as read-only because setAttributes() performs pack(), which doesn't support fat entries.
Due to #2, symbolTableGet() overload is simplified to return fast entry, and
setAttributes() is removed as unused.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::defineOwnProperty):
- runtime/JSSymbolTableObject.h:
(JSC::symbolTableGet):
- runtime/SymbolTable.h:
(JSC::SymbolTableEntry::getAttributes const):
(JSC::SymbolTableEntry::setAttributes): Deleted.
- 3:12 PM Changeset in webkit [274405] by
-
- 3 edits1 move1 add in trunk/JSTests
[JSC] Run one Mozilla test explicitly under PST since this test does not work when we are moving from PST to PDT
https://bugs.webkit.org/show_bug.cgi?id=223158
Reviewed by Mark Lam.
This mozilla test is broken: it fails when we are close to the point moving from PST to PDT / from PDT to PST.
We should always run this test under PST to avoid this DST related flakiness.
We explicitly set TZ=PST for this test to ensure that this runs under PST (not PDT). TZ environment variable is
recognized by system frameworks and some libraries including tzdata and ICU.
- complex.yaml:
- complex/mozilla-ecma-Date-15.9.5.14.js: Renamed from JSTests/mozilla/ecma/Date/15.9.5.14.js.
(test):
- complex/mozilla-shell.js: Added.
(AddTestCase):
(TestCase):
(startTest):
(test):
(getTestCaseResult):
(writeTestCaseResult):
(writeFormattedResult):
(writeLineToLog):
(writeHeaderToLog):
(stopTest):
(getFailedCases):
(getTimeZoneDiff):
(adjustResultArray):
(Day):
(DaysInYear):
(TimeInYear):
(DayNumber):
(TimeWithinDay):
(YearNumber):
(TimeFromYear):
(DayFromYear):
(InLeapYear):
(YearFromTime):
(MonthFromTime):
(DayWithinYear):
(DateFromTime):
(WeekDay):
(UTC):
(DaylightSavingTA):
(GetFirstSundayInApril):
(GetLastSundayInOctober):
(GetSecondSundayInMarch):
(GetFirstSundayInNovember):
(LocalTime):
(MakeTime):
(MakeDay):
(TimeInMonth):
(TimeClip):
(ToInteger):
(Enumerate):
(GetContext):
(OptLevel):
- mozilla/mozilla-tests.yaml:
- 2:19 PM Changeset in webkit [274404] by
-
- 5 edits3 adds in trunk
Prevent dynamic import in service worker
https://bugs.webkit.org/show_bug.cgi?id=222308
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Covering service-worker case.
- web-platform-tests/service-workers/service-worker/import-module-scripts.https-expected.txt:
Source/WebCore:
dynamic-import should be always rejected if script is executed in Worklets or ServiceWorkers.
This is recently changed in the spec https://github.com/whatwg/html/pull/6395.
- bindings/js/ScriptModuleLoader.cpp:
(WebCore::isWorkletOrServiceWorker):
(WebCore::ScriptModuleLoader::importModule):
LayoutTests:
Covering worklet case.
- http/wpt/webaudio/the-audio-api/the-audioworklet-interface/dynamic-import-is-prohibited.https-expected.txt: Added.
- http/wpt/webaudio/the-audio-api/the-audioworklet-interface/dynamic-import-is-prohibited.https.html: Added.
- http/wpt/webaudio/the-audio-api/the-audioworklet-interface/processors/dynamic-import-is-prohibited.js: Added.
(DynamicImportIsProhibitedProcessor.prototype.process):
(DynamicImportIsProhibitedProcessor):
- 1:47 PM Changeset in webkit [274403] by
-
- 2 edits in trunk/Source/WebCore
Cancel image loader events after first dispatch
https://bugs.webkit.org/show_bug.cgi?id=218556
Patch by Rob Buis <rbuis@igalia.com> on 2021-03-14
Reviewed by Darin Adler.
Address post review comments.
- dom/EventSender.h:
(WebCore::EventSender<T>::dispatchPendingEvents):
- 1:26 PM Changeset in webkit [274402] by
-
- 2 edits in trunk/Source/JavaScriptCore
[Big Sur arm64] testb3 crashing
https://bugs.webkit.org/show_bug.cgi?id=222815
Reviewed by Mark Lam.
Fix dmb ish and dmb ishst's formats.
- b3/testb3_6.cpp:
(testMemoryFence):
(testStoreFence):
(testLoadFence):
- 1:22 PM Changeset in webkit [274401] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] ARM64 branchAtomicWeakCAS should not use sign-extension
https://bugs.webkit.org/show_bug.cgi?id=222813
Reviewed by Mark Lam.
ARM64 branchAtomicWeakCAS implementation should not use sign-extension. Instead, it should use zero-extension.
This is because loadLinkAcq (ldaxr) will load a value with zero-extension. If we use sign-extension, we will
encounter the state where LL/SC never succeeds just because we are comparing sign-extended value and zero-extended
value. This implementation is aligned to how X86 implementation works: X86 only cares the effective bit width of branchAtomicWeakCAS.
This is already tested by stress/atomics-store-result-int52.js.
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::zeroExtend):
(JSC::MacroAssemblerARM64::atomicStrongCAS):
(JSC::MacroAssemblerARM64::atomicRelaxedStrongCAS):
(JSC::MacroAssemblerARM64::branchAtomicWeakCAS):
(JSC::MacroAssemblerARM64::branchAtomicRelaxedWeakCAS):
(JSC::MacroAssemblerARM64::signExtend): Deleted.
(JSC::MacroAssemblerARM64::signExtend<8>): Deleted.
(JSC::MacroAssemblerARM64::signExtend<16>): Deleted.
- 11:46 AM Changeset in webkit [274400] by
-
- 3 edits in trunk/Source/JavaScriptCore
GCSegmentedArray's size() and isEmpty() methods should be const.
https://bugs.webkit.org/show_bug.cgi?id=223156
Reviewed by Keith Miller.
- heap/GCSegmentedArray.h:
- heap/GCSegmentedArrayInlines.h:
(JSC::GCSegmentedArray<T>::isEmpty const):
(JSC::GCSegmentedArray<T>::size const):
(JSC::GCSegmentedArray<T>::isEmpty): Deleted.
(JSC::GCSegmentedArray<T>::size): Deleted.
- 11:19 AM Changeset in webkit [274399] by
-
- 4 edits2 adds in trunk
[JSC] wasm atomic wait offset is not index
https://bugs.webkit.org/show_bug.cgi?id=223159
Reviewed by Mark Lam.
JSTests:
- wasm.yaml:
- wasm/threads-spec-tests/resources/wait-large.wast: Added.
- wasm/threads-spec-tests/wait-large.wast.js: Added.
Source/JavaScriptCore:
While JS Atomics.wait's argument is "index" in the typed-array, argument of wasm wait and notify is address.
But we are handling it as an index incorrectly.
This patch uses it as an address.
- wasm/WasmOperations.cpp:
(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
- 7:46 AM Changeset in webkit [274398] by
-
- 3 edits in trunk/Source/WebCore
RenderLineBreak should stay inline level box even when display property says otherwise.
https://bugs.webkit.org/show_bug.cgi?id=223151
<rdar://74339837>
Reviewed by Antti Koivisto.
In this patch we make sure that the RenderLineBreak object always stays inline.
While the display property applies to all elements (https://drafts.csswg.org/css-display/#the-display-properties), the line
break element (<br>) seems to be an exception and all browsers handle <br style="display: block"> still as an inline level element.
Renderers can (and do see RenderSVGInline::updateFromStyle) diverge from this computed display value and say they always want to
be inline level boxes. This is ensured by RenderObject::setInline/isInline function pair.
Initially there were 2 setInline() calls:
One in RenderObject::setStyle(). It dealt with "block to inline" transition and
one call in RenderBox::setStyle().
In these functions we simply set the renderer's "inInline" bit to the computed style value (setInline(style.isDisplayInlineType)).
However derived renderer classes were able to override it by implementing the ::setStyle function and
explicitly set the "isInline" bit to true/false.
Over the years the second (RenderBox::setStyle) call transitioned to RenderBoxModelObject::updateFromStyle()
and the first (RenderObject::setStyle) call got moved to normalizeTreeAfterStyleChange() and their order got flipped.
Derived renderer classes can still explicitly set the "isInline" bit by implementing the ::updateFromStyle() function
(this is similar to what we had with ::setStyle).
However since the order is flipped, the "setInline()" call in normalizeTreeAfterStyleChange() now runs after
updateFromStyle() and it may re-reset the "isInline" bit back to the computed value (hence the FIXME).
The "setInline" call in normalizeTreeAfterStyleChange() is not needed anymore since the "isInline" bit is already updated by
the time we get here (as opposed to when it was initially introduced in RenderObject::setStyle, see above).
- rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::updateFromStyle):
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):