Timeline
Jan 11, 2021:
- 11:04 PM Changeset in webkit [271390] by
-
- 6 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo/TestExpectations:
- platform/wincairo/fast/clip/overflow-border-radius-combinations-expected.txt:
- platform/wincairo/fast/clip/overflow-border-radius-composited-expected.txt:
- platform/wincairo/fast/clip/overflow-border-radius-transformed-expected.txt:
- platform/wincairo/fast/inline-block/tricky-baseline-expected.txt:
- 8:36 PM Changeset in webkit [271389] by
-
- 2 edits in trunk/Tools
[WPE] Gardening API test crash
Unreviewed test gardening.
- TestWebKitAPI/glib/TestExpectations.json:
- 6:52 PM Changeset in webkit [271388] by
-
- 3 edits3 adds in trunk
Safari 14 on 2x display renders NYS DMV page as blurry
https://bugs.webkit.org/show_bug.cgi?id=220528
<rdar://problem/71440246>
Reviewed by Tim Horton.
Source/WebCore:
Certain combinations of nested perspective and transform cause Core Animation to
rasterize at unit scale, which makes layers blurry on Retina displays.
Enable code that was already used on iOS to set layer rasterization scale.
Test: compositing/contents-scale/hidpi-tests/rasterization-scale.html
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(WebCore::PlatformCALayerCocoa::setContentsScale):
LayoutTests:
- compositing/contents-scale/hidpi-tests/rasterization-scale-expected.html: Added.
- compositing/contents-scale/hidpi-tests/rasterization-scale.html: Added.
- 5:11 PM Changeset in webkit [271387] by
-
- 5 edits in trunk/Source
Receiving two enter/exit fullscreen delegate callbacks on iPad when presenting fullscreen elements
https://bugs.webkit.org/show_bug.cgi?id=218688
Reviewed by Darin Adler.
Source/WebCore:
On iPads, when a video enters/exits fullscreen standby, we should not call the
video fullscreen delegate callbacks.
- platform/ios/VideoFullscreenInterfaceAVKit.h:
- platform/ios/VideoFullscreenInterfaceAVKit.mm:
(VideoFullscreenInterfaceAVKit::setupFullscreen):
(VideoFullscreenInterfaceAVKit::exitFullscreen):
Source/WebKit:
- UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(WebKit::VideoFullscreenManagerProxy::didExitFullscreen):
(WebKit::VideoFullscreenManagerProxy::didEnterFullscreen):
- 4:54 PM Changeset in webkit [271386] by
-
- 4 edits2 adds in trunk
Double tap to select does not work if the page clears selections on tap, like grammarly.com does
https://bugs.webkit.org/show_bug.cgi?id=220454
Source/WebKit:
rdar://67757411
Reviewed by Wenson Hsieh.
Double tap to select content did not work on grammerly.com on iPad because this is a desktop website run on a touch-based device,
and there was a script running that would clear the selection on a mouseDown event. When we would send synthetic click events to the page
we would first update the selection and then on completion of the tap, we would dispatch a mouseDown and mouseUp event on iOS. On Mac, we
update the selection between the mouseDown and the mouseUp, so in order to bring us more in line with mac/mouse behaviors, we are now saving
the information needed to update the selection when we believe we are in the middle of a potential tap, and then setting the selection between
these two events. This makes for a more expected change of events, and does not let grammerly.com clear a valid selection based off of synthetic
clicks.
Test: fast/events/touch/ios/double-tap-on-editable-content-for-selection-with-clear-on-touch.html
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::completeSyntheticClick):
(WebKit::WebPage::setSelectionRange):
(WebKit::WebPage::selectTextWithGranularityAtPoint):
LayoutTests:
Reviewed by Wenson Hsieh.
- fast/events/touch/ios/double-tap-on-editable-content-for-selection-with-clear-on-touch-expected.txt: Added.
- fast/events/touch/ios/double-tap-on-editable-content-for-selection-with-clear-on-touch.html: Added.
- 4:11 PM Changeset in webkit [271385] by
-
- 2 edits in trunk/Source/WebCore
[WinCairo] Unreviewed build fix for r271353
https://bugs.webkit.org/show_bug.cgi?id=220407
CrossOriginAccessControl.cpp(225): error C3861: 'isInNetworkProcess': identifier not found
- platform/RuntimeApplicationChecks.h:
(WebCore::isInWebProcess):
(WebCore::isInGPUProcess):
(WebCore::isInNetworkProcess):
- 3:54 PM Changeset in webkit [271384] by
-
- 3 edits in trunk/Source/WebKit
Crash in pageDidComputePageRects()
https://bugs.webkit.org/show_bug.cgi?id=220518
<rdar://problem/71065870>
Reviewed by Ryosuke Niwa.
Make _printOperation a weak pointer and check it before use.
Since WKPrintingView is ref counted, a reference could still exist
even if _printOperation is nil. Remove the comment as it is not a
justification for a raw pointer.
- UIProcess/mac/WKPrintingView.h:
- UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _adjustPrintingMarginsForHeaderAndFooter]):
(-[WKPrintingView _firstPrintedPageNumber]):
(-[WKPrintingView _lastPrintedPageNumber]):
(-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]):
(pageDidComputePageRects):
(-[WKPrintingView _askPageToComputePageRects]):
(-[WKPrintingView knowsPageRange:]):
(-[WKPrintingView _drawPreview:]):
(-[WKPrintingView drawRect:]):
(-[WKPrintingView _drawPageBorderWithSizeOnMainThread:]):
(-[WKPrintingView drawPageBorderWithSize:]):
(-[WKPrintingView rectForPage:]):
(-[WKPrintingView locationOfPrintRect:]):
(-[WKPrintingView beginDocument]):
(-[WKPrintingView endDocument]):
- 3:30 PM Changeset in webkit [271383] by
-
- 2 edits in trunk/Source/WebCore
Use sendWithAsyncReply instead of dataCallback for icon loading
https://bugs.webkit.org/show_bug.cgi?id=220381
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::stopLoading):
Use the original version of the patch that didn't break WK1 tests.
- 2:57 PM Changeset in webkit [271382] by
-
- 3 edits2 adds in trunk
Relax assertion in Element::dispatchFocusOutEvent() for non-web process case
https://bugs.webkit.org/show_bug.cgi?id=220478
Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-01-11
Reviewed by Ryosuke Niwa.
Source/WebCore:
Relax an assertion in Element::dispatchFocusOutEvent()
(and Element::dispatchFocusInEvent()) that can mistakenly
fire in DumpRenderTree. Also, use
RELEASE_ASSERT_WITH_SECURITY_IMPLICATION() instead of
ASSERT_WITH_SECURITY_IMPLICATION().
Test: editing/inserting/caret-surround.html
- dom/Element.cpp:
(WebCore::Element::dispatchFocusInEvent):
(WebCore::Element::dispatchFocusOutEvent):
LayoutTests:
Add a test that verifies we do not crash
due to the assertion failure.
- editing/inserting/caret-surround-expected.txt: Added.
- editing/inserting/caret-surround.html: Added.
- 2:29 PM Changeset in webkit [271381] by
-
- 14 edits in trunk
Make SpeechRecognition permission error more informative
https://bugs.webkit.org/show_bug.cgi?id=220436
Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-11
Reviewed by Youenn Fablet.
Source/WebKit:
Make SpeechRecognitionPermissionManager complete requests with an optional SpeechRecognitionError instead of a
boolean value.
- UIProcess/SpeechRecognitionPermissionManager.cpp:
(WebKit::SpeechRecognitionPermissionManager::~SpeechRecognitionPermissionManager):
(WebKit::SpeechRecognitionPermissionManager::request):
(WebKit::SpeechRecognitionPermissionManager::startProcessingRequest):
(WebKit::SpeechRecognitionPermissionManager::continueProcessingRequest):
(WebKit::SpeechRecognitionPermissionManager::completeCurrentRequest):
(WebKit::SpeechRecognitionPermissionManager::requestSpeechRecognitionServiceAccess):
(WebKit::SpeechRecognitionPermissionManager::requestMicrophoneAccess):
(WebKit::SpeechRecognitionPermissionManager::requestUserPermission):
- UIProcess/SpeechRecognitionPermissionManager.h:
- UIProcess/SpeechRecognitionPermissionRequest.h:
(WebKit::SpeechRecognitionPermissionRequest::create):
(WebKit::SpeechRecognitionPermissionRequest::complete):
(WebKit::SpeechRecognitionPermissionRequest::SpeechRecognitionPermissionRequest):
- UIProcess/SpeechRecognitionServer.cpp:
(WebKit::SpeechRecognitionServer::requestPermissionForRequest):
- UIProcess/SpeechRecognitionServer.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestSpeechRecognitionPermission):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::createSpeechRecognitionServer):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm:
(TestWebKitAPI::TEST):
LayoutTests:
- fast/speechrecognition/permission-error-expected.txt:
- fast/speechrecognition/permission-error.html:
- 2:16 PM Changeset in webkit [271380] by
-
- 2 edits in trunk/Tools
ASSERTION FAILED: !event event.type == NSEventTypeLeftMouseDown event.type == NSEventTypeRightMouseDown event.type == NSEventTypeOtherMouseDown https://bugs.webkit.org/show_bug.cgi?id=220520
<rdar://problem/73007898>
Reviewed by Tim Horton.
Fix the assertion by synthesizing a "mouse down" event instead of "mouse entered".
- TestWebKitAPI/Tests/mac/AcceptsFirstMouse.mm:
(TestWebKitAPI::TEST):
- 2:00 PM Changeset in webkit [271379] by
-
- 6 edits in trunk
Keep newly created IDBObjectStores in deleted map when IDBTransaction is aborted
https://bugs.webkit.org/show_bug.cgi?id=220483
<rdar://problem/71934293>
Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-11
Reviewed by Darin Adler.
Source/WebCore:
When an upgrade transaction is aborted, we move objects from m_deletedObjectStores to m_referencedObjectStores
to revert the deletion operation. When updating m_referencedObjectStores, we did not check whether key already
exists (this can happen when an object store gets deleted and a new object store with the same name is
created; see updated layout test). Therefore, some object store in m_referencedObjectStores would be replaced
and destroyed (since m_referencedObjectStores holds unique pointers) when the object store is referenced by JS
object.
Test: storage/indexeddb/modern/abort-objectstore-info.html
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::internalAbort):
LayoutTests:
- storage/indexeddb/modern/abort-objectstore-info-expected.txt:
- storage/indexeddb/modern/abort-objectstore-info-private-expected.txt:
- storage/indexeddb/modern/resources/abort-objectstore-info.js:
(prepareDatabase):
(secondUpgradeNeeded):
(checkState):
- 1:36 PM Changeset in webkit [271378] by
-
- 24 edits in trunk/Source
Use sendWithAsyncReply instead of dataCallback for icon loading
https://bugs.webkit.org/show_bug.cgi?id=220381
Patch by Alex Christensen <achristensen@webkit.org> on 2021-01-11
Reviewed by Youenn Fablet.
Source/WebCore:
Behavior covered by IconLoading API tests.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::didGetLoadDecisionForIcon):
(WebCore::DocumentLoader::finishedLoadingIcon):
(WebCore::DocumentLoader::notifyFinishedLoadingIcon): Deleted.
- loader/DocumentLoader.h:
- loader/FrameLoaderClient.h:
Source/WebKit:
- Scripts/webkit/messages.py:
- Shared/API/APIData.cpp:
(API::Data::create):
- Shared/API/APIData.h:
(API::Data::create):
- UIProcess/API/APIIconLoadingClient.h:
(API::IconLoadingClient::getLoadDecisionForIcon):
- UIProcess/API/mac/WKView.mm:
(-[WKView maybeInstallIconLoadingClient]):
- UIProcess/Cocoa/IconLoadingDelegate.h:
- UIProcess/Cocoa/IconLoadingDelegate.mm:
(WebKit::IconLoadingDelegate::IconLoadingClient::getLoadDecisionForIcon):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getLoadDecisionForIcon):
(WebKit::WebPageProxy::finishedLoadingIcon): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::finishedLoadingIcon): Deleted.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didGetLoadDecisionForIcon):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Source/WebKitLegacy/mac:
- WebCoreSupport/WebFrameLoaderClient.h:
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::prepareForDataSourceReplacement):
(WebFrameLoaderClient::getLoadDecisionForIcons):
(WebFrameLoaderClient::finishedLoadingIcon):
- 1:33 PM Changeset in webkit [271377] by
-
- 4 edits in trunk/LayoutTests
A video element needs to ignore the request to enter/exit fullscreen before the current fullscreen mode change is completed
https://bugs.webkit.org/show_bug.cgi?id=220466
Reviewed by Jer Noble.
A follow-up patch of r271341 to fix a layout test timeout (and failure, see webkit.org/b/183490).
- media/modern-media-controls/media-controller/media-controller-fullscreen-change-expected.txt:
- media/modern-media-controls/media-controller/media-controller-fullscreen-change.html:
- platform/mac/TestExpectations:
- 1:12 PM Changeset in webkit [271376] by
-
- 1 copy in tags/Safari-611.1.9.11
Tag Safari-611.1.9.11.
- 1:11 PM Changeset in webkit [271375] by
-
- 4 edits in trunk/Source/WebCore
Take aspect-ratio into account for percentage resolution
https://bugs.webkit.org/show_bug.cgi?id=220143
Patch by Rob Buis <rbuis@igalia.com> on 2021-01-11
Reviewed by Darin Adler.
Address review feedback that I misinterpreted and did not
include in r271293.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):
- rendering/RenderBox.cpp:
(WebCore::inlineSizeFromAspectRatio):
(WebCore::RenderBox::computeLogicalHeight const):
(WebCore::RenderBox::availableLogicalHeightUsing const):
(WebCore::RenderBox::computePositionedLogicalHeightUsing const):
(WebCore::RenderBox::computeLogicalWidthFromAspectRatio const):
- rendering/RenderBox.h:
(WebCore::RenderBox::blockSizeFromAspectRatio):
- 12:20 PM Changeset in webkit [271374] by
-
- 2 edits in trunk/Source/WebKit
Web Inspector: add nullptr check for WebInspectorProxy::m_extensionsController
https://bugs.webkit.org/show_bug.cgi?id=220485
<rdar://72496401>
Reviewed by Devin Rousso.
- UIProcess/Inspector/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::frontendLoaded):
- 12:13 PM Changeset in webkit [271373] by
-
- 21 edits4 adds in trunk
Web Inspector: Debugger: allow breakpoint actions to be evaluated as a user gesture
https://bugs.webkit.org/show_bug.cgi?id=200275
Reviewed by Brian Burg.
Source/JavaScriptCore:
- inspector/protocol/Debugger.json:
- debugger/Breakpoint.h:
Add an optional
emulateUserGestureproperty toDebugger.BreakpointAction.
- debugger/Debugger.h:
(JSC::Debugger::Client::debuggerScopeExtensionObject): Renamed from
scopeExtensionObject.
(JSC::Debugger::Client::debuggerWillEvaluate): Added.
(JSC::Debugger::Client::debuggerDidEvaluate): Added.
- debugger/Debugger.cpp:
(JSC::Debugger::evaluateBreakpointCondition):
(JSC::Debugger::evaluateBreakpointActions):
Consult theDebugger::Clientbefore and after evaluating eachBreakpoint::Action.
Currently this is used byWebCore::PageDebuggerAgentto push onto or pop from a stack of
WebCore::UserGestureEmulationScope, each corresponding to aBreakpoint::Actionthat
has been set withemulateUserGesture.
- inspector/agents/InspectorDebuggerAgent.h:
- inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::parseBreakpointOptions):
(Inspector::InspectorDebuggerAgent::debuggerScopeExtensionObject): Renamed fromscopeExtensionObject.
Source/WebCore:
Tests: inspector/debugger/breakpoint-action-emulateUserGesture.html
inspector/debugger/breakpoint-action-emulateUserGesture-userIsInteracting.html
- inspector/agents/page/PageDebuggerAgent.cpp:
- inspector/agents/page/PageDebuggerAgent.h:
(WebCore::PageDebuggerAgent::debuggerWillEvaluate): Added.
(WebCore::PageDebuggerAgent::debuggerDidEvaluate): Added.
Maintain a stack ofUserGestureEmulationScopewhenever evaluating breakpoint actions (but
only add/remove items if the current action is set toemulateUserGesture).
- inspector/agents/page/UserGestureEmulationScope.h:
Make it fast allocated so it can be used with
UniqueRef.
Source/WebInspectorUI:
- UserInterface/Models/BreakpointAction.js:
(WI.BreakpointAction.supportsEmulateUserAction): Added.
(WI.BreakpointAction.fromJSON):
(WI.BreakpointAction.prototype.toJSON):
(WI.BreakpointAction.prototype.set type):
(WI.BreakpointAction.prototype.set data):
(WI.BreakpointAction.prototype.get emulateUserGesture): Added.
(WI.BreakpointAction.prototype.set emulateUserGesture): Added.
Add an_emulateUserGestureproperty to matchDebugger.BreakpointAction.
- UserInterface/Views/BreakpointActionView.js:
(WI.BreakpointActionView):
(WI.BreakpointActionView.prototype._updateBody):
(WI.BreakpointActionView.prototype._handleEmulateUserGestureCheckboxChange): Added.
- UserInterface/Views/BreakpointActionView.css:
(.breakpoint-action-block-body .description): Added.
(.breakpoint-action-block-body > .flex):
(.breakpoint-action-block-body > .description): Deleted.
Add a "[ ] Emulate User Gesture" under the log/evaluate/probe input.
- UserInterface/Models/Breakpoint.js:
(WI.Breakpoint):
(WI.Breakpoint.prototype.addAction):
(WI.Breakpoint.prototype.removeAction):
(WI.Breakpoint.prototype._handleBreakpointActionModified): Renamed from_handleBreakpointActionChanged.
Drive-by: combineTypeChangedandDataChangedinto a singleModifiedevent since all
the listeners currently have the same callback.
- UserInterface/Views/LogContentView.js:
(WI.LogContentView):
(WI.LogContentView.prototype._handleEmulateInUserGestureSettingChanged):
Drive-by: only show the "Emulate User Gesture" checkbox when it's supported.
- Localizations/en.lproj/localizedStrings.js:
LayoutTests:
- inspector/debugger/breakpoint-action-emulateUserGesture.html: Added.
- inspector/debugger/breakpoint-action-emulateUserGesture-expected.txt: Added.
- inspector/debugger/breakpoint-action-emulateUserGesture-userIsInteracting.html: Added.
- inspector/debugger/breakpoint-action-emulateUserGesture-userIsInteracting-expected.txt: Added.
- TestExpectations:
- platform/wk2/TestExpectations:
- 12:12 PM Changeset in webkit [271372] by
-
- 8 edits in branches/safari-611.1.9-branch/Source
Versioning.
WebKit-7611.1.9.11
- 12:10 PM Changeset in webkit [271371] by
-
- 2 edits in trunk/Tools
Unreviewed, update my contributor information.
- Scripts/webkitpy/common/config/contributors.json:
- 11:52 AM Changeset in webkit [271370] by
-
- 2 edits in branches/safari-611-branch/Source/WebCore
Cherry-pick r271364. rdar://problem/73001152
[LFC][Integration] Factor marked text style collection code out of InlineTextBox
https://bugs.webkit.org/show_bug.cgi?id=220249
<rdar://problem/72976067>
Unreviewed build fix after 271350.
- rendering/MarkedTextStyle.cpp: (WebCore::resolveStyleForMarkedText):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271364 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:26 AM Changeset in webkit [271369] by
-
- 5 edits in trunk
WebProcessPool::establishWorkerContextConnectionToNetworkProcess should make sure to remove the selected process from the cache
https://bugs.webkit.org/show_bug.cgi?id=220503
Reviewed by Darin Adler.
Source/WebKit:
In case we reuse an existing web process, make sure to remove it from web process cache.
Covered by API test.
- UIProcess/WebProcessCache.cpp:
(WebKit::WebProcessCache::addProcessIfPossible):
(WebKit::WebProcessCache::addProcess):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
- 10:48 AM Changeset in webkit [271368] by
-
- 3 edits5 adds in trunk
Keep newly created IDBIndex objects in deleted map when IDBTransaction is aborted
https://bugs.webkit.org/show_bug.cgi?id=220489
<rdar://problem/70498831>
Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-11
Reviewed by Youenn Fablet.
Source/WebCore:
When an upgrade transaction is aborted, we move objects from m_deletedIndexes to m_referencedIndexes to revert
the index deletion operation. When updating m_referencedIndexes, we did not check whether key already exists.
Therefore, some indexes in m_referencedIndexes would be replaced and destroyed (since m_referencedIndexes holds
unique pointers) when the index is still referenced by JS.
Tests: storage/indexeddb/modern/abort-index-info-private.html
storage/indexeddb/modern/abort-index-info.html
- Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::rollbackForVersionChangeAbort):
LayoutTests:
- storage/indexeddb/modern/abort-index-info-expected.txt: Added.
- storage/indexeddb/modern/abort-index-info-private-expected.txt: Added.
- storage/indexeddb/modern/abort-index-info-private.html: Added.
- storage/indexeddb/modern/abort-index-info.html: Added.
- storage/indexeddb/modern/resources/abort-index-info.js: Added.
(prepareDatabase):
(versionChangeSuccessCallback.secondRequest.onerror):
(versionChangeSuccessCallback):
(secondUpgradeNeeded):
(checkState):
- 10:12 AM Changeset in webkit [271367] by
-
- 3 edits2 adds in trunk
REGRESSION (r258321): CSS rules using :first-of-type are applied to any/all siblings in a group under certain circumstances
https://bugs.webkit.org/show_bug.cgi?id=218256
<rdar://problem/70749584>
Reviewed by Simon Fraser.
Source/WebCore:
More accurate invalidation for :hover resulted in smaller style updates that revealed a bug in the way we
mark style non-shareable. We reset style relation bits when resolving the parent but may fail to set them again if we
don't re-resolve all children.
Test case by Eben Packwood.
Test: fast/css/positional-selector-style-sharing.html
- style/StyleRelations.cpp:
(WebCore::Style::commitRelationsToRenderStyle):
Just mark all styles affected by relations non-shareable. This is achieved via various bit tests but there
is no reason not to set the simplest no-sharing bit. Since this forces real style resolution the parent
bits will also get properly reset.
LayoutTests:
- fast/css/positional-selector-style-sharing-expected.html: Added.
- fast/css/positional-selector-style-sharing.html: Added.
- 10:04 AM Changeset in webkit [271366] by
-
- 2 edits in trunk/Tools
[build.webkit.org] Stop using deprecated addFactoryArguments method
https://bugs.webkit.org/show_bug.cgi?id=220513
Reviewed by Jonathan Bedard.
- CISupport/build-webkit-org/steps.py:
- 9:58 AM Changeset in webkit [271365] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Enable the client decoder entitlement for the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=220441
<rdar://problem/72899054>
Reviewed by Darin Adler.
The GPU process needs the client decoder entitlement we use in the WebContent process
to properly handle MSE content.
- Scripts/process-entitlements.sh:
- 9:38 AM Changeset in webkit [271364] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Integration] Factor marked text style collection code out of InlineTextBox
https://bugs.webkit.org/show_bug.cgi?id=220249
<rdar://problem/72976067>
Unreviewed build fix after 271350.
- rendering/MarkedTextStyle.cpp:
(WebCore::resolveStyleForMarkedText):
- 9:12 AM Changeset in webkit [271363] by
-
- 1 copy in branches/safari-611-branch
New branch.
- 8:56 AM Changeset in webkit [271362] by
-
- 46 edits2 adds in trunk
LayoutTests/imported/w3c:
Support lab(), lch(), gray() and color(lab ...) colors
https://bugs.webkit.org/show_bug.cgi?id=205675
Reviewed by Simon Fraser.
Update tests to use rectangles rather than text to make anti-aliasing differences
not cause failures. These changes will be upstreamed to the WebPlatformTests.
- web-platform-tests/css/css-color/lab-001-expected.html:
- web-platform-tests/css/css-color/lab-001.html:
- web-platform-tests/css/css-color/lab-002-expected.html:
- web-platform-tests/css/css-color/lab-002.html:
- web-platform-tests/css/css-color/lab-003-expected.html:
- web-platform-tests/css/css-color/lab-003.html:
- web-platform-tests/css/css-color/lab-004-expected.html:
- web-platform-tests/css/css-color/lab-004.html:
- web-platform-tests/css/css-color/lab-005-expected.html:
- web-platform-tests/css/css-color/lab-005.html:
- web-platform-tests/css/css-color/lab-006-expected.html:
- web-platform-tests/css/css-color/lab-006.html:
- web-platform-tests/css/css-color/lab-007-expected.html:
- web-platform-tests/css/css-color/lab-007.html:
- web-platform-tests/css/css-color/lch-001-expected.html:
- web-platform-tests/css/css-color/lch-001.html:
- web-platform-tests/css/css-color/lch-002-expected.html:
- web-platform-tests/css/css-color/lch-002.html:
- web-platform-tests/css/css-color/lch-003-expected.html:
- web-platform-tests/css/css-color/lch-003.html:
- web-platform-tests/css/css-color/lch-004-expected.html:
- web-platform-tests/css/css-color/lch-004.html:
- web-platform-tests/css/css-color/lch-005-expected.html:
- web-platform-tests/css/css-color/lch-005.html:
- web-platform-tests/css/css-color/lch-006-expected.html:
- web-platform-tests/css/css-color/lch-006.html:
- web-platform-tests/css/css-color/lch-007-expected.html:
- web-platform-tests/css/css-color/lch-007.html:
Source/WebCore:
Support lab(), lch() and color(lab ...) colors
https://bugs.webkit.org/show_bug.cgi?id=205675
Reviewed by Simon Fraser.
Original patch by Simon Fraser.
This adds parsing support for lab(), lch() and color(lab ...) CSS colors
(https://www.w3.org/TR/css-color-4/) and color type, conversion, and serialization
support for Lab and color type and conversion support for LCH (we store these color
canonically as Lab<float>, so serialization of LCH is never needed, much like HSL).
This change does not add support for the host platform layer (e.g. CoreGraphics, etc)
understanding of the Lab colorspace, and as such, when creating host color objects
(for instance via the cachedCGColor() helper) Lab<float> colors are converted to sRGB
first and then the host color is made. The ramification of this is for platforms that
use backingstores with greater than sRGB gamuts, Lab colors will be clampted to sRGB.
This should be rectified in a follow up change that adds proper creation of these host
objects but is being left off the initial change to limit changes.
Some of the imported tests have been updated to use rectangles rather than text to
avoid anti-aliasing issues and will be upstreamed to WPT following landing.
Tests:
fast/css/parsing-lab-colors.html
imported/w3c/web-platform-tests/css/css-color/lab-001.html
imported/w3c/web-platform-tests/css/css-color/lab-002.html
imported/w3c/web-platform-tests/css/css-color/lab-003.html
imported/w3c/web-platform-tests/css/css-color/lab-004.html
imported/w3c/web-platform-tests/css/css-color/lab-005.html
imported/w3c/web-platform-tests/css/css-color/lab-006.html
imported/w3c/web-platform-tests/css/css-color/lab-007.html
imported/w3c/web-platform-tests/css/css-color/lch-001.html
imported/w3c/web-platform-tests/css/css-color/lch-002.html
imported/w3c/web-platform-tests/css/css-color/lch-003.html
imported/w3c/web-platform-tests/css/css-color/lch-004.html
imported/w3c/web-platform-tests/css/css-color/lch-005.html
imported/w3c/web-platform-tests/css/css-color/lch-006.html
imported/w3c/web-platform-tests/css/css-color/lch-007.html
- css/CSSValueKeywords.in:
Add "lab" and "lch" keywords.
- css/parser/CSSPropertyParser.cpp:
- css/parser/CSSPropertyParserHelpers.h:
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::parseOptionalAlpha):
(WebCore::CSSPropertyParserHelpers::parseLabParameters):
(WebCore::CSSPropertyParserHelpers::parseLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseGrayParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):
Add support for parsing "lab(...)", "lch(...)", "gray(...)"
and "color(lab ...)", all of which create Lab<float> colors.
Also adds explicit UnitlessZeroQuirk flag to angle parsing to
allow parsing of newer specs that don't want to allow unitless zero
for angles. For now, I have left FIXMEs for the properties that
should probably disable it. This was not strictly necessary for this
change (as lch actaully allows unitless angles now), but it seems
like a solid move forward.
- platform/graphics/Color.h:
(WebCore::Color::Color):
Add overload of the Color constructor that takes a Lab<float> matching other
ColorSpace types.
- platform/graphics/ColorConversion.cpp:
(WebCore::convertFromD50WhitePointToD65WhitePoint):
(WebCore::convertFromD65WhitePointToD50WhitePoint):
(WebCore::toXYZA):
(WebCore::toLab):
(WebCore::toLCHA):
- platform/graphics/ColorConversion.h:
(WebCore::toLab):
(WebCore::toLCHA):
Add conversions to/from Lab to D65 white point XYZA (the white point we expect XYZA to be in), and conversion
from Lch to/from Lab.
- platform/graphics/ColorSerialization.cpp:
(WebCore::serialization):
(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):
- platform/graphics/ColorSerialization.h:
Add serialization for Lab colors. We currently always serialize using the lab()
notation, which appears to be correct for at least colors declared using lab(),
lch() and gray(). Unclear if it is correct for colors declared with color(lab ...).
Opened https://github.com/w3c/csswg-drafts/issues/5825 to track getting a resolution
for "color(lab ...)".
- platform/graphics/ColorSpace.cpp:
(WebCore::operator<<):
- platform/graphics/ColorSpace.h:
Add Lab as a ColorSpace and text stream dumping for it.
- platform/graphics/ColorTypes.h:
(WebCore::Lab::Lab):
(WebCore::asColorComponents):
(WebCore::asLab):
Add Lab color type.
(WebCore::LCHA::LCHA):
(WebCore::asLCHA):
Add LCHA color type.
(WebCore::callWithColorType):
Add Lab to callWithColorType since it is now a valid ColorSpace.
- platform/graphics/cg/ColorSpaceCG.cpp:
(WebCore::labColorSpaceRef):
- platform/graphics/cg/ColorSpaceCG.h:
(WebCore::cachedCGColorSpace):
For now, return the sRGB color space to indicate to callers that they should do a conversion.
LayoutTests:
Support lab(), lch(), gray() and color(lab ...) colors
https://bugs.webkit.org/show_bug.cgi?id=205675
Reviewed by Simon Fraser.
Original patch by Simon Fraser.
Parsing tests for lab/lch/gray colors.
- TestExpectations: Unskip lab/lch tests.
- fast/css/parsing-lab-colors-expected.txt: Added.
- fast/css/parsing-lab-colors.html: Added.
- 8:44 AM Changeset in webkit [271361] by
-
- 4 edits in trunk/Tools
[ews] Add python 3 support - part 1
https://bugs.webkit.org/show_bug.cgi?id=220510
Reviewed by Jonathan Bedard.
- CISupport/ews-build/email_unittest.py:
- CISupport/ews-build/loadConfig.py:
- CISupport/ews-build/loadConfig_unittest.py:
- 7:11 AM Changeset in webkit [271360] by
-
- 18 edits12 copies12 adds in trunk
[PlayStation] Add MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=220359
Reviewed by Don Olmstead.
.:
Enable Fullscreen API.
- Source/cmake/OptionsPlayStation.cmake:
Source/WebCore:
Add WidgetPlayStation to support custom cursor.
Load CA certs in CurlSSLHandle::platformInitialize().
- PlatformPlayStation.cmake: Add WidgetPlayStation.cpp
- platform/Widget.cpp: Allow PlayStation specific implementation.
- platform/network/playstation/CurlSSLHandlePlayStation.cpp:
(WebCore::CurlSSLHandle::platformInitialize): Load CA certs.
- platform/playstation/WidgetPlayStation.cpp: Added.
(WebCore::Widget::~Widget):
(WebCore::Widget::setFrameRect):
(WebCore::Widget::paint):
(WebCore::Widget::setFocus):
(WebCore::Widget::setCursor): Call hostWindow()'s setCursor().
(WebCore::Widget::show):
(WebCore::Widget::hide):
(WebCore::Widget::setIsSelected):
Source/WebKit:
Add WKRunloop API to allow an external program to run WebKit's generic runloop.
- UIProcess/API/C/playstation/WKRunLoop.cpp: Added.
(WKRunLoopRunMain):
(WKRunLoopStopMain):
(WKRunLoopCallOnMainThread):
(WKRunLoopInitializeMain):
- UIProcess/API/C/playstation/WKRunLoop.h: Added.
Add private WKPagePaint() to draw contents to bitmap.
Remove unused WKPageSetSize() implementation.
- UIProcess/API/C/playstation/WKPagePrivatePlayStation.cpp:
(drawPageBackground):
(WKPageHandleMouseEvent): Fix button click event handling.
(WKPagePaint):
- UIProcess/API/C/playstation/WKPagePrivatePlayStation.h:
Add WKView API to set view client along with fullscreen API and visibility state API.
- UIProcess/API/C/playstation/WKView.cpp:
(WKViewGetPage):
(WKViewSetSize):
(WKViewSetFocus):
(WKViewSetActive):
(WKViewSetVisible):
(WKViewWillEnterFullScreen):
(WKViewDidEnterFullScreen):
(WKViewWillExitFullScreen):
(WKViewDidExitFullScreen):
(WKViewRequestExitFullScreen):
(WKViewIsFullScreen):
(WKViewSetViewClient):
- UIProcess/API/C/playstation/WKView.h:
- UIProcess/API/C/playstation/WKViewClient.h: Added.
- UIProcess/API/playstation/APIViewClient.h: Added.
- UIProcess/playstation/PageClientImpl.cpp:
- UIProcess/playstation/PageClientImpl.h:
- UIProcess/playstation/PlayStationWebView.cpp:
- UIProcess/playstation/PlayStationWebView.h:
Allow rendering without accelerated compositing.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
- PlatformPlayStation.cmake: Add relevant sources and include directories.
Tools:
Add PlayStation MiniBrowser sources and CMakeLists.txt.
- MiniBrowser/playstation/CMakeLists.txt: Added.
- MiniBrowser/playstation/ImageButton.cpp: Added.
- MiniBrowser/playstation/ImageButton.h: Added.
- MiniBrowser/playstation/MainWindow.cpp: Added.
- MiniBrowser/playstation/MainWindow.h: Added.
- MiniBrowser/playstation/StringUtils.h: Added.
- MiniBrowser/playstation/TitleBar.cpp: Added.
- MiniBrowser/playstation/TitleBar.h: Added.
- MiniBrowser/playstation/ToolkittenUtils.h: Added.
- MiniBrowser/playstation/URLBar.cpp: Added.
- MiniBrowser/playstation/URLBar.h: Added.
- MiniBrowser/playstation/WebContext.cpp: Added.
- MiniBrowser/playstation/WebContext.h: Added.
- MiniBrowser/playstation/WebViewWindow.cpp: Added.
- MiniBrowser/playstation/WebViewWindow.h: Added.
- MiniBrowser/playstation/main.cpp: Added.
(loadLibraryOrExit):
(initialize):
(ApplicationClient::updateApplication):
(main):
- PlatformPlayStation.cmake: Added.
- 6:56 AM Changeset in webkit [271359] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] InlineBox::setHasContent should be called when the inline box actually has some content
https://bugs.webkit.org/show_bug.cgi?id=220245
Reviewed by Antti Koivisto.
Do not call setHasContent unless the inline box has actual content (excluding border and padding).
However the "will stretch the line" logic checks against borders and paddings so move that over to
Quirks::inlineLevelBoxAffectsLineBox.
This change makes Quirks::inlineLevelBoxAffectsLineBox the only client of LineBox::isConsideredEmpty.
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::inlineLevelBoxAffectsLineBox const):
- 5:04 AM Changeset in webkit [271358] by
-
- 7 edits in trunk/Source
WebKit::IPC::Encoder needs definitions of all custom enum values at the Encoder definition time
https://bugs.webkit.org/show_bug.cgi?id=220410
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-01-11
Reviewed by Darin Adler.
Change WTF::EnumTraits to have either EnumTraits::values or EnumTraits::isValidEnum().
Source/WebCore:
Change here needed to conform to the new protocol. Fixes an issue with the template usage
in WebKit::IPC::Encoder, see WebKit and WTF ChangeLogs for discussion.
- platform/ContextMenuItem.h:
(WTF::EnumTraits<WebCore::ContextMenuAction>::isValidEnum):
Source/WebKit:
Fixes the upcoming problem where Encoder::encode(E) function is moved from Encoder
to other class, such as EncoderBase, and where we do not want to add redundant includes.
See the WTF/ ChangeLog for discussiong wrt why they were needed before.
- Scripts/webkit/messages.py:
- Scripts/webkit/tests/MessageNames.h:
(WTF::EnumTraits<IPC::MessageName>::isValidEnum):
Source/WTF:
Previously, if clients wanted to check isValidEnum for custom enum, they had to:
1) Define HasCustomIsValidEnum<TheirEnum> : true_type {};
2) Define new function template isValidEnum() for TheirEnum
3) Ensure that their isValidEnum() was defined before the definition of the call to
the isValidEnum().
This has the problem that isValidEnum() cannot be called in generic code, because
at the definition time generic code typically does not have all the types in scope
that will be used at instantiation time.
Each isValidEnum() is their own function template, C++ does not have function template
specialization.
After the change, clients need to:
1) Define EnumTraits<TheirEnum> { bool isValidEnum(...) }
Fix by using the fact that WTF::EnumTraits is a class and that can have template
specializations.
Consistent with the EnumTraits::values case:
a) Automatic case? --> Define EnumTraits::values
b) Manual/custom case? --> Define EnumTraits::isValidEnum()
- wtf/EnumTraits.h:
(WTF::isValidEnum):
- 3:44 AM Changeset in webkit [271357] by
-
- 4 edits in trunk/Source/WebCore
[css-multicol] Restore placeholders on multicolumn children position changes.
https://bugs.webkit.org/show_bug.cgi?id=218501
Reviewed by Zalan Bujtas.
Whenever there is a placeholder in a multicolumn flow ("column-span: all") it must be ensured that the spanner
associated to that placeholder is properly restored as a child of the multicolumn flow when the element with
"column-span:all" is moved out of the multicolumn flow (for example by removing it, by making it out-of-flow
or because an ancestor becomes another multicolumn flow).
This was smoothly handled by the current code for the in-flow -> out-of-flow transition but not the other way
around, i.e in the case of making the placeholder (or an ancestor) an absolutely positioned element.
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange): restore column spanners then the element becomes
out-of-flow as it's removed from the multicolumn flow.
- rendering/updating/RenderTreeBuilderMultiColumn.cpp:
(WebCore::RenderTreeBuilder::MultiColumn::createFragmentedFlow): Call the newly created method
restoreColumnSpannersForContainer().
(WebCore::RenderTreeBuilder::MultiColumn::restoreColumnSpannersForContainer): Refactored from createFragmentedFlow()
as it's now used by normalizeTreeAfterStyleChange().
- rendering/updating/RenderTreeBuilderMultiColumn.h:
- 3:15 AM Changeset in webkit [271356] by
-
- 2 edits in trunk/Source/WebCore
[css-multicol] Update fragment flow state on element insertion when element position changes
https://bugs.webkit.org/show_bug.cgi?id=202805
Reviewed by Zalan Bujtas.
Let's imagine the following scenario:
<div1 style="columns: 2">
<div2 style="columns:2; position: absolute">
<div3 style="column-span:all">
The generated render tree is more or less the following:
DIV
|RenderMultiColumnFlow
|DIV
|RenderMultiColumnFlow
| |RenderMultiColumnSpannerPlaceholder
|DIV
|RenderMultiColumnSet
both <div1> and <div2> generate RenderMultiColumnFlows because they're multicolumn containers while the <div3> becomes a spanner and leaves
a placeholder in the place where it's supposed to be as it's a "column-span:all". Note that <div2> is absolutely positioned so it isn't really
part of the column flow of <div1> (there is no RenderMultiColumnSet for <div1>). Now if the <div2> becomes a statically positioned container
(i.e. style="position:static") then it should be inserted (actually its whole subtree) in the <div1> multicolumn flow.
That insertion implies doing 2 things, first notify the RenderMultiColumnFlow of <div1> that a new child was inserted and secondly update the
flow state of the subtree which starts in <div2> so they acknowledge <div1> as their enclosing fragment flow. The former was properly done.
However the latter was not done at all, meaning that they would be treated as not belonging to any multicolumn flow when they actually did.
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::childFlowStateChangesAndAffectsParentBlock): call initializeFragmentedFlowStateOnInsertion().
- 2:31 AM Changeset in webkit [271355] by
-
- 5 edits in trunk
[GStreamer] Add support to build with native audio and video
https://bugs.webkit.org/show_bug.cgi?id=220087
Reviewed by Philippe Normand.
.:
- Source/cmake/GStreamerDefinitions.cmake: Enable TEXT_SINK.
- Source/cmake/WebKitFeatures.cmake: Declare TEXT_SINK, NATIVE_VIDEO and NATIVE_AUDIO.
Source/WebCore:
We enable native audio and video in the pipeline depending on the
build flags.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::setPlaybackFlags):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
- 12:43 AM Changeset in webkit [271354] by
-
- 3 edits in trunk/Source/WebKit
[GTK] System font scaling not applied to 'font-size: XXXpt'
https://bugs.webkit.org/show_bug.cgi?id=218450
Reviewed by Žan Doberšek.
Apply the text scale factor as WebPageProxy text zoom factor, instead of changing the default font size in
settings that only applies to default fonts and it was incorrectly calculated.
- UIProcess/API/glib/WebKitSettings.cpp:
(webKitSettingsDispose):
(webKitSettingsConstructed):
- UIProcess/API/glib/WebKitWebView.cpp:
(webkitWebViewConstructed):
(webkitWebViewDispose):
(webkit_web_view_set_zoom_level):
(webkit_web_view_get_zoom_level):
- 12:35 AM Changeset in webkit [271353] by
-
- 9 edits1 add in trunk/Source/WebCore
[GStreamer] Do not use the registry scanner singleton from the UI process
https://bugs.webkit.org/show_bug.cgi?id=220407
Patch by Carlos Garcia Campos <cgarcia@igalia.com> and Philippe Normand <pnormand@igalia.com> on 2021-01-11
Reviewed by Xabier Rodriguez-Calvar.
- platform/RuntimeApplicationChecks.h:
(WebCore::isInNetworkProcess): Simplify ifdefs a bit and allow for glib implementation in a separate file.
- platform/SourcesGLib.txt:
- platform/glib/RuntimeApplicationChecksGLib.cpp: Added.
(WebCore::isInWebProcess): Implementation based on program filename.
(WebCore::isInNetworkProcess): Ditto.
- platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:
(WebCore::GStreamerRegistryScanner::getSupportedDecodingTypes): Static function to get the supported MIME types
for decoding. It uses the singleton if called from the web process or creates a new instance otherwise.
(WebCore::GStreamerRegistryScanner::GStreamerRegistryScanner): Initialize gst when not in the web process.
- platform/graphics/gstreamer/GStreamerRegistryScanner.h:
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::getSupportedTypes): Use GStreamerRegistryScanner::getSupportedDecodingTypes().
- platform/graphics/gstreamer/mse/GStreamerRegistryScannerMSE.cpp:
(WebCore::GStreamerRegistryScannerMSE::getSupportedDecodingTypes): Static function to get the supported MIME
types for decoding. It uses the singleton if called from the web process or creates a new instance otherwise.
- platform/graphics/gstreamer/mse/GStreamerRegistryScannerMSE.h:
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::getSupportedTypes): Use GStreamerRegistryScannerMSE::getSupportedDecodingTypes().
Jan 10, 2021:
- 9:40 PM Changeset in webkit [271352] by
-
- 5 edits in trunk/Source/JavaScriptCore
[JSC] JITCage's Gate mechanism is used in ARM64E even if JITCage is disable
https://bugs.webkit.org/show_bug.cgi?id=220500
Reviewed by Mark Lam.
We should ensure that Gate mechanism just works even if ENABLE(JIT_CAGE) is OFF in ARM64E since
in LLInt we are always using Gate even if ENABLE(JIT_CAGE) is OFF. It makes LLInt code
significantly simpler: we do not want to have multiple implementations for ARM64E for ENABLE(JIT_CAGE) ON/OFF
in LLInt if it is not necessary in terms of performance. And it didn't cause performance regression.
So for simplicity, we are always using Gate in LLInt.
However, when disabling ENABLE(JIT_CAGE), we accidentally disabled Gate mechanism too in LLInt.
It makes ARM64E broken if ENABLE(JIT_CAGE) is OFF. This patch makes Gate work even if ENABLE(JIT_CAGE) is OFF,
and this is the expected design.
- llint/LLIntData.cpp:
(JSC::LLInt::initialize):
- llint/LLIntEntrypoint.cpp:
(JSC::LLInt::setFunctionEntrypoint):
(JSC::LLInt::setEvalEntrypoint):
(JSC::LLInt::setProgramEntrypoint):
(JSC::LLInt::setModuleProgramEntrypoint):
- llint/LLIntThunks.cpp:
- llint/LLIntThunks.h:
- 11:13 AM Changeset in webkit [271351] by
-
- 6 edits in trunk/Source/WebCore
[LFC][IFC] Make "inline level box affects line box geometry" logic more explicit
https://bugs.webkit.org/show_bug.cgi?id=220232
Reviewed by Antti Koivisto.
Since InlineLevelBox::isEmpty makes little sense in case of non-inline-boxes (e.g. <br>), let's make
the following set of changes:
- Introduce InlineLevelBox::setHasContent for inline boxes only (<span>has content</span>, <div>root inlinebox has content</div>)
- Both atomic and line box logic is moved to InlineFormattingContext::Quirks::inlineLevelBoxAffectsLineBox
This is also in preparation for getting rid of the is-considered-empty concept for line/line box.
- layout/inlineformatting/InlineFormattingContext.h:
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):
(WebCore::Layout::LineBoxBuilder::computeLineBoxHeightAndAlignInlineLevelBoxesVertically):
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::inlineLevelBoxAffectsLineBox const):
(WebCore::Layout::InlineFormattingContext::Quirks::shouldInlineLevelBoxStretchLineBox const): Deleted.
- layout/inlineformatting/InlineLineBox.cpp:
(WebCore::Layout::LineBox::InlineLevelBox::setHasContent):
- layout/inlineformatting/InlineLineBox.h:
(WebCore::Layout::LineBox::InlineLevelBox::hasContent const):
(WebCore::Layout::LineBox::InlineLevelBox::isEmpty const): Deleted.
(WebCore::Layout::LineBox::InlineLevelBox::setIsNonEmpty): Deleted.
- 10:09 AM Changeset in webkit [271350] by
-
- 7 edits2 adds in trunk
[LFC][Integration] Factor marked text style collection code out of InlineTextBox
https://bugs.webkit.org/show_bug.cgi?id=220249
Reviewed by Zalan Bujtas.
Source/WebCore:
This makes it possible to use the code from LFC painting.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::MarkedTextStyle::areBackgroundMarkedTextStylesEqual): Deleted.
(WebCore::InlineTextBox::MarkedTextStyle::areForegroundMarkedTextStylesEqual): Deleted.
(WebCore::InlineTextBox::MarkedTextStyle::areDecorationMarkedTextStylesEqual): Deleted.
(WebCore::InlineTextBox::StyledMarkedText::StyledMarkedText): Deleted.
(WebCore::InlineTextBox::computeStyleForUnmarkedMarkedText const): Deleted.
(WebCore::InlineTextBox::resolveStyleForMarkedText): Deleted.
(WebCore::InlineTextBox::subdivideAndResolveStyle): Deleted.
(WebCore::InlineTextBox::coalesceAdjacentMarkedTexts): Deleted.
- rendering/InlineTextBox.h:
- rendering/MarkedTextStyle.cpp: Added.
(WebCore::resolveStyleForMarkedText):
(WebCore::computeStyleForUnmarkedMarkedText):
(WebCore::subdivideAndResolveStyle):
(WebCore::coalesceAdjacentMarkedTexts):
- rendering/MarkedTextStyle.h: Added.
(WebCore::MarkedTextStyle::areBackgroundMarkedTextStylesEqual):
(WebCore::MarkedTextStyle::areForegroundMarkedTextStylesEqual):
(WebCore::MarkedTextStyle::areDecorationMarkedTextStylesEqual):
(WebCore::StyledMarkedText::StyledMarkedText):
LayoutTests:
Mark http/wpt/css/css-highlight-api/highlight-text-cascade.html failing.
This test requires CSS4 highlight pseudo element inheritance (https://bugs.webkit.org/show_bug.cgi?id=220325)
which we (or anyone else) don't support.
It was passing by accident because the code was getting '::highlight' pseudo element style from a wrong element
(containing block instead of inline element) in certain cases. Renderer was found via InlineBox parent() which doesn't
match render tree parent in case inline culling optimization is active. The correct way is to use render tree parent.
- 4:04 AM Changeset in webkit [271349] by
-
- 14 edits in trunk/Source/WebCore
Remove InlineBox::hasSelectedChildren bit
https://bugs.webkit.org/show_bug.cgi?id=220240
Reviewed by Sam Weinig.
It is only needed for selection gap painting and easily computed.
- rendering/ComplexLineLayout.cpp:
(WebCore::ComplexLineLayout::constructLine):
- rendering/InlineBox.h:
(WebCore::InlineBox::setCanHaveLeftExpansion):
(WebCore::InlineBox::InlineBoxBitfields::InlineBoxBitfields):
(WebCore::InlineBox::hasEllipsisBox const):
(WebCore::InlineBox::canHaveLeftExpansion const):
(WebCore::InlineBox::hasSelectedChildren const): Deleted.
(WebCore::InlineBox::setHasSelectedChildren): Deleted.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::inlineSelectionGaps):
- rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::setSelectionState): Deleted.
- rendering/RenderLineBreak.h:
- rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::setSelectionState): Deleted.
- rendering/RenderListMarker.h:
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::setSelectionState): Deleted.
- rendering/RenderReplaced.h:
- rendering/RenderText.cpp:
(WebCore::RenderText::setSelectionState):
- rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::setSelectionState): Deleted.
- rendering/RenderTextLineBoxes.h:
- rendering/RootInlineBox.h: