Timeline
Dec 16, 2019:
- 11:15 PM Changeset in webkit [253611] by
-
- 5 edits in trunk/Tools
test-lldb-webkit: Run in CI
https://bugs.webkit.org/show_bug.cgi?id=205315
Reviewed by Alexey Proskuryakov.
- BuildSlaveSupport/build.webkit.org-config/factories.py:
(TestFactory.init): Add RunLLDBWebKitTests to Mac test runs.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
- BuildSlaveSupport/build.webkit.org-config/steps.py:
(RunPythonTests): Generalized step for all Python tests.
(RunPythonTests.start):
(RunWebKitPyTests): Step for running test-webkitpy.
(RunWebKitPyTests.init):
(RunWebKitPyTests.start):
(RunLLDBWebKitTests): Step for running test-lldb-webkit.
- BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
- 9:36 PM Changeset in webkit [253610] by
-
- 6 edits3 adds in trunk
WebGLRenderingContext.texImage2D() should respect EXIF orientation
https://bugs.webkit.org/show_bug.cgi?id=205141
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-12-16
Reviewed by Simon Fraser.
Source/WebCore:
If image orientation is not the default, WebGLRenderingContext.texImage2D()
needs to draw this image into an ImageBuffer, makes a temporary Image
from the ImageBuffer then draw this temporary Image to the WebGL texture.
Test: fast/images/exif-orientation-webgl-texture.html
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::texSubImage2D):
(WebCore::WebGLRenderingContextBase::texImage2D):
- platform/graphics/BitmapImage.h:
- platform/graphics/Image.h:
(WebCore::Image::orientation const):
LayoutTests:
The test page uses images with different EXIF orientation. The expected
page uses a single image with no EXIF orientation then it transforms the
<canvas> elements such that it matches the image in the test page.
WebGLRenderingContext uses a trick when drawing an SVG image or images
with EXIF orientation to a WebGL texture. It draws the Image to an Image-
Buffer, creates another Image out of the ImageBuffer and then draws the
other Image to the WebGL texture.
But there can be small glitches between drawing an Image directly versus
doing the ImageBuffer trick. So the expected page will use an SVG image
to ensure the same code path is used for both the test and the expected
pages.
This SVG image includes the jpeg image with no EXIF orientation but as a
data uri. Also the script has to wait after loading the SVG image till
the bitmap image is loaded from the data uri encoded data.
- fast/images/exif-orientation-webgl-texture-expected.html: Added.
- fast/images/exif-orientation-webgl-texture.html: Added.
- fast/images/resources/webgl-draw-image.js: Added.
- platform/win/TestExpectations:
All webgl tests are skipped on Windows.
- 7:26 PM Changeset in webkit [253609] by
-
- 10 edits in trunk/Source/JavaScriptCore
Rolling out: r253581 is failing tests on a release build.
https://bugs.webkit.org/show_bug.cgi?id=205279
<rdar://problem/57971874>
Not reviewed.
- interpreter/Interpreter.cpp:
(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeModuleProgram):
- interpreter/InterpreterInlines.h:
(JSC::Interpreter::execute):
- jsc.cpp:
(startTimeoutThreadIfNeeded):
(runJSC):
(jscmain):
(startTimeoutTimer): Deleted.
(timeoutCheckCallback): Deleted.
(initializeTimeoutIfNeeded): Deleted.
- runtime/JSCConfig.h:
- runtime/VM.h:
(JSC::VM::notifyNeedDebuggerBreak):
(JSC::VM::notifyNeedShellTimeoutCheck): Deleted.
- runtime/VMTraps.cpp:
(JSC::VMTraps::handleTraps):
- runtime/VMTraps.h:
(JSC::VMTraps::Mask::Mask):
(JSC::VMTraps::Mask::allEventTypes):
(JSC::VMTraps::Mask::init):
(JSC::VMTraps::interruptingTraps): Deleted.
- tools/VMInspector.cpp:
(JSC::VMInspector::forEachVM): Deleted.
- tools/VMInspector.h:
- 6:27 PM Changeset in webkit [253608] by
-
- 6 edits in trunk/Source/JavaScriptCore
ASSERTION FAILED: length <= maximumLength in js-fixed-array-out-of-memory.js
https://bugs.webkit.org/show_bug.cgi?id=205259
<rdar://problem/57978411>
Reviewed by Mark Lam.
JSImmutableButterfly has moderate size limit on its length, while JSFixedArray does not.
We should check this maximumLength when creating it in Spread. And if it exceeds, we should
throw OOM error.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileSpread):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileSpread):
- runtime/ArrayConventions.h:
- runtime/IndexingHeader.h:
- runtime/JSImmutableButterfly.h:
(JSC::JSImmutableButterfly::tryCreate):
(JSC::JSImmutableButterfly::allocationSize):
- 5:58 PM Changeset in webkit [253607] by
-
- 17 edits1 delete in branches/safari-609.1.13-branch/Source
Apply patch. rdar://problem/57990824
- 5:57 PM Changeset in webkit [253606] by
-
- 2 edits in branches/safari-609.1.13-branch/Source/ThirdParty/ANGLE
Revert r253333. rdar://problem/57990824
- 5:57 PM Changeset in webkit [253605] by
-
- 2 edits in branches/safari-609.1.13-branch/Source/ThirdParty/ANGLE
Revert r253383. rdar://problem/57990824
- 5:57 PM Changeset in webkit [253604] by
-
- 6 edits in branches/safari-609.1.13-branch/Source
Revert r253499. rdar://problem/57990824
- 5:23 PM Changeset in webkit [253603] by
-
- 4 edits in branches/safari-608-branch/Source/WebKit
Cherry-pick r250461. rdar://problem/57979214
Adopt new UIWebGeolocationPolicyDecider SPI to pass a view instead of a window
https://bugs.webkit.org/show_bug.cgi?id=202329
<rdar://problem/25963823>
Reviewed by Wenson Hsieh.
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/ios/WKGeolocationProviderIOS.mm: (-[WKGeolocationProviderIOS geolocationAuthorizationGranted]):
- UIProcess/ios/WKGeolocationProviderIOSObjCSecurityOrigin.mm: (WebKit::decidePolicyForGeolocationRequestFromOrigin): Switch to newer SPI that takes a UIView instead of a UIWindow, so that UIWebGeolocationPolicyDecider can find the correct presenting view controller.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250461 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:16 PM Changeset in webkit [253602] by
-
- 4 edits in trunk
-[UIWKDocumentContext markedTextRange] is wrong when the caret is not at the start of marked text
https://bugs.webkit.org/show_bug.cgi?id=205302
Reviewed by Tim Horton.
Source/WebKit:
Makes a few minor adjustments around marked text handling in document editing context request code.
- In the case where markedTextRects are requested, automatically expand the context range (i.e. contextBefore
and contextAfter) to encompass the marked text. This fixes UIWKDocumentContext's logic that computes the
marked text range by subtractingcontextBeforestring's length fromselectedRangeInMarkedText's location.
(Note that this still requires an adjustment in UIKit to actually respect
selectedRangeInMarkedTextwhen
computingmarkedTextRange. This is tracked in <rdar://problem/57338528>).
- Stop clamping compositionStart and compositionEnd to the range of interest (in this case, the selection
range, which is a collapsed caret selection). This makes the composition range seem as if it were empty, which
prevents us from computing the marked text string (and importantly, its length).
- Flip the arguments to
distanceBetweenPositions, such that we end up with a positive value for
selectedRangeInMarkedTextin the case wherecompositionStartis beforestartOfRangeOfInterestInSelection.
Test: DocumentEditingContext.RequestMarkedTextRectsAndTextOnly
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::requestDocumentEditingContext):
Tools:
Add an API test to exercise the case where the options
UIWKDocumentRequestMarkedTextRectsand
UIWKDocumentRequestTextare used to grab marked text rects.
- TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:
(-[UIWKDocumentContext contextBeforeLength]):
(-[UIWKDocumentContext markedTextLength]):
(-[UIWKDocumentContext markedTextRange]):
Work around a bug that should be fixed by <rdar://problem/57338528>, so that the new API test can pass on
shipping builds of iOS.
- 5:12 PM Changeset in webkit [253601] by
-
- 2 edits in trunk/Tools
Unreviewed follow-up fix.
<rdar://problem/57989146> jsc-ta-payload fails consistently on YukonE Device Builds
Bug caused by <rdar://problem/57453545> [safari-root] CrashTracer: [USER] jsc at jsc: jscmain
run-jsc-stress-tests still looked for jsc in
JavaScriptCore.framework/Resources. Change this to also look in
JavaScriptCore.framework/Helpers.
- Scripts/run-jsc-stress-tests:
- 4:55 PM Changeset in webkit [253600] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ Catalina wk1 ] editing/mac/input/firstrectforcharacterrange-styled.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205314
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 4:47 PM Changeset in webkit [253599] by
-
- 4 edits in trunk/Tools
results.webkit.org: Make default limit 1000
https://bugs.webkit.org/show_bug.cgi?id=205305
Reviewed by Stephanie Lewis.
We have ~200 commits a week in WebKit, since we don't quite report
results for every commit, a limit of 1000 translates to about a 1.5 months
of data. Any more than this and the network request for results becomes
noticeably slow.
- resultsdbpy/resultsdbpy/controller/failure_controller.py:
(FailureController): Change default limit from 5000 to 1000.
- resultsdbpy/resultsdbpy/controller/suite_controller.py:
(SuiteController): Change default limit from 5000 to 1000.
- resultsdbpy/resultsdbpy/controller/test_controller.py:
(TestController): Change default limit from 5000 to 1000.
- 4:31 PM Changeset in webkit [253598] by
-
- 7 edits in trunk/Source/JavaScriptCore
[JSC] Put non-dynamic scope cells in IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=205311
Reviewed by Mark Lam.
Put non-dynamic scope cells in IsoSubspace.
- JSWithScope
- StrictEvalActivation
- runtime/JSScope.h:
(JSC::JSScope::subspaceFor):
- runtime/JSSymbolTableObject.h:
- runtime/JSWithScope.h:
- runtime/StrictEvalActivation.h:
- runtime/VM.cpp:
- runtime/VM.h:
- 4:17 PM Changeset in webkit [253597] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ iOS ] scrollingcoordinator/ios/scroll-position-after-reattach.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205309
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 4:04 PM Changeset in webkit [253596] by
-
- 1 copy in branches/safari-609.1.13-branch
New branch.
- 4:02 PM Changeset in webkit [253595] by
-
- 6 edits in trunk/Source/WebKit
[iOS] Issue mach lookup extension to diagnostics daemon
https://bugs.webkit.org/show_bug.cgi?id=205292
Reviewed by Brent Fulgham.
For internal installs, issue a mach lookup extension to the diagnostics daemon.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::isInternalInstall):
(WebKit::WebProcessPool::platformInitializeWebProcess):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- 4:02 PM Changeset in webkit [253594] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [iOS] accessibility/smart-invert-reference.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205308
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 4:01 PM Changeset in webkit [253593] by
-
- 8 edits in trunk/Source
Versioning.
- 3:33 PM Changeset in webkit [253592] by
-
- 3 edits in trunk/LayoutTests/imported/w3c
REGRESSION: [ Mac wk2 ] imported/w3c/web-platform-tests/service-workers/service-worker/update-no-cache-request-headers.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205286
<rdar://problem/57976344>
Reviewed by Alexey Proskuryakov.
The test triggers a registration update and then expects registration.installing to be non-null
once the registration update promise is resolved. This is only true if the content of the service
worker script is different since last update. The script included a timestamp to try and make
the script different every time but it would sometimes not suffice if the update happens quickly
enough. To address the issue, include a UUID in the script instead of a timestamp.
Upstream PR: https://github.com/web-platform-tests/wpt/pull/20797
- web-platform-tests/service-workers/service-worker/resources/test-request-headers-worker.js:
- web-platform-tests/service-workers/service-worker/resources/test-request-headers-worker.py:
(main):
- 3:28 PM Changeset in webkit [253591] by
-
- 23 edits1 add in trunk/Source/WebInspectorUI
Web Inspector: add TabNavigation diagnostic event and related hooks
https://bugs.webkit.org/show_bug.cgi?id=205138
<rdar://problem/57855456>
Reviewed by Devin Rousso.
This patch adds a new recorder for the TabNavigation diagnostic event.
The bulk of this patch is to find all callsites that can possibly change the active
tab and annotate them with the type of interaction (tab click, link click,
keyboard shortcut, inspect, and others). This patch was developed through
trial and error by logging the diagnostic events and debugging any scenarios
where a tab navigation is not correctly annotated with the initiating interaction.
- UserInterface/Main.html: Add new file.
- UserInterface/Base/Main.js:
(WI.contentLoaded): Register new recorder.
(WI._handleSettingsKeyboardShortcut): Annotate as keyboard shortcut.
- Add options argument to most WI.show*Tab functions, and forward to the underlying
TabBrowser or TabBar calls. This allows initiatorHint to be used in these cases.
- Add other annotations to linkifyElement
- UserInterface/Views/TabBrowser.js:
(WI.TabBrowser.prototype.showTabForContentView):
(WI.TabBrowser.prototype._tabBarItemSelected):
- Try to infer an initiator for the tab navigation from TabBrowser API arguments or from TabBar's event.
- Add an enum with TabNavigationInitiator values.
- UserInterface/Base/DOMUtilities.js:
Clickable element links should be reported as link clicks. Add an annotation
so that it isn't reported as "Inspect" (due to going through DOMManager.inspectElement).
- UserInterface/Controllers/CallFrameTreeController.js:
(WI.CallFrameTreeController):
(WI.CallFrameTreeController.prototype._showSourceCodeLocation):
This is mainly used by Canvas tab. Annotate call frame links as link clicks.
- UserInterface/Controllers/DOMManager.js:
(WI.DOMManager.prototype.inspectElement):
Accept an options argument. This is used to forward the initiatorHint to
the listener of this event, WI._domNodeWasInspected, so it can forward the
initiatorHint further on.
- UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.setTimelineProfilingEnabled):
(InspectorFrontendAPI.showConsole):
(InspectorFrontendAPI.showResources):
(InspectorFrontendAPI.showTimelines):
(InspectorFrontendAPI.showMainResourceForFrame):
Annotate these as FrontendAPI calls. Mainly used by Develop menu items in Safari.
- UserInterface/Views/ContextMenuUtilities.js:
(WI.appendContextMenuItemsForSourceCode):
(WI.appendContextMenuItemsForURL):
Annotate as context menu.
- UserInterface/Views/DOMNodeTreeElement.js:
(WI.DOMNodeTreeElement):
(WI.DOMNodeTreeElement.prototype.populateContextMenu):
Annotate as context menu.
- UserInterface/Views/DOMTreeElement.js:
(WI.DOMTreeElement.prototype._buildTagDOM):
- UserInterface/Views/DefaultDashboardView.js:
(WI.DefaultDashboardView.prototype._resourcesItemWasClicked):
(WI.DefaultDashboardView.prototype._networkItemWasClicked):
(WI.DefaultDashboardView.prototype._timelineItemWasClicked):
(WI.DefaultDashboardView.prototype._consoleItemWasClicked):
Annotate as dashboard.
- UserInterface/Views/LegacyTabBar.js:
(WI.LegacyTabBar.prototype.set selectedTabBarItem):
Include the inferred initiator in the event that is dispatched.
(WI.LegacyTabBar.prototype.selectTabBarItemWithInitiator):
Added. This is a convenience method that temporarily sets the
initiator before invoking the setter (which reads the initator).
(WI.LegacyTabBar.prototype._handleMouseDown):
(WI.LegacyTabBar.prototype._handleClick):
(WI.LegacyTabBar.prototype._handleNewTabClick):
Treat these as "tab clicks".
- UserInterface/Views/TabBar.js:
(WI.TabBar.prototype.set selectedTabBarItem):
(WI.TabBar.prototype.selectTabBarItemWithInitiator):
(WI.TabBar.prototype._handleMouseDown):
(WI.TabBar.prototype._handleClick):
Changes from LegacyTabBar have been copied to this version, as it's a
drop-in replacement.
- UserInterface/Views/LogContentView.js:
(WI.LogContentView.prototype._showConsoleTab):
Treat the console chevron as a "button click".
- UserInterface/Views/NewTabContentView.js:
(WI.NewTabContentView.prototype._createNewTabWithType):
Treat each tab button as a "button click".
- UserInterface/Views/RecordingActionTreeElement.js:
(WI.RecordingActionTreeElement.prototype.populateContextMenu):
Annotate as context menu.
- UserInterface/Views/ResourceTimelineDataGridNode.js:
(WI.ResourceTimelineDataGridNode.prototype._dataGridNodeGoToArrowClicked):
Annotate as link click.
- UserInterface/Views/SearchResultTreeElement.js:
(WI.SearchResultTreeElement):
(WI.SearchResultTreeElement.prototype.populateContextMenu):
Annotate as context menu.
- UserInterface/Views/SourceCodeTextEditor.js:
(WI.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
Annotate as context menu.
(WI.SourceCodeTextEditor.prototype._showPopoverForObject.):
(WI.SourceCodeTextEditor.prototype._showPopoverForObject):
Annotate elements in popover as link click.
- UserInterface/Views/SourceCodeTreeElement.js:
(WI.SourceCodeTreeElement):
(WI.SourceCodeTreeElement.prototype._handleToggleBlackboxedImageElementClicked):
Annotate as context menu.
- UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._populateIconElementContextMenu):
Annotate as context menu.
- UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty.prototype._setupJumpToSymbol):
Annotate as link click.
- 3:17 PM Changeset in webkit [253590] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r253312): imported/w3c/web-platform-tests/content-security-policy/reporting/report-same-origin-with-cookies.html is super flaky
https://bugs.webkit.org/show_bug.cgi?id=205216
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 3:06 PM Changeset in webkit [253589] by
-
- 2 edits in trunk/LayoutTests
[ Catalina ] imported/w3c/web-platform-tests/css/css-images/multiple-position-color-stop-conic.html is failing
https://bugs.webkit.org/show_bug.cgi?id=204250
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 3:02 PM Changeset in webkit [253588] by
-
- 10 edits in trunk/Source/JavaScriptCore
[JSC] Put DebuggerScope in IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=205303
Reviewed by Mark Lam.
Put DebuggerScope in IsoSubspace, and refine empty
subspaceForimplementations.
- bytecode/CodeBlock.h:
(JSC::CodeBlock::subspaceFor):
- bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedCodeBlock::subspaceFor):
- debugger/DebuggerScope.h:
- runtime/AbstractModuleRecord.h:
(JSC::AbstractModuleRecord::subspaceFor):
- runtime/JSArrayBufferView.h:
(JSC::JSArrayBufferView::subspaceFor):
- runtime/JSInternalFieldObjectImpl.h:
(JSC::JSInternalFieldObjectImpl::subspaceFor):
- runtime/JSWrapperObject.h:
(JSC::JSWrapperObject::subspaceFor):
- runtime/VM.cpp:
- runtime/VM.h:
- 3:01 PM Changeset in webkit [253587] by
-
- 4 edits in trunk/Tools
python3: wpt exporter should parse a patch as bytes
https://bugs.webkit.org/show_bug.cgi?id=205243
Reviewed by Stephanie Lewis.
- Scripts/webkitpy/common/checkout/scm/scm_mock.py:
(MockSCM.create_patch): Patches are byte arrays.
- Scripts/webkitpy/w3c/test_exporter.py:
(WebPlatformTestExporter._wpt_patch): Diff should be byte array.
(WebPlatformTestExporter._find_filename): Ditto.
(WebPlatformTestExporter._is_ignored_file): Filenames will be encoded bytes.
(WebPlatformTestExporter._strip_ignored_files_from_diff): Diff should be byte array.
(WebPlatformTestExporter.write_git_patch_file): Ditto.
- Scripts/webkitpy/w3c/test_exporter_unittest.py:
(TestExporterTest.MockGit): Diff should be byte array.
(TestExporterTest.test_ignore_changes_to_expected_file): Ditto.
- 2:48 PM Changeset in webkit [253586] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ Mojave+ WK2 ] inspector/canvas/requestShaderSource-webgpu.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=205301
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 2:45 PM Changeset in webkit [253585] by
-
- 7 edits in trunk/Source/JavaScriptCore
[JSC] Move JSCell::subspaceFor to JSObject::subspaceFor, removing destructibleCellSpace
https://bugs.webkit.org/show_bug.cgi?id=205300
Reviewed by Mark Lam.
All non-JSObject JSCells have their own IsoSubspace / CompleteSubspace. We remove JSCell::subspaceFor function,
and move it to JSObject::subspaceFor. And we remove destructibleCellSpace since nobody uses it.
- runtime/JSCell.h:
- runtime/JSCellInlines.h:
(JSC::JSCell::subspaceFor): Deleted.
- runtime/JSObject.h:
- runtime/JSObjectInlines.h:
(JSC::JSObject::subspaceFor):
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
- 2:38 PM Changeset in webkit [253584] by
-
- 2 edits in trunk/LayoutTests
[ Catalina ] webaudio/silence-after-playback.html is failing on Catalina
https://bugs.webkit.org/show_bug.cgi?id=204247
Unreviewed test gardneing.
- platform/mac/TestExpectations:
- 2:36 PM Changeset in webkit [253583] by
-
- 7 edits in trunk
TextManipulationController should observe newly inserted or displayed contents
https://bugs.webkit.org/show_bug.cgi?id=205203
<rdar://problem/56567020>
Reviewed by Wenson Hsieh.
Source/WebCore:
This patch makes TextManipulationController detect newly inserted or displayed contents and invoke
the callbacks with the newly found items.
To do this, we add a new WeakHashSet to TextManipulationController to which an element is added
whenever its renderer is created. Because it's expensive (and not safe) to find paragraphs around
a newly inserted content, we schedule a new event loop task to do this work.
To find newly inserted paragraphs, we first expand the element's boundary to its start and end of
paragraphs. Because each element in this paragraph could have been added in the weak hash set, we
use hash map to de-duplicate start and end positions. We also filter out any element whose parent
is also in the weak hash set since they would simply find inner paragraphs.
Tests: TextManipulation.StartTextManipulationFindNewlyInsertedParagraph
TextManipulation.StartTextManipulationFindNewlyDisplayedParagraph
TextManipulation.StartTextManipulationFindSameParagraphWithNewContent
- dom/TaskSource.h:
(WebCore::TaskSource::InternalAsyncTask): Added.
- editing/TextManipulationController.cpp:
(WebCore::TextManipulationController::startObservingParagraphs):
(WebCore::TextManipulationController::observeParagraphs): Extracted out of startObservingParagraphs.
(WebCore::TextManipulationController::didCreateRendererForElement): Added. Gets called whenever
a new RenderElement is created.
(WebCore::makePositionTuple): Added.
(WebCore::makeHashablePositionRange): Added.
(WebCore::TextManipulationController::scheduleObservartionUpdate): Added.
- editing/TextManipulationController.h:
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::createRenderer):
Tools:
Added tests for detecting newly inserted or displayed contents in WKTextManipulation SPI.
- TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
(-[TextManipulationDelegate initWithItemCallback]):
(-[TextManipulationDelegate _webView:didFindTextManipulationItem:]):
(TestWebKitAPI::TEST):
- 2:35 PM Changeset in webkit [253582] by
-
- 2 edits in trunk/Tools
Organize DocumentEditingContext.mm under a more descriptive suite
https://bugs.webkit.org/show_bug.cgi?id=205284
Reviewed by Tim Horton.
Register with the runtime all of the DocumentEditingContext.mm tests under the suite
DocumentEditingContext as opposed to the suite WebKit (as they are now). This makes
it easy to run all of these tests using:
run-api-tests DocumentEditingContext
This is more useful than letting them stay categorized under the WebKit suite. If it
turns out this change interferes with the workflow of others then we can revert this
change and look to expose Google Test's regex filtering in run-api-tests to achieve
a similiar result given that these tests have the same prefix.
- TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:
(TEST):
- 2:34 PM Changeset in webkit [253581] by
-
- 10 edits in trunk/Source/JavaScriptCore
Changed jsc shell timeout mechanism to leverage the VMTraps and use CPUTime.
https://bugs.webkit.org/show_bug.cgi?id=205279
<rdar://problem/57971874>
Reviewed by Saam Barati.
This fixes all the timeouts that occur due to CPU time starvation when
running JSC tests on a debug build.
What this means is that the timeout mechanism may trigger asynchronous
OSR exits. If a test requires no OSR exits, that test should
requireOption("--usePollingTraps=true") so that the VMTraps will use its
polling implementation instead.
I've tested this with a full run of the JSC stress tests with a debug
build and saw 0 timeouts. I've also tested it with a contrived tests that
loops forever, and saw the expected timeout crash.
Will look into re-tuning needed timeout value (and other JSC tests timeout
cleanup) in https://bugs.webkit.org/show_bug.cgi?id=205298.
- interpreter/Interpreter.cpp:
(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeModuleProgram):
- interpreter/InterpreterInlines.h:
(JSC::Interpreter::execute):
- jsc.cpp:
(timeoutCheckCallback):
(initializeTimeoutIfNeeded):
(startTimeoutThreadIfNeeded):
(runJSC):
(jscmain):
- runtime/JSCConfig.h:
- runtime/VM.h:
(JSC::VM::notifyNeedShellTimeoutCheck):
- runtime/VMTraps.cpp:
(JSC::VMTraps::handleTraps):
- runtime/VMTraps.h:
(JSC::VMTraps::Mask::Mask):
(JSC::VMTraps::Mask::allEventTypes):
(JSC::VMTraps::Mask::init):
(JSC::VMTraps::interruptingTraps):
- tools/VMInspector.cpp:
(JSC::VMInspector::forEachVM):
- tools/VMInspector.h:
- 2:33 PM Changeset in webkit [253580] by
-
- 2 edits in trunk/Tools
Use Ahem font to ensure consistent test results
https://bugs.webkit.org/show_bug.cgi?id=205283
Reviewed by Wenson Hsieh.
To avoid test failures due to future font metrics changes make use of the Ahem font
for the tests in DocumentEditingContext.m. Ahem is a font with well-defined properties
that when used correclty ensures consistent font rendering results.
- TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:
(TEST):
- 2:32 PM Changeset in webkit [253579] by
-
- 2 edits in trunk/LayoutTests
[ Catalina ] editing/mac/selection/context-menu-select-editability.html is failing on Catalina
https://bugs.webkit.org/show_bug.cgi?id=204246
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 2:32 PM Changeset in webkit [253578] by
-
- 6 edits in trunk
Reproducible case of backwards nextParagraph returning a position ahead of the input position
https://bugs.webkit.org/show_bug.cgi?id=196127
<rdar://problem/49135890>
Reviewed by Wenson Hsieh.
Source/WebCore:
Fix up the code to handle:
- When the specified position is at a paragraph boundary.
For this case, we do what we do now for the !withinUnitOfGranularity case.
- When the specified position is actually inside a paragraph:
For this case, we need to return the end of the previous paragraph or the
start of the next paragraph depending on whether we are selecting forward
or backwards, respectively.
- editing/VisibleUnits.cpp:
(WebCore::nextParagraphBoundaryInDirection):
Source/WebKit:
Remove workaround now that WebCore::nextParagraphBoundaryInDirection() behaves correctly.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::moveByGranularityRespectingWordBoundary):
Tools:
Add a test to ensure that requesting two paragraphs around the insertion point that is
not in a paragraph still works.
- TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:
(TEST):
- 2:28 PM WebKitGTK/2.26.x edited by
- (diff)
- 2:24 PM Changeset in webkit [253577] by
-
- 3 edits in trunk/Tools
lldbwebkittester: Conform with testing binary format
https://bugs.webkit.org/show_bug.cgi?id=205271
Reviewed by Alexey Proskuryakov.
lldbwebkittester should be built the same way ImageDiff, TestWebKitAPI and WebKitTestRunner are.
This also paves the way for adding lldb tests against WebCore and WebKit, since lldbwebkittestrunner
is now packaged with the rest of WebKit's testing binaries.
- Scripts/build-lldbwebkittester:
- Scripts/build-webkit:
- 2:17 PM Changeset in webkit [253576] by
-
- 25 edits2 copies1 move1 add1 delete in trunk
[JSC] Remove ArrayBufferNeuteringWatchpointSet
https://bugs.webkit.org/show_bug.cgi?id=205194
Reviewed by Saam Barati.
Source/JavaScriptCore:
This patch removes ArrayBufferNeuteringWatchpointSet, and instead putting InlineWatchpointSet directly into ArrayBuffer, since this is much simpler.
The main reason why we are using ArrayBufferNeuteringWatchpointSet is not to increase sizeof(ArrayBuffer). But this complicates the implementation.
So, not to increase sizeof(ArrayBuffer), we use PackedRefPtr in ArrayBuffer, which is RefPtr while the pointer is packed. This gives us 8 bytes which is
suitable for placing InlineWatchpointSet without increasing sizeof(ArrayBuffer). We also convert Function<> in ArrayBuffer to PackedRefPtr<SharedTask<>>,
and share Gigacage::free destructor by multiple ArrayBuffer. This is memory efficient since this is the common case, and we can pack this field easily.
- API/JSTypedArray.cpp:
(JSObjectMakeTypedArrayWithBytesNoCopy):
(JSObjectMakeArrayBufferWithBytesNoCopy):
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- dfg/DFGDesiredWatchpoints.cpp:
(JSC::DFG::ArrayBufferViewWatchpointAdaptor::add):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::tryGetFoldableView):
- runtime/ArrayBuffer.cpp:
(JSC::ArrayBuffer::primitiveGigacageDestructor):
(JSC::SharedArrayBufferContents::~SharedArrayBufferContents):
(JSC::ArrayBufferContents::destroy):
(JSC::ArrayBufferContents::reset):
(JSC::ArrayBufferContents::tryAllocate):
(JSC::ArrayBufferContents::makeShared):
(JSC::ArrayBufferContents::shareWith):
(JSC::ArrayBuffer::createAdopted):
(JSC::ArrayBuffer::transferTo):
(JSC::ArrayBuffer::neuter):
(JSC::ArrayBuffer::notifyIncommingReferencesOfTransfer):
- runtime/ArrayBuffer.h:
(JSC::ArrayBuffer::neuteringWatchpointSet):
- runtime/ArrayBufferNeuteringWatchpointSet.cpp: Removed.
- runtime/FileBasedFuzzerAgent.cpp:
(JSC::FileBasedFuzzerAgent::getPredictionInternal):
- runtime/FileBasedFuzzerAgentBase.cpp:
(JSC::FileBasedFuzzerAgentBase::createLookupKey):
- runtime/PredictionFileCreatingFuzzerAgent.cpp:
(JSC::PredictionFileCreatingFuzzerAgent::getPredictionInternal):
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
- wasm/js/JSWebAssemblyMemory.cpp:
(JSC::JSWebAssemblyMemory::buffer):
Source/WebCore:
- bindings/js/SerializedScriptValue.h:
(WebCore::SerializedScriptValue::decode):
Source/WTF:
This patch adds PackedRef and PackedRefPtr. They are Ref and RefPtr, but its internal pointer is packed.
So we can represent them in 6 bytes with 1 byte alignment.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/Packed.h:
(WTF::alignof):
- wtf/PackedRef.h: Copied from Source/JavaScriptCore/runtime/ArrayBufferNeuteringWatchpointSet.h.
- wtf/PackedRefPtr.h: Renamed from Source/JavaScriptCore/runtime/ArrayBufferNeuteringWatchpointSet.h.
- wtf/RefPtr.h:
(WTF::RefPtr::operator UnspecifiedBoolType const):
(WTF::RefPtr::unspecifiedBoolTypeInstance const):
Tools:
Add tests for PackedRef and PackedRefPtr.
- TestWebKitAPI/CMakeLists.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/PackedRef.cpp: Added.
(TestWebKitAPI::TEST):
(TestWebKitAPI::passWithRef):
(TestWebKitAPI::PackedRefCheckingRefLogger::PackedRefCheckingRefLogger):
(TestWebKitAPI::PackedRefCheckingRefLogger::ref):
(TestWebKitAPI::PackedRefCheckingRefLogger::deref):
(TestWebKitAPI::DerivedPackedRefCheckingRefLogger::DerivedPackedRefCheckingRefLogger):
- TestWebKitAPI/Tests/WTF/PackedRefPtr.cpp: Copied from Tools/TestWebKitAPI/Tests/WTF/RefPtr.cpp.
(TestWebKitAPI::TEST):
(TestWebKitAPI::f1):
(TestWebKitAPI::ConstRefCounted::create):
(TestWebKitAPI::returnConstRefCountedRef):
(TestWebKitAPI::returnRefCountedRef):
(TestWebKitAPI::PackedRefPtrCheckingRefLogger::PackedRefPtrCheckingRefLogger):
(TestWebKitAPI::loggerName):
(TestWebKitAPI::PackedRefPtrCheckingRefLogger::ref):
(TestWebKitAPI::PackedRefPtrCheckingRefLogger::deref):
- TestWebKitAPI/Tests/WTF/RefPtr.cpp:
(TestWebKitAPI::f1):
(TestWebKitAPI::returnConstRefCountedRef):
(TestWebKitAPI::returnRefCountedRef):
- 2:15 PM Changeset in webkit [253575] by
-
- 2 edits in trunk/LayoutTests
Mark animations/leak-document-with-css-animation.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=205299
- 1:44 PM Changeset in webkit [253574] by
-
- 2 edits in trunk/Source/WebCore
Ensure consistent sorting of identical track names
https://bugs.webkit.org/show_bug.cgi?id=204825
Patch by Doug Kelly <Doug Kelly> on 2019-12-16
Reviewed by Eric Carlson.
When sorting TextTracks, if the menu text is the same, fall back to the order in which the tracks were added to ensure a consistent sort.
- page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::textTrackCompare):
(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu):
- 1:14 PM Changeset in webkit [253573] by
-
- 3 edits in trunk/Source/WebKit
Make ServiceWorkerSoftUpdateLoader::loadWithCacheEntry more robust
https://bugs.webkit.org/show_bug.cgi?id=205202
rdar://problem/57852910
Reviewed by Chris Dumez.
In case loading an entry from the cache, we were calling didReceiveResponse,
which may destroy the loader and then continue processing.
Instead, add a processResponse method that checks the response and returns an error if needed.
didReceiveResponse calls this method and returns early in case of error.
So does the method loading data from the cache.
Covered by existing tests.
- NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:
(WebKit::ServiceWorkerSoftUpdateLoader::loadWithCacheEntry):
(WebKit::ServiceWorkerSoftUpdateLoader::didReceiveResponse):
(WebKit::ServiceWorkerSoftUpdateLoader::processResponse):
- NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.h:
- 12:58 PM Changeset in webkit [253572] by
-
- 2 edits in trunk/Tools
Fix btjs on current lldb
https://bugs.webkit.org/show_bug.cgi?id=205293
Reviewed by Mark Lam.
- lldb/lldb_webkit.py:
(btjs):
- 12:38 PM Changeset in webkit [253571] by
-
- 12 edits in trunk/Source
Remove display:contents feature flag
https://bugs.webkit.org/show_bug.cgi?id=205276
Reviewed by Ryosuke Niwa.
Source/WebCore:
The feature has been enabled for a while. There is no reason to have a flag for it anymore.
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setDisplayContentsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::displayContentsEnabled const): Deleted.
- style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjustDisplayContentsStyle const):
Source/WebKit:
- Shared/WebPreferences.yaml:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetDisplayContentsEnabled): Deleted.
(WKPreferencesGetDisplayContentsEnabled): Deleted.
- UIProcess/API/C/WKPreferencesRefPrivate.h:
Source/WebKitLegacy/mac:
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences displayContentsEnabled]): Deleted.
(-[WebPreferences setDisplayContentsEnabled:]): Deleted.
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
- 11:54 AM Changeset in webkit [253570] by
-
- 2 edits in trunk/Source/WebKit
Fix API availability for -_getResourceLoadStatisticsDataSummary: after r253484
https://bugs.webkit.org/show_bug.cgi?id=205256
Reviewed by Alex Christensen.
Replaces WK_API_AVAILABLE(macos(10.15), ios(13.0)) with WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA)),
since this is new WebKit SPI that hasn't made its way into the SDK.
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- 11:47 AM Changeset in webkit [253569] by
-
- 1 edit in tags/Safari-609.1.12/Source/WebCore/platform/graphics/GraphicsContext3D.h
Unreviewed build fix. rdar://problem/57925932
- 11:37 AM Changeset in webkit [253568] by
-
- 7 edits in branches/safari-608-branch/Source
Versioning.
- 11:13 AM Changeset in webkit [253567] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Fix imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-004.html
https://bugs.webkit.org/show_bug.cgi?id=205287
<rdar://problem/57976834>
Reviewed by Antti Koivisto.
Consolidate word break rules into a function to be able to make sure "line-break: anywhere" takes priority over word-break values.
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::LineBreaker::wordBreakBehavior const):
(WebCore::Layout::LineBreaker::tryBreakingTextRun const):
(WebCore::Layout::isTextSplitAtArbitraryPositionAllowed): Deleted.
- layout/inlineformatting/InlineLineBreaker.h:
- 10:59 AM Changeset in webkit [253566] by
-
- 1 edit in tags/Safari-609.1.12/Source/WebCore/platform/graphics/GraphicsContext3D.h
Unreviewed build fix. rdar://problem/57925932
- 10:47 AM Changeset in webkit [253565] by
-
- 13 edits in trunk
Isolated object implementation of parameterized attribute SelectTextWithCriteria.
https://bugs.webkit.org/show_bug.cgi?id=205210
Reviewed by Chris Fleizach.
Source/WebCore:
LayoutTests/accessibility/mac/find-and-replace-match-capitalization.html exercise this functionality.
Requests for parameterized attributes that require computations in
the WebCore DOM need to be dispatched to the main thread. This
change is the blueprint for all other attributes to follow.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::isolatedTreeRootObject): The isolated tree root object is always retrieved in the main thread.
(WebCore::AXObjectCache::generateIsolatedTree): Sets the AXObjectCache for the generated IsolatedTree.
- accessibility/AccessibilityObjectInterface.h: Added the template functions to dispatch to the main thread.
(WebCore::Accessibility::performFunctionOnMainThread):
(WebCore::Accessibility::retrieveValueFromMainThread):
- accessibility/AccessibilityRenderObject.cpp: Removed obsolete asserts.
(WebCore::AccessibilityRenderObject::visibleChildren):
(WebCore::AccessibilityRenderObject::tabChildren):
- accessibility/isolatedtree/AXIsolatedTree.h: It now holds a reference to the AXObjectCache.
(WebCore::AXIsolatedTree::axObjectCache const):
(WebCore::AXIsolatedTree::setAXObjectCache):
- accessibility/isolatedtree/AXIsolatedTreeNode.cpp:
(WebCore::AXIsolatedObject::findTextRanges const):
(WebCore::AXIsolatedObject::performTextOperation):
(WebCore::AXIsolatedObject::axObjectCache const):
- accessibility/isolatedtree/AXIsolatedTreeNode.h:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm: Moved template functions to dispatch to the main thread into the Accessibility namespace to use them in the isolated object implementation.
(-[WebAccessibilityObjectWrapper attachmentView]):
(-[WebAccessibilityObjectWrapper renderWidgetChildren]):
(-[WebAccessibilityObjectWrapper associatedPluginParent]):
(-[WebAccessibilityObjectWrapper scrollViewParent]):
(-[WebAccessibilityObjectWrapper windowElement:]):
(-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
(performAccessibilityFunctionOnMainThread): Moved.
(retrieveAccessibilityValueFromMainThread): Moved.
Tools:
- WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:
(WTR::AccessibilityController::rootElement): Always run in my thread.
(WTR::AccessibilityController::execute): Dispatches to the secondary thread. Spins the main loop to allow parameterized attributes methods to execute in main thread.
- WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm:
(WTR::findAccessibleObjectById):
(WTR::AccessibilityController::accessibleElementById):
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::selectTextWithCriteria):
- 10:39 AM Changeset in webkit [253564] by
-
- 2 edits in trunk/Tools
Unreviewed build fix for tvOS after r253440.
- TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm:
- 10:29 AM Changeset in webkit [253563] by
-
- 6 edits4 adds in trunk
Consider top-level context whose origin is unique as insecure
https://bugs.webkit.org/show_bug.cgi?id=205111
Source/WebCore:
Reviewed by Brent Fulgham.
Tests: http/tests/security/top-level-unique-origin.https.html
http/tests/security/top-level-unique-origin2.https.html
- dom/Document.cpp:
(WebCore::Document::isSecureContext const):
There is no guarantee that top level unique origin contexts like data URL are SecureContext.
This patch makes them no longer SecureContext.
This helps getting closer to https://w3c.github.io/webappsec-secure-contexts/#is-url-trustworthy
which identifies all unique origins as "Not Trustworthy".
Child unique origin contexts will stay SecureContext if their parents are.
Tools:
<rdar://problem/57834967>
Reviewed by Brent Fulgham.
- TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm:
(TEST):
Disable secure context checks so that loading directly about:blank from the API test
can call DeviceOrientationEvent.requestPermission() successfully.
LayoutTests:
Reviewed by Brent Fulgham.
- http/tests/security/top-level-unique-origin.https-expected.txt: Added.
- http/tests/security/top-level-unique-origin.https.html: Added.
- http/tests/security/top-level-unique-origin2.https-expected.txt: Added.
- http/tests/security/top-level-unique-origin2.https.html: Added.
- platform/win/TestExpectations: Skipping second test as timing out in windows.
- 10:13 AM Changeset in webkit [253562] by
-
- 2 edits in trunk/LayoutTests
fast/mediastream/change-tracks-media-stream-being-played.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=205277
Reviewed by Eric Carlson.
- fast/mediastream/change-tracks-media-stream-being-played.html:
Make sure unhandled promise rejection messages do not make the test flaky.
- 10:07 AM Changeset in webkit [253561] by
-
- 6 edits in trunk
-requestDocumentContext always returns 1 text unit more granularity than requested
https://bugs.webkit.org/show_bug.cgi?id=205142
<rdar://problem/57858236>
Reviewed by Darin Adler and Wenson Hsieh.
Source/WebCore:
Fix up the code to actually determine if the specified position is at a sentence
boundary. Currently the code will always return false when asking whether the
specified position is at a sentence boundary (i.e. "end of the sentence") because
it compares it to the position of the end of the *next* sentence or the beginning
of the current sentence when selecting forward or backwards, respectively.
- editing/VisibleUnits.cpp:
(WebCore::atBoundaryOfGranularity):
Source/WebKit:
Use WebCore::atBoundaryOfGranularity() to identify each boundary so that we return the position
exactly granularityCount text units advanced from the specified position. When using sentence
granularity we do not need to round the resulting position to the nearest word because it already
falls before the next word (if there is one). For all other granularities we do what we do now
and round to the nearest word, which may cross that granularity's boundary.
Additionally, added assertions to ensure that we are passed a non-zero granularity count and a non-
null initial position. The function takes advantage of these assumptions to 1) ensure correct results
and 2) make use of a do-while loop.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::moveByGranularityRespectingWordBoundary):
Tools:
Add tests for requesting text by character, sentence, paragraph, and line granularities.
Also organized tests, demarcating sections of related tests, and renaming the existing
word granularity tests for consistency.
- TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:
(TEST):
- 9:57 AM Changeset in webkit [253560] by
-
- 4 edits in trunk/PerformanceTests
Add StyleBench subtest for dynamic media query performance
https://bugs.webkit.org/show_bug.cgi?id=205263
Reviewed by Zalan Bujtas.
Add a subtest that contains a small number of rules inside min/max-width media queries.
The test is executed by resizing the test frame to various widths.
- StyleBench/index.html:
- StyleBench/resources/style-bench.js:
(Random.prototype.chance):
(defaultConfiguration):
(mediaQueryConfiguration):
(predefinedConfigurations):
- StyleBench/resources/tests.js:
(makeSteps):
- 9:42 AM Changeset in webkit [253559] by
-
- 11 edits in trunk
Let the DrawingArea decide whether scrolling is delegated
https://bugs.webkit.org/show_bug.cgi?id=205258
Reviewed by Anders Carlsson.
.:
Let Xcode have its way with the workspace file, after the libANGLE rename.
- WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:
Source/WebKit:
Delegated scrolling was hardcoded on for iOS WK2 (as it is for iOS WK1) and off for macOS,
but if macOS is using RemoteLayerTreeDrawingArea that should also use delegated scrolling.
Also make some DrawingArea functions const, and put m_frame->coreFrame()->view() into
a local RefPtr in WebFrameLoaderClient::transitionToCommittedForNewPage().
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
- WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::supportsAsyncScrolling const):
(WebKit::DrawingArea::usesDelegatedScrolling const):
(WebKit::DrawingArea::shouldUseTiledBackingForFrameView const):
(WebKit::DrawingArea::supportsAsyncScrolling): Deleted.
(WebKit::DrawingArea::shouldUseTiledBackingForFrameView): Deleted.
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::shouldUseTiledBackingForFrameView const):
(WebKit::RemoteLayerTreeDrawingArea::shouldUseTiledBackingForFrameView): Deleted.
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::shouldUseTiledBackingForFrameView const):
(WebKit::TiledCoreAnimationDrawingArea::shouldUseTiledBackingForFrameView): Deleted.
- 9:26 AM Changeset in webkit [253558] by
-
- 3 edits in trunk/Source/WebKit
Log when unimplemented remote MediaPlayer methods are called
https://bugs.webkit.org/show_bug.cgi?id=205269
<rdar://problem/57967733>
Reviewed by Youenn Fablet.
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::mediaPlayerPlaybackStateChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerSawUnsupportedTracks):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerResourceNotSupported):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRepaint):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerSizeChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerEngineUpdated):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerCharacteristicChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingCanBeAccelerated):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingModeChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerAcceleratedCompositingEnabled):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerActiveSourceBuffersChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerCachedKeyForKeyId const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerKeyNeeded):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerMediaKeysStorageDirectory const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerInitializationDataEncountered):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerWaitingForKeyChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerCurrentPlaybackTargetIsWirelessChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerReferrer const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerUserAgent const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerEnterFullscreen):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerExitFullscreen):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerIsFullscreen const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerIsFullscreenPermitted const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerIsVideo const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerContentBoxRect const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerContentsScale const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerSetSize):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerPause):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerPlay):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerPlatformVolumeConfigurationRequired const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerIsPaused const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerIsLooping const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerCachedResourceLoader):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerCreateResourceLoader):
(WebKit::RemoteMediaPlayerProxy::doesHaveAttribute const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerShouldUsePersistentCache const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerMediaCacheDirectory const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidAddAudioTrack):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidAddTextTrack):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidAddVideoTrack):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidRemoveAudioTrack):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidRemoveTextTrack):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidRemoveVideoTrack):
(WebKit::RemoteMediaPlayerProxy::textTrackRepresentationBoundsChanged):
(WebKit::RemoteMediaPlayerProxy::outOfBandTrackSources):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerNetworkInterfaceName const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerGetRawCookies const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerHandlePlaybackCommand):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerSourceApplicationIdentifier const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerIsInMediaDocument const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerEngineFailedToLoad const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRequestedPlaybackRate const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerFullscreenMode const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerIsVideoFullscreenStandby const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerPreferredAudioCharacteristics const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerShouldDisableSleep const):
(WebKit::RemoteMediaPlayerProxy::mediaContentTypesRequiringHardwareSupport const):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerShouldCheckHardwareSupport const):
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- 9:10 AM Changeset in webkit [253557] by
-
- 3 edits in trunk/Source/WebKit
Add NS_UNAVAILABLE tags to prevent alloc inits for _WKResourceLoadStatistics* classes
https://bugs.webkit.org/show_bug.cgi?id=205221
Reviewed by Anders Carlsson.
This patch ensures that no one tries to alloc init
_WKResourceLoadStatisticsFirstParty or
_WKResourceLoadStatisticsThirdParty. They should only be created via
the API call to create().
- UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.h:
- UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.h:
- 8:54 AM Changeset in webkit [253556] by
-
- 6 edits5 adds in trunk/LayoutTests
Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/ready.https.html is a flaky failure (test harness timeout)
https://bugs.webkit.org/show_bug.cgi?id=200794
<rdar://problem/54367769>
Reviewed by Youenn Fablet.
Skip imported/w3c/web-platform-tests/service-workers/service-worker/ready.https.html on all platforms as it contains some subtests
that are not valid in any browser and which cause flaky timeouts.
To restore test coverage for the ready promise, import work-in-progress test from:
https://github.com/web-platform-tests/wpt/pull/20655 (except for the last subtest that is still flaky in Gecko and WebKit)
- TestExpectations:
- http/wpt/service-workers/ready.https.window-expected.txt: Added.
- http/wpt/service-workers/ready.https.window.html: Added.
- http/wpt/service-workers/ready.https.window.js: Added.
(test):
(promise_test.async.t.t.add_cleanup.async):
- http/wpt/service-workers/resources/empty-worker.js: Added.
- http/wpt/service-workers/resources/register-iframe.html: Added.
- platform/gtk/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- platform/wpe/TestExpectations:
- 8:47 AM Changeset in webkit [253555] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Add initial support for line-break: anywhere
https://bugs.webkit.org/show_bug.cgi?id=205278
<rdar://problem/57969694>
Reviewed by Antti Koivisto.
- There is a soft wrap opportunity around every typographic character unit.
- The different wrapping opportunities must not be prioritized. Hyphenation is not applied.
Fix imported/w3c/web-platform-tests/css/css-text/line-break/line-break-anywhere-002.html.
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::isTextSplitAtArbitraryPositionAllowed):
(WebCore::Layout::LineBreaker::Content::isAtSoftWrapOpportunity):
- 8:15 AM Changeset in webkit [253554] by
-
- 5 edits in trunk/Source/WebKit
http/wpt/service-workers/postMessage-fetch-order.https.html is a flaky failure after r253528
https://bugs.webkit.org/show_bug.cgi?id=205261
Patch by youenn fablet <youenn@apple.com> on 2019-12-16
Reviewed by Chris Dumez.
Instead of starting the fetch task asynchronously, start it synchronously but make sure that
not handling the fetch is either coming from IPC or is done asynchronously.
We add a boolean m_isDone that ensures that the loader will only be called once for didFail/didFinish/didNotHandle.
This covers the potential case of a task for which cannotHandle is called synchronously at creation but the call to didNotHandle is not yet done.
Before the call to didNotHandle is done, a timeout timer is firing and will call didNotHandle a first time.
The second didNotHandle should be a no-op.
Covered by existing tests and unflakes above test.
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
(WebKit::ServiceWorkerFetchTask::contextClosed):
(WebKit::ServiceWorkerFetchTask::didReceiveRedirectResponse):
(WebKit::ServiceWorkerFetchTask::didReceiveResponse):
(WebKit::ServiceWorkerFetchTask::didReceiveData):
(WebKit::ServiceWorkerFetchTask::didReceiveFormData):
(WebKit::ServiceWorkerFetchTask::didFinish):
(WebKit::ServiceWorkerFetchTask::didFail):
(WebKit::ServiceWorkerFetchTask::didNotHandle):
Make sure to call didNotHandle only once based on m_isDone.
(WebKit::ServiceWorkerFetchTask::cannotHandle):
Do not expose didNotHandle as a public method.
Instead expose cannotHandle that will call didNotHandle asynchronously.
(WebKit::ServiceWorkerFetchTask::continueFetchTaskWith):
No need to set a timer if we will not create a fetch event.
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
(WebKit::ServiceWorkerFetchTask::takeRequest):
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::startFetch):
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
(WebKit::WebSWServerToContextConnection::fetchTaskTimedOut):
Small refactoring to only use contextClosed and not expose whether the task is handled or not.
This also potentially allows to call didNotHandle in case the service worker crashed before answering the fetch event.
- 7:56 AM Changeset in webkit [253553] by
-
- 2 edits in trunk/Source/WebKit
[GTK] Build with USE_WPE_RENDERER=No fails with undefined EGL_WAYLAND_BUFFER_WL
https://bugs.webkit.org/show_bug.cgi?id=205250
Reviewed by Carlos Garcia Campos.
Define the enum if not present.
No new tests, just a build fix.
- UIProcess/gtk/WaylandCompositor.cpp:
- 7:47 AM Changeset in webkit [253552] by
-
- 2 edits in trunk/LayoutTests
Layout test imported/blink/fast/sub-pixel/negative-composited-offset.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=205273
Unreviewed test gardening.
- platform/win/TestExpectations:
- 7:41 AM Changeset in webkit [253551] by
-
- 2 edits in trunk/LayoutTests
Layout Test js/integer-division-neg2tothe32-by-neg1.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205272
Unreviewed test gardening.
- platform/win/TestExpectations:
- 6:49 AM Changeset in webkit [253550] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Rename LineBuilder::m_skipAlignment to LineBuilder::m_intrinsicWidthLine
https://bugs.webkit.org/show_bug.cgi?id=205257
<rdar://problem/57955958>
Reviewed by Antti Koivisto.
It's going to be used for hanging glyphs.
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::LineBuilder):
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::alignContentVertically):
(WebCore::Layout::LineBuilder::alignContentHorizontally const):
(WebCore::Layout::LineBuilder::runContentHeight const):
(WebCore::Layout::LineBuilder::isVisuallyNonEmpty const):
- layout/inlineformatting/InlineLineBuilder.h:
- 6:40 AM Changeset in webkit [253549] by
-
- 6 edits in trunk/Source/WebCore
[LFC][IFC] Should use the term collapsed/collapsible instead of trimmed/trimmable
https://bugs.webkit.org/show_bug.cgi?id=205255
<rdar://problem/57954672>
Reviewed by Antti Koivisto.
While trimming is also a spec term, collapsible is closer to the spec language.
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::shouldKeepEndOfLineWhitespace):
(WebCore::Layout::LineBreaker::breakingContextForInlineContent):
(WebCore::Layout::LineBreaker::Content::append):
(WebCore::Layout::LineBreaker::Content::reset):
(WebCore::Layout::LineBreaker::Content::shrink):
(WebCore::Layout::LineBreaker::Content::TrailingCollapsibleContent::reset):
(WebCore::Layout::LineBreaker::Content::trim): Deleted.
(WebCore::Layout::LineBreaker::Content::TrailingTrimmableContent::reset): Deleted.
- layout/inlineformatting/InlineLineBreaker.h:
(WebCore::Layout::LineBreaker::Content::nonCollapsibleWidth const):
(WebCore::Layout::LineBreaker::Content::hasTrailingCollapsibleContent const):
(WebCore::Layout::LineBreaker::Content::isTrailingContentFullyCollapsible const):
(WebCore::Layout::LineBreaker::Content::nonTrimmableWidth const): Deleted.
(WebCore::Layout::LineBreaker::Content::hasTrailingTrimmableContent const): Deleted.
(WebCore::Layout::LineBreaker::Content::isTrailingContentFullyTrimmable const): Deleted.
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::LineBuilder):
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::removeTrailingCollapsibleContent):
(WebCore::Layout::LineBuilder::collectHangingContent):
(WebCore::Layout::LineBuilder::appendInlineContainerEnd):
(WebCore::Layout::LineBuilder::appendTextContent):
(WebCore::Layout::LineBuilder::appendNonReplacedInlineBox):
(WebCore::Layout::LineBuilder::CollapsibleContent::CollapsibleContent):
(WebCore::Layout::LineBuilder::CollapsibleContent::append):
(WebCore::Layout::LineBuilder::CollapsibleContent::collapse):
(WebCore::Layout::LineBuilder::CollapsibleContent::collapseTrailingRun):
(WebCore::Layout::LineBuilder::InlineItemRun::isCollapsibleWhitespace const):
(WebCore::Layout::LineBuilder::removeTrailingTrimmableContent): Deleted.
(WebCore::Layout::LineBuilder::TrimmableContent::TrimmableContent): Deleted.
(WebCore::Layout::LineBuilder::TrimmableContent::append): Deleted.
(WebCore::Layout::LineBuilder::TrimmableContent::trim): Deleted.
(WebCore::Layout::LineBuilder::TrimmableContent::trimTrailingRun): Deleted.
(WebCore::Layout::LineBuilder::InlineItemRun::isTrimmableWhitespace const): Deleted.
- layout/inlineformatting/InlineLineBuilder.h:
(WebCore::Layout::LineBuilder::trailingCollapsibleWidth const):
(WebCore::Layout::LineBuilder::isTrailingRunFullyCollapsible const):
(WebCore::Layout::LineBuilder::CollapsibleContent::isTrailingRunFullyCollapsible const):
(WebCore::Layout::LineBuilder::CollapsibleContent::isTrailingRunPartiallyCollapsible const):
(WebCore::Layout::LineBuilder::CollapsibleContent::reset):
(WebCore::Layout::LineBuilder::trailingTrimmableWidth const): Deleted.
(WebCore::Layout::LineBuilder::isTrailingRunFullyTrimmable const): Deleted.
(WebCore::Layout::LineBuilder::TrimmableContent::width const): Deleted.
(WebCore::Layout::LineBuilder::TrimmableContent::firstRunIndex): Deleted.
(WebCore::Layout::LineBuilder::TrimmableContent::isEmpty const): Deleted.
(WebCore::Layout::LineBuilder::TrimmableContent::isTrailingRunFullyTrimmable const): Deleted.
(WebCore::Layout::LineBuilder::TrimmableContent::isTrailingRunPartiallyTrimmable const): Deleted.
(WebCore::Layout::LineBuilder::TrimmableContent::reset): Deleted.
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::LineLayoutContext::placeInlineItem):
(WebCore::Layout::LineLayoutContext::processUncommittedContent):
- 6:13 AM Changeset in webkit [253548] by
-
- 2 edits in trunk/Tools
Unreviewed GTK gardening. Mark /webkit/WebKitWebView/pointer-lock-permission-request as timeout
- TestWebKitAPI/glib/TestExpectations.json:
- 6:08 AM Changeset in webkit [253547] by
-
- 2 edits in trunk/Tools
Unreviewed. Fix GLib test /webkit/WebKitWebView/geolocation-permission-requests after r249207
PERMISSION_DENIED is returned for non-secure contexts instead of POSITION_UNAVAILABLE since r249207.
- TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:
(testWebViewGeolocationPermissionRequests):
- 5:36 AM Changeset in webkit [253546] by
-
- 2 edits in trunk/Tools
Unreviewed. Fix GLib test /jsc/options after r253244.
The default value of smallHeapRAMFraction option changed in r253244. The test just wants to check a float jsc
option, so use criticalGCMemoryThreshold instead that has a fixed default value.
- TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
(testsJSCOptions):
- 3:21 AM Changeset in webkit [253545] by
-
- 7 edits in trunk
Reset cached getUserMedia queries when calling stopMediaCapture
https://bugs.webkit.org/show_bug.cgi?id=205064
Reviewed by Eric Carlson.
Source/WebKit:
Reset cached queries when calling stop media capture API allows to trigger again the prompt
after the API call.
Covered by updated API test.
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::resetAccess):
- UIProcess/UserMediaPermissionRequestManagerProxy.h:
(WebKit::UserMediaPermissionRequestManagerProxy::resetAccess):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::stopMediaCapture):
Tools:
- TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
(-[GetUserMediaCaptureUIDelegate _webView:requestMediaCaptureAuthorization:decisionHandler:]):
(TestWebKitAPI::TEST):
- 3:04 AM Changeset in webkit [253544] by
-
- 4 edits2 adds in trunk
SecurityOrigin should be unique for null blob URLs that have been unregistered
https://bugs.webkit.org/show_bug.cgi?id=205169
Reviewed by Darin Adler.
Source/WebCore:
In case we cannot retrieve a cached origin for a null origin, just create a unique one.
This is better than having an origin with an empty host and empty scheme.
Test: http/tests/security/blob-null-url-location-origin.html
- fileapi/ThreadableBlobRegistry.cpp:
(WebCore::ThreadableBlobRegistry::unregisterBlobURL):
(WebCore::ThreadableBlobRegistry::getCachedOrigin):
LayoutTests:
- http/tests/security/blob-null-url-location-origin-expected.txt: Added.
- http/tests/security/blob-null-url-location-origin.html: Added.
- platform/win/TestExpectations: Skipping test as timing out in windows.
Dec 15, 2019:
- 6:25 PM Changeset in webkit [253543] by
-
- 4 edits in trunk
-[WKWebView _detectDataWithTypes:completionHandler:] crashes when there is no running process
https://bugs.webkit.org/show_bug.cgi?id=205254
Reviewed by Tim Horton.
Source/WebKit:
Bail early and call the completion handler in the case where we don't have a running web process, to avoid a
nullConnection*deref. Speculative fix for <rdar://problem/57463469>.
- UIProcess/WebPageProxy.cpp:
Tools:
Add a test to verify that we don't crash when calling data detection API's immediately after crashing the web
content process.
- TestWebKitAPI/Tests/WebKitCocoa/DataDetection.mm:
- 2:12 PM Changeset in webkit [253542] by
-
- 5 edits in trunk
Add power metric to perf dashboard
https://bugs.webkit.org/show_bug.cgi?id=205227
Reviewed by Ryosuke Niwa.
- public/v3/models/metric.js:
(Metric):
- 1:50 PM Changeset in webkit [253541] by
-
- 2 edits in trunk/Source/WebCore
CSSParserMode::HTMLAttributeMode is unused.
https://bugs.webkit.org/show_bug.cgi?id=205247
Reviewed by Antti Koivisto.
We parse HTML attributes with regular quirks mode parsing mode.
Internal properties work anyway as we pass CSSPropertyID directly.
No new tests, no behavior change.
- css/parser/CSSParserMode.h:
(WebCore::isQuirksModeBehavior):
(WebCore::isUnitLessValueParsingEnabledForMode):
- 12:19 PM Changeset in webkit [253540] by
-
- 34 edits2 deletes in trunk
Remove -webkit-marquee.
https://bugs.webkit.org/show_bug.cgi?id=117769
Reviewed by Simon Fraser.
Source/WebCore:
This doesn't simplify the code so much yet but makes the CSS properties not
accessible by web content, which means that how marquee is implemented is now an
implementation detail that WebKit can change.
Had to keep some of parsing code because addHTMLLengthToStyle uses the
CSS parser, which is a bit unfortunate. But we can avoid dealing with
identifiers so it can be simplified a bit, and similarly we can avoid
having a shorthand altogether.
Covered by existing tests that are being modified to reflect the
change.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSProperties.json:
- css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue const):
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):
Source/WebInspectorUI:
- UserInterface/Models/CSSKeywordCompletions.js:
LayoutTests:
- fast/css/getComputedStyle/computed-style-expected.txt:
- fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- fast/css/getComputedStyle/getComputedStyle-length-unit-expected.txt:
- fast/css/getComputedStyle/getComputedStyle-length-unit.html:
- fast/css/getComputedStyle/getComputedStyle-zoom-and-background-size-expected.txt:
- fast/css/getComputedStyle/getComputedStyle-zoom-and-background-size.html:
- fast/css/getComputedStyle/resources/property-names.js:
- fast/css/getPropertyValue-webkit-marquee-expected.txt: Removed.
- fast/css/getPropertyValue-webkit-marquee.html: Removed.
- fast/css/inherit-initial-shorthand-values-expected.txt:
- fast/css/inherit-initial-shorthand-values.html:
- fast/css/remove-shorthand-expected.txt:
- fast/css/remove-shorthand.html:
- legacy-animation-engine/fast/css/getComputedStyle/resources/property-names.js:
- platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt:
- platform/gtk/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/gtk/svg/css/getComputedStyle-basic-expected.txt:
- platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
- platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/ios/svg/css/getComputedStyle-basic-expected.txt:
- platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
- platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/mac/svg/css/getComputedStyle-basic-expected.txt:
- platform/wpe/fast/css/getComputedStyle/computed-style-expected.txt:
- platform/wpe/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/wpe/svg/css/getComputedStyle-basic-expected.txt:
- svg/css/getComputedStyle-basic-expected.txt:
- 10:43 AM Changeset in webkit [253539] by
-
- 2 edits in trunk/Tools
[GTK] jhbuild fails to configure if gettext 0.20 is installed
https://bugs.webkit.org/show_bug.cgi?id=205249
Reviewed by Michael Catanzaro.
Update jhbuild.
- jhbuild/jhbuild-wrapper:
- 10:20 AM Changeset in webkit [253538] by
-
- 36 edits in trunk/Source
[GTK][WPE] Fix various non-unified build issues introduced since r251698
https://bugs.webkit.org/show_bug.cgi?id=204891
Reviewed by Alex Christensen.
Source/JavaScriptCore:
- API/JSCallbackConstructor.h: Add missing inclusion of JSObject.h
- bytecompiler/BytecodeGeneratorBaseInlines.h: Add missing "#pragma once", which
caused build breakage when the same unified source would result in multiple inclusions of
the header.
- bytecompiler/NodesCodegen.cpp: Add missing inclusion of BytecodeGeneratorBaseInlines.h
- dfg/DFGDesiredIdentifiers.h: Add missing inclusion of Identifier.h
- heap/IsoSubspacePerVM.cpp: Add missing inclusion of MarkedSpaceInlines.h
- jit/GCAwareJITStubRoutine.h: Add missing forward declaration for CallLinkInfo.
- runtime/PredictionFileCreatingFuzzerAgent.cpp: Add missing inclusion of wtf/DataLog.h
- runtime/ScopedArgumentsTable.h: Add missing inclusion of VM.h
- wasm/WasmCallee.cpp: Add missing inclusion of WasmCallingConvention.h
- wasm/WasmLLIntTierUpCounter.h: Add missing inclusion of InstructionStream.h
- wasm/WasmSlowPaths.cpp: Add missing inclusion of WasmSignatureInlines.h
Source/WebCore:
No new tests needed.
- Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp: Add missing inclusion of
markup.h
- accessibility/AccessibilityObject.cpp: Add missing inclusion of RenderInline.h
- animation/WebAnimationUtilities.cpp: Add missing inclusion of Animation.h
- animation/WebAnimationUtilities.h: Add inclusion of wtf/Forward.h to ensure that
WTF::String is declared.
- css/DOMCSSNamespace.cpp: Add missing inclusion of Document.h
- dom/WindowEventLoop.cpp: Add missing inclusion of SecurityOrigin.h
- dom/WindowEventLoop.h: Add forward declaration of SecurityOrigin
- layout/displaytree/DisplayInlineContent.cpp: Move ENABLE(LAYOUT_FORMATTING_CONTEXT) guard
after inclusion of config.h, to ensure that the ENABLE() macro is defined before being used.
- loader/ProgressTracker.h: Add missing inclusion of wtf/UniqueRef.h
- page/LoggedInStatus.cpp: Add missing inclusion of wtf/text/StringConcatenateNumbers.h
- page/PageConfiguration.cpp: Add missing inclusions of AlternativeTextClient.h and
PlugInClient.h
- rendering/RenderFlexibleBox.cpp: Add missing inclusion of wtf/SetForScope.h
- rendering/updating/RenderTreeBuilderBlock.h: Add missing forward declaration of
RenderBlockFlow.
- rendering/updating/RenderTreeBuilderBlockFlow.h: Add missing forward declaration of
RenderBlockFlow.
- rendering/updating/RenderTreeBuilderMultiColumn.h: Add missing forward declaration of
RenderMultiColumnFlow.
- rendering/updating/RenderTreeUpdaterGeneratedContent.cpp: Add missin inclusion of
RenderView.h
- style/StyleBuilder.cpp: Add missing inclusion of HTMLElement.h
- style/StyleBuilderState.cpp: Ditto.
- style/StyleScopeRuleSets.h: Move forward declaration of InspectorCSSOMWrappers into the
Style namespace, where it belongs; add missing namespace prefix in appendAuthorStyleSheets()
declaration.
Source/WebKit:
- NetworkProcess/IndexedDB/WebIDBServer.cpp: Add missing WebCore namespace prefixes
in function declarations.
(WebKit::WebIDBServer::create):
(WebKit::WebIDBServer::WebIDBServer):
(WebKit::WebIDBServer::closeAndDeleteDatabasesForOrigins):
(WebKit::WebIDBServer::suspend):
(WebKit::WebIDBServer::idFireVersionChangeEvent):
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::requestSpace): Add missing namespace prefix for
WebCore::ClientOrigin.
- NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp: Add missing inclusion of
WebCore/RegistrableDomain.h
(WebKit::NetworkCache::SubresourceInfo::isFirstParty const): Add missing namespace prefix
for WebCore::RegistrableDomain.
- WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::setFilesForInputFileUpload): Add missing namespace
prefix for WebCore::File::create() and WebCore::FileList::create() calls.
- 9:00 AM Changeset in webkit [253537] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Add basic support for hanging content
https://bugs.webkit.org/show_bug.cgi?id=205252
<rdar://problem/57947773>
Reviewed by Antti Koivisto.
Collect the hanging content after collapsing trailing whitespace and adjust
the available space when computing the extra width for horizontal alignment.
IFC passes imported/w3c/web-platform-tests/css/css-text/ directory now.
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::initialize):
(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::alignContentHorizontally const):
(WebCore::Layout::LineBuilder::collectHangingContent):
(WebCore::Layout::LineBuilder::appendTextContent):
- layout/inlineformatting/InlineLineBuilder.h:
(WebCore::Layout::LineBuilder::HangingContent::width const):
(WebCore::Layout::LineBuilder::HangingContent::isConditional const):
(WebCore::Layout::LineBuilder::HangingContent::setIsConditional):
(WebCore::Layout::LineBuilder::HangingContent::expand):
(WebCore::Layout::LineBuilder::HangingContent::reset):
- 7:16 AM Changeset in webkit [253536] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Fix silly bug in GStreamerVideoFrameLibWebRTC.
https://bugs.webkit.org/show_bug.cgi?id=205248
Reviewed by Philippe Normand.
Binary operators in C++ don't work like in JavaScript, so this was always
passing 1.
No new tests, no observable behavior change.
- platform/mediastream/gstreamer/GStreamerVideoFrameLibWebRTC.cpp:
(WebCore::GStreamerVideoFrameLibWebRTC::ToI420):
- 6:09 AM Changeset in webkit [253535] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Fix imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-009.html
https://bugs.webkit.org/show_bug.cgi?id=205246
<rdar://problem/57944015>
Reviewed by Antti Koivisto.
Fix the "soft wrap opportunity" case when both the incoming and the previous runs are whitespace.
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::LineBreaker::Content::isAtSoftWrapOpportunity):
- 6:02 AM Changeset in webkit [253534] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed, address review comments missed in the initial commit.
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::LineBreaker::breakingContextForInlineContent):
(WebCore::Layout::LineBreaker::wrapTextContent const):
- layout/inlineformatting/InlineLineBreaker.h:
- 5:50 AM Changeset in webkit [253533] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Fix imported/w3c/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-006.html
https://bugs.webkit.org/show_bug.cgi?id=205245
<rdar://problem/57943885>
Reviewed by Antti Koivisto.
Line breaking should be able to differentiate
- the case when the candidate content's first character does not fit the line
- and when the candidate content has multiple runs and (a) the overflow run is not the first one (b) it can't be wrapped and we fall back to the first run in the list
In both cases wordBreakingBehavior returns { 0, { } }, where 0 is the trailing run index (first run) and the nullopt indicates
that there's no partial content.
Introduce TextWrappingContext to be able to tell these cases apart.
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::LineBreaker::breakingContextForInlineContent):
(WebCore::Layout::LineBreaker::wrapTextContent const):
(WebCore::Layout::LineBreaker::tryBreakingTextRun const):
(WebCore::Layout::LineBreaker::wordBreakingBehavior const): Deleted.
- layout/inlineformatting/InlineLineBreaker.h:
- 5:36 AM Changeset in webkit [253532] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Introduce LineBreaker::PartialRun
https://bugs.webkit.org/show_bug.cgi?id=205244
<rdar://problem/57943825>
Reviewed by Antti Koivisto.
Use PartialRun instead of LeftSide and also use it as optional in PartialTrailingContent.
This is in preparation for fixing "break-spaces" failing cases.
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::LineBreaker::breakingContextForInlineContent):
(WebCore::Layout::LineBreaker::wordBreakingBehavior const):
(WebCore::Layout::LineBreaker::tryBreakingTextRun const):
- layout/inlineformatting/InlineLineBreaker.h:
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::LineLayoutContext::processUncommittedContent):