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):

Dec 14, 2019:

6:44 PM Changeset in webkit [253531] by Simon Fraser
  • 8 edits in trunk/Source/WebKit

Rename "customFixedPositionRect" to "layoutViewportRect"
https://bugs.webkit.org/show_bug.cgi?id=205241

Reviewed by Dean Jackson.

WK2 computes the rect used to layout out position:fixed elements in the UI process.
For historical reasons this was called customFixedPositionRect, but rename it to
layoutViewportRect since that what it really is.

  • Shared/VisibleContentRectUpdateInfo.cpp:

(WebKit::VisibleContentRectUpdateInfo::encode const):
(WebKit::VisibleContentRectUpdateInfo::decode):
(WebKit::operator<<):

  • Shared/VisibleContentRectUpdateInfo.h:

(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::layoutViewportRect const):
(WebKit::operator==):
(WebKit::VisibleContentRectUpdateInfo::customFixedPositionRect const): Deleted.

  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::currentLayoutViewport const):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::layoutViewportRect const):
(WebKit::WebPageProxy::customFixedPositionRect const): Deleted.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView didUpdateVisibleRect:unobscuredRect:contentInsets:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):
(-[WKContentView _didCommitLayerTree:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::computeLayoutViewportRect const):
(WebKit::WebPageProxy::unconstrainedLayoutViewportRect const):
(WebKit::WebPageProxy::computeCustomFixedPositionRect const): Deleted.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateVisibleContentRects):

3:37 PM Changeset in webkit [253530] by pvollan@apple.com
  • 9 edits
    1 add in trunk/Source

Map CSS value ID to system color in the UI process
https://bugs.webkit.org/show_bug.cgi?id=204314
<rdar://problem/57295392>
Source/WebCore:

Reviewed by Brent Fulgham.

Currently, RenderThemeIOS is mapping CSS value IDs to system colors in the WebContent process. This mapping leads to
invoking selectors on UITraitCollection and UIColor, which will send messages to the runningboard daemon. Since we
will be blocking access to this daemon in the WebContent process, this mapping should be moved to the UI process.
The UI process will create a mapping between CSS value IDs and system colors, and pass it to the WebContent process.

No new tests, covered by existing tests.

  • WebCore.xcodeproj/project.pbxproj:
  • rendering/CSSValueKey.h: Added.

(WebCore::operator==):
(WebCore::CSSValueKey::encode const):
(WebCore::CSSValueKey::decode):
(WebCore::CSSValueKey::hash const):
(WTF::CSSValueKeyHash::hash):
(WTF::CSSValueKeyHash::equal):
(WTF::HashTraits<WebCore::CSSValueKey>::emptyValue):
(WTF::HashTraits<WebCore::CSSValueKey>::constructDeletedValue):
(WTF::HashTraits<WebCore::CSSValueKey>::isDeletedValue):

  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::cssValueIDSelectorList):
(WebCore::systemColorFromCSSValueID):
(WebCore::globalCSSValueToSystemColorMap):
(WebCore::RenderThemeIOS::createCSSValueToSystemColorMap):
(WebCore::RenderThemeIOS::setCSSValueToSystemColorMap):
(WebCore::RenderThemeIOS::systemColor const):

Source/WebKit:

Reviewed by Brent Fulgham.

Create mapping between CSS value IDs and system colors in the UI process and send to the WebContent process
on process startup.

No new tests, covered by existing tests.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

3:20 PM Changeset in webkit [253529] by pvollan@apple.com
  • 5 edits in trunk

[iOS] Deny mach lookup access to "*.viewservice" in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=205240

Reviewed by Brent Fulgham.

Source/WebKit:

As part of sandbox hardening in the WebContent process, mach lookup access to “*.viewservice” should be removed.

Test: fast/sandbox/ios/sandbox-mach-lookup.html

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
1:49 PM Changeset in webkit [253528] by Chris Dumez
  • 5 edits in trunk/Source/WebKit

WebSWServerConnection::startFetch() should never fail synchronously
https://bugs.webkit.org/show_bug.cgi?id=205225
<rdar://problem/57490508>

Reviewed by Geoffrey Garen.

WebSWServerConnection::startFetch() should never fail synchronously. If it does, it will
confuse the NetworkResourceLoader. NetworkResourceLoader::serviceWorkerDidNotHandle() will
get called *before* NetworkResourceLoader::m_serviceWorkerFetchTask has been sent, which
means that we would not properly deal with redirects. Worse, the call site which creates
the ServiceWorkerFetchTask would then null out m_networkLoad, which would silently cancel
the load that WebSWServerConnection::startFetch() started synchronously.

No new tests, I am not sure how to test this. It would have to cause a redirect do a URL
that has a service worker and then we would have to get WebSWServerConnection::startFetch()
to fail synchronously. I think that to fail synchronously, we would have to not find a
ServiceWorker with the given ID, or the ServiceWorker's hasTimedOutAnyFetchTasks would have
to be set.

I added a RELEASE_ASSERT() in NetworkResourceLoader::serviceWorkerDidNotHandle() that would
have caught this.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::startFetch):

12:18 PM Changeset in webkit [253527] by Simon Fraser
  • 16 edits
    1 copy
    3 adds in trunk/Source/WebKit

Move code out of WKWebView.mm into platform-specific files, for easier navigation
https://bugs.webkit.org/show_bug.cgi?id=205233

Reviewed by Tim Horton.

Move as much platform-specific code out of WKWebView.mm as possible, moving it to WKWebViewMac/WKWebViewIOS.
WKWebView (WKPrivate) is split into WKWebView (WKPrivateIOS) and WKWebView (WKPrivateMac) so the implementations
of those functions can move.

Code that remains in WKWebView.mm is either Cocoa-generic, or implements API.

This is entirely cut/paste, other than the addition of -_takeFindStringFromSelectionInternal: for macOS
to allow WKWebView.mm to call -takeFindStringFromSelection:.

  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKWebView.mm:

(hardwareKeyboardAvailabilityChangedCallback):
(-[WKWebView setAllowsBackForwardNavigationGestures:]):
(-[WKWebView allowsBackForwardNavigationGestures]):
(-[WKWebView setPageZoom:]):
(-[WKWebView pageZoom]):
(toFindOptions):
(-[WKWebView findString:withConfiguration:completionHandler:]):
(+[WKWebView handlesURLScheme:]):
(-[WKWebView setMediaType:]):
(-[WKWebView mediaType]):
(-[WKWebView scrollView]):
(-[WKWebView setAllowsMagnification:]):
(-[WKWebView allowsMagnification]):
(-[WKWebView setMagnification:centeredAtPoint:]):
(-[WKWebView setMagnification:]):
(-[WKWebView magnification]):
(-[WKWebView printOperationWithPrintInfo:]):
(-[WKWebView _showSafeBrowsingWarning:completionHandler:]):
(-[WKWebView _clearSafeBrowsingWarning]):
(-[WKWebView _clearSafeBrowsingWarningIfForMainFrameNavigation]):
(-[WKWebView _internalDoAfterNextPresentationUpdate:withoutWaitingForPainting:withoutWaitingForAnimatedResize:]):
(dictionaryRepresentationForEditorState):
(nsTextAlignment):
(selectionAttributes):
(-[WKWebView _didChangeEditorState]):
(-[WKWebView _toggleStrikeThrough:]):
(-[WKWebView _increaseListLevel:]):
(-[WKWebView _decreaseListLevel:]):
(-[WKWebView _changeListType:]):
(-[WKWebView inputAccessoryView]):
(-[WKWebView inputView]):
(-[WKWebView inputAssistantItem]):
(-[WKWebView _selectionAttributes]):
(-[WKWebView _viewportSizeForCSSViewportUnits]):
(-[WKWebView _setViewportSizeForCSSViewportUnits:]):
(-[WKWebView _inspector]):
(-[WKWebView _mainFrame]):
(-[WKWebView _isEditable]):
(-[WKWebView _setEditable:]):
(-[WKWebView _executeEditCommand:argument:completion:]):
(-[WKWebView _textManipulationDelegate]):
(-[WKWebView _setTextManipulationDelegate:]):
(-[WKWebView _startTextManipulationsWithConfiguration:completion:]):
(-[WKWebView _completeTextManipulation:completion:]):
(-[WKWebView _takeFindStringFromSelection:]):
(+[WKWebView _stringForFind]):
(+[WKWebView _setStringForFind:]):
(-[WKWebView _remoteObjectRegistry]):
(-[WKWebView _handle]):
(-[WKWebView _observedRenderingProgressEvents]):
(-[WKWebView _historyDelegate]):
(-[WKWebView _setHistoryDelegate:]):
(-[WKWebView _updateMediaPlaybackControlsManager]):
(-[WKWebView _canTogglePictureInPicture]):
(-[WKWebView _isPictureInPictureActive]):
(-[WKWebView _togglePictureInPicture]):
(-[WKWebView _closeAllMediaPresentations]):
(-[WKWebView _stopMediaCapture]):
(-[WKWebView _stopAllMediaPlayback]):
(-[WKWebView _suspendAllMediaPlayback]):
(-[WKWebView _resumeAllMediaPlayback]):
(-[WKWebView _unreachableURL]):
(-[WKWebView _mainFrameURL]):
(-[WKWebView _loadAlternateHTMLString:baseURL:forUnreachableURL:]):
(-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]):
(-[WKWebView _loadRequest:shouldOpenExternalURLs:]):
(-[WKWebView _certificateChain]):
(-[WKWebView _committedURL]):
(-[WKWebView _MIMEType]):
(-[WKWebView _userAgent]):
(-[WKWebView _applicationNameForUserAgent]):
(-[WKWebView _setApplicationNameForUserAgent:]):
(-[WKWebView _customUserAgent]):
(-[WKWebView _setCustomUserAgent:]):
(-[WKWebView _setUserContentExtensionsEnabled:]):
(-[WKWebView _userContentExtensionsEnabled]):
(-[WKWebView _webProcessIdentifier]):
(-[WKWebView _provisionalWebProcessIdentifier]):
(-[WKWebView _webProcessIsResponsive]):
(-[WKWebView _killWebContentProcess]):
(-[WKWebView _reloadWithoutContentBlockers]):
(-[WKWebView _reloadExpiredOnly]):
(-[WKWebView _killWebContentProcessAndResetState]):
(-[WKWebView _convertRectFromRootViewCoordinates:]):
(-[WKWebView _convertRectToRootViewCoordinates:]):
(-[WKWebView _requestTextInputContextsInRect:completionHandler:]):
(-[WKWebView _focusTextInputContext:completionHandler:]):
(-[WKWebView _takePDFSnapshotWithConfiguration:completionHandler:]):
(-[WKWebView _sessionStateData]):
(-[WKWebView _sessionState]):
(-[WKWebView _sessionStateWithFilter:]):
(-[WKWebView _restoreFromSessionStateData:]):
(-[WKWebView _restoreSessionState:andNavigate:]):
(-[WKWebView _close]):
(-[WKWebView _insertAttachmentWithFilename:contentType:data:options:completion:]):
(-[WKWebView _insertAttachmentWithFileWrapper:contentType:options:completion:]):
(-[WKWebView _insertAttachmentWithFileWrapper:contentType:completion:]):
(-[WKWebView _attachmentForIdentifier:]):
(-[WKWebView _simulateDeviceOrientationChangeWithAlpha:beta:gamma:]):
(+[WKWebView _handlesSafeBrowsing]):
(-[WKWebView _showSafeBrowsingWarningWithTitle:warning:details:completionHandler:]):
(-[WKWebView _showSafeBrowsingWarningWithURL:title:warning:details:completionHandler:]):
(+[WKWebView _confirmMalwareSentinel]):
(+[WKWebView _visitUnsafeWebsiteSentinel]):
(-[WKWebView _isJITEnabled:]):
(-[WKWebView _evaluateJavaScriptWithoutUserGesture:completionHandler:]):
(-[WKWebView _updateWebsitePolicies:]):
(-[WKWebView _allowsRemoteInspection]):
(-[WKWebView _setAllowsRemoteInspection:]):
(-[WKWebView _remoteInspectionNameOverride]):
(-[WKWebView _setRemoteInspectionNameOverride:]):
(-[WKWebView _addsVisitedLinks]):
(-[WKWebView _setAddsVisitedLinks:]):
(-[WKWebView _networkRequestsInProgress]):
(layoutMilestones):
(-[WKWebView _setObservedRenderingProgressEvents:]):
(-[WKWebView _getMainResourceDataWithCompletionHandler:]):
(-[WKWebView _getWebArchiveDataWithCompletionHandler:]):
(-[WKWebView _getContentsAsStringWithCompletionHandler:]):
(-[WKWebView _getContentsAsAttributedStringWithCompletionHandler:]):
(-[WKWebView _getApplicationManifestWithCompletionHandler:]):
(-[WKWebView _paginationMode]):
(-[WKWebView _setPaginationMode:]):
(-[WKWebView _paginationBehavesLikeColumns]):
(-[WKWebView _setPaginationBehavesLikeColumns:]):
(-[WKWebView _pageLength]):
(-[WKWebView _setPageLength:]):
(-[WKWebView _gapBetweenPages]):
(-[WKWebView _setGapBetweenPages:]):
(-[WKWebView _paginationLineGridEnabled]):
(-[WKWebView _setPaginationLineGridEnabled:]):
(-[WKWebView _pageCount]):
(-[WKWebView _supportsTextZoom]):
(-[WKWebView _textZoomFactor]):
(-[WKWebView _setTextZoomFactor:]):
(-[WKWebView _pageZoomFactor]):
(-[WKWebView _setPageZoomFactor:]):
(-[WKWebView _diagnosticLoggingDelegate]):
(-[WKWebView _setDiagnosticLoggingDelegate:]):
(-[WKWebView _findDelegate]):
(-[WKWebView _setFindDelegate:]):
(-[WKWebView _countStringMatches:options:maxCount:]):
(-[WKWebView _findString:options:maxCount:]):
(-[WKWebView _hideFindUI]):
(-[WKWebView _saveBackForwardSnapshotForItem:]):
(-[WKWebView _inputDelegate]):
(-[WKWebView _setInputDelegate:]):
(-[WKWebView _isDisplayingStandaloneImageDocument]):
(-[WKWebView _isDisplayingStandaloneMediaDocument]):
(-[WKWebView _isPlayingAudio]):
(-[WKWebView _isShowingNavigationGestureSnapshot]):
(-[WKWebView _layoutMode]):
(-[WKWebView _setLayoutMode:]):
(-[WKWebView _fixedLayoutSize]):
(-[WKWebView _setFixedLayoutSize:]):
(-[WKWebView _setBackgroundExtendsBeyondPage:]):
(-[WKWebView _backgroundExtendsBeyondPage]):
(-[WKWebView _viewScale]):
(-[WKWebView _setViewScale:]):
(-[WKWebView _setMinimumEffectiveDeviceWidth:]):
(-[WKWebView _minimumEffectiveDeviceWidth]):
(-[WKWebView _setScrollPerformanceDataCollectionEnabled:]):
(-[WKWebView _scrollPerformanceDataCollectionEnabled]):
(-[WKWebView _scrollPerformanceData]):
(-[WKWebView _allowsMediaDocumentInlinePlayback]):
(-[WKWebView _setAllowsMediaDocumentInlinePlayback:]):
(-[WKWebView _setFullscreenDelegate:]):
(-[WKWebView _fullscreenDelegate]):
(-[WKWebView _isInFullscreen]):
(-[WKWebView _mediaCaptureState]):
(-[WKWebView _setMediaCaptureEnabled:]):
(-[WKWebView _mediaCaptureEnabled]):
(-[WKWebView _setPageMuted:]):
(-[WKWebView _removeDataDetectedLinks:]):
(-[WKWebView _doAfterNextPresentationUpdate:]):
(-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForPainting:]):
(toAPIScrollbarStyle): Deleted.
(toCoreScrollbarStyle): Deleted.
(deviceOrientationForUIInterfaceOrientation): Deleted.
(deviceOrientation): Deleted.
(-[WKWebView setFrame:]): Deleted.
(-[WKWebView setBounds:]): Deleted.
(-[WKWebView layoutSubviews]): Deleted.
(-[WKWebView _isShowingVideoPictureInPicture]): Deleted.
(-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]): Deleted.
(-[WKWebView _incrementFocusPreservationCount]): Deleted.
(-[WKWebView _decrementFocusPreservationCount]): Deleted.
(-[WKWebView _resetFocusPreservationCount]): Deleted.
(-[WKWebView _isRetainingActiveFocusedState]): Deleted.
(-[WKWebView _effectiveAppearanceIsDark]): Deleted.
(-[WKWebView _effectiveUserInterfaceLevelIsElevated]): Deleted.
(-[WKWebView _shouldAvoidResizingWhenInputViewBoundsChange]): Deleted.
(-[WKWebView _dragInteractionPolicy]): Deleted.
(-[WKWebView _setDragInteractionPolicy:]): Deleted.
(-[WKWebView _populateArchivedSubviews:]): Deleted.
(-[WKWebView _isBackground]): Deleted.
(-[WKWebView browsingContextController]): Deleted.
(-[WKWebView becomeFirstResponder]): Deleted.
(-[WKWebView canBecomeFirstResponder]): Deleted.
(-[WKWebView resignFirstResponder]): Deleted.
(-[WKWebView canPerformAction:withSender:]): Deleted.
(-[WKWebView targetForAction:withSender:]): Deleted.
(-[WKWebView willFinishIgnoringCalloutBarFadeAfterPerformingAction]): Deleted.
(floorToDevicePixel): Deleted.
(pointsEqualInDevicePixels): Deleted.
(roundScrollViewContentSize): Deleted.
(-[WKWebView _currentContentView]): Deleted.
(-[WKWebView _contentProviderRegistry]): Deleted.
(-[WKWebView _selectionGranularity]): Deleted.
(-[WKWebView _setHasCustomContentView:loadedMIMEType:]): Deleted.
(-[WKWebView _didFinishLoadingDataForCustomContentProviderWithSuggestedFilename:data:]): Deleted.
(-[WKWebView _handleKeyUIEvent:]): Deleted.
(-[WKWebView _willInvokeUIScrollViewDelegateCallback]): Deleted.
(-[WKWebView _didInvokeUIScrollViewDelegateCallback]): Deleted.
(contentZoomScale): Deleted.
(baseScrollViewBackgroundColor): Deleted.
(scrollViewBackgroundColor): Deleted.
(-[WKWebView _updateScrollViewBackground]): Deleted.
(-[WKWebView _videoControlsManagerDidChange]): Deleted.
(-[WKWebView _initialContentOffsetForScrollView]): Deleted.
(-[WKWebView _contentOffsetAdjustedForObscuredInset:]): Deleted.
(-[WKWebView _effectiveObscuredInsetEdgesAffectedBySafeArea]): Deleted.
(-[WKWebView _computedObscuredInset]): Deleted.
(-[WKWebView _computedContentInset]): Deleted.
(-[WKWebView _computedUnobscuredSafeAreaInset]): Deleted.
(-[WKWebView _processWillSwapOrDidExit]): Deleted.
(-[WKWebView _processWillSwap]): Deleted.
(-[WKWebView _processDidExit]): Deleted.
(-[WKWebView _didRelaunchProcess]): Deleted.
(-[WKWebView _didCommitLoadForMainFrame]): Deleted.
(contentOffsetBoundedInValidRange): Deleted.
(changeContentOffsetBoundedInValidRange): Deleted.
(-[WKWebView visibleRectInViewCoordinates]): Deleted.
(areEssentiallyEqualAsFloat): Deleted.
(-[WKWebView _didCommitLayerTreeDuringAnimatedResize:]): Deleted.
(-[WKWebView _didCommitLayerTree:]): Deleted.
(-[WKWebView _layerTreeCommitComplete]): Deleted.
(-[WKWebView _couldNotRestorePageState]): Deleted.
(-[WKWebView _restorePageScrollPosition:scrollOrigin:previousObscuredInset:scale:]): Deleted.
(-[WKWebView _restorePageStateToUnobscuredCenter:scale:]): Deleted.
(-[WKWebView _takeViewSnapshot]): Deleted.
(-[WKWebView _zoomToPoint:atScale:animated:]): Deleted.
(-[WKWebView _zoomToRect:atScale:origin:animated:]): Deleted.
(constrainContentOffset): Deleted.
(-[WKWebView _scrollToContentScrollPosition:scrollOrigin:]): Deleted.
(-[WKWebView _scrollToRect:origin:minimumScrollDistance:]): Deleted.
(-[WKWebView _zoomOutWithOrigin:animated:]): Deleted.
(-[WKWebView _zoomToInitialScaleWithOrigin:animated:]): Deleted.
(-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]): Deleted.
(-[WKWebView _initialScaleFactor]): Deleted.
(-[WKWebView _contentZoomScale]): Deleted.
(-[WKWebView _targetContentZoomScaleForRect:currentScale:fitEntireRect:minimumScale:maximumScale:]): Deleted.
(-[WKWebView _zoomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]): Deleted.
(-[WKWebView didMoveToWindow]): Deleted.
(-[WKWebView _setOpaqueInternal:]): Deleted.
(-[WKWebView setOpaque:]): Deleted.
(-[WKWebView setBackgroundColor:]): Deleted.
(-[WKWebView _allowsDoubleTapGestures]): Deleted.
(-[WKWebView _stylusTapGestureShouldCreateEditableImage]): Deleted.
(-[WKWebView usesStandardContentView]): Deleted.
(-[WKWebView scrollView:contentSizeForZoomScale:withProposedSize:]): Deleted.
(-[WKWebView viewForZoomingInScrollView:]): Deleted.
(-[WKWebView scrollViewWillBeginZooming:withView:]): Deleted.
(-[WKWebView scrollViewWillBeginDragging:]): Deleted.
(-[WKWebView _didFinishScrolling]): Deleted.
(-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]): Deleted.
(-[WKWebView scrollViewDidEndDragging:willDecelerate:]): Deleted.
(-[WKWebView scrollViewDidEndDecelerating:]): Deleted.
(-[WKWebView scrollViewDidScrollToTop:]): Deleted.
(-[WKWebView _scrollView:adjustedOffsetForOffset:translation:startPoint:locationInView:horizontalVelocity:verticalVelocity:]): Deleted.
(-[WKWebView scrollViewDidScroll:]): Deleted.
(-[WKWebView scrollViewDidZoom:]): Deleted.
(-[WKWebView scrollViewDidEndZooming:withView:atScale:]): Deleted.
(-[WKWebView scrollViewDidEndScrollingAnimation:]): Deleted.
(-[WKWebView _scrollViewDidInterruptDecelerating:]): Deleted.
(-[WKWebView _enclosingViewForExposedRectComputation]): Deleted.
(-[WKWebView _visibleRectInEnclosingView:]): Deleted.
(-[WKWebView _visibleContentRect]): Deleted.
(-[WKWebView _didScroll]): Deleted.
(-[WKWebView _enclosingScrollerScrollingEnded:]): Deleted.
(-[WKWebView _scrollViewSystemContentInset]): Deleted.
(-[WKWebView activeViewLayoutSize:]): Deleted.
(-[WKWebView _dispatchSetViewLayoutSize:]): Deleted.
(-[WKWebView _dispatchSetMaximumUnobscuredSize:]): Deleted.
(-[WKWebView _dispatchSetDeviceOrientation:]): Deleted.
(-[WKWebView _frameOrBoundsChanged]): Deleted.
(-[WKWebView _contentRectForUserInteraction]): Deleted.
(-[WKWebView _scrollViewIsRubberBanding]): Deleted.
(-[WKWebView safeAreaInsetsDidChange]): Deleted.
(-[WKWebView _scheduleVisibleContentRectUpdate]): Deleted.
(-[WKWebView _scrollViewIsInStableState:]): Deleted.
(-[WKWebView _addUpdateVisibleContentRectPreCommitHandler]): Deleted.
(-[WKWebView _scheduleVisibleContentRectUpdateAfterScrollInView:]): Deleted.
(scrollViewCanScroll): Deleted.
(-[WKWebView _contentBoundsExtendedForRubberbandingWithScale:]): Deleted.
(-[WKWebView _updateVisibleContentRects]): Deleted.
(-[WKWebView _didStartProvisionalLoadForMainFrame]): Deleted.
(activeMaximumUnobscuredSize): Deleted.
(activeOrientation): Deleted.
(-[WKWebView _cancelAnimatedResize]): Deleted.
(-[WKWebView _didCompleteAnimatedResize]): Deleted.
(-[WKWebView _didFinishLoadForMainFrame]): Deleted.
(-[WKWebView _didFailLoadForMainFrame]): Deleted.
(-[WKWebView _didSameDocumentNavigationForMainFrame:]): Deleted.
(-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]): Deleted.
(-[WKWebView _shouldUpdateKeyboardWithInfo:]): Deleted.
(-[WKWebView _keyboardWillChangeFrame:]): Deleted.
(-[WKWebView _keyboardDidChangeFrame:]): Deleted.
(-[WKWebView _keyboardWillShow:]): Deleted.
(-[WKWebView _keyboardDidShow:]): Deleted.
(-[WKWebView _keyboardWillHide:]): Deleted.
(-[WKWebView _windowDidRotate:]): Deleted.
(-[WKWebView _contentSizeCategoryDidChange:]): Deleted.
(-[WKWebView _contentSizeCategory]): Deleted.
(-[WKWebView _accessibilitySettingsDidChange:]): Deleted.
(-[WKWebView _isNavigationSwipeGestureRecognizer:]): Deleted.
(-[WKWebView _navigationGestureDidBegin]): Deleted.
(-[WKWebView _navigationGestureDidEnd]): Deleted.
(-[WKWebView _showPasswordViewWithDocumentName:passwordHandler:]): Deleted.
(-[WKWebView _hidePasswordView]): Deleted.
(-[WKWebView _passwordView]): Deleted.
(-[WKWebView _updateScrollViewInsetAdjustmentBehavior]): Deleted.
(-[WKWebView _setAvoidsUnsafeArea:]): Deleted.
(-[WKWebView _haveSetObscuredInsets]): Deleted.
(-[WKWebView acceptsFirstResponder]): Deleted.
(-[WKWebView viewWillStartLiveResize]): Deleted.
(-[WKWebView viewDidEndLiveResize]): Deleted.
(-[WKWebView isFlipped]): Deleted.
(-[WKWebView intrinsicContentSize]): Deleted.
(-[WKWebView prepareContentInRect:]): Deleted.
(-[WKWebView setFrameSize:]): Deleted.
(-[WKWebView _web_grantDOMPasteAccess]): Deleted.
(-[WKWebView _prepareForImmediateActionAnimation]): Deleted.
(-[WKWebView _cancelImmediateActionAnimation]): Deleted.
(-[WKWebView _completeImmediateActionAnimation]): Deleted.
(-[WKWebView ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): Deleted.
(-[WKWebView writeSelectionToPasteboard:types:]): Deleted.
(-[WKWebView centerSelectionInVisibleArea:]): Deleted.
(-[WKWebView validRequestorForSendType:returnType:]): Deleted.
(-[WKWebView readSelectionFromPasteboard:]): Deleted.
(-[WKWebView changeFont:]): Deleted.
(-[WKWebView changeColor:]): Deleted.
(-[WKWebView changeAttributes:]): Deleted.
(-[WKWebView startSpeaking:]): Deleted.
(-[WKWebView stopSpeaking:]): Deleted.
(-[WKWebView showGuessPanel:]): Deleted.
(-[WKWebView checkSpelling:]): Deleted.
(-[WKWebView changeSpelling:]): Deleted.
(-[WKWebView toggleContinuousSpellChecking:]): Deleted.
(-[WKWebView isGrammarCheckingEnabled]): Deleted.
(-[WKWebView setGrammarCheckingEnabled:]): Deleted.
(-[WKWebView toggleGrammarChecking:]): Deleted.
(-[WKWebView toggleAutomaticSpellingCorrection:]): Deleted.
(-[WKWebView orderFrontSubstitutionsPanel:]): Deleted.
(-[WKWebView toggleSmartInsertDelete:]): Deleted.
(-[WKWebView isAutomaticQuoteSubstitutionEnabled]): Deleted.
(-[WKWebView setAutomaticQuoteSubstitutionEnabled:]): Deleted.
(-[WKWebView toggleAutomaticQuoteSubstitution:]): Deleted.
(-[WKWebView isAutomaticDashSubstitutionEnabled]): Deleted.
(-[WKWebView setAutomaticDashSubstitutionEnabled:]): Deleted.
(-[WKWebView toggleAutomaticDashSubstitution:]): Deleted.
(-[WKWebView isAutomaticLinkDetectionEnabled]): Deleted.
(-[WKWebView setAutomaticLinkDetectionEnabled:]): Deleted.
(-[WKWebView toggleAutomaticLinkDetection:]): Deleted.
(-[WKWebView isAutomaticTextReplacementEnabled]): Deleted.
(-[WKWebView setAutomaticTextReplacementEnabled:]): Deleted.
(-[WKWebView toggleAutomaticTextReplacement:]): Deleted.
(-[WKWebView uppercaseWord:]): Deleted.
(-[WKWebView lowercaseWord:]): Deleted.
(-[WKWebView capitalizeWord:]): Deleted.
(-[WKWebView _wantsKeyDownForEvent:]): Deleted.
(-[WKWebView scrollWheel:]): Deleted.
(-[WKWebView swipeWithEvent:]): Deleted.
(-[WKWebView mouseMoved:]): Deleted.
(-[WKWebView mouseDown:]): Deleted.
(-[WKWebView mouseUp:]): Deleted.
(-[WKWebView mouseDragged:]): Deleted.
(-[WKWebView mouseEntered:]): Deleted.
(-[WKWebView mouseExited:]): Deleted.
(-[WKWebView otherMouseDown:]): Deleted.
(-[WKWebView otherMouseDragged:]): Deleted.
(-[WKWebView otherMouseUp:]): Deleted.
(-[WKWebView rightMouseDown:]): Deleted.
(-[WKWebView rightMouseDragged:]): Deleted.
(-[WKWebView rightMouseUp:]): Deleted.
(-[WKWebView pressureChangeWithEvent:]): Deleted.
(-[WKWebView acceptsFirstMouse:]): Deleted.
(-[WKWebView shouldDelayWindowOrderingForEvent:]): Deleted.
(-[WKWebView doCommandBySelector:]): Deleted.
(-[WKWebView insertText:]): Deleted.
(-[WKWebView insertText:replacementRange:]): Deleted.
(-[WKWebView inputContext]): Deleted.
(-[WKWebView performKeyEquivalent:]): Deleted.
(-[WKWebView keyUp:]): Deleted.
(-[WKWebView keyDown:]): Deleted.
(-[WKWebView flagsChanged:]): Deleted.
(-[WKWebView setMarkedText:selectedRange:replacementRange:]): Deleted.
(-[WKWebView unmarkText]): Deleted.
(-[WKWebView selectedRange]): Deleted.
(-[WKWebView hasMarkedText]): Deleted.
(-[WKWebView markedRange]): Deleted.
(-[WKWebView attributedSubstringForProposedRange:actualRange:]): Deleted.
(-[WKWebView characterIndexForPoint:]): Deleted.
(-[WKWebView typingAttributesWithCompletionHandler:]): Deleted.
(-[WKWebView firstRectForCharacterRange:actualRange:]): Deleted.
(-[WKWebView selectedRangeWithCompletionHandler:]): Deleted.
(-[WKWebView markedRangeWithCompletionHandler:]): Deleted.
(-[WKWebView hasMarkedTextWithCompletionHandler:]): Deleted.
(-[WKWebView attributedSubstringForProposedRange:completionHandler:]): Deleted.
(-[WKWebView firstRectForCharacterRange:completionHandler:]): Deleted.
(-[WKWebView characterIndexForPoint:completionHandler:]): Deleted.
(-[WKWebView validAttributesForMarkedText]): Deleted.
(-[WKWebView draggedImage:endedAt:operation:]): Deleted.
(-[WKWebView draggingEntered:]): Deleted.
(-[WKWebView draggingUpdated:]): Deleted.
(-[WKWebView draggingExited:]): Deleted.
(-[WKWebView prepareForDragOperation:]): Deleted.
(-[WKWebView performDragOperation:]): Deleted.
(-[WKWebView _hitTest:dragTypes:]): Deleted.
(-[WKWebView _windowResizeMouseLocationIsInVisibleScrollerThumb:]): Deleted.
(-[WKWebView viewWillMoveToWindow:]): Deleted.
(-[WKWebView viewDidMoveToWindow]): Deleted.
(-[WKWebView drawRect:]): Deleted.
(-[WKWebView isOpaque]): Deleted.
(-[WKWebView mouseDownCanMoveWindow]): Deleted.
(-[WKWebView viewDidHide]): Deleted.
(-[WKWebView viewDidUnhide]): Deleted.
(-[WKWebView viewDidChangeBackingProperties]): Deleted.
(-[WKWebView _activeSpaceDidChange:]): Deleted.
(-[WKWebView accessibilityFocusedUIElement]): Deleted.
(-[WKWebView accessibilityHitTest:]): Deleted.
(-[WKWebView accessibilityAttributeValue:]): Deleted.
(-[WKWebView accessibilityAttributeValue:forParameter:]): Deleted.
(-[WKWebView hitTest:]): Deleted.
(-[WKWebView conversationIdentifier]): Deleted.
(-[WKWebView quickLookWithEvent:]): Deleted.
(-[WKWebView addTrackingRect:owner:userData:assumeInside:]): Deleted.
(-[WKWebView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): Deleted.
(-[WKWebView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): Deleted.
(-[WKWebView removeTrackingRect:]): Deleted.
(-[WKWebView _removeTrackingRects:count:]): Deleted.
(-[WKWebView view:stringForToolTip:point:userData:]): Deleted.
(-[WKWebView pasteboardChangedOwner:]): Deleted.
(-[WKWebView pasteboard:provideDataForType:]): Deleted.
(-[WKWebView namesOfPromisedFilesDroppedAtDestination:]): Deleted.
(-[WKWebView wantsUpdateLayer]): Deleted.
(-[WKWebView updateLayer]): Deleted.
(-[WKWebView smartMagnifyWithEvent:]): Deleted.
(-[WKWebView magnifyWithEvent:]): Deleted.
(-[WKWebView rotateWithEvent:]): Deleted.
(-[WKWebView _usePlatformFindUI]): Deleted.
(-[WKWebView _setUsePlatformFindUI:]): Deleted.
(-[WKWebView _ensureTextFinderClient]): Deleted.
(-[WKWebView findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:]): Deleted.
(-[WKWebView replaceMatches:withString:inSelectionOnly:resultCollector:]): Deleted.
(-[WKWebView scrollFindMatchToVisible:]): Deleted.
(-[WKWebView documentContainerView]): Deleted.
(-[WKWebView getSelectedText:]): Deleted.
(-[WKWebView selectFindMatch:completionHandler:]): Deleted.
(-[WKWebView _web_superInputContext]): Deleted.
(-[WKWebView _web_superQuickLookWithEvent:]): Deleted.
(-[WKWebView _web_superSwipeWithEvent:]): Deleted.
(-[WKWebView _web_superMagnifyWithEvent:]): Deleted.
(-[WKWebView _web_superSmartMagnifyWithEvent:]): Deleted.
(-[WKWebView _web_superRemoveTrackingRect:]): Deleted.
(-[WKWebView _web_superAccessibilityAttributeValue:]): Deleted.
(-[WKWebView _web_superDoCommandBySelector:]): Deleted.
(-[WKWebView _web_superPerformKeyEquivalent:]): Deleted.
(-[WKWebView _web_superKeyDown:]): Deleted.
(-[WKWebView _web_superHitTest:]): Deleted.
(-[WKWebView _web_immediateActionAnimationControllerForHitTestResultInternal:withType:userData:]): Deleted.
(-[WKWebView _web_prepareForImmediateActionAnimation]): Deleted.
(-[WKWebView _web_cancelImmediateActionAnimation]): Deleted.
(-[WKWebView _web_completeImmediateActionAnimation]): Deleted.
(-[WKWebView _web_didChangeContentSize:]): Deleted.
(-[WKWebView _web_dragDestinationActionForDraggingInfo:]): Deleted.
(-[WKWebView _web_didPerformDragOperation:]): Deleted.
(-[WKWebView _web_dismissContentRelativeChildWindows]): Deleted.
(-[WKWebView _web_dismissContentRelativeChildWindowsWithAnimation:]): Deleted.
(-[WKWebView _web_editorStateDidChange]): Deleted.
(-[WKWebView _web_gestureEventWasNotHandledByWebCore:]): Deleted.
(-[WKWebView filePromiseProvider:fileNameForType:]): Deleted.
(-[WKWebView filePromiseProvider:writePromiseToURL:completionHandler:]): Deleted.
(-[WKWebView draggingSession:sourceOperationMaskForDraggingContext:]): Deleted.
(-[WKWebView draggingSession:endedAtPoint:operation:]): Deleted.
(-[WKWebView makeTouchBar]): Deleted.
(-[WKWebView candidateListTouchBarItem]): Deleted.
(-[WKWebView _web_didAddMediaControlsManager:]): Deleted.
(-[WKWebView _web_didRemoveMediaControlsManager]): Deleted.
(-[WKWebView _interactWithMediaControlsForTesting]): Deleted.
(-[WKWebView _useSystemAppearance]): Deleted.
(-[WKWebView _setUseSystemAppearance:]): Deleted.
(-[WKWebView _pageRefForTransitionToWKWebView]): Deleted.
(-[WKWebView _canChangeFrameLayout:]): Deleted.
(-[WKWebView _tryToSwipeWithEvent:ignoringPinnedState:]): Deleted.
(-[WKWebView _ignoresNonWheelEvents]): Deleted.
(-[WKWebView _setIgnoresNonWheelEvents:]): Deleted.
(-[WKWebView _hasActiveVideoForControlsManager]): Deleted.
(-[WKWebView _dismissContentRelativeChildWindows]): Deleted.
(-[WKWebView _gestureEventWasNotHandledByWebCore:]): Deleted.
(-[WKWebView _disableFrameSizeUpdates]): Deleted.
(-[WKWebView _enableFrameSizeUpdates]): Deleted.
(-[WKWebView _beginDeferringViewInWindowChanges]): Deleted.
(-[WKWebView _endDeferringViewInWindowChanges]): Deleted.
(-[WKWebView _endDeferringViewInWindowChangesSync]): Deleted.
(-[WKWebView _fullScreenPlaceholderView]): Deleted.
(-[WKWebView _fullScreenWindow]): Deleted.
(-[WKWebView _underlayColor]): Deleted.
(-[WKWebView _setUnderlayColor:]): Deleted.
(-[WKWebView _setCustomSwipeViews:]): Deleted.
(-[WKWebView _setCustomSwipeViewsTopContentInset:]): Deleted.
(-[WKWebView _setDidMoveSwipeSnapshotCallback:]): Deleted.
(-[WKWebView _setFrame:andScrollBy:]): Deleted.
(-[WKWebView _setTotalHeightOfBanners:]): Deleted.
(-[WKWebView _totalHeightOfBanners]): Deleted.
(-[WKWebView _setShouldSuppressFirstResponderChanges:]): Deleted.
(-[WKWebView _setFont:sender:]): Deleted.
(-[WKWebView _setFontSize:sender:]): Deleted.
(-[WKWebView _setTextColor:sender:]): Deleted.
(-[WKWebView _requestActivatedElementAtPosition:completionBlock:]): Deleted.
(-[WKWebView _contentVisibleRect]): Deleted.
(-[WKWebView _convertPointFromContentsToView:]): Deleted.
(-[WKWebView _convertPointFromViewToContents:]): Deleted.
(-[WKWebView didStartFormControlInteraction]): Deleted.
(-[WKWebView didEndFormControlInteraction]): Deleted.
(-[WKWebView _uiTextCaretRect]): Deleted.
(-[WKWebView _accessibilityRetrieveRectsAtSelectionOffset:withText:completionHandler:]): Deleted.
(-[WKWebView _accessibilityStoreSelection]): Deleted.
(-[WKWebView _accessibilityClearSelection]): Deleted.
(-[WKWebView _contentViewIsFirstResponder]): Deleted.
(-[WKWebView _retainActiveFocusedState]): Deleted.
(-[WKWebView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]): Deleted.
(-[WKWebView _snapshotLayerContentsForBackForwardListItem:]): Deleted.
(-[WKWebView _dataDetectionResults]): Deleted.
(-[WKWebView _accessibilityRetrieveSpeakSelectionContent]): Deleted.
(-[WKWebView _accessibilityDidGetSpeakSelectionContent:]): Deleted.
(-[WKWebView _safeBrowsingWarning]): Deleted.
(-[WKWebView _doAfterNextStablePresentationUpdate:]): Deleted.
(-[WKWebView _detectDataWithTypes:completionHandler:]): Deleted.
(-[WKWebView removeFromSuperview]): Deleted.
(-[WKWebView _minimumLayoutSizeOverride]): Deleted.
(-[WKWebView _setViewLayoutSizeOverride:]): Deleted.
(-[WKWebView _obscuredInsets]): Deleted.
(-[WKWebView _setObscuredInsets:]): Deleted.
(-[WKWebView _obscuredInsetEdgesAffectedBySafeArea]): Deleted.
(-[WKWebView _setObscuredInsetEdgesAffectedBySafeArea:]): Deleted.
(-[WKWebView _unobscuredSafeAreaInsets]): Deleted.
(-[WKWebView _setUnobscuredSafeAreaInsets:]): Deleted.
(-[WKWebView _safeAreaShouldAffectObscuredInsets]): Deleted.
(-[WKWebView _setInterfaceOrientationOverride:]): Deleted.
(-[WKWebView _interfaceOrientationOverride]): Deleted.
(-[WKWebView _clearInterfaceOrientationOverride]): Deleted.
(-[WKWebView _maximumUnobscuredSizeOverride]): Deleted.
(-[WKWebView _setMaximumUnobscuredSizeOverride:]): Deleted.
(-[WKWebView _setAllowsViewportShrinkToFit:]): Deleted.
(-[WKWebView _allowsViewportShrinkToFit]): Deleted.
(-[WKWebView _beginInteractiveObscuredInsetsChange]): Deleted.
(-[WKWebView _endInteractiveObscuredInsetsChange]): Deleted.
(-[WKWebView _hideContentUntilNextUpdate]): Deleted.
(-[WKWebView _beginAnimatedResizeWithUpdates:]): Deleted.
(-[WKWebView _endAnimatedResize]): Deleted.
(-[WKWebView _resizeWhileHidingContentWithUpdates:]): Deleted.
(-[WKWebView _firePresentationUpdateForPendingStableStatePresentationCallbacks]): Deleted.
(-[WKWebView _setOverlaidAccessoryViewsInset:]): Deleted.
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]): Deleted.
(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]): Deleted.
(-[WKWebView _clearOverrideLayoutParameters]): Deleted.
(viewportArgumentsFromDictionary): Deleted.
(-[WKWebView _overrideViewportWithArguments:]): Deleted.
(-[WKWebView _viewForFindUI]): Deleted.
(-[WKWebView _isDisplayingPDF]): Deleted.
(-[WKWebView _dataForDisplayedPDF]): Deleted.
(-[WKWebView _suggestedFilenameForDisplayedPDF]): Deleted.
(-[WKWebView _webViewPrintFormatter]): Deleted.
(toUserInterfaceLayoutDirection): Deleted.
(-[WKWebView setSemanticContentAttribute:]): Deleted.
(-[WKWebView _drawsBackground]): Deleted.
(-[WKWebView _setDrawsBackground:]): Deleted.
(-[WKWebView _backgroundColor]): Deleted.
(-[WKWebView _setBackgroundColor:]): Deleted.
(-[WKWebView _setDrawsTransparentBackground:]): Deleted.
(-[WKWebView _inspectorAttachmentView]): Deleted.
(-[WKWebView _setInspectorAttachmentView:]): Deleted.
(-[WKWebView _setOverlayScrollbarStyle:]): Deleted.
(-[WKWebView _overlayScrollbarStyle]): Deleted.
(-[WKWebView _windowOcclusionDetectionEnabled]): Deleted.
(-[WKWebView _setWindowOcclusionDetectionEnabled:]): Deleted.
(-[WKWebView shareSheetDidDismiss:]): Deleted.
(-[WKWebView _setOverrideDeviceScaleFactor:]): Deleted.
(-[WKWebView _overrideDeviceScaleFactor]): Deleted.
(-[WKWebView _setTopContentInset:]): Deleted.
(-[WKWebView _topContentInset]): Deleted.
(-[WKWebView _pageExtendedBackgroundColor]): Deleted.
(-[WKWebView _pinnedState]): Deleted.
(-[WKWebView _rubberBandingEnabled]): Deleted.
(-[WKWebView _setRubberBandingEnabled:]): Deleted.
(-[WKWebView _immediateActionAnimationControllerForHitTestResult:withType:userData:]): Deleted.
(-[WKWebView _setAutomaticallyAdjustsContentInsets:]): Deleted.
(-[WKWebView _automaticallyAdjustsContentInsets]): Deleted.
(-[WKWebView _minimumLayoutWidth]): Deleted.
(-[WKWebView _setMinimumLayoutWidth:]): Deleted.
(-[WKWebView _shouldExpandContentToViewHeightForAutoLayout]): Deleted.
(-[WKWebView _setShouldExpandContentToViewHeightForAutoLayout:]): Deleted.
(-[WKWebView _alwaysShowsHorizontalScroller]): Deleted.
(-[WKWebView _setAlwaysShowsHorizontalScroller:]): Deleted.
(-[WKWebView _alwaysShowsVerticalScroller]): Deleted.
(-[WKWebView _setAlwaysShowsVerticalScroller:]): Deleted.
(-[WKWebView _printOperationWithPrintInfo:]): Deleted.
(-[WKWebView _printOperationWithPrintInfo:forFrame:]): Deleted.
(-[WKWebView setUserInterfaceLayoutDirection:]): Deleted.
(-[WKWebView _wantsMediaPlaybackControlsView]): Deleted.
(-[WKWebView _setWantsMediaPlaybackControlsView:]): Deleted.
(-[WKWebView _mediaPlaybackControlsView]): Deleted.
(-[WKWebView _addMediaPlaybackControlsView:]): Deleted.
(-[WKWebView _removeMediaPlaybackControlsView]): Deleted.
(-[WKWebView _prepareForMoveToWindow:completionHandler:]): Deleted.
(-[WKWebView _setThumbnailView:]): Deleted.
(-[WKWebView _thumbnailView]): Deleted.
(-[WKWebView _setIgnoresAllEvents:]): Deleted.
(-[WKWebView _ignoresAllEvents]): Deleted.
(-[WKWebView _spellCheckerDocumentTag]): Deleted.
(-[WKWebView hasFullScreenWindowController]): Deleted.
(-[WKWebView closeFullScreenWindowController]): Deleted.
(-[WKWebView fullScreenWindowController]): Deleted.
(-[WKWebView validateUserInterfaceItem:]): Deleted.
(-[WKWebView goBack:]): Deleted.
(-[WKWebView goForward:]): Deleted.
(-[WKWebView reload:]): Deleted.
(-[WKWebView reloadFromOrigin:]): Deleted.
(-[WKWebView stopLoading:]): Deleted.
(-[WKWebView _printFormatterClass]): Deleted.
(-[WKWebView _printProvider]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:
  • UIProcess/API/ios/WKWebViewIOS.h: Copied from Source/WebKit/UIProcess/API/Cocoa/WKWebViewInternal.h.
  • UIProcess/API/ios/WKWebViewIOS.mm: Added.

(deviceOrientationForUIInterfaceOrientation):
(deviceOrientation):
(-[WKWebView setFrame:]):
(-[WKWebView setBounds:]):
(-[WKWebView layoutSubviews]):
(-[WKWebView _isShowingVideoPictureInPicture]):
(-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]):
(-[WKWebView _incrementFocusPreservationCount]):
(-[WKWebView _decrementFocusPreservationCount]):
(-[WKWebView _resetFocusPreservationCount]):
(-[WKWebView _isRetainingActiveFocusedState]):
(-[WKWebView _effectiveAppearanceIsDark]):
(-[WKWebView _effectiveUserInterfaceLevelIsElevated]):
(-[WKWebView _populateArchivedSubviews:]):
(-[WKWebView _isBackground]):
(-[WKWebView browsingContextController]):
(-[WKWebView becomeFirstResponder]):
(-[WKWebView canBecomeFirstResponder]):
(-[WKWebView resignFirstResponder]):
(-[WKWebView canPerformAction:withSender:]):
(-[WKWebView targetForAction:withSender:]):
(-[WKWebView willFinishIgnoringCalloutBarFadeAfterPerformingAction]):
(floorToDevicePixel):
(pointsEqualInDevicePixels):
(roundScrollViewContentSize):
(-[WKWebView _currentContentView]):
(-[WKWebView _contentProviderRegistry]):
(-[WKWebView _selectionGranularity]):
(-[WKWebView _setHasCustomContentView:loadedMIMEType:]):
(-[WKWebView _didFinishLoadingDataForCustomContentProviderWithSuggestedFilename:data:]):
(-[WKWebView _handleKeyUIEvent:]):
(-[WKWebView _willInvokeUIScrollViewDelegateCallback]):
(-[WKWebView _didInvokeUIScrollViewDelegateCallback]):
(contentZoomScale):
(baseScrollViewBackgroundColor):
(scrollViewBackgroundColor):
(-[WKWebView _updateScrollViewBackground]):
(-[WKWebView _videoControlsManagerDidChange]):
(-[WKWebView _initialContentOffsetForScrollView]):
(-[WKWebView _contentOffsetAdjustedForObscuredInset:]):
(-[WKWebView _effectiveObscuredInsetEdgesAffectedBySafeArea]):
(-[WKWebView _computedObscuredInset]):
(-[WKWebView _computedContentInset]):
(-[WKWebView _computedUnobscuredSafeAreaInset]):
(-[WKWebView _processWillSwapOrDidExit]):
(-[WKWebView _processWillSwap]):
(-[WKWebView _processDidExit]):
(-[WKWebView _didRelaunchProcess]):
(-[WKWebView _didCommitLoadForMainFrame]):
(contentOffsetBoundedInValidRange):
(changeContentOffsetBoundedInValidRange):
(-[WKWebView visibleRectInViewCoordinates]):
(areEssentiallyEqualAsFloat):
(-[WKWebView _didCommitLayerTreeDuringAnimatedResize:]):
(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView _layerTreeCommitComplete]):
(-[WKWebView _couldNotRestorePageState]):
(-[WKWebView _restorePageScrollPosition:scrollOrigin:previousObscuredInset:scale:]):
(-[WKWebView _restorePageStateToUnobscuredCenter:scale:]):
(-[WKWebView _takeViewSnapshot]):
(-[WKWebView _zoomToPoint:atScale:animated:]):
(-[WKWebView _zoomToRect:atScale:origin:animated:]):
(constrainContentOffset):
(-[WKWebView _scrollToContentScrollPosition:scrollOrigin:]):
(-[WKWebView _scrollToRect:origin:minimumScrollDistance:]):
(-[WKWebView _zoomOutWithOrigin:animated:]):
(-[WKWebView _zoomToInitialScaleWithOrigin:animated:]):
(-[WKWebView _zoomToFocusRect:selectionRect:insideFixed:fontSize:minimumScale:maximumScale:allowScaling:forceScroll:]):
(-[WKWebView _initialScaleFactor]):
(-[WKWebView _contentZoomScale]):
(-[WKWebView _targetContentZoomScaleForRect:currentScale:fitEntireRect:minimumScale:maximumScale:]):
(-[WKWebView _zoomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]):
(-[WKWebView didMoveToWindow]):
(-[WKWebView _setOpaqueInternal:]):
(-[WKWebView setOpaque:]):
(-[WKWebView setBackgroundColor:]):
(-[WKWebView _allowsDoubleTapGestures]):
(-[WKWebView _stylusTapGestureShouldCreateEditableImage]):
(-[WKWebView usesStandardContentView]):
(-[WKWebView scrollView:contentSizeForZoomScale:withProposedSize:]):
(-[WKWebView viewForZoomingInScrollView:]):
(-[WKWebView scrollViewWillBeginZooming:withView:]):
(-[WKWebView scrollViewWillBeginDragging:]):
(-[WKWebView _didFinishScrolling]):
(-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]):
(-[WKWebView scrollViewDidEndDragging:willDecelerate:]):
(-[WKWebView scrollViewDidEndDecelerating:]):
(-[WKWebView scrollViewDidScrollToTop:]):
(-[WKWebView _scrollView:adjustedOffsetForOffset:translation:startPoint:locationInView:horizontalVelocity:verticalVelocity:]):
(-[WKWebView scrollViewDidScroll:]):
(-[WKWebView scrollViewDidZoom:]):
(-[WKWebView scrollViewDidEndZooming:withView:atScale:]):
(-[WKWebView scrollViewDidEndScrollingAnimation:]):
(-[WKWebView _scrollViewDidInterruptDecelerating:]):
(-[WKWebView _visibleRectInEnclosingView:]):
(-[WKWebView _visibleContentRect]):
(-[WKWebView _didScroll]):
(-[WKWebView _enclosingScrollerScrollingEnded:]):
(-[WKWebView _scrollViewSystemContentInset]):
(-[WKWebView activeViewLayoutSize:]):
(-[WKWebView _dispatchSetViewLayoutSize:]):
(-[WKWebView _dispatchSetMaximumUnobscuredSize:]):
(-[WKWebView _dispatchSetDeviceOrientation:]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _contentRectForUserInteraction]):
(-[WKWebView _scrollViewIsRubberBanding]):
(-[WKWebView safeAreaInsetsDidChange]):
(-[WKWebView _scheduleVisibleContentRectUpdate]):
(-[WKWebView _scrollViewIsInStableState:]):
(-[WKWebView _addUpdateVisibleContentRectPreCommitHandler]):
(-[WKWebView _scheduleVisibleContentRectUpdateAfterScrollInView:]):
(scrollViewCanScroll):
(-[WKWebView _contentBoundsExtendedForRubberbandingWithScale:]):
(-[WKWebView _updateVisibleContentRects]):
(-[WKWebView _didStartProvisionalLoadForMainFrame]):
(activeMaximumUnobscuredSize):
(activeOrientation):
(-[WKWebView _cancelAnimatedResize]):
(-[WKWebView _didCompleteAnimatedResize]):
(-[WKWebView _didFinishLoadForMainFrame]):
(-[WKWebView _didFailLoadForMainFrame]):
(-[WKWebView _didSameDocumentNavigationForMainFrame:]):
(-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]):
(-[WKWebView _shouldUpdateKeyboardWithInfo:]):
(-[WKWebView _keyboardWillChangeFrame:]):
(-[WKWebView _keyboardDidChangeFrame:]):
(-[WKWebView _keyboardWillShow:]):
(-[WKWebView _keyboardDidShow:]):
(-[WKWebView _keyboardWillHide:]):
(-[WKWebView _windowDidRotate:]):
(-[WKWebView _contentSizeCategoryDidChange:]):
(-[WKWebView _accessibilitySettingsDidChange:]):
(-[WKWebView _contentSizeCategory]):
(-[WKWebView _isNavigationSwipeGestureRecognizer:]):
(-[WKWebView _navigationGestureDidBegin]):
(-[WKWebView _navigationGestureDidEnd]):
(-[WKWebView _showPasswordViewWithDocumentName:passwordHandler:]):
(-[WKWebView _hidePasswordView]):
(-[WKWebView _passwordView]):
(-[WKWebView _updateScrollViewInsetAdjustmentBehavior]):
(-[WKWebView _setAvoidsUnsafeArea:]):
(-[WKWebView _haveSetObscuredInsets]):
(-[WKWebView removeFromSuperview]):
(-[WKWebView _firePresentationUpdateForPendingStableStatePresentationCallbacks]):
(toUserInterfaceLayoutDirection):
(-[WKWebView setSemanticContentAttribute:]):
(-[WKWebView _contentVisibleRect]):
(-[WKWebView _minimumLayoutSizeOverride]):
(-[WKWebView _setViewLayoutSizeOverride:]):
(-[WKWebView _maximumUnobscuredSizeOverride]):
(-[WKWebView _setMaximumUnobscuredSizeOverride:]):
(-[WKWebView _obscuredInsets]):
(-[WKWebView _setObscuredInsets:]):
(-[WKWebView _obscuredInsetEdgesAffectedBySafeArea]):
(-[WKWebView _setObscuredInsetEdgesAffectedBySafeArea:]):
(-[WKWebView _unobscuredSafeAreaInsets]):
(-[WKWebView _setUnobscuredSafeAreaInsets:]):
(-[WKWebView _safeAreaShouldAffectObscuredInsets]):
(-[WKWebView _enclosingViewForExposedRectComputation]):
(-[WKWebView _setInterfaceOrientationOverride:]):
(-[WKWebView _interfaceOrientationOverride]):
(-[WKWebView _clearInterfaceOrientationOverride]):
(-[WKWebView _setAllowsViewportShrinkToFit:]):
(-[WKWebView _allowsViewportShrinkToFit]):
(-[WKWebView _isDisplayingPDF]):
(-[WKWebView _dataForDisplayedPDF]):
(-[WKWebView _suggestedFilenameForDisplayedPDF]):
(-[WKWebView _webViewPrintFormatter]):
(-[WKWebView _dragInteractionPolicy]):
(-[WKWebView _setDragInteractionPolicy:]):
(-[WKWebView _shouldAvoidResizingWhenInputViewBoundsChange]):
(-[WKWebView _contentViewIsFirstResponder]):
(-[WKWebView _uiTextCaretRect]):
(-[WKWebView _safeBrowsingWarning]):
(-[WKWebView _convertPointFromContentsToView:]):
(-[WKWebView _convertPointFromViewToContents:]):
(-[WKWebView _doAfterNextStablePresentationUpdate:]):
(-[WKWebView _setFont:sender:]):
(-[WKWebView _setFontSize:sender:]):
(-[WKWebView _setTextColor:sender:]):
(-[WKWebView _detectDataWithTypes:completionHandler:]):
(-[WKWebView _requestActivatedElementAtPosition:completionBlock:]):
(-[WKWebView didStartFormControlInteraction]):
(-[WKWebView didEndFormControlInteraction]):
(-[WKWebView _beginInteractiveObscuredInsetsChange]):
(-[WKWebView _endInteractiveObscuredInsetsChange]):
(-[WKWebView _hideContentUntilNextUpdate]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):
(-[WKWebView _resizeWhileHidingContentWithUpdates:]):
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]):
(-[WKWebView _clearOverrideLayoutParameters]):
(viewportArgumentsFromDictionary):
(-[WKWebView _overrideViewportWithArguments:]):
(-[WKWebView _viewForFindUI]):
(-[WKWebView _setOverlaidAccessoryViewsInset:]):
(-[WKWebView _retainActiveFocusedState]):
(-[WKWebView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]):
(-[WKWebView _snapshotLayerContentsForBackForwardListItem:]):
(-[WKWebView _dataDetectionResults]):
(-[WKWebView _accessibilityRetrieveRectsAtSelectionOffset:withText:completionHandler:]):
(-[WKWebView _accessibilityStoreSelection]):
(-[WKWebView _accessibilityClearSelection]):
(-[WKWebView _accessibilityRetrieveSpeakSelectionContent]):
(-[WKWebView _accessibilityDidGetSpeakSelectionContent:]):
(-[WKWebView _fullScreenPlaceholderView]):
(-[WKWebView hasFullScreenWindowController]):
(-[WKWebView closeFullScreenWindowController]):
(-[WKWebView fullScreenWindowController]):
(-[WKWebView _printFormatterClass]):
(-[WKWebView _printProvider]):

  • UIProcess/API/ios/WKWebViewTestingIOS.mm:
  • UIProcess/API/mac/WKView.mm:

(toCoreScrollbarStyle): Deleted.
(toAPIScrollbarStyle): Deleted.

  • UIProcess/API/mac/WKWebViewMac.h: Added.
  • UIProcess/API/mac/WKWebViewMac.mm: Added.

(toAPIScrollbarStyle):
(toCoreScrollbarStyle):
(-[WKWebView acceptsFirstResponder]):
(-[WKWebView becomeFirstResponder]):
(-[WKWebView resignFirstResponder]):
(-[WKWebView viewWillStartLiveResize]):
(-[WKWebView viewDidEndLiveResize]):
(-[WKWebView isFlipped]):
(-[WKWebView intrinsicContentSize]):
(-[WKWebView prepareContentInRect:]):
(-[WKWebView setFrameSize:]):
(-[WKWebView setUserInterfaceLayoutDirection:]):
(-[WKWebView ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(-[WKWebView writeSelectionToPasteboard:types:]):
(-[WKWebView centerSelectionInVisibleArea:]):
(-[WKWebView validRequestorForSendType:returnType:]):
(-[WKWebView readSelectionFromPasteboard:]):
(-[WKWebView changeFont:]):
(-[WKWebView changeColor:]):
(-[WKWebView changeAttributes:]):
(-[WKWebView startSpeaking:]):
(-[WKWebView stopSpeaking:]):
(-[WKWebView showGuessPanel:]):
(-[WKWebView checkSpelling:]):
(-[WKWebView changeSpelling:]):
(-[WKWebView toggleContinuousSpellChecking:]):
(-[WKWebView isGrammarCheckingEnabled]):
(-[WKWebView setGrammarCheckingEnabled:]):
(-[WKWebView toggleGrammarChecking:]):
(-[WKWebView toggleAutomaticSpellingCorrection:]):
(-[WKWebView orderFrontSubstitutionsPanel:]):
(-[WKWebView toggleSmartInsertDelete:]):
(-[WKWebView isAutomaticQuoteSubstitutionEnabled]):
(-[WKWebView setAutomaticQuoteSubstitutionEnabled:]):
(-[WKWebView toggleAutomaticQuoteSubstitution:]):
(-[WKWebView isAutomaticDashSubstitutionEnabled]):
(-[WKWebView setAutomaticDashSubstitutionEnabled:]):
(-[WKWebView toggleAutomaticDashSubstitution:]):
(-[WKWebView isAutomaticLinkDetectionEnabled]):
(-[WKWebView setAutomaticLinkDetectionEnabled:]):
(-[WKWebView toggleAutomaticLinkDetection:]):
(-[WKWebView isAutomaticTextReplacementEnabled]):
(-[WKWebView setAutomaticTextReplacementEnabled:]):
(-[WKWebView toggleAutomaticTextReplacement:]):
(-[WKWebView uppercaseWord:]):
(-[WKWebView lowercaseWord:]):
(-[WKWebView capitalizeWord:]):
(-[WKWebView _wantsKeyDownForEvent:]):
(-[WKWebView scrollWheel:]):
(-[WKWebView swipeWithEvent:]):
(-[WKWebView mouseMoved:]):
(-[WKWebView mouseDown:]):
(-[WKWebView mouseUp:]):
(-[WKWebView mouseDragged:]):
(-[WKWebView mouseEntered:]):
(-[WKWebView mouseExited:]):
(-[WKWebView otherMouseDown:]):
(-[WKWebView otherMouseDragged:]):
(-[WKWebView otherMouseUp:]):
(-[WKWebView rightMouseDown:]):
(-[WKWebView rightMouseDragged:]):
(-[WKWebView rightMouseUp:]):
(-[WKWebView pressureChangeWithEvent:]):
(-[WKWebView acceptsFirstMouse:]):
(-[WKWebView shouldDelayWindowOrderingForEvent:]):
(-[WKWebView doCommandBySelector:]):
(-[WKWebView inputContext]):
(-[WKWebView performKeyEquivalent:]):
(-[WKWebView keyUp:]):
(-[WKWebView keyDown:]):
(-[WKWebView flagsChanged:]):
(-[WKWebView setMarkedText:selectedRange:replacementRange:]):
(-[WKWebView unmarkText]):
(-[WKWebView selectedRange]):
(-[WKWebView hasMarkedText]):
(-[WKWebView markedRange]):
(-[WKWebView attributedSubstringForProposedRange:actualRange:]):
(-[WKWebView characterIndexForPoint:]):
(-[WKWebView typingAttributesWithCompletionHandler:]):
(-[WKWebView firstRectForCharacterRange:actualRange:]):
(-[WKWebView selectedRangeWithCompletionHandler:]):
(-[WKWebView markedRangeWithCompletionHandler:]):
(-[WKWebView hasMarkedTextWithCompletionHandler:]):
(-[WKWebView attributedSubstringForProposedRange:completionHandler:]):
(-[WKWebView firstRectForCharacterRange:completionHandler:]):
(-[WKWebView characterIndexForPoint:completionHandler:]):
(-[WKWebView validAttributesForMarkedText]):
(-[WKWebView draggedImage:endedAt:operation:]):
(-[WKWebView draggingEntered:]):
(-[WKWebView draggingUpdated:]):
(-[WKWebView draggingExited:]):
(-[WKWebView prepareForDragOperation:]):
(-[WKWebView performDragOperation:]):
(-[WKWebView _hitTest:dragTypes:]):
(-[WKWebView _windowResizeMouseLocationIsInVisibleScrollerThumb:]):
(-[WKWebView viewWillMoveToWindow:]):
(-[WKWebView viewDidMoveToWindow]):
(-[WKWebView drawRect:]):
(-[WKWebView isOpaque]):
(-[WKWebView mouseDownCanMoveWindow]):
(-[WKWebView viewDidHide]):
(-[WKWebView viewDidUnhide]):
(-[WKWebView viewDidChangeBackingProperties]):
(-[WKWebView _activeSpaceDidChange:]):
(-[WKWebView accessibilityFocusedUIElement]):
(-[WKWebView accessibilityHitTest:]):
(-[WKWebView accessibilityAttributeValue:]):
(-[WKWebView accessibilityAttributeValue:forParameter:]):
(-[WKWebView hitTest:]):
(-[WKWebView conversationIdentifier]):
(-[WKWebView quickLookWithEvent:]):
(-[WKWebView addTrackingRect:owner:userData:assumeInside:]):
(-[WKWebView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]):
(-[WKWebView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]):
(-[WKWebView removeTrackingRect:]):
(-[WKWebView _removeTrackingRects:count:]):
(-[WKWebView view:stringForToolTip:point:userData:]):
(-[WKWebView pasteboardChangedOwner:]):
(-[WKWebView pasteboard:provideDataForType:]):
(-[WKWebView namesOfPromisedFilesDroppedAtDestination:]):
(-[WKWebView wantsUpdateLayer]):
(-[WKWebView updateLayer]):
(-[WKWebView smartMagnifyWithEvent:]):
(-[WKWebView magnifyWithEvent:]):
(-[WKWebView rotateWithEvent:]):
(-[WKWebView _ensureTextFinderClient]):
(-[WKWebView findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:]):
(-[WKWebView replaceMatches:withString:inSelectionOnly:resultCollector:]):
(-[WKWebView scrollFindMatchToVisible:]):
(-[WKWebView documentContainerView]):
(-[WKWebView getSelectedText:]):
(-[WKWebView selectFindMatch:completionHandler:]):
(-[WKWebView filePromiseProvider:fileNameForType:]):
(-[WKWebView filePromiseProvider:writePromiseToURL:completionHandler:]):
(-[WKWebView draggingSession:sourceOperationMaskForDraggingContext:]):
(-[WKWebView draggingSession:endedAtPoint:operation:]):
(-[WKWebView _prepareForImmediateActionAnimation]):
(-[WKWebView _cancelImmediateActionAnimation]):
(-[WKWebView _completeImmediateActionAnimation]):
(-[WKWebView _setDrawsTransparentBackground:]):
(-[WKWebView shareSheetDidDismiss:]):
(-[WKWebView makeTouchBar]):
(-[WKWebView candidateListTouchBarItem]):
(-[WKWebView _web_didAddMediaControlsManager:]):
(-[WKWebView _web_didRemoveMediaControlsManager]):
(-[WKWebView _interactWithMediaControlsForTesting]):
(-[WKWebView validateUserInterfaceItem:]):
(-[WKWebView goBack:]):
(-[WKWebView goForward:]):
(-[WKWebView reload:]):
(-[WKWebView reloadFromOrigin:]):
(-[WKWebView stopLoading:]):
(-[WKWebView _web_superInputContext]):
(-[WKWebView _web_superQuickLookWithEvent:]):
(-[WKWebView _web_superSwipeWithEvent:]):
(-[WKWebView _web_superMagnifyWithEvent:]):
(-[WKWebView _web_superSmartMagnifyWithEvent:]):
(-[WKWebView _web_superRemoveTrackingRect:]):
(-[WKWebView _web_superAccessibilityAttributeValue:]):
(-[WKWebView _web_superDoCommandBySelector:]):
(-[WKWebView _web_superPerformKeyEquivalent:]):
(-[WKWebView _web_superKeyDown:]):
(-[WKWebView _web_superHitTest:]):
(-[WKWebView _web_immediateActionAnimationControllerForHitTestResultInternal:withType:userData:]):
(-[WKWebView _web_prepareForImmediateActionAnimation]):
(-[WKWebView _web_cancelImmediateActionAnimation]):
(-[WKWebView _web_completeImmediateActionAnimation]):
(-[WKWebView _web_didChangeContentSize:]):
(-[WKWebView _web_dragDestinationActionForDraggingInfo:]):
(-[WKWebView _web_didPerformDragOperation:]):
(-[WKWebView _web_dismissContentRelativeChildWindows]):
(-[WKWebView _web_dismissContentRelativeChildWindowsWithAnimation:]):
(-[WKWebView _web_editorStateDidChange]):
(-[WKWebView _web_gestureEventWasNotHandledByWebCore:]):
(-[WKWebView _web_grantDOMPasteAccess]):
(-[WKWebView _takeFindStringFromSelectionInternal:]):
(-[WKWebView insertText:]):
(-[WKWebView insertText:replacementRange:]):
(-[WKWebView _pageRefForTransitionToWKWebView]):
(-[WKWebView _hasActiveVideoForControlsManager]):
(-[WKWebView _ignoresNonWheelEvents]):
(-[WKWebView _setIgnoresNonWheelEvents:]):
(-[WKWebView _safeBrowsingWarning]):
(-[WKWebView _pinnedState]):
(-[WKWebView _rubberBandingEnabled]):
(-[WKWebView _setRubberBandingEnabled:]):
(-[WKWebView _pageExtendedBackgroundColor]):
(-[WKWebView _backgroundColor]):
(-[WKWebView _setBackgroundColor:]):
(-[WKWebView _underlayColor]):
(-[WKWebView _setUnderlayColor:]):
(-[WKWebView _setTotalHeightOfBanners:]):
(-[WKWebView _totalHeightOfBanners]):
(-[WKWebView _drawsBackground]):
(-[WKWebView _setDrawsBackground:]):
(-[WKWebView _setTopContentInset:]):
(-[WKWebView _topContentInset]):
(-[WKWebView _setAutomaticallyAdjustsContentInsets:]):
(-[WKWebView _automaticallyAdjustsContentInsets]):
(-[WKWebView _setOverrideDeviceScaleFactor:]):
(-[WKWebView _overrideDeviceScaleFactor]):
(-[WKWebView _windowOcclusionDetectionEnabled]):
(-[WKWebView _setWindowOcclusionDetectionEnabled:]):
(-[WKWebView _spellCheckerDocumentTag]):
(-[WKWebView _shouldExpandContentToViewHeightForAutoLayout]):
(-[WKWebView _setShouldExpandContentToViewHeightForAutoLayout:]):
(-[WKWebView _minimumLayoutWidth]):
(-[WKWebView _setMinimumLayoutWidth:]):
(-[WKWebView _alwaysShowsHorizontalScroller]):
(-[WKWebView _setAlwaysShowsHorizontalScroller:]):
(-[WKWebView _alwaysShowsVerticalScroller]):
(-[WKWebView _setAlwaysShowsVerticalScroller:]):
(-[WKWebView _useSystemAppearance]):
(-[WKWebView _setUseSystemAppearance:]):
(-[WKWebView _setOverlayScrollbarStyle:]):
(-[WKWebView _overlayScrollbarStyle]):
(-[WKWebView _inspectorAttachmentView]):
(-[WKWebView _setInspectorAttachmentView:]):
(-[WKWebView _setThumbnailView:]):
(-[WKWebView _thumbnailView]):
(-[WKWebView _setIgnoresAllEvents:]):
(-[WKWebView _ignoresAllEvents]):
(-[WKWebView _usePlatformFindUI]):
(-[WKWebView _setUsePlatformFindUI:]):
(-[WKWebView _setShouldSuppressFirstResponderChanges:]):
(-[WKWebView _canChangeFrameLayout:]):
(-[WKWebView _tryToSwipeWithEvent:ignoringPinnedState:]):
(-[WKWebView _dismissContentRelativeChildWindows]):
(-[WKWebView _setFrame:andScrollBy:]):
(-[WKWebView _gestureEventWasNotHandledByWebCore:]):
(-[WKWebView _disableFrameSizeUpdates]):
(-[WKWebView _enableFrameSizeUpdates]):
(-[WKWebView _beginDeferringViewInWindowChanges]):
(-[WKWebView _endDeferringViewInWindowChanges]):
(-[WKWebView _endDeferringViewInWindowChangesSync]):
(-[WKWebView _setCustomSwipeViews:]):
(-[WKWebView _setCustomSwipeViewsTopContentInset:]):
(-[WKWebView _setDidMoveSwipeSnapshotCallback:]):
(-[WKWebView _fullScreenPlaceholderView]):
(-[WKWebView _fullScreenWindow]):
(-[WKWebView _immediateActionAnimationControllerForHitTestResult:withType:userData:]):
(-[WKWebView _printOperationWithPrintInfo:]):
(-[WKWebView _printOperationWithPrintInfo:forFrame:]):
(-[WKWebView _wantsMediaPlaybackControlsView]):
(-[WKWebView _setWantsMediaPlaybackControlsView:]):
(-[WKWebView _mediaPlaybackControlsView]):
(-[WKWebView _addMediaPlaybackControlsView:]):
(-[WKWebView _removeMediaPlaybackControlsView]):
(-[WKWebView _prepareForMoveToWindow:completionHandler:]):

  • UIProcess/API/mac/WKWebViewTestingMac.mm:
  • UIProcess/ios/PageClientImplIOS.mm:
  • UIProcess/ios/WKContentView.mm:
  • UIProcess/ios/WKContentViewInteraction.mm:
  • UIProcess/ios/WKPDFView.mm:
  • UIProcess/ios/WKScrollView.mm:
  • UIProcess/ios/WKSystemPreviewView.mm:
  • WebKit.xcodeproj/project.pbxproj:
11:17 AM Changeset in webkit [253526] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Fix imported/w3c/web-platform-tests/css/css-text/white-space/break-spaces-003.html
https://bugs.webkit.org/show_bug.cgi?id=205237
<rdar://problem/57940108>

Reviewed by Antti Koivisto.

"white-space: break-spaces" : A line breaking opportunity exists after every preserved white space character,
including between white space characters.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::Content::isAtSoftWrapOpportunity):

11:00 AM Changeset in webkit [253525] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Rename LineBreaker::Content::isAtContentBoundary to isAtSoftWrapOpportunity
https://bugs.webkit.org/show_bug.cgi?id=205235
<rdar://problem/57939955>

Reviewed by Antti Koivisto.

The "soft wrap opportunity" is closer to the spec term.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::endsWithSoftWrapOpportunity):
(WebCore::Layout::LineBreaker::Content::isAtSoftWrapOpportunity):
(WebCore::Layout::LineBreaker::Content::append):
(WebCore::Layout::endsWithBreakingOpportunity): Deleted.
(WebCore::Layout::LineBreaker::Content::isAtContentBoundary): Deleted.

  • layout/inlineformatting/InlineLineBreaker.h:
  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::placeInlineItem):

6:12 AM Changeset in webkit [253524] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Add support for white-space: break-spaces
https://bugs.webkit.org/show_bug.cgi?id=205234
<rdar://problem/57938253>

Reviewed by Antti Koivisto.

"For break-spaces, a soft wrap opportunity exists after every space and every tab."
There are a few different ways to deal with breakable whitespace content.
The current approach is to split them into individual InlineTextItems so that
line breaking sees them as individual runs so that it never needs to split them in
case of overflow.

  • layout/inlineformatting/InlineTextItem.cpp:

(WebCore::Layout::InlineTextItem::createAndAppendTextItems):

  • layout/inlineformatting/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::shouldPreserveTrailingWhitespace):

5:03 AM Changeset in webkit [253523] by ddkilzer@apple.com
  • 11 edits in trunk/Source

Add release assert for selectedIndex in WebKit::WebPopupMenu::show()
<https://webkit.org/b/205223>
<rdar://problem/57929078>

Reviewed by Wenson Hsieh.

Source/WebCore:

  • platform/PopupMenu.h:

(WebCore::PopupMenu::show):

  • Rename index parameter to selectedIndex.

Source/WebKit:

  • WebProcess/WebCoreSupport/WebPopupMenu.cpp:

(WebKit::WebPopupMenu::show):

  • Add release assert to check for valid selectedIndex to fix the bug.
  • Rename index parameter to selectedIndex.
  • WebProcess/WebCoreSupport/WebPopupMenu.h:

(WebKit::WebPopupMenu::show):

  • Rename index parameter to selectedIndex.

Source/WebKitLegacy/ios:

  • WebCoreSupport/PopupMenuIOS.h:

(PopupMenuIOS::show):

  • Rename index parameter to selectedIndex.
  • WebCoreSupport/PopupMenuIOS.mm:

(PopupMenuIOS::show):

  • Rename index parameter to selectedIndex.

(PopupMenuIOS::disconnectClient):

  • Drive-by fix to change 0 to nullptr.

Source/WebKitLegacy/mac:

  • WebCoreSupport/PopupMenuMac.h:

(PopupMenuMac::show):

  • Rename index parameter to selectedIndex.
  • WebCoreSupport/PopupMenuMac.mm:

(PopupMenuMac::show):

  • Rename index parameter to selectedIndex.
4:47 AM Changeset in webkit [253522] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][IFC] Add text-indent support
https://bugs.webkit.org/show_bug.cgi?id=205231
<rdar://problem/57932746>

Reviewed by Antti Koivisto.

This property specifies the indentation applied to lines of inline content in a block.
The indent is treated as a margin applied to the start edge of the line box.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::constraintsForLine):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::computedTextIndent const):

  • layout/inlineformatting/InlineFormattingContextQuirks.cpp:

(WebCore::Layout::InlineFormattingContext::Quirks::lineHeightConstraints const):

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::placeInlineItem):

Dec 13, 2019:

10:37 PM Changeset in webkit [253521] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Nullptr crash if SVG element if element parent becomes document node
https://bugs.webkit.org/show_bug.cgi?id=205217

Patch by Sunny He <sunny_he@apple.com> on 2019-12-13
Reviewed by Ryosuke Niwa.

Test: svg/dom/replaceChild-document-crash.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::layoutOverflowRectForPropagation const):

  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::layout):

8:34 PM Changeset in webkit [253520] by ysuzuki@apple.com
  • 23 edits
    3 adds
    2 deletes in trunk

[JSC] Remove JSFixedArray, and use JSImmutableButterfly instead
https://bugs.webkit.org/show_bug.cgi?id=204402

Reviewed by Mark Lam.

JSTests:

  • stress/new-array-with-spread-cow-double.js: Added.

(shouldBe):
(shouldBeArray):
(test):

  • stress/new-array-with-spread-cow-int.js: Added.

(shouldBe):
(shouldBeArray):
(test):

  • stress/new-array-with-spread-cow.js: Added.

(shouldBe):
(shouldBeArray):
(test):

Source/JavaScriptCore:

This patch removes JSFixedArray, and use JSImmutableButterfly instead. JSFixedArray can be replaced by
JSImmutableButterfly with Contiguous shape. And further, we can create an array from JSImmutableButterfly
generated by Spread node in NewArrayBufferWithSpread.

Currently, we are always creating contiguous JSImmutableButterfly from Spread. If it takes contiguous CoW
array, we can reuse JSImmutableButterfly of the input. But if it is CoW and not contiguous shape (like,
CopyOnWriteArrayWithInt32), we create a JSImmutableButterfly and copy it to this new butterfly. We can
extend it to accept non-contiguous JSImmutableButterfly in the future.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecompiler/BytecodeGenerator.cpp:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:
  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileSpread):
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread):
(JSC::DFG::SpeculativeJIT::compileObjectKeys):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileSpread):
(JSC::FTL::DFG::LowerDFGToB3::toButterfly):

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationMaterializeObjectInOSR):

  • interpreter/Interpreter.cpp:

(JSC::sizeOfVarargs):
(JSC::loadVarargs):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/JSCast.h:
  • runtime/JSFixedArray.cpp: Removed.
  • runtime/JSFixedArray.h: Removed.
  • runtime/JSImmutableButterfly.h:

(JSC::JSImmutableButterfly::createFromArray):
(JSC::JSImmutableButterfly::offsetOfPublicLength):
(JSC::JSImmutableButterfly::offsetOfVectorLength):

  • runtime/JSType.cpp:

(WTF::printInternal):

  • runtime/JSType.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
7:12 PM Changeset in webkit [253519] by beidson@apple.com
  • 33 edits in trunk/Source

Refactor ScriptController's proliferation of ExceptionDetails*.
https://bugs.webkit.org/show_bug.cgi?id=205151

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Refactor, no behavior change).

There's so many ExceptionDetails* null pointers being passed around in the ScriptController
family of functions.

Let's make it a little more explicit which callers get exceptions and which don't.

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::ensureReplacementScriptInjected):

  • bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::execute):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorldIgnoringException):
(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::evaluateIgnoringException):
(WebCore::ScriptController::executeScriptInWorldIgnoringException):
(WebCore::ScriptController::executeScriptInWorld):
(WebCore::ScriptController::executeUserAgentScriptInWorld):
(WebCore::ScriptController::executeScriptIgnoringException):
(WebCore::ScriptController::executeIfJavaScriptURL):
(WebCore::ScriptController::evaluate): Deleted.
(WebCore::ScriptController::executeScript): Deleted.

  • bindings/js/ScriptController.h:
  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::processContentRuleListsForLoad):

  • dom/Document.cpp:

(WebCore::Document::ensurePlugInsInjectedScript):

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::executeClassicScript):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::evaluateAsBoolean):
(WebCore::InspectorFrontendClientLocal::evaluateOnLoad):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::didClearWindowObjectInWorld):

  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::didDecide):

  • page/Frame.cpp:

(WebCore::Frame::injectUserScriptImmediately):

  • xml/XMLTreeViewer.cpp:

(WebCore::XMLTreeViewer::transformDocumentToTreeView):

Source/WebKit:

  • UIProcess/API/C/WKPage.cpp:

(WKPageRunJavaScriptInMainFrame):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _evaluateJavaScript:forceUserGesture:completionHandler:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runJavaScriptInMainFrame):
(WebKit::WebPageProxy::runJavaScriptInMainFrameScriptWorld):
(WebKit::WebPageProxy::runJavaScriptInFrame):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::performJavaScriptURLRequest):

  • WebProcess/WebPage/WebInspectorFrontendAPIDispatcher.cpp:

(WebKit::WebInspectorFrontendAPIDispatcher::evaluateOrQueueExpression):
(WebKit::WebInspectorFrontendAPIDispatcher::evaluateQueuedExpressions):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScript):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorFrontendClient::save):
(WebInspectorFrontendClient::append):

  • WebView/WebFrame.mm:

(-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
(-[WebFrame _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]):

  • WebView/WebView.mm:

(-[WebView aeDescByEvaluatingJavaScriptFromString:]):

Source/WebKitLegacy/win:

  • Plugins/PluginView.cpp:

(WebCore::PluginView::performRequest):

  • WebFrame.cpp:

(WebFrame::stringByEvaluatingJavaScriptInScriptWorld):

  • WebView.cpp:

(WebView::stringByEvaluatingJavaScriptFromString):

6:10 PM Changeset in webkit [253518] by Wenson Hsieh
  • 2 edits in trunk/Tools

Unreviewed, fix the macCatalyst build after r253486

Replace the #elif with an #else, so that the codepath is compiled on non-iOS (but iOS-family) platforms such as
watchOS and macCatalyst.

  • TestWebKitAPI/Tests/WebKitCocoa/ClipboardTests.mm:

(readMarkupFromPasteboard):

6:08 PM Changeset in webkit [253517] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Structure should have a bloom filter of seen identifiers
https://bugs.webkit.org/show_bug.cgi?id=205182

Reviewed by Yusuke Suzuki and Tadeu Zagallo.

This patch adds a bloom filter of seen identifiers to Structure. This usually allows
us to quickly determine if a Structure *has not* seen a particular property. Based
on some logging I added in JetStream2 and Speedometer2, 70% of calls to Structure::get
result in us returning invalidOffset (e.g, the property does not exist). This patch
allows that path to be even faster. This bloom filter is just modeling what goes inside
Structure's property table. For that reason, we don't need to consider things inside
the static property table. We reason about the static property table inside JSObject's
property lookup.

This patch appears to be a 0.5% progression on Speedometer2.

  • runtime/Structure.cpp:

(JSC::Structure::Structure):

  • runtime/Structure.h:
  • runtime/StructureInlines.h:

(JSC::Structure::get):
(JSC::Structure::add):

5:52 PM Changeset in webkit [253516] by eric.carlson@apple.com
  • 16 edits in trunk/Source

Add remote media player message to load and play
https://bugs.webkit.org/show_bug.cgi?id=205220
<rdar://problem/57927486>

Reviewed by Jer Noble.
Source/WebCore:

No new tests. Tested manually because it is not possible to test on a bot yet.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::loadWithNextMediaEngine): Call the new method prepareForPlayback
instead of making four calls to set properties on a new player.

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::load): Add a load variant that takes a URL,
contentType, and keySystem.
(WebCore::MediaPlayerPrivateInterface::prepareForPlayback):

Source/WebKit:

Add WP -> GPU process messages: PrepareForPlayback, Load, CancelLoad, Play, Pause,
SetVolume, and SetMuted
Add GPUP -> WP message: PlaybackStateChanged

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::RemoteMediaPlayerManagerProxy):
(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::deleteMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::prepareForPlayback):
(WebKit::RemoteMediaPlayerManagerProxy::load):
(WebKit::RemoteMediaPlayerManagerProxy::cancelLoad):
(WebKit::RemoteMediaPlayerManagerProxy::play):
(WebKit::RemoteMediaPlayerManagerProxy::pause):
(WebKit::RemoteMediaPlayerManagerProxy::setVolume):
(WebKit::RemoteMediaPlayerManagerProxy::setMuted):
(WebKit::RemoteMediaPlayerManagerProxy::logChannel const):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:

(WebKit::RemoteMediaPlayerManagerProxy::gpuConnectionToWebProcess const):
(WebKit::RemoteMediaPlayerManagerProxy::webProcessConnection const): Deleted.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy):
(WebKit::RemoteMediaPlayerProxy::load):
(WebKit::RemoteMediaPlayerProxy::prepareForPlayback):
(WebKit::RemoteMediaPlayerProxy::cancelLoad):
(WebKit::RemoteMediaPlayerProxy::play):
(WebKit::RemoteMediaPlayerProxy::pause):
(WebKit::RemoteMediaPlayerProxy::setVolume):
(WebKit::RemoteMediaPlayerProxy::setMuted):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerNetworkStateChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerReadyStateChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerVolumeChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerMuteChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerTimeChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDurationChanged):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRateChanged):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • WebProcess/GPU/GPUProcessConnection.cpp:

(WebKit::GPUProcessConnection::didReceiveMessage):

  • WebProcess/GPU/GPUProcessConnection.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::prepareForPlayback):
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load):
(WebKit::MediaPlayerPrivateRemote::cancelLoad):
(WebKit::MediaPlayerPrivateRemote::play):
(WebKit::MediaPlayerPrivateRemote::pause):
(WebKit::MediaPlayerPrivateRemote::setVolumeDouble):
(WebKit::MediaPlayerPrivateRemote::setMuted):
(WebKit::MediaPlayerPrivateRemote::muteChanged):
(WebKit::MediaPlayerPrivateRemote::timeChanged):
(WebKit::MediaPlayerPrivateRemote::playbackStateChanged):
(WebKit::MediaPlayerPrivateRemote::paused const): Deleted.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::RemoteMediaPlayerManager):
(WebKit::RemoteMediaPlayerManager::~RemoteMediaPlayerManager):
(WebKit::RemoteMediaPlayerManager::playbackStateChanged):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.h:

(WebKit::RemoteMediaPlayerManager::didReceiveMessageFromWebProcess):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in:
5:51 PM Changeset in webkit [253515] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Fix bad exception assertion in ExceptionHelpers.cpp's createError().
https://bugs.webkit.org/show_bug.cgi?id=205230
<rdar://problem/57875688>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/test-exception-assert-in-ExceptionHelpers-createError.js: Added.

Source/JavaScriptCore:

The code in createError() was doing the following:

String valueDescription = errorDescriptionForValue(globalObject, value);

EXCEPTION_ASSERT(scope.exception()
!!valueDescription);

if (!valueDescription) {

scope.clearException();
return createOutOfMemoryError(globalObject);

}

If errorDescriptionForValue() throws an exception, then we expect the
valueDescription string to be null so that we can throw an OutOfMemoryError.
However, errorDescriptionForValue() can detect an imminent overflow in String
length and just return a null string without throwing an exception which fails
the above assertion.

The fix is to simply do an explicit exception check in addition to the null string
check and remove the assertion.

  • runtime/ExceptionHelpers.cpp:

(JSC::createError):

5:39 PM Changeset in webkit [253514] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

[macOS] Swipe gesture snapshot stays too long if provisional load has not started yet when endSwipeGesture() is called
https://bugs.webkit.org/show_bug.cgi?id=205206

Reviewed by Tim Horton.

Swipe gesture snapshot stays too long if provisional load has not started yet when endSwipeGesture() is called on macOS.
This is because the SnapshotRemovalTracker::eventOccurred() calls get ignored while the SnapshotRemovalTracker is paused
and the SnapshotRemovalTracker only gets unpaused once the provisional load has started. The idea is that we should ignore
any events from a previous navigation. However, the SwipeGestureEnd event is a UI-side event fired by the
ViewGestureController itself, so there is reason to ignore it. Since we ask the WebContent process to do the load in
willEndSwipeGesture(), it is possible that the provisional load has not started yet by the time endSwipeGesture() is
called. In such case, the SwipeGestureEnd event would get ignored and we would keep the snapshot until the timeout.

  • UIProcess/ViewGestureController.cpp:

(WebKit::stopWaitingForEvent):
(WebKit::ViewGestureController::SnapshotRemovalTracker::eventOccurred):
(WebKit::ViewGestureController::endSwipeGesture):
(WebKit::ViewGestureController::SnapshotRemovalTracker::stopWaitingForEvent): Deleted.

  • UIProcess/ViewGestureController.h:
5:36 PM Changeset in webkit [253513] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

ANGLE: fix blending with alpha:false context
https://bugs.webkit.org/show_bug.cgi?id=205218

Fixes WebGL conformance test context-hidden-alpha.html.

Patch by James Darpinian <James Darpinian> on 2019-12-13
Reviewed by Alex Christensen.

  • platform/graphics/cocoa/WebGLLayer.mm:

(-[WebGLLayer allocateIOSurfaceBackingStoreWithSize:usingAlpha:]):

Specify internalformat GL_RGB instead of GL_BGRA_EXT when alpha is disabled.

5:20 PM Changeset in webkit [253512] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add an option to run_webkit_tests.py to enable all GPU process related features and choose the additional expectations
https://bugs.webkit.org/show_bug.cgi?id=205214

The option also specifies the result-report-flavor.

Patch by Peng Liu <Peng Liu> on 2019-12-13
Reviewed by Tim Horton.

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(parse_args):

5:20 PM Changeset in webkit [253511] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed 32-bit build fix: explicitly cast the bitrate to an int when creating a JSON
object for logging purposes.

  • platform/mediacapabilities/MediaCapabilitiesLogging.cpp:

(WebCore::toJSONObject):

5:10 PM Changeset in webkit [253510] by Alan Coon
  • 1 copy in tags/Safari-609.1.11.4

Tag Safari-609.1.11.4.

5:08 PM Changeset in webkit [253509] by Alan Coon
  • 7 edits in branches/safari-609.1.11.4-branch/Source

Versioning.

5:05 PM Changeset in webkit [253508] by Alan Coon
  • 1 edit in tags/Safari-609.1.12/Source/WebCore/platform/graphics/cocoa/GraphicsContext3DCocoa.mm

Unreviewed build fix. rdar://problem/57925932

4:56 PM Changeset in webkit [253507] by Alan Coon
  • 1 copy in branches/safari-609.1.11.4-branch

New branch.

4:56 PM Changeset in webkit [253506] by dino@apple.com
  • 1 edit in trunk/Source/WebCore/Configurations/WebCoreTestSupport.xcconfig

Build fix for WebCoreTestSupport.

  • Configurations/WebCoreTestSupport.xcconfig:
4:35 PM CommitterTips edited by Alexey Shvayka
Add webkit-changes mailing list (diff)
4:33 PM Changeset in webkit [253505] by Alan Coon
  • 1 copy in tags/Safari-609.1.11.3

Tag Safari-609.1.11.3.

3:42 PM Changeset in webkit [253504] by Alan Coon
  • 18 edits
    1 delete in tags/Safari-609.1.12/Source

Apply patch. rdar://problem/57925932

3:30 PM Changeset in webkit [253503] by Alexey Shvayka
  • 2 edits in trunk/Tools

Unreviewed. Add myself as a committer.

  • Scripts/webkitpy/common/config/contributors.json:
3:13 PM Changeset in webkit [253502] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

Add MESSAGE_CHECK() for selectedIndex in Messages::WebPageProxy::ShowPopupMenu
<https://webkit.org/b/205177>
<rdar://problem/57337872>

Reviewed by Chris Dumez.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::showPopupMenu): Add MESSAGE_CHECK() to
validate the selectedIndex parameter, which must be -1 to
select no items, or a valid zero-based index into items.

2:38 PM Changeset in webkit [253501] by commit-queue@webkit.org
  • 5 edits in trunk

Allow cross-origin requests to WKURLSchemeHandlers
https://bugs.webkit.org/show_bug.cgi?id=205198
<rdar://problem/57897836>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-12-13
Reviewed by Brady Eidson.

Source/WebKit:

Covered by an API test.

  • UIProcess/API/Cocoa/WKURLSchemeTask.h:

Document the requirements for cross-origin requests.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::registerURLSchemeHandler):
When we register a scheme handler, allow cross origin resources for that scheme.
This will make the check in DocumentThreadableLoader::checkURLSchemeAsCORSEnabled allow the request to get to the WKURLSchemeHandler.
The resposne must still have CORS header fields in order for the data to get to the web content, like CORS with HTTP.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:

Verify that a cross origin request is received by the WKURLSchemeHandler. It was not before.
Verify that loading will fail unless there are CORS headers in the response.

2:37 PM Changeset in webkit [253500] by sbarati@apple.com
  • 5 edits in trunk/Source

Add a Heap::finalize function that takes WTF::Function<void()>
https://bugs.webkit.org/show_bug.cgi?id=205211

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • heap/Heap.cpp:

(JSC::Heap::addFinalizer):
(JSC::Heap::FinalizerOwner::finalize):

  • heap/Heap.h:

Source/WTF:

  • wtf/Function.h:

(WTF::Function<Out):

2:35 PM Changeset in webkit [253499] by dino@apple.com
  • 6 edits in trunk/Source

MacCatalyst build of libANGLE is installed in the incorrect location
https://bugs.webkit.org/show_bug.cgi?id=205219
<rdar://problem/57713353>

Reviewed by Simon Fraser.

Source/ThirdParty/ANGLE:

Rename libANGLE.dylib into libANGLE-shared.dylib, so we can
avoid accidentally trying to link to the libANGLE.a that was
removed recently (but still exists in the SDK for now).

Also, make sure that we install into the correct location for
a Catalyst build.

  • ANGLE.xcodeproj/project.pbxproj:
  • Configurations/ANGLE.xcconfig:
  • Configurations/Base.xcconfig:

Source/WebCore:

The location that WebCore was looking for embedded libraries was
incorrect for Catalyst builds. We never noticed because until now
there were no embedded libraries, and local builds all go into
the same location so this would only happen on Production builds.

Also, libANGLE became libANGLE-shared.

  • Configurations/WebCore.xcconfig: Link with libANGLE's new name, and

look in the correct directory.

1:46 PM Changeset in webkit [253498] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

[watchOS] Apple.com is rendered in Times New Roman
https://bugs.webkit.org/show_bug.cgi?id=205179
<rdar://problem/57233936>

Reviewed by Tim Horton.

Source/WebCore:

We should just make watchOS use the same font lookup attributes as iOS and macOS.

Test: fast/text/smiley-local-font-src.html

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontDatabase::fontForPostScriptName):

LayoutTests:

  • fast/text/smiley-local-font-src-expected.html: Added.
  • fast/text/smiley-local-font-src.html: Added.
1:36 PM Changeset in webkit [253497] by Chris Dumez
  • 59 edits
    2 copies in trunk

Implement PostMessageOptions for postMessage
https://bugs.webkit.org/show_bug.cgi?id=191028

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that we have more passes.

  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:
  • web-platform-tests/html/browsers/windows/document-access/document_access_parent_access.tentative-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-matchall-frozen.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/postmessage.https-expected.txt:
  • web-platform-tests/webmessaging/message-channels/dictionary-transferrable-expected.txt:
  • web-platform-tests/webmessaging/message-channels/user-activation.tentative-expected.txt:
  • web-platform-tests/webmessaging/postMessage_MessagePorts_xsite.sub.window-expected.txt:
  • web-platform-tests/webmessaging/with-options/host-specific-origin-expected.txt:
  • web-platform-tests/webmessaging/with-options/message-channel-transferable-expected.txt:
  • web-platform-tests/webmessaging/with-options/no-target-origin-expected.txt:
  • web-platform-tests/webmessaging/with-options/null-transfer-expected.txt:
  • web-platform-tests/webmessaging/with-options/one-arg-expected.txt:
  • web-platform-tests/webmessaging/with-options/slash-origin-expected.txt:
  • web-platform-tests/webmessaging/with-options/undefined-transferable-expected.txt:
  • web-platform-tests/webmessaging/with-options/unknown-parameter-expected.txt:
  • web-platform-tests/webmessaging/without-ports/008-expected.txt:
  • web-platform-tests/webmessaging/worker_postMessage_user_activation.tentative-expected.txt:
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-dictionary-expected.txt:
  • web-platform-tests/workers/interfaces/DedicatedWorkerGlobalScope/postMessage/second-argument-null-expected.txt:

Source/WebCore:

Implement PostMessageOptions dictionary parameter for postMessage:

Blink and Gecko already support this.

No new tests, rebaselined existing tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/MessagePort.cpp:

(WebCore::MessagePort::postMessage):

  • dom/MessagePort.h:
  • dom/MessagePort.idl:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::postMessage):

  • page/DOMWindow.h:

(WebCore::WindowPostMessageOptions::WindowPostMessageOptions):

  • page/DOMWindow.idl:
  • page/PostMessageOptions.h: Copied from Source/WebCore/workers/service/ServiceWorkerClient.idl.

(WebCore::PostMessageOptions::PostMessageOptions):

  • page/PostMessageOptions.idl: Copied from Source/WebCore/workers/service/ServiceWorkerClient.idl.
  • workers/DedicatedWorkerGlobalScope.cpp:

(WebCore::DedicatedWorkerGlobalScope::postMessage):

  • workers/DedicatedWorkerGlobalScope.h:
  • workers/DedicatedWorkerGlobalScope.idl:
  • workers/Worker.cpp:

(WebCore::Worker::postMessage):

  • workers/Worker.h:
  • workers/Worker.idl:
  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::postMessage):

  • workers/service/ServiceWorker.h:
  • workers/service/ServiceWorker.idl:
  • workers/service/ServiceWorkerClient.cpp:

(WebCore::ServiceWorkerClient::postMessage):

  • workers/service/ServiceWorkerClient.h:
  • workers/service/ServiceWorkerClient.idl:

LayoutTests:

Update a few existing tests due to the behavior change.

  • TestExpectations:
  • fast/dom/Window/post-message-crash.html:
  • fast/events/message-port-multi-expected.txt:
  • fast/events/resources/message-port-multi.js:
  • fast/workers/resources/worker-context-thread-multi-port.js:
  • fast/workers/resources/worker-multi-port.js:
  • fast/workers/worker-multi-port-expected.txt:
  • http/tests/security/postMessage/target-origin-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
1:31 PM Changeset in webkit [253496] by cturner@igalia.com
  • 2 edits in trunk/LayoutTests

[GStreamer][EME] Update expectation for media/encrypted-media/clearKey/clearKey-cenc-video-playback-mse.html
https://bugs.webkit.org/show_bug.cgi?id=205215

Unreviewed gardening.

  • platform/gtk/TestExpectations: Update bug URL to new failure reason.
1:22 PM Changeset in webkit [253495] by Wenson Hsieh
  • 7 edits in trunk/Source

Implement encoding/decoding for DisplayList::DrawNativeImage
https://bugs.webkit.org/show_bug.cgi?id=205200

Reviewed by Simon Fraser.

Source/WebCore:

Implements basic encoding and decoding for the DrawNativeImage drawing item, such that it can be sent and
replayed in the GPU process. See WebKit ChangeLogs for more details. Eventually, we should avoid calling into
drawNativeImage in the web process altogether, but for now, both DrawNativeImage and DrawImage drawing items
rely on drawing native images into ImageBuffers. See: <https://webkit.org/b/205213>.

  • platform/graphics/NativeImage.h:

Add a NativeImageHandle wrapper around a NativeImagePtr to make it simpler to decode and encode NativeImagePtrs
using << and >> operators.

  • platform/graphics/displaylists/DisplayListItems.cpp:
  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawNativeImage::encode const):
(WebCore::DisplayList::DrawNativeImage::decode):
(WebCore::DisplayList::Item::encode const):
(WebCore::DisplayList::Item::decode):

Source/WebKit:

Add helper functions to encode and decode NativeImagePtr (RetainPtr<CGImageRef> on Cocoa platforms). This
mirrors the implementation of encoding and decoding for WebCore::Image, which create and draws into
ShareableBitmap, and send a handle to the data over IPC.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::encodeImage):
(IPC::decodeImage):
(IPC::encodeNativeImage):
(IPC::decodeNativeImage):

Additionally make Image and NativeImagePtr encoding and decoding helpers fail quickly in the case where the
ShareableBitmap failed to create a graphics context by having the encoder indicate whether a graphics context
was created, and having the decoder fail if the graphics context could not be created.

(IPC::encodeOptionalNativeImage):
(IPC::decodeOptionalNativeImage):
(IPC::ArgumentCoder<NativeImageHandle>::encode):
(IPC::ArgumentCoder<NativeImageHandle>::decode):

  • Shared/WebCoreArgumentCoders.h:
12:49 PM Changeset in webkit [253494] by youenn@apple.com
  • 11 edits in trunk

Add support for WebIDL set-like forEach
https://bugs.webkit.org/show_bug.cgi?id=204847

Reviewed by Chris Dumez.

Source/WebCore:

Add support to setlike forEach as done for maplike.
Covered by rebased binding tests and updated layout test.

  • bindings/js/JSDOMBindingInternals.js:

(forEachWrapper):

  • bindings/js/JSDOMMapLike.cpp:

(WebCore::forwardForEachCallToBackingMap):

  • bindings/js/JSDOMSetLike.cpp:

(WebCore::DOMSetAdapter::clear):
(WebCore::forwardForEachCallToBackingSet):

  • bindings/js/JSDOMSetLike.h:

(WebCore::DOMSetAdapter::add):
(WebCore::getAndInitializeBackingSet):
(WebCore::forwardSizeToSetLike):
(WebCore::forwardEntriesToSetLike):
(WebCore::forwardKeysToSetLike):
(WebCore::forwardValuesToSetLike):
(WebCore::forwardForEachToSetLike):
(WebCore::forwardClearToSetLike):
(WebCore::forwardHasToSetLike):
(WebCore::forwardAddToSetLike):
(WebCore::forwardDeleteToSetLike):

  • bindings/scripts/IDLParser.pm:

(parseSetLikeProperties):

  • bindings/scripts/test/JS/JSReadOnlySetLike.cpp:

(WebCore::jsReadOnlySetLikePrototypeFunctionForEachBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionForEach):

  • bindings/scripts/test/JS/JSSetLike.cpp:

(WebCore::jsSetLikePrototypeFunctionForEachBody):
(WebCore::jsSetLikePrototypeFunctionForEach):

LayoutTests:

  • js/dom/maplike.html:
  • js/dom/setlike.html:
12:38 PM Changeset in webkit [253493] by Chris Dumez
  • 10 edits in trunk

REGRESSION: (r251677) imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-3.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=205164
<rdar://problem/57879042>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that they are passing.

  • web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-3-expected.txt:
  • web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-expected.txt:

Source/WebCore:

Submitting a form should cancel any pending navigation scheduled by a previous submission of this form:

No new tests, rebaselined existing tests.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::submit):

  • html/HTMLFormElement.h:
  • loader/FormSubmission.h:

(WebCore::FormSubmission::cancel):
(WebCore::FormSubmission::wasCancelled const):

  • loader/NavigationScheduler.cpp:

LayoutTests:

Unskip test that should no longer be flaky.

  • platform/mac/TestExpectations:
11:37 AM Changeset in webkit [253492] by Alan Coon
  • 2 edits in tags/Safari-609.1.12/Source/ThirdParty/ANGLE

Revert r253333. rdar://problem/57713353

11:37 AM Changeset in webkit [253491] by Alan Coon
  • 2 edits in tags/Safari-609.1.12/Source/ThirdParty/ANGLE

Revert r253383. rdar://problem/57713353

11:31 AM Changeset in webkit [253490] by Devin Rousso
  • 4 edits in trunk/Tools

Teach prepare-ChangeLog about JavaScript async functions
https://bugs.webkit.org/show_bug.cgi?id=205195

Reviewed by Jonathan Bedard.

  • Scripts/prepare-ChangeLog:

(get_function_line_ranges_for_javascript):

  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/javascript_unittests.js:

(AsyncFuncClass): Added.
(AsyncFuncClass.async staticAsync): Added.
(AsyncFuncClass.prototype.async methodAsync): Added.
(AsyncFuncClass.prototype.async get getAsync): Added.
(AsyncFuncClass.prototype.async set setAsync): Added.
(async asyncFunc1): Added.

  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/javascript_unittests-expected.txt:
11:18 AM Changeset in webkit [253489] by wilander@apple.com
  • 5 edits
    3 adds in trunk

IsLoggedIn: Abstract data type for IsLoggedIn state
https://bugs.webkit.org/show_bug.cgi?id=205041
<rdar://problem/56723904>

Reviewed by Chris Dumez.

Source/WebCore:

New API tests added.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/LoggedInStatus.cpp: Added.

(WebCore::LoggedInStatus::create):
(WebCore::LoggedInStatus::LoggedInStatus):
(WebCore::LoggedInStatus::setTimeToLive):
(WebCore::LoggedInStatus::hasExpired const):
(WebCore::LoggedInStatus::expiry const):

  • page/LoggedInStatus.h: Added.

(WebCore::LoggedInStatus::registrableDomain const):
(WebCore::LoggedInStatus::username const):
(WebCore::LoggedInStatus::credentialTokenType const):
(WebCore::LoggedInStatus::authenticationType const):
(WebCore::LoggedInStatus::loggedInTime const):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/LoggedInStatus.cpp: Added.

(TestWebKitAPI::TEST):

11:07 AM Changeset in webkit [253488] by pvollan@apple.com
  • 11 edits
    4 adds in trunk

[iOS] Deny mach lookup access to "*.apple-extension-service" in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=205134
<rdar://problem/56984257>

Reviewed by Brent Fulgham.

Source/WebCore:

Add method to Internals checking mach lookup access to a given XPC service name.

Test: fast/sandbox/ios/sandbox-mach-lookup.html

  • testing/Internals.cpp:

(WebCore::Internals::hasSandboxMachLookupAccessToXPCServiceName):

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

Remove mach lookup access to "*.apple-extension-service" in the sandbox.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

Source/WTF:

Add enum value for the XPC service name filter type.

  • wtf/spi/darwin/SandboxSPI.h:

LayoutTests:

Add test for mach lookup access to "*.apple-extension-service".

  • TestExpectations:
  • fast/sandbox: Added.
  • fast/sandbox/ios: Added.
  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt: Added.
  • fast/sandbox/ios/sandbox-mach-lookup.html: Added.
  • platform/ios-device-wk2/TestExpectations:
10:58 AM Changeset in webkit [253487] by youenn@apple.com
  • 7 edits in trunk

Help debugging flaky http/tests/cache-storage/page-cache-domcachestorage-pending-promise.html
https://bugs.webkit.org/show_bug.cgi?id=205209

Reviewed by Chris Dumez.

Source/WebKit:

Add a bunch of asserts that no pending activity is happening in the Cache Storage backend is happening
when querying the backend representation, which is a debug tool.
No change of behavior.

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::representation):

  • NetworkProcess/cache/CacheStorageEngineCache.h:

(WebKit::CacheStorage::Cache::hasPendingOpeningCallbacks const):

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::appendRepresentation const):

LayoutTests:

In case of error, query the cache representation.
This will help debugging the flaky tests and ensure that no pending activity is happening in error cases.

  • http/tests/cache-storage/page-cache-domcache-pending-promise.html:
  • http/tests/cache-storage/page-cache-domcachestorage-pending-promise.html:
10:39 AM Changeset in webkit [253486] by Wenson Hsieh
  • 14 edits
    4 adds in trunk

[Clipboard API] Sanitize HTML and image data written using clipboard.write
https://bugs.webkit.org/show_bug.cgi?id=205188
<rdar://problem/57612968>

Reviewed by Darin Adler.

Source/WebCore:

Sanitizes HTML ("text/html") and image ("image/png") content when writing to the platform pasteboard using the
clipboard API. See below for more details.

Tests: editing/async-clipboard/sanitize-when-reading-markup.html

editing/async-clipboard/sanitize-when-writing-image.html
ClipboardTests.WriteSanitizedMarkup

  • Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:

(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::sanitizeDataIfNeeded):

Add a new helper method to sanitize m_data after loading finishes, but before invoking the completion handler
to notify the data source about the clipboard data. Currently, we support writing "text/plain", "text/uri-list",
"text/html" and "image/png"; we sanitize HTML by stripping away hidden content such as comments, script, and
event listeners, and sanitize image data by painting it into a new graphics context and re-encoding the rendered
contents as an image.

(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::invokeCompletionHandler):

  • Modules/async-clipboard/ClipboardItemBindingsDataSource.h:
  • platform/PlatformPasteboard.h:
  • platform/cocoa/PasteboardCocoa.mm:

(WebCore::cocoaTypeToImageType):

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::platformPasteboardTypeForSafeTypeForDOMToReadAndWrite):

Adjust these helpers to map "image/png" to the platform PNG type on iOS ("public.png"). The extra
IncludeImageTypes argument was added to avoid considering "image/png" a web-safe type for writing and reading
when exercising DataTransfer APIs, which currently don't support reading the "image/png" MIME type. In the
future, we should consider adding support for image sanitization when using DataTransfer.setData or
DataTransferItemList.add, and then remove this flag.

(WebCore::createItemProviderRegistrationList):

  • platform/mac/LegacyNSPasteboardTypes.h:

Add an entry for legacyPNGPasteboardType on macOS, and replace one use of it in PasteboardCocoa.mm.

(WebCore::legacyPNGPasteboardType):

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::write):
(WebCore::PlatformPasteboard::platformPasteboardTypeForSafeTypeForDOMToReadAndWrite):

Likewise, map "image/png" to legacyPNGPasteboardType() on macOS, which was added above.

(WebCore::createPasteboardItem):

Tools:

Adds an API test to verify that the markup written to the platform pasteboard on macOS and iOS is sanitized, and
does not contain hidden content, such as script elements.

  • TestWebKitAPI/Tests/WebKitCocoa/ClipboardTests.mm:

(-[TestWKWebView writeString:toClipboardWithType:]):
(readMarkupFromPasteboard):

  • TestWebKitAPI/Tests/WebKitCocoa/clipboard.html:

LayoutTests:

  • editing/async-clipboard/sanitize-when-reading-markup-expected.txt: Added.
  • editing/async-clipboard/sanitize-when-reading-markup.html: Added.

Add a test to verify that markup is sanitized when copying and pasting across different security origins.

  • editing/async-clipboard/sanitize-when-writing-image-expected.txt: Added.
  • editing/async-clipboard/sanitize-when-writing-image.html: Added.

Add a test to verify that "image/png" data is sanitized, and one or more written image data that cannot be
decoded results in the promise being rejected.

  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
10:35 AM Changeset in webkit [253485] by Simon Fraser
  • 4 edits in trunk/Source/WebKit

Minor WKWebView.mm code rearrangement
https://bugs.webkit.org/show_bug.cgi?id=205129

Reviewed by Tim Horton.

Throw in some more #pragma marks and move some functions around, with the goal of
having the implementation order mostly follow header order, and grouping related functions.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _pageForTesting]):
(-[WKWebView _page]):
(-[WKWebView urlSchemeHandlerForURLScheme:]):
(+[WKWebView handlesURLScheme:]):
(-[WKWebView _resolutionForShareSheetImmediateCompletionForTesting]):
(-[WKWebView createPDFWithConfiguration:completionHandler:]):
(-[WKWebView createWebArchiveDataWithCompletionHandler:]):
(toFindOptions):
(-[WKWebView findString:withConfiguration:completionHandler:]):
(-[WKWebView setMediaType:]):
(-[WKWebView mediaType]):
(-[WKWebView layoutSubviews]):
(-[WKWebView scrollView]):
(-[WKWebView _isShowingVideoPictureInPicture]):
(-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]):
(-[WKWebView _incrementFocusPreservationCount]):
(-[WKWebView _decrementFocusPreservationCount]):
(-[WKWebView _resetFocusPreservationCount]):
(-[WKWebView _isRetainingActiveFocusedState]):
(-[WKWebView _effectiveAppearanceIsDark]):
(-[WKWebView _effectiveUserInterfaceLevelIsElevated]):
(-[WKWebView _shouldAvoidResizingWhenInputViewBoundsChange]):
(-[WKWebView _dragInteractionPolicy]):
(-[WKWebView _setDragInteractionPolicy:]):
(-[WKWebView _populateArchivedSubviews:]):
(-[WKWebView _isBackground]):
(-[WKWebView _setShouldSuppressFirstResponderChanges:]):
(-[WKWebView _retainActiveFocusedState]):
(-[WKWebView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]):
(-[WKWebView _snapshotLayerContentsForBackForwardListItem:]):
(-[WKWebView _dataDetectionResults]):
(-[WKWebView _accessibilityRetrieveSpeakSelectionContent]):
(-[WKWebView _accessibilityDidGetSpeakSelectionContent:]):
(-[WKWebView _viewportSizeForCSSViewportUnits]):
(-[WKWebView _setViewportSizeForCSSViewportUnits:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/SOAuthorization/SOAuthorizationCoordinator.mm: Unified sources build fix (seen while doing other stuff).
10:13 AM Changeset in webkit [253484] by Kate Cheney
  • 22 edits
    8 adds in trunk

Create WebKit API calls for ITP Data
https://bugs.webkit.org/show_bug.cgi?id=204932
<rdar://problem/57632753>

Reviewed by Alex Christensen.

Source/WebKit:

This patch exposes ITP data captured in the network process through the
Objective C API using two new classes: _WKResourceLoadStatisticsFirstParty
and _WKResourceLoadStatisticsThirdParty.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ensureThirdPartyDataForSpecificFirstPartyDomain):
(WebKit::getThirdPartyDataForSpecificFirstPartyDomains):
(WebKit::ResourceLoadStatisticsMemoryStore::aggregatedThirdPartyData const):

  • NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:

Updated mentions of ThirdPartyData to include the
WebResourceLoadStatisticsStore:: class specifier after relocating
ThirdPartyData.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::aggregatedThirdPartyData):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:

Updated the data to be sent via completion handler from
WebResourceLoadStatisticsStore so that calls to
aggregatedThirdPartyData() are happening on a background thread.

  • Shared/API/APIObject.h:
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • UIProcess/API/APIResourceLoadStatisticsFirstParty.h: Added.
  • UIProcess/API/APIResourceLoadStatisticsThirdParty.h: Added.
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _getResourceLoadStatisticsDataSummary:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.h: Added.
  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstParty.mm: Added.

(-[_WKResourceLoadStatisticsFirstParty dealloc]):
(-[_WKResourceLoadStatisticsFirstParty firstPartyDomain]):
(-[_WKResourceLoadStatisticsFirstParty storageAccess]):
(-[_WKResourceLoadStatisticsFirstParty _apiObject]):

  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsFirstPartyInternal.h: Added.
  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.h: Added.
  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.mm: Added.

(-[_WKResourceLoadStatisticsThirdParty dealloc]):
(-[_WKResourceLoadStatisticsThirdParty thirdPartyDomain]):
(-[_WKResourceLoadStatisticsThirdParty underFirstParties]):
(-[_WKResourceLoadStatisticsThirdParty _apiObject]):

  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdPartyInternal.h: Added.

_WKResourceLoadStatisticsFirstParty and _WKResourceLoadStatisticsThirdParty
represent first and third party domains respectively which hold ITP
data and are strongly typed to ensure the correct data is being
exposed via API. The function and parameter names for storage access
specify "third party" because each WKITPFirstParty holds data relevent
to a specific third party and storage access would not make sense in
just a first party context.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::getResourceLoadStatisticsDataSummary):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::getResourceLoadStatisticsDataSummary):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::getResourceLoadStatisticsDataSummary):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebKit.xcodeproj/project.pbxproj:

Tools:

Added a test to check that the ITP data summary was being properly
aggregated and sent to the UIProcess, and to make sure the API works
as expected. Added interface declarations to the file to allow for
use of the _WKResourceLoadStatisticsFirstParty and
_WKResourceLoadStatisticsThirdParty classes without having
to import the header files.

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

9:53 AM Changeset in webkit [253483] by Chris Dumez
  • 8 edits in trunk

Behavior of GetOwnProperty? for cross-origin windows is not spec-compliant
https://bugs.webkit.org/show_bug.cgi?id=205184

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:

Source/WebCore:

Behavior of GetOwnProperty? for cross-origin windows is not spec-compliant:

We should be able to return frames by name, even if their name conflict with the name of a
same-origin window property (e.g. "close"). Previously, we would throw a SecurityError in
this case.

No new tests, rebaselined existing test.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):

LayoutTests:

  • http/tests/security/document-all-expected.txt:

The test is accessing the "alert" property on a cross-origin window. We used to throw a SecurityError,
but we now return a Window object since there is a Window whose name is "alert". The test still passes
as it is not able to call alert() cross-origin.

  • http/tests/security/xss-DENIED-window-name-navigator-expected.txt:
  • http/tests/security/xss-DENIED-window-name-navigator.html:

Update test to use console.log() to print the result instead of alert() since alert() is not allowed
in a sandbox iframe. I updated the expectation so that top.navigator returns the window with the
name "navigator" instead of undefined, as per the behavior change in this patch. I have verified that
our behavior on this test is consistent with Firefox and Chrome.

9:49 AM Changeset in webkit [253482] by eric.carlson@apple.com
  • 34 edits
    1 copy
    12 adds in trunk/Source

Add infrastructure needed for playing media player in the GPU process
https://bugs.webkit.org/show_bug.cgi?id=205094
<rdar://problem/57815393>

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, no functional change yet.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/ContentType.h:

(WebCore::ContentType::encode const):
(WebCore::ContentType::decode):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::nullLogger):
(WebCore::nullContentTypeVector):
(WebCore::mutableInstalledMediaEnginesVector):
(WebCore::registerRemotePlayerCallback):
(WebCore::RemoteMediaPlayerSupport::setRegisterRemotePlayerCallback):
(WebCore::buildMediaEnginesVector):
(WebCore::installedMediaEngines):
(WebCore::addMediaEngine):
(WebCore::MediaPlayer::mediaEngine):
(WebCore::bestMediaEngineForSupportParameters):
(WebCore::MediaPlayer::nextMediaEngine):
(WebCore::MediaPlayer::create):
(WebCore::MediaPlayer::MediaPlayer):
(WebCore::MediaPlayer::nextBestMediaEngine):
(WebCore::MediaPlayer::loadWithNextMediaEngine):
(WebCore::MediaPlayer::getSupportedTypes):
(WebCore::MediaPlayer::originsInMediaCache):
(WebCore::MediaPlayer::clearMediaCache):
(WebCore::MediaPlayer::clearMediaCacheForOrigins):
(WebCore::MediaPlayer::supportsKeySystem):
(WebCore::MediaPlayer::networkStateChanged):
(WebCore::nextMediaEngine): Deleted.
(WebCore::MediaPlayer::nextBestMediaEngine const): Deleted.

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaEngineSupportParameters::encode const):
(WebCore::MediaEngineSupportParameters::decode):
(WebCore::MediaPlayerFactory::~MediaPlayerFactory):
(WebCore::MediaPlayerFactory::originsInMediaCache const):
(WebCore::MediaPlayerFactory::clearMediaCache const):
(WebCore::MediaPlayerFactory::clearMediaCacheForOrigins const):
(WebCore::MediaPlayerFactory::supportsKeySystem const):
(WebCore::MediaPlayer::setVideoFullscreenLayer): Deleted.
(WebCore::MediaPlayer::size const): Deleted.
(WebCore::MediaPlayer::invalidTime): Deleted.
(WebCore::MediaPlayer::platformVolumeConfigurationRequired const): Deleted.
(WebCore::MediaPlayer::contentMIMEType const): Deleted.
(WebCore::MediaPlayer::contentTypeCodecs const): Deleted.
(WebCore::MediaPlayer::contentMIMETypeWasInferredFromExtension const): Deleted.
(WebCore::MediaPlayer::mediaPlayerLogIdentifier): Deleted.
(WebCore::MediaPlayer::renderingCanBeAccelerated const): Deleted.
(WebCore::MediaPlayer::renderingModeChanged const): Deleted.
(WebCore::MediaPlayer::acceleratedCompositingEnabled): Deleted.
(WebCore::MediaPlayer::activeSourceBuffersChanged): Deleted.
(WebCore::MediaPlayer::playerContentBoxRect const): Deleted.
(WebCore::MediaPlayer::playerContentsScale const): Deleted.
(WebCore::MediaPlayer::shouldUsePersistentCache const): Deleted.
(WebCore::MediaPlayer::mediaCacheDirectory const): Deleted.
(WebCore::MediaPlayer::isVideoPlayer const): Deleted.
(WebCore::MediaPlayer::mediaEngineUpdated): Deleted.
(WebCore::MediaPlayer::isLooping const): Deleted.
(WebCore::MediaPlayer::requestInstallMissingPlugins): Deleted.
(WebCore::MediaPlayer::client const): Deleted.

  • platform/graphics/MediaPlayerEngineIdentifiers.h: Copied from Source/WebCore/platform/ContentType.h.

(WebCore::MediaPlayerEngineIdentifiers::avFoundationEngineIdentifier):
(WebCore::MediaPlayerEngineIdentifiers::avFoundationMSEEngineIdentifier):
(WebCore::MediaPlayerEngineIdentifiers::avFoundationMediaStreamEngineIdentifier):
(WebCore::MediaPlayerEngineIdentifiers::GStreamerMediaEngineIdentifier):
(WebCore::MediaPlayerEngineIdentifiers::GStreamerMSEMediaEngineIdentifier):
(WebCore::MediaPlayerEngineIdentifiers::holePunchMediaEngineIdentifier):
(WebCore::MediaPlayerEngineIdentifiers::MediaFoundationMediaEngineIdentifier):

  • platform/graphics/PlatformTimeRanges.h:

(WebCore::PlatformTimeRanges::PlatformTimeRanges): Deleted.
(WebCore::PlatformTimeRanges::length const): Deleted.
(WebCore::PlatformTimeRanges::Range::Range): Deleted.
(WebCore::PlatformTimeRanges::Range::isPointInRange const): Deleted.
(WebCore::PlatformTimeRanges::Range::isOverlappingRange const): Deleted.
(WebCore::PlatformTimeRanges::Range::isContiguousWithRange const): Deleted.
(WebCore::PlatformTimeRanges::Range::unionWithOverlappingOrContiguousRange const): Deleted.
(WebCore::PlatformTimeRanges::Range::isBeforeRange const): Deleted.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::registerMediaEngine):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::registerMediaEngine):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::registerMediaEngine):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::registerMediaEngine):

  • platform/graphics/holepunch/MediaPlayerPrivateHolePunch.cpp:

(WebCore::MediaPlayerPrivateHolePunch::registerMediaEngine):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::registerMediaEngine):

  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::MockMediaPlayerMediaSource::registerMediaEngine):

Source/WebKit:

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::GPUConnectionToWebProcess):
(WebKit::GPUConnectionToWebProcess::~GPUConnectionToWebProcess):
(WebKit::GPUConnectionToWebProcess::didReceiveMessage):
(WebKit::GPUConnectionToWebProcess::didReceiveSyncMessage):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: Added.

(WebKit::nullLogger):
(WebKit::RemoteMediaPlayerManagerProxy::PlayerProxy::PlayerProxy):
(WebKit::RemoteMediaPlayerManagerProxy::PlayerProxy::~PlayerProxy):
(WebKit::RemoteMediaPlayerManagerProxy::RemoteMediaPlayerManagerProxy):
(WebKit::RemoteMediaPlayerManagerProxy::~RemoteMediaPlayerManagerProxy):
(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::getSupportedTypes):
(WebKit::RemoteMediaPlayerManagerProxy::supportsType):
(WebKit::RemoteMediaPlayerManagerProxy::originsInMediaCache):
(WebKit::RemoteMediaPlayerManagerProxy::clearMediaCache):
(WebKit::RemoteMediaPlayerManagerProxy::clearMediaCacheForOrigins):
(WebKit::RemoteMediaPlayerManagerProxy::supportsKeySystem):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h: Added.

(WebKit::RemoteMediaPlayerManagerProxy::webProcessConnection const):
(WebKit::RemoteMediaPlayerManagerProxy::didReceiveMessageFromWebProcess):
(WebKit::RemoteMediaPlayerManagerProxy::didReceiveSyncMessageFromWebProcess):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in: Added.
  • Scripts/webkit/messages.py:
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: Added.

(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote):
(WebKit::MediaPlayerPrivateRemote::~MediaPlayerPrivateRemote):
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load):
(WebKit::MediaPlayerPrivateRemote::load):
(WebKit::MediaPlayerPrivateRemote::cancelLoad):
(WebKit::MediaPlayerPrivateRemote::prepareToPlay):
(WebKit::MediaPlayerPrivateRemote::platformLayer const):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenLayer):
(WebKit::MediaPlayerPrivateRemote::updateVideoFullscreenInlineImage):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenFrame):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenGravity):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenMode):
(WebKit::MediaPlayerPrivateRemote::videoFullscreenStandbyChanged):
(WebKit::MediaPlayerPrivateRemote::accessLog const):
(WebKit::MediaPlayerPrivateRemote::errorLog const):
(WebKit::MediaPlayerPrivateRemote::platformErrorCode const):
(WebKit::MediaPlayerPrivateRemote::play):
(WebKit::MediaPlayerPrivateRemote::pause):
(WebKit::MediaPlayerPrivateRemote::setBufferingPolicy):
(WebKit::MediaPlayerPrivateRemote::supportsPictureInPicture const):
(WebKit::MediaPlayerPrivateRemote::supportsFullscreen const):
(WebKit::MediaPlayerPrivateRemote::supportsScanning const):
(WebKit::MediaPlayerPrivateRemote::requiresImmediateCompositing const):
(WebKit::MediaPlayerPrivateRemote::canSaveMediaData const):
(WebKit::MediaPlayerPrivateRemote::naturalSize const):
(WebKit::MediaPlayerPrivateRemote::hasVideo const):
(WebKit::MediaPlayerPrivateRemote::hasAudio const):
(WebKit::MediaPlayerPrivateRemote::setVisible):
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::durationMediaTime const):
(WebKit::MediaPlayerPrivateRemote::currentMediaTime const):
(WebKit::MediaPlayerPrivateRemote::getStartDate const):
(WebKit::MediaPlayerPrivateRemote::seek):
(WebKit::MediaPlayerPrivateRemote::seekWithTolerance):
(WebKit::MediaPlayerPrivateRemote::seeking const):
(WebKit::MediaPlayerPrivateRemote::startTime const):
(WebKit::MediaPlayerPrivateRemote::setRateDouble):
(WebKit::MediaPlayerPrivateRemote::rate const):
(WebKit::MediaPlayerPrivateRemote::setPreservesPitch):
(WebKit::MediaPlayerPrivateRemote::paused const):
(WebKit::MediaPlayerPrivateRemote::setVolumeDouble):
(WebKit::MediaPlayerPrivateRemote::setMuted):
(WebKit::MediaPlayerPrivateRemote::hasClosedCaptions const):
(WebKit::MediaPlayerPrivateRemote::setClosedCaptionsVisible):
(WebKit::MediaPlayerPrivateRemote::maxFastForwardRate const):
(WebKit::MediaPlayerPrivateRemote::minFastReverseRate const):
(WebKit::MediaPlayerPrivateRemote::networkState const):
(WebKit::MediaPlayerPrivateRemote::readyState const):
(WebKit::MediaPlayerPrivateRemote::seekable const):
(WebKit::MediaPlayerPrivateRemote::buffered const):
(WebKit::MediaPlayerPrivateRemote::maxMediaTimeSeekable const):
(WebKit::MediaPlayerPrivateRemote::minMediaTimeSeekable const):
(WebKit::MediaPlayerPrivateRemote::seekableTimeRangesLastModifiedTime const):
(WebKit::MediaPlayerPrivateRemote::liveUpdateInterval const):
(WebKit::MediaPlayerPrivateRemote::totalBytes const):
(WebKit::MediaPlayerPrivateRemote::didLoadingProgress const):
(WebKit::MediaPlayerPrivateRemote::setSize):
(WebKit::MediaPlayerPrivateRemote::paint):
(WebKit::MediaPlayerPrivateRemote::paintCurrentFrameInContext):
(WebKit::MediaPlayerPrivateRemote::copyVideoTextureToPlatformTexture):
(WebKit::MediaPlayerPrivateRemote::nativeImageForCurrentTime):
(WebKit::MediaPlayerPrivateRemote::setPreload):
(WebKit::MediaPlayerPrivateRemote::hasAvailableVideoFrame const):
(WebKit::MediaPlayerPrivateRemote::canLoadPoster const):
(WebKit::MediaPlayerPrivateRemote::setPoster):
(WebKit::MediaPlayerPrivateRemote::enterFullscreen):
(WebKit::MediaPlayerPrivateRemote::exitFullscreen):
(WebKit::MediaPlayerPrivateRemote::wirelessPlaybackTargetName const):
(WebKit::MediaPlayerPrivateRemote::wirelessPlaybackTargetType const):
(WebKit::MediaPlayerPrivateRemote::wirelessVideoPlaybackDisabled const):
(WebKit::MediaPlayerPrivateRemote::setWirelessVideoPlaybackDisabled):
(WebKit::MediaPlayerPrivateRemote::canPlayToWirelessPlaybackTarget const):
(WebKit::MediaPlayerPrivateRemote::isCurrentPlaybackTargetWireless const):
(WebKit::MediaPlayerPrivateRemote::setWirelessPlaybackTarget):
(WebKit::MediaPlayerPrivateRemote::setShouldPlayToPlaybackTarget):
(WebKit::MediaPlayerPrivateRemote::canEnterFullscreen const):
(WebKit::MediaPlayerPrivateRemote::supportsAcceleratedRendering const):
(WebKit::MediaPlayerPrivateRemote::acceleratedRenderingStateChanged):
(WebKit::MediaPlayerPrivateRemote::shouldMaintainAspectRatio const):
(WebKit::MediaPlayerPrivateRemote::setShouldMaintainAspectRatio):
(WebKit::MediaPlayerPrivateRemote::hasSingleSecurityOrigin const):
(WebKit::MediaPlayerPrivateRemote::didPassCORSAccessCheck const):
(WebKit::MediaPlayerPrivateRemote::wouldTaintOrigin const):
(WebKit::MediaPlayerPrivateRemote::movieLoadType const):
(WebKit::MediaPlayerPrivateRemote::prepareForRendering):
(WebKit::MediaPlayerPrivateRemote::mediaTimeForTimeValue const):
(WebKit::MediaPlayerPrivateRemote::maximumDurationToCacheMediaTime const):
(WebKit::MediaPlayerPrivateRemote::decodedFrameCount const):
(WebKit::MediaPlayerPrivateRemote::droppedFrameCount const):
(WebKit::MediaPlayerPrivateRemote::audioDecodedByteCount const):
(WebKit::MediaPlayerPrivateRemote::videoDecodedByteCount const):
(WebKit::MediaPlayerPrivateRemote::setPrivateBrowsingMode):
(WebKit::MediaPlayerPrivateRemote::engineDescription const):
(WebKit::MediaPlayerPrivateRemote::audioSourceProvider):
(WebKit::MediaPlayerPrivateRemote::createSession):
(WebKit::MediaPlayerPrivateRemote::setCDMSession):
(WebKit::MediaPlayerPrivateRemote::keyAdded):
(WebKit::MediaPlayerPrivateRemote::cdmInstanceAttached):
(WebKit::MediaPlayerPrivateRemote::cdmInstanceDetached):
(WebKit::MediaPlayerPrivateRemote::attemptToDecryptWithInstance):
(WebKit::MediaPlayerPrivateRemote::waitingForKey const):
(WebKit::MediaPlayerPrivateRemote::requiresTextTrackRepresentation const):
(WebKit::MediaPlayerPrivateRemote::setTextTrackRepresentation):
(WebKit::MediaPlayerPrivateRemote::syncTextTrackBounds):
(WebKit::MediaPlayerPrivateRemote::tracksChanged):
(WebKit::MediaPlayerPrivateRemote::simulateAudioInterruption):
(WebKit::MediaPlayerPrivateRemote::beginSimulatedHDCPError):
(WebKit::MediaPlayerPrivateRemote::endSimulatedHDCPError):
(WebKit::MediaPlayerPrivateRemote::languageOfPrimaryAudioTrack const):
(WebKit::MediaPlayerPrivateRemote::extraMemoryCost const):
(WebKit::MediaPlayerPrivateRemote::fileSize const):
(WebKit::MediaPlayerPrivateRemote::ended const):
(WebKit::MediaPlayerPrivateRemote::videoPlaybackQualityMetrics):
(WebKit::MediaPlayerPrivateRemote::notifyTrackModeChanged):
(WebKit::MediaPlayerPrivateRemote::notifyActiveSourceBuffersChanged):
(WebKit::MediaPlayerPrivateRemote::setShouldDisableSleep):
(WebKit::MediaPlayerPrivateRemote::applicationWillResignActive):
(WebKit::MediaPlayerPrivateRemote::applicationDidBecomeActive):
(WebKit::MediaPlayerPrivateRemote::performTaskAtMediaTime):
(WebKit::MediaPlayerPrivateRemote::shouldIgnoreIntrinsicSize):
(WebKit::MediaPlayerPrivateRemote::logChannel const):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h: Added.
  • WebProcess/GPU/media/MediaPlayerPrivateRemoteIdentifier.h: Added.
  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp: Added.

(WebKit::MediaPlayerRemoteFactory::MediaPlayerRemoteFactory):
(WebKit::RemoteMediaPlayerManager::RemoteMediaPlayerManager):
(WebKit::RemoteMediaPlayerManager::~RemoteMediaPlayerManager):
(WebKit::RemoteMediaPlayerManager::supplementName):
(WebKit::RemoteMediaPlayerManager::initialize):
(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):
(WebKit::RemoteMediaPlayerManager::getSupportedTypes):
(WebKit::RemoteMediaPlayerManager::supportsTypeAndCodecs):
(WebKit::RemoteMediaPlayerManager::supportsKeySystem):
(WebKit::RemoteMediaPlayerManager::originsInMediaCache):
(WebKit::RemoteMediaPlayerManager::clearMediaCache):
(WebKit::RemoteMediaPlayerManager::clearMediaCacheForOrigins):
(WebKit::RemoteMediaPlayerManager::networkStateChanged):
(WebKit::RemoteMediaPlayerManager::updatePreferences):
(WebKit::RemoteMediaPlayerManager::gpuProcessConnection const):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.h: Added.
  • WebProcess/GPU/media/RemoteMediaPlayerManager.messages.in: Added.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • WebProcess/WebProcess.cpp:
9:37 AM Changeset in webkit [253481] by cathiechen
  • 2 edits in trunk/Source/WebCore

Fixed compile error in BaseAudioSharedUnit.h
https://bugs.webkit.org/show_bug.cgi?id=205205

Need to include some headers and put "#pragma once" in front.

Unreviewed, fixed compile error.

  • platform/mediastream/mac/BaseAudioSharedUnit.h:
9:10 AM Changeset in webkit [253480] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Fix fast/text/simple-line-with-br.html
https://bugs.webkit.org/show_bug.cgi?id=205207
<rdar://problem/57913504>

Reviewed by Antti Koivisto.

Apply https://www.w3.org/TR/css-text-3/#white-space-property's matrix to end-of-the-line whitespace.
(Keep white-space: mormal no-wrap pre-wrap and pre-line content)

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::shouldKeepEndOfLineWhitespace):
(WebCore::Layout::LineBreaker::breakingContextForInlineContent):
(WebCore::Layout::LineBreaker::Content::isVisuallyEmptyWhitespaceContentOnly const):
(WebCore::Layout::isTrailingWhitespaceWithPreWrap): Deleted.

  • layout/inlineformatting/InlineLineBreaker.h:
  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::InlineItemRun::isTrimmableWhitespace const):

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::placeInlineItem):

9:01 AM Changeset in webkit [253479] by clopez@igalia.com
  • 3 edits in trunk/LayoutTests

Fix some errors on the TestExpectations files.

Unreviewed gardening.

  • TestExpectations: Add missing expectation.
  • platform/gtk/TestExpectations: Remove repeated entries
8:42 AM Changeset in webkit [253478] by Devin Rousso
  • 3 edits in trunk/Tools

Prefix CSS selectors with all applicable CSS groupings when generating a ChangeLog
https://bugs.webkit.org/show_bug.cgi?id=205196

Reviewed by Jonathan Bedard.

  • Scripts/prepare-ChangeLog:

(get_selector_line_ranges_for_css):

  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests-expected.txt:
8:29 AM Changeset in webkit [253477] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, address flakiness of fast/scrolling/ios/scroll-event-from-scrollTo.html

  • fast/scrolling/ios/scroll-event-from-scrollTo.html:
8:24 AM Changeset in webkit [253476] by Chris Dumez
  • 3 edits in trunk/LayoutTests

Unreviewed, rebaseline a couple of iOS swiping tests after r253450

  • platform/ios/swipe/main-frame-pinning-requirement-expected.txt:
  • platform/ios/swipe/pushState-cached-back-swipe-expected.txt:
8:23 AM Changeset in webkit [253475] by commit-queue@webkit.org
  • 11 edits in trunk/Source

[GTK] WebKitGTK build hangs on g-ir-scanner
https://bugs.webkit.org/show_bug.cgi?id=204715

This patch fixes the static initialization order problem
introduced by Bug 204503.

The patch replaces the static data members with statics that
are constructed only upon first access (i.e., the 'construct
on first use' idiom).

Patch by Jim Mason <jmason@ibinx.com> on 2019-12-13
Reviewed by Carlos Garcia Campos.

Source/JavaScriptCore:

  • inspector/remote/RemoteInspector.h:
  • inspector/remote/glib/RemoteInspectorGlib.cpp:

(Inspector::RemoteInspector::start):
(Inspector::RemoteInspector::messageHandlers):

  • inspector/remote/glib/RemoteInspectorServer.cpp:

(Inspector::RemoteInspectorServer::messageHandlers):
(Inspector::RemoteInspectorServer::incomingConnectionCallback):

  • inspector/remote/glib/RemoteInspectorServer.h:

Source/WebDriver:

  • SessionHost.h:
  • glib/SessionHostGlib.cpp:

(WebDriver::SessionHost::messageHandlers):
(WebDriver::SessionHost::connectToBrowser):

Source/WebKit:

  • UIProcess/glib/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorClient::messageHandlers):
(WebKit::RemoteInspectorClient::RemoteInspectorClient):

  • UIProcess/glib/RemoteInspectorClient.h:
8:22 AM Changeset in webkit [253474] by commit-queue@webkit.org
  • 14 edits in trunk

Implement OffscreenCanvas.convertToBlob
https://bugs.webkit.org/show_bug.cgi?id=202573

Patch by Chris Lord <Chris Lord> on 2019-12-13
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update with fixed worker tests and SecurityError checks. See wpe
issues #20694 and #20698.

  • web-platform-tests/offscreen-canvas/convert-to-blob/offscreencanvas.convert.to.blob-expected.txt:
  • web-platform-tests/offscreen-canvas/convert-to-blob/offscreencanvas.convert.to.blob.html:
  • web-platform-tests/offscreen-canvas/convert-to-blob/offscreencanvas.convert.to.blob.w-expected.txt:
  • web-platform-tests/offscreen-canvas/convert-to-blob/offscreencanvas.convert.to.blob.w.html:

Source/WebCore:

Implement OffscreenCanvas.convertToBlob. This also involves making
isSupportedImageMIMETypeForEncoding safe to use off the main thread,
and implementing OffscreenCanvas.securityOrigin.

No new tests, these changes fix existing tests.

  • html/OffscreenCanvas.cpp:

(WebCore::toEncodingMimeType):
(WebCore::qualityFromDouble):
(WebCore::OffscreenCanvas::convertToBlob):
(WebCore::OffscreenCanvas::securityOrigin const):

  • html/OffscreenCanvas.h:
  • html/OffscreenCanvas.idl:
  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::createMIMETypeRegistryThreadGlobalData):
(WebCore::MIMETypeRegistry::isSupportedImageMIMETypeForEncoding):

  • platform/MIMETypeRegistry.h:

(WebCore::MIMETypeRegistryThreadGlobalData::MIMETypeRegistryThreadGlobalData):
(WebCore::MIMETypeRegistryThreadGlobalData::supportedImageMIMETypesForEncoding const):

  • platform/ThreadGlobalData.cpp:

(WebCore::ThreadGlobalData::mimeTypeRegistryThreadGlobalData):

  • platform/ThreadGlobalData.h:
  • workers/WorkerGlobalScope.h:
8:19 AM Changeset in webkit [253473] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Make DOMCacheStorage::retrieveCaches take a CompletionHandler
https://bugs.webkit.org/show_bug.cgi?id=205204

Patch by youenn fablet <youenn@apple.com> on 2019-12-13
Reviewed by Chris Dumez.

Covered by existing tests.

  • Modules/cache/DOMCacheEngine.cpp:

(WebCore::DOMCacheEngine::errorToException):
This will improve logging and will make sure we do not crash in debug in case of stopped error.

  • Modules/cache/DOMCacheStorage.cpp:

(WebCore::DOMCacheStorage::retrieveCaches):
Use of a completion handler to make sure we answer the caller, even with an error case.

  • Modules/cache/DOMCacheStorage.h:
8:16 AM Changeset in webkit [253472] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip several SharedWorkers tests as we do not support this feature.

8:02 AM Changeset in webkit [253471] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] The AGX compiler service is incorrectly listed as a global name in sandbox
https://bugs.webkit.org/show_bug.cgi?id=205189

Reviewed by Brent Fulgham.

It should be a XPC service name.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
7:18 AM Changeset in webkit [253470] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[HarfBuzz] WebKitWebProcess crashes when displaying a KaTeX formula
https://bugs.webkit.org/show_bug.cgi?id=204689

Reviewed by Carlos Alberto Lopez Perez.

We are creating and caching an hb_font_t for the given FontPlatformData's FT_Face, but the face is not
referenced so it is destroyed eventually while the hb_font_t is still alive. We need to keep a reference of the
FT_Face while the hb_font_t is alive.

  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::createOpenTypeMathHarfBuzzFont const): Create the hb_face_t with
hb_ft_face_create_referenced() instead of hb_ft_face_create_cached().

6:32 AM Changeset in webkit [253469] by ajuma@chromium.org
  • 3 edits
    2 adds in trunk

Crash in RenderLayerBacking::updateCompositedBounds from using cleared WeakPtr from m_backingSharingLayers
https://bugs.webkit.org/show_bug.cgi?id=204648

Reviewed by Simon Fraser.

Source/WebCore:

RenderLayerBacking's clearBackingSharingProviders clears layers'
backingSharingProviders unconditionally, even when a layer's
backingSharingProvider is some other RenderLayerBacking's owning
layer. This leaves the layer in a state where its backingProviderLayer
is null, even though it appears in the other RenderLayerBacking's
m_backingSharingLayers, which leads to a crash if this layer is destroyed
and the other RenderLayerBacking tries to use its pointer to this
layer.

Avoid this inconsistency by making clearBackingSharingProviders check
whether a layer's backingSharingProvider is the current RenderLayerBacking's
owner, before clearing it.

Test: compositing/shared-backing/move-sharing-child.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::clearBackingSharingLayerProviders):
(WebCore::RenderLayerBacking::setBackingSharingLayers):
(WebCore::RenderLayerBacking::clearBackingSharingLayers):

LayoutTests:

  • compositing/shared-backing/move-sharing-child-expected.txt: Added.
  • compositing/shared-backing/move-sharing-child.html: Added.
5:47 AM Changeset in webkit [253468] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] Fix fast/text/simple-line-with-multiple-renderers.html
https://bugs.webkit.org/show_bug.cgi?id=205193
<rdar://problem/57900709>

Reviewed by Antti Koivisto.

Use LazyLineBreakIterator to find out if 2 (visually)adjacent non-whitespace inline items are
on a soft breaking opportunity.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::endsWithBreakingOpportunity):
(WebCore::Layout::LineBreaker::Content::isAtContentBoundary):

  • layout/inlineformatting/InlineTextItem.cpp:

(WebCore::Layout::moveToNextBreakablePosition):

  • layout/inlineformatting/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::findNextBreakablePosition):

  • layout/inlineformatting/text/TextUtil.h:
2:54 AM Changeset in webkit [253467] by Carlos Garcia Campos
  • 6 edits in trunk

[GTK] Several tests crashing after r247898 "Reorganize UIScriptController into platform-specific subclasses"
https://bugs.webkit.org/show_bug.cgi?id=200534

Reviewed by Alejandro G. Castro.

Tools:

Add implementation of several UIScriptController virtual methods to avoid crashes.

  • WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:

(WTR::PlatformWebView::~PlatformWebView):
(WTR::PlatformWebView::addToWindow):
(WTR::PlatformWebView::removeFromWindow):

  • WebKitTestRunner/gtk/UIScriptControllerGtk.cpp:

(WTR::UIScriptControllerGtk::doAsyncTask):
(WTR::UIScriptControllerGtk::setContinuousSpellCheckingEnabled):
(WTR::UIScriptControllerGtk::copyText):
(WTR::UIScriptControllerGtk::dismissMenu):
(WTR::UIScriptControllerGtk::isShowingMenu const):
(WTR::UIScriptControllerGtk::activateAtPoint):
(WTR::UIScriptControllerGtk::activateDataListSuggestion):
(WTR::UIScriptControllerGtk::simulateAccessibilitySettingsChangeNotification):
(WTR::UIScriptControllerGtk::removeViewFromWindow):
(WTR::UIScriptControllerGtk::addViewToWindow):

  • WebKitTestRunner/gtk/UIScriptControllerGtk.h:

LayoutTests:

Update expectations.

  • platform/gtk/TestExpectations:
12:40 AM Changeset in webkit [253466] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Uninitialized variables in RenderLayer
https://bugs.webkit.org/show_bug.cgi?id=205165

Reviewed by Simon Fraser.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer): Initialize m_isNormalFlowOnly and m_isCSSStackingContext.

Dec 12, 2019:

10:06 PM Changeset in webkit [253465] by Simon Fraser
  • 51 edits
    1 copy
    6 adds in trunk

Move WKWebView code related to testing to new files, with new private "for testing" headers.
https://bugs.webkit.org/show_bug.cgi?id=205021

Reviewed by Tim Horton.
Source/WebKit:

Move testing-only SPI to new private headers to discourage first parties from using
them by mistake. Move test-only code to new files to reduce the size of WKWebView.mm.

  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _internalDoAfterNextPresentationUpdate:withoutWaitingForPainting:withoutWaitingForAnimatedResize:]):
(-[WKWebView _prepareForImmediateActionAnimation]):
(-[WKWebView _cancelImmediateActionAnimation]):
(-[WKWebView _completeImmediateActionAnimation]):
(-[WKWebView _useSystemAppearance]):
(-[WKWebView _setUseSystemAppearance:]):
(-[WKWebView _pageRefForTransitionToWKWebView]):
(-[WKWebView _canChangeFrameLayout:]):
(-[WKWebView _tryToSwipeWithEvent:ignoringPinnedState:]):
(-[WKWebView _ignoresNonWheelEvents]):
(-[WKWebView _setIgnoresNonWheelEvents:]):
(-[WKWebView _hasActiveVideoForControlsManager]):
(-[WKWebView _dismissContentRelativeChildWindows]):
(-[WKWebView _gestureEventWasNotHandledByWebCore:]):
(-[WKWebView _disableFrameSizeUpdates]):
(-[WKWebView _enableFrameSizeUpdates]):
(-[WKWebView _beginDeferringViewInWindowChanges]):
(-[WKWebView _endDeferringViewInWindowChanges]):
(-[WKWebView _endDeferringViewInWindowChangesSync]):
(-[WKWebView _fullScreenPlaceholderView]):
(-[WKWebView _fullScreenWindow]):
(-[WKWebView _underlayColor]):
(-[WKWebView _setUnderlayColor:]):
(-[WKWebView _setCustomSwipeViews:]):
(-[WKWebView _setCustomSwipeViewsTopContentInset:]):
(-[WKWebView _setDidMoveSwipeSnapshotCallback:]):
(-[WKWebView _setFrame:andScrollBy:]):
(-[WKWebView _setTotalHeightOfBanners:]):
(-[WKWebView _totalHeightOfBanners]):
(-[WKWebView _setFont:sender:]):
(-[WKWebView _setFontSize:sender:]):
(-[WKWebView _setTextColor:sender:]):
(-[WKWebView inputAccessoryView]):
(-[WKWebView inputView]):
(-[WKWebView _requestActivatedElementAtPosition:completionBlock:]):
(-[WKWebView _contentVisibleRect]):
(-[WKWebView _convertPointFromContentsToView:]):
(-[WKWebView _convertPointFromViewToContents:]):
(-[WKWebView didStartFormControlInteraction]):
(-[WKWebView didEndFormControlInteraction]):
(-[WKWebView _uiTextCaretRect]):
(-[WKWebView _accessibilityRetrieveRectsAtSelectionOffset:withText:completionHandler:]):
(-[WKWebView _accessibilityStoreSelection]):
(-[WKWebView _accessibilityClearSelection]):
(-[WKWebView _contentViewIsFirstResponder]):
(-[WKWebView _inspector]):
(-[WKWebView _mainFrame]):
(-[WKWebView _isEditable]):
(-[WKWebView _setEditable:]):
(-[WKWebView _executeEditCommand:argument:completion:]):
(-[WKWebView _textManipulationDelegate]):
(-[WKWebView _setTextManipulationDelegate:]):
(-[WKWebView _startTextManipulationsWithConfiguration:completion:]):
(-[WKWebView _completeTextManipulation:completion:]):
(-[WKWebView _takeFindStringFromSelection:]):
(+[WKWebView _stringForFind]):
(+[WKWebView _setStringForFind:]):
(-[WKWebView _remoteObjectRegistry]):
(-[WKWebView _handle]):
(-[WKWebView _observedRenderingProgressEvents]):
(-[WKWebView _historyDelegate]):
(-[WKWebView _setHistoryDelegate:]):
(-[WKWebView _updateMediaPlaybackControlsManager]):
(-[WKWebView _canTogglePictureInPicture]):
(-[WKWebView _isPictureInPictureActive]):
(-[WKWebView _togglePictureInPicture]):
(-[WKWebView _closeAllMediaPresentations]):
(-[WKWebView _stopMediaCapture]):
(-[WKWebView _stopAllMediaPlayback]):
(-[WKWebView _suspendAllMediaPlayback]):
(-[WKWebView _resumeAllMediaPlayback]):
(-[WKWebView _unreachableURL]):
(-[WKWebView _mainFrameURL]):
(-[WKWebView _loadAlternateHTMLString:baseURL:forUnreachableURL:]):
(-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]):
(-[WKWebView _loadRequest:shouldOpenExternalURLs:]):
(-[WKWebView _certificateChain]):
(-[WKWebView _committedURL]):
(-[WKWebView _MIMEType]):
(-[WKWebView _userAgent]):
(-[WKWebView _applicationNameForUserAgent]):
(-[WKWebView _setApplicationNameForUserAgent:]):
(-[WKWebView _customUserAgent]):
(-[WKWebView _setCustomUserAgent:]):
(-[WKWebView _setUserContentExtensionsEnabled:]):
(-[WKWebView _userContentExtensionsEnabled]):
(-[WKWebView _webProcessIdentifier]):
(-[WKWebView _provisionalWebProcessIdentifier]):
(-[WKWebView _killWebContentProcess]):
(-[WKWebView _safeBrowsingWarning]):
(-[WKWebView _reloadWithoutContentBlockers]):
(-[WKWebView _reloadExpiredOnly]):
(-[WKWebView _killWebContentProcessAndResetState]):
(-[WKWebView _convertRectFromRootViewCoordinates:]):
(-[WKWebView _convertRectToRootViewCoordinates:]):
(-[WKWebView _requestTextInputContextsInRect:completionHandler:]):
(-[WKWebView _focusTextInputContext:completionHandler:]):
(-[WKWebView _takePDFSnapshotWithConfiguration:completionHandler:]):
(-[WKWebView _setShouldSuppressFirstResponderChanges:]):
(-[WKWebView _retainActiveFocusedState]):
(-[WKWebView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]):
(-[WKWebView _snapshotLayerContentsForBackForwardListItem:]):
(-[WKWebView _dataDetectionResults]):
(-[WKWebView _accessibilityRetrieveSpeakSelectionContent]):
(-[WKWebView _accessibilityDidGetSpeakSelectionContent:]):
(-[WKWebView inputAssistantItem]):
(-[WKWebView _sessionStateData]):
(-[WKWebView _sessionState]):
(-[WKWebView _sessionStateWithFilter:]):
(-[WKWebView _restoreFromSessionStateData:]):
(-[WKWebView _restoreSessionState:andNavigate:]):
(-[WKWebView _close]):
(-[WKWebView _insertAttachmentWithFilename:contentType:data:options:completion:]):
(-[WKWebView _insertAttachmentWithFileWrapper:contentType:options:completion:]):
(-[WKWebView _insertAttachmentWithFileWrapper:contentType:completion:]):
(-[WKWebView _attachmentForIdentifier:]):
(-[WKWebView _simulateDeviceOrientationChangeWithAlpha:beta:gamma:]):
(+[WKWebView _handlesSafeBrowsing]):
(-[WKWebView _showSafeBrowsingWarningWithTitle:warning:details:completionHandler:]):
(-[WKWebView _showSafeBrowsingWarningWithURL:title:warning:details:completionHandler:]):
(+[WKWebView _confirmMalwareSentinel]):
(+[WKWebView _visitUnsafeWebsiteSentinel]):
(-[WKWebView _isJITEnabled:]):
(-[WKWebView _evaluateJavaScriptWithoutUserGesture:completionHandler:]):
(-[WKWebView _updateWebsitePolicies:]):
(-[WKWebView _allowsRemoteInspection]):
(-[WKWebView _setAllowsRemoteInspection:]):
(-[WKWebView _remoteInspectionNameOverride]):
(-[WKWebView _setRemoteInspectionNameOverride:]):
(-[WKWebView _addsVisitedLinks]):
(-[WKWebView _setAddsVisitedLinks:]):
(-[WKWebView _networkRequestsInProgress]):
(layoutMilestones):
(-[WKWebView _setObservedRenderingProgressEvents:]):
(-[WKWebView _getMainResourceDataWithCompletionHandler:]):
(-[WKWebView _getWebArchiveDataWithCompletionHandler:]):
(-[WKWebView _getContentsAsStringWithCompletionHandler:]):
(-[WKWebView _getContentsAsAttributedStringWithCompletionHandler:]):
(-[WKWebView _getApplicationManifestWithCompletionHandler:]):
(-[WKWebView _paginationMode]):
(-[WKWebView _setPaginationMode:]):
(-[WKWebView _paginationBehavesLikeColumns]):
(-[WKWebView _setPaginationBehavesLikeColumns:]):
(-[WKWebView _pageLength]):
(-[WKWebView _setPageLength:]):
(-[WKWebView _gapBetweenPages]):
(-[WKWebView _setGapBetweenPages:]):
(-[WKWebView _paginationLineGridEnabled]):
(-[WKWebView _setPaginationLineGridEnabled:]):
(-[WKWebView _pageCount]):
(-[WKWebView _supportsTextZoom]):
(-[WKWebView _textZoomFactor]):
(-[WKWebView _setTextZoomFactor:]):
(-[WKWebView setPageZoom:]):
(-[WKWebView pageZoom]):
(-[WKWebView _pageZoomFactor]):
(-[WKWebView _setPageZoomFactor:]):
(-[WKWebView _diagnosticLoggingDelegate]):
(-[WKWebView _setDiagnosticLoggingDelegate:]):
(-[WKWebView _findDelegate]):
(-[WKWebView _setFindDelegate:]):
(toFindOptions):
(-[WKWebView _countStringMatches:options:maxCount:]):
(-[WKWebView _findString:options:maxCount:]):
(-[WKWebView _hideFindUI]):
(-[WKWebView _saveBackForwardSnapshotForItem:]):
(-[WKWebView _inputDelegate]):
(-[WKWebView _setInputDelegate:]):
(-[WKWebView _isDisplayingStandaloneImageDocument]):
(-[WKWebView _isDisplayingStandaloneMediaDocument]):
(-[WKWebView _isPlayingAudio]):
(-[WKWebView _isShowingNavigationGestureSnapshot]):
(-[WKWebView _layoutMode]):
(-[WKWebView _setLayoutMode:]):
(-[WKWebView _fixedLayoutSize]):
(-[WKWebView _setFixedLayoutSize:]):
(-[WKWebView _setBackgroundExtendsBeyondPage:]):
(-[WKWebView _backgroundExtendsBeyondPage]):
(-[WKWebView _viewScale]):
(-[WKWebView _setViewScale:]):
(-[WKWebView _setMinimumEffectiveDeviceWidth:]):
(-[WKWebView _minimumEffectiveDeviceWidth]):
(-[WKWebView _setScrollPerformanceDataCollectionEnabled:]):
(-[WKWebView _scrollPerformanceDataCollectionEnabled]):
(-[WKWebView _scrollPerformanceData]):
(-[WKWebView _allowsMediaDocumentInlinePlayback]):
(-[WKWebView _setAllowsMediaDocumentInlinePlayback:]):
(-[WKWebView _webProcessIsResponsive]):
(-[WKWebView _setFullscreenDelegate:]):
(-[WKWebView _fullscreenDelegate]):
(-[WKWebView _isInFullscreen]):
(-[WKWebView _mediaCaptureState]):
(-[WKWebView _setMediaCaptureEnabled:]):
(-[WKWebView _mediaCaptureEnabled]):
(-[WKWebView _setPageMuted:]):
(-[WKWebView _removeDataDetectedLinks:]):
(-[WKWebView _doAfterNextPresentationUpdate:]):
(-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForPainting:]):
(-[WKWebView _doAfterNextStablePresentationUpdate:]):
(-[WKWebView _detectDataWithTypes:completionHandler:]):
(-[WKWebView removeFromSuperview]):
(-[WKWebView _minimumLayoutSizeOverride]):
(-[WKWebView _setViewLayoutSizeOverride:]):
(-[WKWebView _obscuredInsets]):
(-[WKWebView _setObscuredInsets:]):
(-[WKWebView _obscuredInsetEdgesAffectedBySafeArea]):
(-[WKWebView _setObscuredInsetEdgesAffectedBySafeArea:]):
(-[WKWebView _unobscuredSafeAreaInsets]):
(-[WKWebView _setUnobscuredSafeAreaInsets:]):
(-[WKWebView _safeAreaShouldAffectObscuredInsets]):
(-[WKWebView _setInterfaceOrientationOverride:]):
(-[WKWebView _interfaceOrientationOverride]):
(-[WKWebView _clearInterfaceOrientationOverride]):
(-[WKWebView _maximumUnobscuredSizeOverride]):
(-[WKWebView _setMaximumUnobscuredSizeOverride:]):
(-[WKWebView _setAllowsViewportShrinkToFit:]):
(-[WKWebView _allowsViewportShrinkToFit]):
(-[WKWebView _beginInteractiveObscuredInsetsChange]):
(-[WKWebView _endInteractiveObscuredInsetsChange]):
(-[WKWebView _hideContentUntilNextUpdate]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):
(-[WKWebView _resizeWhileHidingContentWithUpdates:]):
(-[WKWebView _setOverlaidAccessoryViewsInset:]):
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]):
(-[WKWebView _clearOverrideLayoutParameters]):
(viewportArgumentsFromDictionary):
(-[WKWebView _overrideViewportWithArguments:]):
(-[WKWebView _viewForFindUI]):
(-[WKWebView _isDisplayingPDF]):
(-[WKWebView _dataForDisplayedPDF]):
(-[WKWebView _suggestedFilenameForDisplayedPDF]):
(-[WKWebView _webViewPrintFormatter]):
(toUserInterfaceLayoutDirection):
(-[WKWebView setSemanticContentAttribute:]):
(-[WKWebView _drawsBackground]):
(-[WKWebView _setDrawsBackground:]):
(-[WKWebView _backgroundColor]):
(-[WKWebView _setBackgroundColor:]):
(-[WKWebView _setDrawsTransparentBackground:]):
(-[WKWebView _inspectorAttachmentView]):
(-[WKWebView _setInspectorAttachmentView:]):
(-[WKWebView _setOverlayScrollbarStyle:]):
(-[WKWebView _overlayScrollbarStyle]):
(-[WKWebView _windowOcclusionDetectionEnabled]):
(-[WKWebView _setWindowOcclusionDetectionEnabled:]):
(-[WKWebView shareSheetDidDismiss:]):
(-[WKWebView _setOverrideDeviceScaleFactor:]):
(-[WKWebView _overrideDeviceScaleFactor]):
(-[WKWebView _setTopContentInset:]):
(-[WKWebView _topContentInset]):
(-[WKWebView _pageExtendedBackgroundColor]):
(-[WKWebView _pinnedState]):
(-[WKWebView _rubberBandingEnabled]):
(-[WKWebView _setRubberBandingEnabled:]):
(-[WKWebView _immediateActionAnimationControllerForHitTestResult:withType:userData:]):
(-[WKWebView _setAutomaticallyAdjustsContentInsets:]):
(-[WKWebView _automaticallyAdjustsContentInsets]):
(-[WKWebView _minimumLayoutWidth]):
(-[WKWebView _setMinimumLayoutWidth:]):
(-[WKWebView _shouldExpandContentToViewHeightForAutoLayout]):
(-[WKWebView _setShouldExpandContentToViewHeightForAutoLayout:]):
(-[WKWebView _alwaysShowsHorizontalScroller]):
(-[WKWebView _setAlwaysShowsHorizontalScroller:]):
(-[WKWebView _alwaysShowsVerticalScroller]):
(-[WKWebView _setAlwaysShowsVerticalScroller:]):
(-[WKWebView _printOperationWithPrintInfo:]):
(-[WKWebView _printOperationWithPrintInfo:forFrame:]):
(-[WKWebView setUserInterfaceLayoutDirection:]):
(-[WKWebView _wantsMediaPlaybackControlsView]):
(-[WKWebView _setWantsMediaPlaybackControlsView:]):
(-[WKWebView _mediaPlaybackControlsView]):
(-[WKWebView _addMediaPlaybackControlsView:]):
(-[WKWebView _removeMediaPlaybackControlsView]):
(-[WKWebView _prepareForMoveToWindow:completionHandler:]):
(-[WKWebView _setThumbnailView:]):
(-[WKWebView _thumbnailView]):
(-[WKWebView _setIgnoresAllEvents:]):
(-[WKWebView _ignoresAllEvents]):
(-[WKWebView _spellCheckerDocumentTag]):
(-[WKWebView _setContinuousSpellCheckingEnabledForTesting:]): Deleted.
(-[WKWebView _contentsOfUserInterfaceItem:]): Deleted.
(-[WKWebView _setDeviceOrientationUserPermissionHandlerForTesting:]): Deleted.
(-[WKWebView keyboardAccessoryBarNext]): Deleted.
(-[WKWebView keyboardAccessoryBarPrevious]): Deleted.
(-[WKWebView applyAutocorrection:toString:withCompletionHandler:]): Deleted.
(-[WKWebView dismissFormAccessoryView]): Deleted.
(-[WKWebView _dismissFilePicker]): Deleted.
(-[WKWebView setTimePickerValueToHour:minute:]): Deleted.
(-[WKWebView selectFormAccessoryPickerRow:]): Deleted.
(-[WKWebView selectFormPopoverTitle]): Deleted.
(-[WKWebView textContentTypeForTesting]): Deleted.
(-[WKWebView formInputLabel]): Deleted.
(-[WKWebView _didShowContextMenu]): Deleted.
(-[WKWebView _didDismissContextMenu]): Deleted.
(-[WKWebView _inputViewBounds]): Deleted.
(-[WKWebView _uiTextSelectionRects]): Deleted.
(-[WKWebView _scrollingTreeAsText]): Deleted.
(-[WKWebView _stableStateOverride]): Deleted.
(-[WKWebView _propertiesOfLayerWithID:]): Deleted.
(-[WKWebView _doAfterResettingSingleTapGesture:]): Deleted.
(-[WKWebView _doAfterReceivingEditDragSnapshotForTesting:]): Deleted.
(-[WKWebView _requestControlledElementID]): Deleted.
(-[WKWebView _handleControlledElementIDResponse:]): Deleted.
(-[WKWebView _handleAcceptedCandidate:]): Deleted.
(-[WKWebView _didHandleAcceptedCandidate]): Deleted.
(-[WKWebView _didUpdateCandidateListVisibility:]): Deleted.
(-[WKWebView _forceRequestCandidates]): Deleted.
(-[WKWebView _shouldRequestCandidates]): Deleted.
(-[WKWebView _insertText:replacementRange:]): Deleted.
(-[WKWebView _candidateRect]): Deleted.
(-[WKWebView viewDidChangeEffectiveAppearance]): Deleted.
(-[WKWebView _setHeaderBannerHeight:]): Deleted.
(-[WKWebView _setFooterBannerHeight:]): Deleted.
(-[WKWebView _doAfterProcessingAllPendingMouseEvents:]): Deleted.
(-[WKWebView _activeMenu]): Deleted.
(-[WKWebView _requestActiveNowPlayingSessionInfo:]): Deleted.
(-[WKWebView _setPageScale:withOrigin:]): Deleted.
(-[WKWebView _pageScale]): Deleted.
(-[WKWebView _scrollingUpdatesDisabledForTesting]): Deleted.
(-[WKWebView _setScrollingUpdatesDisabledForTesting:]): Deleted.
(-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForAnimatedResizeForTesting:]): Deleted.
(-[WKWebView _doAfterNextVisibleContentRectUpdate:]): Deleted.
(-[WKWebView _disableBackForwardSnapshotVolatilityForTesting]): Deleted.
(-[WKWebView _dragCaretRect]): Deleted.
(-[WKWebView _simulateLongPressActionAtLocation:]): Deleted.
(-[WKWebView _simulateTextEntered:]): Deleted.
(-[WKWebView _dynamicUserInterfaceTraitDidChange]): Deleted.
(-[WKWebView _beginBackSwipeForTesting]): Deleted.
(-[WKWebView _completeBackSwipeForTesting]): Deleted.
(-[WKWebView _setDefersLoadingForTesting:]): Deleted.
(-[WKWebView _setShareSheetCompletesImmediatelyWithResolutionForTesting:]): Deleted.
(-[WKWebView _hasInspectorFrontend]): Deleted.
(-[WKWebView _processWillSuspendImminentlyForTesting]): Deleted.
(-[WKWebView _processDidResumeForTesting]): Deleted.
(-[WKWebView _setAssertionStateForTesting:]): Deleted.
(-[WKWebView _hasServiceWorkerBackgroundActivityForTesting]): Deleted.
(-[WKWebView _hasServiceWorkerForegroundActivityForTesting]): Deleted.
(-[WKWebView _denyNextUserMediaRequest]): Deleted.
(-[WKWebView _triggerSystemPreviewActionOnElement:document:page:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h: Added.
  • UIProcess/API/Cocoa/WKWebViewTesting.mm: Added.

(-[WKWebView _setPageScale:withOrigin:]):
(-[WKWebView _pageScale]):
(-[WKWebView _setContinuousSpellCheckingEnabledForTesting:]):
(-[WKWebView _contentsOfUserInterfaceItem:]):
(-[WKWebView _requestActiveNowPlayingSessionInfo:]):
(-[WKWebView _scrollingUpdatesDisabledForTesting]):
(-[WKWebView _setScrollingUpdatesDisabledForTesting:]):
(-[WKWebView _doAfterNextPresentationUpdateWithoutWaitingForAnimatedResizeForTesting:]):
(-[WKWebView _doAfterNextVisibleContentRectUpdate:]):
(-[WKWebView _disableBackForwardSnapshotVolatilityForTesting]):
(-[WKWebView _beginBackSwipeForTesting]):
(-[WKWebView _completeBackSwipeForTesting]):
(-[WKWebView _setDefersLoadingForTesting:]):
(-[WKWebView _setShareSheetCompletesImmediatelyWithResolutionForTesting:]):
(-[WKWebView _hasInspectorFrontend]):
(-[WKWebView _processWillSuspendImminentlyForTesting]):
(-[WKWebView _processDidResumeForTesting]):
(-[WKWebView _setAssertionStateForTesting:]):
(-[WKWebView _hasServiceWorkerBackgroundActivityForTesting]):
(-[WKWebView _hasServiceWorkerForegroundActivityForTesting]):
(-[WKWebView _denyNextUserMediaRequest]):

  • UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h: Added.
  • UIProcess/API/ios/WKWebViewTestingIOS.mm: Added.

(-[WKWebView keyboardAccessoryBarNext]):
(-[WKWebView keyboardAccessoryBarPrevious]):
(-[WKWebView applyAutocorrection:toString:withCompletionHandler:]):
(-[WKWebView dismissFormAccessoryView]):
(-[WKWebView _dismissFilePicker]):
(-[WKWebView setTimePickerValueToHour:minute:]):
(-[WKWebView selectFormAccessoryPickerRow:]):
(-[WKWebView selectFormPopoverTitle]):
(-[WKWebView textContentTypeForTesting]):
(-[WKWebView formInputLabel]):
(-[WKWebView _didShowContextMenu]):
(-[WKWebView _didDismissContextMenu]):
(-[WKWebView _inputViewBounds]):
(-[WKWebView _uiTextSelectionRects]):
(-[WKWebView _scrollingTreeAsText]):
(-[WKWebView _stableStateOverride]):
(-[WKWebView _propertiesOfLayerWithID:]):
(-[WKWebView _doAfterResettingSingleTapGesture:]):
(-[WKWebView _doAfterReceivingEditDragSnapshotForTesting:]):
(-[WKWebView _dragCaretRect]):
(-[WKWebView _simulateLongPressActionAtLocation:]):
(-[WKWebView _simulateTextEntered:]):
(-[WKWebView _dynamicUserInterfaceTraitDidChange]):
(-[WKWebView _triggerSystemPreviewActionOnElement:document:page:]):
(-[WKWebView _setDeviceOrientationUserPermissionHandlerForTesting:]):

  • UIProcess/API/mac/WKWebViewPrivateForTestingMac.h: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/InteractionDeadlockAfterCrash.mm.
  • UIProcess/API/mac/WKWebViewTestingMac.mm: Added.

(-[WKWebView _requestControlledElementID]):
(-[WKWebView _handleControlledElementIDResponse:]):
(-[WKWebView _handleAcceptedCandidate:]):
(-[WKWebView _didHandleAcceptedCandidate]):
(-[WKWebView _didUpdateCandidateListVisibility:]):
(-[WKWebView _forceRequestCandidates]):
(-[WKWebView _shouldRequestCandidates]):
(-[WKWebView _insertText:replacementRange:]):
(-[WKWebView _candidateRect]):
(-[WKWebView viewDidChangeEffectiveAppearance]):
(-[WKWebView _setHeaderBannerHeight:]):
(-[WKWebView _setFooterBannerHeight:]):
(-[WKWebView _doAfterProcessingAllPendingMouseEvents:]):
(-[WKWebView _activeMenu]):

  • UIProcess/Cocoa/PageClientImplCocoa.mm:
  • UIProcess/ios/PageClientImplIOS.mm:
  • UIProcess/ios/WKContentViewInteraction.mm:
  • UIProcess/ios/WKMouseGestureRecognizer.h:
  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
  • UIProcess/mac/PageClientImplMac.mm:
  • UIProcess/mac/WKFullScreenWindowController.h:
  • WebKit.xcodeproj/project.pbxproj:

Tools:

Move testing-only SPI to new private headers to discourage first parties from using
them by mistake. Move test-only code to new files to reduce the size of WKWebView.mm.

  • MiniBrowser/mac/WK2BrowserWindowController.m:
  • TestWebKitAPI/EditingTestHarness.mm:
  • TestWebKitAPI/Tests/WebKit/ResponsivenessTimerCrash.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/AnimatedResize.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/DoubleDefersLoading.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/InteractionDeadlockAfterCrash.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/MediaBufferingPolicy.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/NowPlayingControlsTests.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSuspendMediaBuffering.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/SnapshotStore.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/SystemPreview.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/VideoControlsManager.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKRequestActivatedElementInfo.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCandidateTests.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEditActions.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewFirstResponderTests.mm:
  • TestWebKitAPI/Tests/ios/AccessibilityTestsIOS.mm:
  • TestWebKitAPI/Tests/ios/ActionSheetTests.mm:
  • TestWebKitAPI/Tests/ios/AutocorrectionTestsIOS.mm:
  • TestWebKitAPI/Tests/ios/FocusPreservationTests.mm:
  • TestWebKitAPI/cocoa/TestNavigationDelegate.mm:
  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:
  • TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
  • WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm:
  • WebKitTestRunner/ios/TestControllerIOS.mm:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:
  • WebKitTestRunner/mac/UIScriptControllerMac.mm:
9:46 PM Changeset in webkit [253464] by jh718.park@samsung.com
  • 3 edits in trunk/Source/WebCore

Unreviewed. Fix the build warnings below since r253353.
warning: unused parameter 'foo' [-Wunused-parameter]

Also, remove unnecessary tab spaces from Internals.h.

No new tests, no new behavioral changes.

Patch by Joonghun Park <jh718.park@samsung.com> on 2019-12-12

  • testing/Internals.cpp:

(WebCore::Internals::hasSandboxMachLookupAccessToGlobalName):

  • testing/Internals.h:
8:01 PM Changeset in webkit [253463] by rniwa@webkit.org
  • 4 edits in trunk/Source/WebCore

Protect lifetime of frame and frameView objects
https://bugs.webkit.org/show_bug.cgi?id=205128

Patch by Jack Lee <Jack Lee> on 2019-12-12
Reviewed by Ryosuke Niwa.

Could not write a reproducible test case for this.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::focus):

  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::focusDocumentView):

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::focusDocumentView):

6:13 PM Changeset in webkit [253462] by Jonathan Bedard
  • 3 edits in trunk/Tools

Python 3: Support serial webkitpy.common tests
https://bugs.webkit.org/show_bug.cgi?id=205162

Reviewed by Stephanie Lewis.

  • Scripts/webkitpy/common/system/executive.py:

(Executive.running_pids): Processess are encoded as bytes.

  • Scripts/webkitpy/common/system/executive_unittest.py:

(ExecutiveTest.serial_test_run_in_parallel): Use Python 3 compatible print statements.

5:57 PM Changeset in webkit [253461] by ysuzuki@apple.com
  • 15 edits in trunk/Source/JavaScriptCore

[JSC] Puts fixed-sized cells into IsoSubspace more
https://bugs.webkit.org/show_bug.cgi?id=205183

Reviewed by Saam Barati.

This patch puts many of fixed-sized cells into IsoSubspace.

  • Exception
  • JSPropertyNameEnumerator
  • RegExp
  • StructureChain
  • MapBucket
  • JSMapIterator
  • ScopedArgumentsTable
  • SetBucket
  • JSSetIterator
  • JSScriptFetchParameters
  • JSScriptFetcher
  • JSSourceCode
  • JSTemplateObjectDescriptor
  • runtime/Exception.h:
  • runtime/HashMapImpl.h:

(JSC::HashMapBucket::selectStructure): Deleted.
(JSC::HashMapBucket::info): Deleted.
(JSC::HashMapBucket::createStructure): Deleted.
(JSC::HashMapBucket::create): Deleted.
(JSC::HashMapBucket::createSentinel): Deleted.
(JSC::HashMapBucket::HashMapBucket): Deleted.
(JSC::HashMapBucket::setNext): Deleted.
(JSC::HashMapBucket::setPrev): Deleted.
(JSC::HashMapBucket::setKey): Deleted.
(JSC::HashMapBucket::setValue): Deleted.
(JSC::HashMapBucket::key const): Deleted.
(JSC::HashMapBucket::value const): Deleted.
(JSC::HashMapBucket::next const): Deleted.
(JSC::HashMapBucket::prev const): Deleted.
(JSC::HashMapBucket::deleted const): Deleted.
(JSC::HashMapBucket::makeDeleted): Deleted.
(JSC::HashMapBucket::offsetOfKey): Deleted.
(JSC::HashMapBucket::offsetOfValue): Deleted.
(JSC::HashMapBucket::offsetOfNext): Deleted.
(JSC::HashMapBucket::extractValue): Deleted.

  • runtime/JSMapIterator.h:
  • runtime/JSPropertyNameEnumerator.h:
  • runtime/JSScriptFetchParameters.h:
  • runtime/JSScriptFetcher.h:
  • runtime/JSSetIterator.h:
  • runtime/JSSourceCode.h:
  • runtime/JSTemplateObjectDescriptor.h:
  • runtime/RegExp.h:
  • runtime/ScopedArgumentsTable.h:
  • runtime/StructureChain.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
5:53 PM Changeset in webkit [253460] by ysuzuki@apple.com
  • 4 edits in trunk

[JSC] Wasm init-expr should reject mutable globals
https://bugs.webkit.org/show_bug.cgi?id=205191

Reviewed by Mark Lam.

JSTests:

  • wasm/js-api/global-error.js:

(assert.throws.new.WebAssembly.Module.bin):
(new.WebAssembly.Module): Deleted.
(assert.throws): Deleted.
(new.Number): Deleted.

Source/JavaScriptCore:

For init-expr, expr must be a constant[1]. Constant expr, which is defined in Wasm spec, requires that, if the expr is GetGlobal,
global's mutability is immutable. Previously our imported globals are always immutable, so we are using ASSERT instead of checking
mutability in WasmSectionParser. But now, we have ability to import mutable globals. We should check mutability when parsing init-expr.
We do not have this check previously, which leads to spec-correctness issue that we can initialize globals/elements/data-segments
with snapshot values of mutable globals (this is safe, but this is not spec-compliant, and it is not reasonable semantics), while
such an attempt should be rejected when compiling Wasm modules.

This patch adds necessary checks.

[1]: https://webassembly.github.io/spec/core/valid/instructions.html#valid-constant

  • wasm/WasmSectionParser.cpp:

(JSC::Wasm::SectionParser::parseInitExpr):

5:49 PM Changeset in webkit [253459] by Fujii Hironori
  • 3 edits in trunk/Tools

webkit-patch print-expectations fails to format TestExpectationLine with DumpJSConsoleLogInStdErr
https://bugs.webkit.org/show_bug.cgi?id=194283

Reviewed by Youenn Fablet.

  • Scripts/webkitpy/layout_tests/models/test_expectations.py:

(TestExpectationParser): Add DumpJSConsoleLogInStdErr to TestExpectationParser._expectation_tokens.

  • Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:

Added a tokenize test and round tip test for DumpJSConsoleLogInStdErr.

5:11 PM Changeset in webkit [253458] by mark.lam@apple.com
  • 7 edits
    1 add in trunk

Fix missing exception in JSValue::toWTFStringSlowCase().
https://bugs.webkit.org/show_bug.cgi?id=205176
<rdar://problem/57871899>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/missing-exception-check-in-JSValue-toWTFStringSlowCase.js: Added.

Source/JavaScriptCore:

Also fix all the new exception check failures that fall out of change.
Also replaced some ASSERTs with EXCEPTION_ASSERT so that we can run the exception
check validation on a release build.

  • dfg/DFGOperations.cpp:
  • jsc.cpp:

(dumpException):

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncPush):

  • runtime/ExceptionHelpers.cpp:

(JSC::createError):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::toWTFStringSlowCase const):

5:09 PM Changeset in webkit [253457] by Chris Dumez
  • 25 edits
    15 adds
    101 deletes in trunk/LayoutTests

Re-sync service-workers web-platform-tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=205181

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Resync service-workers web-platform-tests from upstream 178762b6fce688979.

  • web-platform-tests/service-workers/*: Updated

LayoutTests:

  • tests-options.json:
4:53 PM Changeset in webkit [253456] by Chris Dumez
  • 1 edit
    10 adds in trunk/LayoutTests/imported/w3c

Unreviewed, land missing baselines from r253453.

  • web-platform-tests/workers/SharedWorker-MessageEvent-source.any-expected.txt: Added.
  • web-platform-tests/workers/SharedWorker-MessageEvent-source.any.worker-expected.txt: Added.
  • web-platform-tests/workers/SharedWorker-replace-EventHandler.any-expected.txt: Added.
  • web-platform-tests/workers/SharedWorker-replace-EventHandler.any.worker-expected.txt: Added.
  • web-platform-tests/workers/examples/onconnect.any-expected.txt: Added.
  • web-platform-tests/workers/examples/onconnect.any.worker-expected.txt: Added.
  • web-platform-tests/workers/semantics/interface-objects/003.any-expected.txt: Added.
  • web-platform-tests/workers/semantics/interface-objects/003.any.worker-expected.txt: Added.
  • web-platform-tests/workers/semantics/interface-objects/004.any-expected.txt: Added.
  • web-platform-tests/workers/semantics/interface-objects/004.any.worker-expected.txt: Added.
4:48 PM Changeset in webkit [253455] by jer.noble@apple.com
  • 4 edits
    2 adds in trunk/Source/WebCore

Add logging for MediaCapabilities.decodeInfo()
https://bugs.webkit.org/show_bug.cgi?id=205172

Reviewed by Eric Carlson.

Add logging for decodingInfo() that can emit string versions of both the input
MediaConfiguration and the output MediaCapabilitiesInfo objects.

  • Modules/mediacapabilities/MediaCapabilities.cpp:

(WebCore::MediaCapabilities::decodingInfo):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediacapabilities/MediaCapabilitiesLogging.cpp: Added.

(WebCore::toJSONObject):
(WebCore::toJSONString):
(WTF::LogArgument<WebCore::VideoConfiguration>::toString):
(WTF::LogArgument<WebCore::AudioConfiguration>::toString):
(WTF::LogArgument<WebCore::MediaConfiguration>::toString):
(WTF::LogArgument<WebCore::MediaDecodingConfiguration>::toString):
(WTF::LogArgument<WebCore::MediaEncodingConfiguration>::toString):
(WTF::LogArgument<WebCore::MediaCapabilitiesInfo>::toString):
(WTF::LogArgument<WebCore::MediaCapabilitiesDecodingInfo>::toString):
(WTF::LogArgument<WebCore::MediaCapabilitiesEncodingInfo>::toString):
(WTF::LogArgument<WebCore::ColorGamut>::toString):
(WTF::LogArgument<WebCore::HdrMetadataType>::toString):
(WTF::LogArgument<WebCore::TransferFunction>::toString):
(WTF::LogArgument<WebCore::MediaDecodingType>::toString):
(WTF::LogArgument<WebCore::MediaEncodingType>::toString):

  • platform/mediacapabilities/MediaCapabilitiesLogging.h: Added.
4:26 PM Changeset in webkit [253454] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Add sandbox telemetry to mach lookup rules in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=205175

Reviewed by Brent Fulgham.

We have already added telemetry to many mach lookup rules, but some were missing telemetry.

No new tests, no behavior change.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
4:20 PM Changeset in webkit [253453] by Chris Dumez
  • 22 edits
    60 adds
    4 deletes in trunk/LayoutTests

Re-sync workers web-platform-tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=205180

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Re-sync workers web-platform-tests from upstream 178762b6fce688979e261f3ac8.

  • web-platform-tests/workers/*: Updated.

LayoutTests:

4:10 PM Changeset in webkit [253452] by sihui_liu@apple.com
  • 16 edits
    1 move in trunk/Source/WebKit

IndexedDB: make WebIDBServer a MessageReceiver to replace WebIDBConnection
https://bugs.webkit.org/show_bug.cgi?id=205145

Reviewed by Alex Christensen.

Work towards <rdar://problem/56908496>. Move message handling from WebIDBConnectionToClient to WebIDBServer.

Also, WebIDBConnectionClient now is owned by WebIDBServer instead of NetworkConnectionToWebProcess.

No behavior change.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient):
(WebKit::WebIDBConnectionToClient::messageSenderConnection const):
(WebKit::WebIDBConnectionToClient::idbServer): Deleted.
(WebKit::WebIDBConnectionToClient::disconnectedFromWebProcess): Deleted.
(WebKit::WebIDBConnectionToClient::deleteDatabase): Deleted.
(WebKit::WebIDBConnectionToClient::openDatabase): Deleted.
(WebKit::WebIDBConnectionToClient::abortTransaction): Deleted.
(WebKit::WebIDBConnectionToClient::commitTransaction): Deleted.
(WebKit::WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction): Deleted.
(WebKit::WebIDBConnectionToClient::createObjectStore): Deleted.
(WebKit::WebIDBConnectionToClient::deleteObjectStore): Deleted.
(WebKit::WebIDBConnectionToClient::renameObjectStore): Deleted.
(WebKit::WebIDBConnectionToClient::clearObjectStore): Deleted.
(WebKit::WebIDBConnectionToClient::createIndex): Deleted.
(WebKit::WebIDBConnectionToClient::deleteIndex): Deleted.
(WebKit::WebIDBConnectionToClient::renameIndex): Deleted.
(WebKit::WebIDBConnectionToClient::putOrAdd): Deleted.
(WebKit::WebIDBConnectionToClient::getRecord): Deleted.
(WebKit::WebIDBConnectionToClient::getAllRecords): Deleted.
(WebKit::WebIDBConnectionToClient::getCount): Deleted.
(WebKit::WebIDBConnectionToClient::deleteRecord): Deleted.
(WebKit::WebIDBConnectionToClient::openCursor): Deleted.
(WebKit::WebIDBConnectionToClient::iterateCursor): Deleted.
(WebKit::WebIDBConnectionToClient::establishTransaction): Deleted.
(WebKit::WebIDBConnectionToClient::databaseConnectionPendingClose): Deleted.
(WebKit::WebIDBConnectionToClient::databaseConnectionClosed): Deleted.
(WebKit::WebIDBConnectionToClient::abortOpenAndUpgradeNeeded): Deleted.
(WebKit::WebIDBConnectionToClient::didFireVersionChangeEvent): Deleted.
(WebKit::WebIDBConnectionToClient::openDBRequestCancelled): Deleted.
(WebKit::WebIDBConnectionToClient::confirmDidCloseFromServer): Deleted.
(WebKit::WebIDBConnectionToClient::getAllDatabaseNames): Deleted.

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::WebIDBServer::getAllDatabaseNames):
(WebKit::WebIDBServer::addConnection):
(WebKit::WebIDBServer::removeConnection):

  • NetworkProcess/IndexedDB/WebIDBServer.h:
  • NetworkProcess/IndexedDB/WebIDBServer.messages.in: Renamed from Source/WebKit/NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in.
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::findNetworkActivityTracker):
(WebKit::NetworkConnectionToWebProcess::establishIDBConnectionToServer): Deleted.
NetworkConnectionToWebProcess::establishIDBConnectionToServer was used to ensure WebIDBConnectionToCilent member
exists in NetworkConnectionToWebProcess. Now WebIDBConnectionToCilent is created in
WebIDBServer::addConnection(when NetworkConnectionToWebProcess is created), so we don't need the message to do
initialization.

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::connectionToWebProcessClosed):

  • NetworkProcess/NetworkProcess.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):
(WebKit::WebIDBConnectionToServer::deleteDatabase):
(WebKit::WebIDBConnectionToServer::openDatabase):
(WebKit::WebIDBConnectionToServer::abortTransaction):
(WebKit::WebIDBConnectionToServer::commitTransaction):
(WebKit::WebIDBConnectionToServer::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToServer::createObjectStore):
(WebKit::WebIDBConnectionToServer::deleteObjectStore):
(WebKit::WebIDBConnectionToServer::renameObjectStore):
(WebKit::WebIDBConnectionToServer::clearObjectStore):
(WebKit::WebIDBConnectionToServer::createIndex):
(WebKit::WebIDBConnectionToServer::deleteIndex):
(WebKit::WebIDBConnectionToServer::renameIndex):
(WebKit::WebIDBConnectionToServer::putOrAdd):
(WebKit::WebIDBConnectionToServer::getRecord):
(WebKit::WebIDBConnectionToServer::getAllRecords):
(WebKit::WebIDBConnectionToServer::getCount):
(WebKit::WebIDBConnectionToServer::deleteRecord):
(WebKit::WebIDBConnectionToServer::openCursor):
(WebKit::WebIDBConnectionToServer::iterateCursor):
(WebKit::WebIDBConnectionToServer::establishTransaction):
(WebKit::WebIDBConnectionToServer::databaseConnectionPendingClose):
(WebKit::WebIDBConnectionToServer::databaseConnectionClosed):
(WebKit::WebIDBConnectionToServer::abortOpenAndUpgradeNeeded):
(WebKit::WebIDBConnectionToServer::didFireVersionChangeEvent):
(WebKit::WebIDBConnectionToServer::openDBRequestCancelled):
(WebKit::WebIDBConnectionToServer::confirmDidCloseFromServer):
(WebKit::WebIDBConnectionToServer::getAllDatabaseNames):

4:02 PM Changeset in webkit [253451] by Chris Dumez
  • 14 edits
    4 copies
    52 adds in trunk/LayoutTests

Re-sync webmessaging web-platform-tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=205178

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Re-sync webmessaging web-platform-tests from upstream ab28e18f067f17a.

  • web-platform-tests/webmessaging/*: Updated

LayoutTests:

3:53 PM Changeset in webkit [253450] by Chris Dumez
  • 5 edits in trunk

Regression(r253394) swipe/basic-cached-back-swipe.html is timing out on iOS
https://bugs.webkit.org/show_bug.cgi?id=205173

Reviewed by Tim Horton.

Source/WebKit:

Test test was calling beginSimulatedSwipeInDirectionForTesting / completeSimulatedSwipeInDirectionForTesting
on the ViewGestureController. This was causing beginSwipeGesture() and endSwipeGesture() but not
willEndSwipeGesture(). This was causing the timeout since willEndSwipeGesture() now actually triggers the
load.

This patch also gets rid of the SnapshotRemovalTracker::SwipeAnimationEnd. We don't really need it since
we already wait for SnapshotRemovalTracker::RepaintAfterNavigation and we won't repaint until the swipe
animation is over (due to the layer tree being frozen during the swipe animation). The SwipeAnimationEnd
was causing trouble because the provisional load may not have started yet by the time endSwipeGesture()
is called, which means that the call to eventOccurred(SwipeAnimationEnd) would get ignored because the
SnapshotRemovalTracker is still paused (it gets unpaused when the provisional load actually starts).

  • UIProcess/ViewGestureController.h:
  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::willEndSwipeGesture):
(WebKit::ViewGestureController::endSwipeGesture):

LayoutTests:

  • platform/ios/swipe/basic-cached-back-swipe-expected.txt:
3:42 PM Changeset in webkit [253449] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

NetworkDataTaskCocoa and NetworkSessionCocoa should use public methods instead of being friends
https://bugs.webkit.org/show_bug.cgi?id=204242

Patch by Alex Christensen <achristensen@webkit.org> on 2019-12-12
Reviewed by Chris Dumez.

This makes them stay good abstractions, and probably could make a good meme about not having any friends.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::applySniffingPoliciesAndBindRequestToInferfaceIfNeeded):

  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
3:35 PM Changeset in webkit [253448] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, try to address flakiness of http/tests/cache-storage/page-cache-domcache-pending-promise.html on EWS

  • http/tests/cache-storage/page-cache-domcache-pending-promise.html:
3:29 PM Changeset in webkit [253447] by Alan Coon
  • 2 edits in tags/Safari-609.1.12/Source/ThirdParty/ANGLE

Cherry-pick r253383. rdar://problem/57713353

Produce a dummy libANGLE.a file to fool Apple's build test infrastructure
https://bugs.webkit.org/show_bug.cgi?id=205068
<rdar://problem/57713353>

Unreviewed followup to apply the script to Mac Catalyst builds.

Note that this phase can be removed in a few days when Apple's Test
Platform realises it doesn't need libANGLE.a any more.

  • ANGLE.xcodeproj/project.pbxproj:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253383 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:29 PM Changeset in webkit [253446] by Alan Coon
  • 2 edits in tags/Safari-609.1.12/Source/ThirdParty/ANGLE

Cherry-pick r253333. rdar://problem/57713353

Produce a dummy libANGLE.a file to fool Apple's build test infrastructure
https://bugs.webkit.org/show_bug.cgi?id=205068
<rdar://problem/57713353>

Reviewed by Alex Christensen.

Create a dummy libANGLE.a file until our infrastructure realises it
doesn't need that file any more. Hopefully the fact that it isn't
really a static library, but just a text file, is ok.

  • ANGLE.xcodeproj/project.pbxproj: Add a new shell script phase that creates a dummy file.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@253333 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:09 PM Changeset in webkit [253445] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r172814): Don't export inline SQLiteDatabase::disableThreadingChecks() method
<https://webkit.org/b/205140>

Reviewed by Alex Christensen.

  • platform/sql/SQLiteDatabase.h:

(WebCore::SQLiteDatabase::disableThreadingChecks):
Remove WEBCORE_EXPORT macro from inline method. This only seems
to occur on Release builds with compiler optimizations disabled.

1:46 PM Changeset in webkit [253444] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Don't assert in HTTPServer::respondToRequests when connections fail
https://bugs.webkit.org/show_bug.cgi?id=205072
<rdar://problem/57718266>

Patch by Alex Christensen <achristensen@webkit.org> on 2019-12-12
Reviewed by Alexey Proskuryakov.

We have records that this assertion is being hit, but it's probably when things are being torn down after the test passes.
If someone actually has a connection failure that breaks a test, we'll notice elsewhere.

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::respondToRequests):

1:33 PM Changeset in webkit [253443] by ysuzuki@apple.com
  • 99 edits in trunk/Source

[JSC] Lock-down JSGlobalObject and derived classes in IsoSubspace
https://bugs.webkit.org/show_bug.cgi?id=205108

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch puts JSGlobalLexicalEnvironment and JSGlobalObject (and its derived classes including JSDOMWindow etc.) in IsoSubspace.
We were using addFinalizer feature to call destructors for these objects since they do not inherit JSDestructibleObject. But now
each derived classes has its IsoSubspace. So we do not need to use finalizer feature: just setting specialized HeapCellType works.

  • API/JSAPIGlobalObject.h:
  • API/JSCallbackObject.cpp:
  • API/glib/JSAPIWrapperGlobalObject.cpp:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/SuperSampler.h:
  • heap/CellAttributes.h:
  • heap/FreeList.h:
  • heap/IsoHeapCellType.cpp:

(JSC::IsoHeapCellType::IsoHeapCellType):

  • heap/IsoHeapCellType.h:
  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::Handle::setIsFreeListed): Deleted.

  • heap/MarkedBlockInlines.h:

(JSC::MarkedBlock::Handle::setIsFreeListed):

  • jsc.cpp:

(GlobalObject::create): Deleted.
(GlobalObject::createStructure): Deleted.
(GlobalObject::javaScriptRuntimeFlags): Deleted.
(GlobalObject::finishCreation): Deleted.
(GlobalObject::addFunction): Deleted.

  • runtime/JSGlobalLexicalEnvironment.h:
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::subspaceFor):

  • runtime/JSSegmentedVariableObject.cpp:

(JSC::JSSegmentedVariableObject::JSSegmentedVariableObject):
(JSC::JSSegmentedVariableObject::finishCreation):
(JSC::JSSegmentedVariableObject::destroy): Deleted.

  • runtime/JSSegmentedVariableObject.h:

(JSC::JSSegmentedVariableObject::subspaceFor):
(JSC::JSSegmentedVariableObject::classInfo const): Deleted.

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • testRegExp.cpp:

(GlobalObject::create): Deleted.
(GlobalObject::createStructure): Deleted.
(GlobalObject::finishCreation): Deleted.

Source/WebCore:

We put derived classes of JSGlobalObject in IsoSubspace in WebCore side too.

  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSDOMWrapper.cpp:

(WebCore::globalObjectOutputConstraintSubspaceFor): Deleted.

  • bindings/js/JSDOMWrapper.h:
  • bindings/js/JSRemoteDOMWindowBase.h:
  • bindings/js/JSWindowProxy.h:
  • bindings/js/JSWorkerGlobalScopeBase.h:

(WebCore::JSWorkerGlobalScopeBase::subspaceFor):

  • bindings/js/JSWorkletGlobalScopeBase.h:

(WebCore::JSWorkletGlobalScopeBase::subspaceFor):

  • bindings/js/WebCoreJSClientData.cpp:

(WebCore::JSVMClientData::JSVMClientData):

  • bindings/js/WebCoreJSClientData.h:

(WebCore::JSVMClientData::subspaceForJSDOMWindow):
(WebCore::JSVMClientData::subspaceForJSDedicatedWorkerGlobalScope):
(WebCore::JSVMClientData::subspaceForJSRemoteDOMWindow):
(WebCore::JSVMClientData::subspaceForJSWorkerGlobalScope):
(WebCore::JSVMClientData::subspaceForJSServiceWorkerGlobalScope):
(WebCore::JSVMClientData::subspaceForJSPaintWorkletGlobalScope):
(WebCore::JSVMClientData::subspaceForJSWorkletGlobalScope):
(WebCore::JSVMClientData::forEachOutputConstraintSpace):
(WebCore::JSVMClientData::globalObjectOutputConstraintSpace): Deleted.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):
(GeneratePrototypeDeclaration):

  • bindings/scripts/test/JS/JSInterfaceName.cpp:
  • bindings/scripts/test/JS/JSMapLike.cpp:
  • bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
  • bindings/scripts/test/JS/JSReadOnlySetLike.cpp:
  • bindings/scripts/test/JS/JSSetLike.cpp:
  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestCEReactions.cpp:
  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
  • bindings/scripts/test/JS/JSTestCallTracer.cpp:
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:
  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
  • bindings/scripts/test/JS/JSTestEnabledForContext.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObject::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestGlobalObject.h:

(WebCore::JSTestGlobalObject::subspaceFor):

  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
  • bindings/scripts/test/JS/JSTestIterable.cpp:
  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestPluginInterface.cpp:
  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
  • bindings/scripts/test/JS/JSTestSerialization.cpp:
  • bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.cpp:
  • bindings/scripts/test/JS/JSTestSerializationInherit.cpp:
  • bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestStringifier.cpp:
  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bridge/runtime_method.h:
1:32 PM Changeset in webkit [253442] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Paint seemingly blank runs (0 width, result of negative letter-spacing)
https://bugs.webkit.org/show_bug.cgi?id=205114
<rdar://problem/57837165>

Reviewed by Antti Koivisto.

Let's not intersect the run's rect with the damaged area when we don't yet have any paint
overflow information (This should rather use the line box set to identify the line range to paint.)

  • layout/displaytree/DisplayInlineContent.cpp:

(WebCore::Display:: const):

11:19 AM Changeset in webkit [253441] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Fix missing exception check in JSON Stringifier's gap function.
https://bugs.webkit.org/show_bug.cgi?id=205171
<rdar://problem/57871842>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/missing-exception-check-in-json-stringifier-gap.js: Added.

Source/JavaScriptCore:

  • runtime/JSONObject.cpp:

(JSC::gap):

11:09 AM Changeset in webkit [253440] by pvollan@apple.com
  • 12 edits in trunk

[iOS] Deny mach lookup access to content filter service in the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=205077

Reviewed by Brent Fulgham.

Source/WebCore:

Add a global flag to ParentalControlsContentFilter to indicate whether the Web content filter extension has
been consumed. If the flag has been set, there is no need to check [WebFilterEvaluator isManagedSession],
since the flag will tell if filtering is required.

The API test ContentFiltering.LazilyLoadPlatformFrameworks has been modified to pass after this change.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/ParentalControlsContentFilter.h:
  • platform/cocoa/ParentalControlsContentFilter.mm:

(WebCore::ParentalControlsContentFilter::enabled):
(WebCore::ParentalControlsContentFilter::setHasConsumedSandboxExtension):

Source/WebKit:

Mach lookup access to the content filter service in the WebContent process is only needed if
[WebFilterEvaluator isManagedSession] evaluates to true. If this is the case, issue the needed
mach lookup sandbox extension to the WebContent process, where it will be consumed.

  • 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::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

With this patch, the WebContentAnalysis framework will not be loaded in the WebContent process unless
[WebFilterEvaluator isManagedSession] returns YES. Swizzle this method to return YES in the UI process.

  • TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm:

(isManagedSession):
(TEST):

10:45 AM Changeset in webkit [253439] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

REGRESSION (r229930, r231063): WebKitLegacy.xcconfig overwrites OTHER_CFLAGS, OTHER_CPLUSPLUSFLAGS and OTHER_LDFLAGS from Base.xcconfig
<https://webkit.org/b/205144>

Reviewed by Alexey Proskuryakov.

  • Configurations/WebKitLegacy.xcconfig:

(OTHER_CFLAGS): Add back $(inherited) to fix the bug.
(OTHER_CFLAGS_COCOA_TOUCH): Add variable to hold value.
(OTHER_CFLAGS_COCOA_TOUCH_YES): Remove unused $(inherited).
(OTHER_CFLAGS_COCOA_TOUCH_NO): Ditto.
(OTHER_CPLUSPLUSFLAGS): Add back $(inherited) to fix the
bug, and don't assume $(OTHER_CFLAGS) is identical to this.
(OTHER_LDFLAGS): Add back $(inherited) to fix the bug.

10:35 AM Changeset in webkit [253438] by Alan Coon
  • 7 edits in branches/safari-609.1.11.3-branch/Source

Versioning.

10:33 AM Changeset in webkit [253437] by yurys@chromium.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Error: Can't make a ContentView for an unknown representedObject of type: CallFrame
https://bugs.webkit.org/show_bug.cgi?id=204823

Reviewed by Devin Rousso.

If no type is stored in the cookie matching by type should fail.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WI.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie.treeElementMatchesCookie):
(WI.NavigationSidebarPanel.prototype._checkElementsForPendingViewStateCookie):

10:33 AM Changeset in webkit [253436] by Chris Dumez
  • 4 edits in trunk/LayoutTests

window.AudioContext / window.OfflineAudioContext should not be enumerable
https://bugs.webkit.org/show_bug.cgi?id=205163

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:

LayoutTests:

  • resources/testharnessreport.js:
10:27 AM Changeset in webkit [253435] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Fix fast/text/whitespace/023.html
https://bugs.webkit.org/show_bug.cgi?id=205170
<rdar://problem/57881365>

Reviewed by Antti Koivisto.

Do not try to find expansion opportunities in content with preserved whitespace.

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::ContinousContent::ContinousContent):
(WebCore::Layout::LineBuilder::ContinousContent::append):
(WebCore::Layout::LineBuilder::ContinousContent::close):

10:26 AM Changeset in webkit [253434] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: [Mac wk1] imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/underover-parameters-3.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=205168

Unreviewed test gardneing

  • platform/mac-wk1/TestExpectations:
10:24 AM Changeset in webkit [253433] by Alan Coon
  • 1 copy in branches/safari-609.1.11.3-branch

New branch.

10:07 AM Changeset in webkit [253432] by mark.lam@apple.com
  • 6 edits
    1 add in trunk

DFG and FTL expects String.prototype to not qualify for StringObjectUse.
https://bugs.webkit.org/show_bug.cgi?id=205147
<rdar://problem/57748888>

Reviewed by Saam Barati.

JSTests:

  • stress/ftl-expects-string-prototype-to-not-be-StringObjectUse.js: Added.

Source/JavaScriptCore:

Currently, String.prototype's JSType is StringObjectType.

However, in the compiler, there are a few places that expect that the
String.prototype value to not qualify as StringObjectUse. These places are:

  1. SpeculatedType.cpp's speculationFromClassInfo() will speculate SpecObjectOther for the StringPrototype object.
  2. DFGFixupPhase.cpp's addCheckStructureForOriginalStringObjectUse() only emits a CheckStructure against globalObject->stringObjectStructure(). It does not check against String.prototype's structure.

To resolve this discrepancy, we can either do:

  1. change String.prototype's JSType to something else.
  2. fix the places in the compiler to accept String.prototype as StringObjectUse.

(a) is trivial and cheap to do. (b) is doable but will result in less optimal
compiled code. Since passing String.prototype as a StringObject is expected to
be a rare thing in JS code, it's not worth incurring the cost for (b). In this
patch, we apply (a) to fix the discrepancy.

Also added a specialization case to FOR_EACH_JS_DYNAMIC_CAST_JS_TYPE_OVERLOAD
for jsDynamicCast<StringObject> for completeness.

  • runtime/JSCast.h:
  • runtime/JSType.cpp:

(WTF::printInternal):

  • runtime/JSType.h:
  • runtime/StringPrototype.h:
9:51 AM Changeset in webkit [253431] by Patrick Griffis
  • 8 edits in trunk

[SOUP] Use new API for strict secure cookies
https://bugs.webkit.org/show_bug.cgi?id=169356

Reviewed by Michael Catanzaro.

Source/WebCore:

The new soup API implements this spec:

https://tools.ietf.org/html/draft-ietf-httpbis-cookie-alone-01

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::setCookies):

Tools:

Update libsoup to fix a secure cookie test

  • gtk/jhbuild.modules:
  • wpe/jhbuild.modules:

LayoutTests:

Remove expected failures for secure cookie tests

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
9:49 AM Changeset in webkit [253430] by don.olmstead@sony.com
  • 4 edits in trunk

[CMake] Add LibPSL::LibPSL target
https://bugs.webkit.org/show_bug.cgi?id=205149

Reviewed by Michael Catanzaro.

.:

Add a LibPSL target into the FindLibPSL module.

  • Source/cmake/FindLibPSL.cmake:

Source/WebCore:

Use LibPSL target.

  • platform/Curl.cmake:
9:25 AM Changeset in webkit [253429] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION: (r251677) imported/w3c/web-platform-tests/html/semantics/forms/form-submission-0/form-double-submit-3.html is a flakey failure
https://bugs.webkit.org/show_bug.cgi?id=205164

Unreviewed test gardening

  • platform/mac/TestExpectations:
7:48 AM Changeset in webkit [253428] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC] Fix fast/text/whitespace/simple-line-layout-tab-position.html
https://bugs.webkit.org/show_bug.cgi?id=205160
<rdar://problem/57876474>

Reviewed by Antti Koivisto.

Use the content box (and not the border box) as the start position when measuring text and also include
the not-yet committed content.
e.g. <pre style="padding: 100px;">text[tab character]</pre>
When we measure the width of the [tab] character, the start position input to the text measuring is

  1. relative to the content box (0px vs 100px)
  2. includes the [text] not-yet committed content width

This patch also ensures that we only fast-path the collapsible whitespace characters.

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::placeInlineItem):

  • layout/inlineformatting/text/TextUtil.cpp:

(WebCore::Layout::TextUtil::width):

7:18 AM Changeset in webkit [253427] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

REGRESSION(r252979): Avoid unnecessary work when searching for the flow when constructing line layout iteratorAvoid unnecessary work when searching for the flow when constructing line layout iterator
https://bugs.webkit.org/show_bug.cgi?id=205155
<rdar://problem/57846936>

Reviewed by Zalan Bujtas.

We unecessarily searched the ancestor chain flow the RenderFlow. We can avoid this
for now since we know only candidate it the direct parent.

  • rendering/line/LineLayoutTraversal.cpp:

(WebCore::LineLayoutTraversal::lineLayoutSystemFlowForRenderer):
(WebCore::LineLayoutTraversal::firstTextBoxFor):
(WebCore::LineLayoutTraversal::firstTextBoxInTextOrderFor):
(WebCore::LineLayoutTraversal::elementBoxFor):
(WebCore::LineLayoutTraversal::flowForText): Deleted.

6:22 AM Changeset in webkit [253426] by youenn@apple.com
  • 3 edits in trunk/Source/WebCore

Roll-out part of revision 253275 related to rotation handling
https://bugs.webkit.org/show_bug.cgi?id=205156

Unreviewed.

These changes only work for a remote source, not a local one.
Roll-them out until we have a proper fix.

  • platform/mediastream/RealtimeVideoSource.cpp:

(WebCore::m_source):
(WebCore::RealtimeVideoSource::sourceSettingsChanged):

  • platform/mediastream/RealtimeVideoSource.h:
3:05 AM Changeset in webkit [253425] by Carlos Garcia Campos
  • 4 edits
    1 add in trunk/Source

WebDriver: tests is_element_enabled/enabled.py::test_fieldset_disabled_descendant are failing
https://bugs.webkit.org/show_bug.cgi?id=204700

Reviewed by Carlos Alberto Lopez Perez.

Source/WebDriver:

Fixes: imported/w3c/webdriver/tests/is_element_enabled/enabled.py::test_fieldset_disabled_descendant[button]

imported/w3c/webdriver/tests/is_element_enabled/enabled.py::test_fieldset_disabled_descendant[input]
imported/w3c/webdriver/tests/is_element_enabled/enabled.py::test_fieldset_disabled_descendant[select]
imported/w3c/webdriver/tests/is_element_enabled/enabled.py::test_fieldset_disabled_descendant[textarea]

  • CMakeLists.txt: Add ElementEnabled.js to compilation.
  • Session.cpp:

(WebDriver::Session::isElementEnabled): Use ElementEnabled atom instead.

Source/WebKit:

Add ElementEnabled atom to easily implement is element enabled command.

  • UIProcess/Automation/atoms/ElementEnabled.js: Added.

(isEnabled.isDisabledAttributeSupported):
(isEnabled.findParent):
(isEnabled):

1:49 AM Changeset in webkit [253424] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening for WinCairo

  • platform/wincairo/TestExpectations: Unskip fast/text.
1:36 AM Changeset in webkit [253423] by ysuzuki@apple.com
  • 32 edits
    2 copies in trunk/Source/JavaScriptCore

[JSC] IsoHeapCellType should have destroy function member instead of specializing template function
https://bugs.webkit.org/show_bug.cgi?id=205152

Reviewed by Saam Barati.

We were specializing MarkedBlock::Handle::specializedSweep in 5 different ways for each IsoSubspace-ed cell.
This bloats binary. Instead of specializing it with CellType, we specialize it with one functor, which invokes
function pointer held by IsoHeapCellType. This requires one indirect function call per cell. But this is OK since,

  1. We were using JSDestructibleObject's cell->classInfo->methodTable.destroy function call to dispatch destruction, before IsoSubspace replaces them with IsoHeapCellType-based destruction. Compared to that, the new one is still saving one pointer chasing basically (classInfo dereference, we assume cell deference is no cost since it will be done anyway).
  2. We still keep JSString's destroy function inlining by using IsoInlinedHeapCellType. This is important since it is critical to performance and we had JSStringHeapCellType before we replaced it with IsoHeapCellType. But IsoInlinedHeapCellType specialization is for only one class so generated binary size is the same to the old code using JSStringHeapCellType.

This saves 480KB binary-size in JavaScriptCore. And more importantly, after this patch, adding IsoSubspace
will not bloat code, so we can simply put things into IsoSubspace.

This patch also removes using namespace JSC; in global code in JavaScriptCore except for API codes, since
it starts causing build failure due to unified builds: API defines JSType enum in a global scope, which is
different from our JSC::JSType. If we do using namespace JSC; in a global scope, it can lead to ambiguity of
looking up.

  • API/JSHeapFinalizerPrivate.cpp:

(JSContextGroupAddHeapFinalizer):
(JSContextGroupRemoveHeapFinalizer):

  • API/JSHeapFinalizerPrivate.h:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • assembler/AbstractMacroAssembler.cpp:
  • bindings/ScriptFunctionCall.cpp:
  • bindings/ScriptObject.cpp:
  • bindings/ScriptValue.cpp:
  • heap/IsoHeapCellType.cpp: Copied from Source/JavaScriptCore/assembler/AbstractMacroAssembler.cpp.

(JSC::IsoHeapCellType::finishSweep):
(JSC::IsoHeapCellType::destroy):

  • heap/IsoHeapCellType.h:
  • heap/IsoInlinedHeapCellType.h: Copied from Source/JavaScriptCore/heap/IsoHeapCellType.h.
  • heap/MutatorState.cpp:
  • heap/Synchronousness.cpp:
  • inspector/InjectedScriptHost.cpp:
  • inspector/InjectedScriptManager.cpp:
  • inspector/JSGlobalObjectConsoleClient.cpp:
  • inspector/JSGlobalObjectInspectorController.cpp:
  • inspector/JSGlobalObjectScriptDebugServer.cpp:
  • inspector/JSInjectedScriptHost.cpp:
  • inspector/JSInjectedScriptHostPrototype.cpp:
  • inspector/JSJavaScriptCallFrame.cpp:
  • inspector/JSJavaScriptCallFramePrototype.cpp:
  • inspector/JavaScriptCallFrame.cpp:
  • inspector/PerGlobalObjectWrapperWorld.cpp:
  • inspector/ScriptCallStackFactory.cpp:
  • inspector/ScriptDebugServer.cpp:
  • inspector/agents/InspectorHeapAgent.cpp:
  • inspector/agents/InspectorScriptProfilerAgent.cpp:
  • inspector/agents/JSGlobalObjectAuditAgent.cpp:
  • inspector/agents/JSGlobalObjectDebuggerAgent.cpp:
  • inspector/agents/JSGlobalObjectRuntimeAgent.cpp:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
12:48 AM Changeset in webkit [253422] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Remove debug ASSERT in PeerConnectionBackend
https://bugs.webkit.org/show_bug.cgi?id=205061

Reviewed by Eric Carlson.

Remove two wrong debug asserts.
Move the isClosed check just before resolving/rejecting the promise since at resume time, a lot might happen,
including closing the peer connection.
Covered by tests no longer crashing.

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::createOfferSucceeded):
(WebCore::PeerConnectionBackend::createOfferFailed):
(WebCore::PeerConnectionBackend::createAnswerSucceeded):
(WebCore::PeerConnectionBackend::createAnswerFailed):
(WebCore::PeerConnectionBackend::setLocalDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setLocalDescriptionFailed):
(WebCore::PeerConnectionBackend::setRemoteDescriptionSucceeded):
(WebCore::PeerConnectionBackend::setRemoteDescriptionFailed):
(WebCore::PeerConnectionBackend::addIceCandidateSucceeded):
(WebCore::PeerConnectionBackend::addIceCandidateFailed):

12:24 AM Changeset in webkit [253421] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r251227): Uncaught Exception: undefined is not an object (evaluating 'target.DOMAgent.setInspectModeEnabled')
https://bugs.webkit.org/show_bug.cgi?id=205148

Reviewed by Joseph Pecoraro.

  • UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.setTimelineProfilingEnabled):
(InspectorFrontendAPI.setElementSelectionEnabled):
If there are no targets available yet (WI.targetsAvailable()), then wait for targets to
be available (WI.whenTargetsAvailable()) before performing the intended logic, as the
InspectorFrontendAPI only waits for the backend connection to be established before
dispatching, meaning that there may not be a page target yet. Other InspectorFrontendAPI
functions don't need to be changed because they don't cause commands to be invoked.

  • UserInterface/Controllers/DOMManager.js:

(WI.DOMManager.prototype.set inspectModeEnabled):
Drive-by: don't assume that inspect mode is disabled if an error is thrown.

  • UserInterface/Base/Main.js:

Drive-by: remove duplicate function WI._toggleInspectMode as it already exists.

Note: See TracTimeline for information about the timeline view.