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

Timeline



Dec 16, 2019:

11:15 PM Changeset in webkit [253611] by Jonathan Bedard
  • 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 commit-queue@webkit.org
  • 6 edits
    3 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 mark.lam@apple.com
  • 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 ysuzuki@apple.com
  • 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 Alan Coon
  • 17 edits
    1 delete in branches/safari-609.1.13-branch/Source

Apply patch. rdar://problem/57990824

5:57 PM Changeset in webkit [253606] by Alan Coon
  • 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 Alan Coon
  • 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 Alan Coon
  • 6 edits in branches/safari-609.1.13-branch/Source

Revert r253499. rdar://problem/57990824

5:23 PM Changeset in webkit [253603] by Alan Coon
  • 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 Wenson Hsieh
  • 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.

  1. 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 subtracting contextBefore string's length from selectedRangeInMarkedText's location.

(Note that this still requires an adjustment in UIKit to actually respect selectedRangeInMarkedText when
computing markedTextRange. This is tracked in <rdar://problem/57338528>).

  1. 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).

  1. Flip the arguments to distanceBetweenPositions, such that we end up with a positive value for

selectedRangeInMarkedText in the case where compositionStart is before startOfRangeOfInterestInSelection.

Test: DocumentEditingContext.RequestMarkedTextRectsAndTextOnly

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

Tools:

Add an API test to exercise the case where the options UIWKDocumentRequestMarkedTextRects and
UIWKDocumentRequestText are 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 Keith Rollin
  • 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 Truitt Savell
  • 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 Jonathan Bedard
  • 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 ysuzuki@apple.com
  • 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 Truitt Savell
  • 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 Alan Coon
  • 1 copy in branches/safari-609.1.13-branch

New branch.

4:02 PM Changeset in webkit [253595] by pvollan@apple.com
  • 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 Truitt Savell
  • 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 Alan Coon
  • 8 edits in trunk/Source

Versioning.

3:33 PM Changeset in webkit [253592] by Chris Dumez
  • 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 BJ Burg
  • 23 edits
    1 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 Truitt Savell
  • 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 Truitt Savell
  • 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 ysuzuki@apple.com
  • 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 subspaceFor implementations.

  • 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 Jonathan Bedard
  • 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 Truitt Savell
  • 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 ysuzuki@apple.com
  • 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 Truitt Savell
  • 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 rniwa@webkit.org
  • 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 dbates@webkit.org
  • 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 mark.lam@apple.com
  • 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 dbates@webkit.org
  • 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 Truitt Savell
  • 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 dbates@webkit.org
  • 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:

  1. When the specified position is at a paragraph boundary.

For this case, we do what we do now for the !withinUnitOfGranularity case.

  1. 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 Michael Catanzaro
(diff)
2:24 PM Changeset in webkit [253577] by Jonathan Bedard
  • 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 ysuzuki@apple.com
  • 25 edits
    2 copies
    1 move
    1 add
    1 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 ap@apple.com
  • 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 rniwa@webkit.org
  • 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 youenn@apple.com
  • 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 keith_miller@apple.com
  • 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 Antti Koivisto
  • 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 Wenson Hsieh
  • 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 Alan Coon
  • 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 Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

11:13 AM Changeset in webkit [253567] by Alan Bujtas
  • 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 Alan Coon
  • 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 Andres Gonzalez
  • 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 pvollan@apple.com
  • 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 youenn@apple.com
  • 6 edits
    4 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 youenn@apple.com
  • 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 dbates@webkit.org
  • 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 Antti Koivisto
  • 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 Simon Fraser
  • 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 eric.carlson@apple.com
  • 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 Kate Cheney
  • 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 Chris Dumez
  • 6 edits
    5 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 Alan Bujtas
  • 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.

  1. There is a soft wrap opportunity around every typographic character unit.
  2. 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 Chris Dumez
  • 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 emilio
  • 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 pvollan@apple.com
  • 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 pvollan@apple.com
  • 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 Alan Bujtas
  • 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 Alan Bujtas
  • 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 Carlos Garcia Campos
  • 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 Carlos Garcia Campos
  • 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 Carlos Garcia Campos
  • 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 youenn@apple.com
  • 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 youenn@apple.com
  • 4 edits
    2 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 Wenson Hsieh
  • 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
null Connection* 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 zhifei_fang@apple.com
  • 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 emilio
  • 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 emilio
  • 34 edits
    2 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 emilio
  • 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 Adrian Perez de Castro
  • 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 Alan Bujtas
  • 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 emilio
  • 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 Alan Bujtas
  • 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 Alan Bujtas
  • 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 Alan Bujtas
  • 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

  1. the case when the candidate content's first character does not fit the line
  2. 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 Alan Bujtas
  • 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):

Note: See TracTimeline for information about the timeline view.