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

Timeline



Jan 9, 2021:

5:14 AM Changeset in webkit [271348] by Alan Bujtas
  • 20 edits
    2 adds in trunk

play.google.com: App preview images are clipped
https://bugs.webkit.org/show_bug.cgi?id=220470
<rdar://problem/60258531>

Reviewed by Simon Fraser.

Source/WebCore:

"The baseline of an 'inline-block' is the baseline of its last line box in the normal flow, unless it has either no in-flow line boxes
or if its 'overflow' property has a computed value other than 'visible', in which case the baseline is the bottom margin edge."
https://www.w3.org/TR/CSS22/visudet.html#leading

Test: fast/inline/inline-block-baseline-with-overflow-not-visible.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::inlineBlockBaseline const):

LayoutTests:

Progressions (matching FF and Chrome).

  • fast/inline/inline-block-baseline-with-overflow-not-visible-expected.html: Added.
  • fast/inline/inline-block-baseline-with-overflow-not-visible.html: Added.
4:31 AM Changeset in webkit [271347] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC] Use the bottom margin edge as the baseline for inline-block when overflow is not visible
https://bugs.webkit.org/show_bug.cgi?id=220481

Reviewed by Antti Koivisto.

"The baseline of an 'inline-block' is the baseline of its last line box in the normal flow, unless it has either no in-flow line boxes
or if its 'overflow' property has a computed value other than 'visible', in which case the baseline is the bottom margin edge."
https://www.w3.org/TR/CSS22/visudet.html#leading

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

4:01 AM Changeset in webkit [271346] by Lauro Moura
  • 2 edits in trunk/Tools

[GStreamer] Build failure with gst-build: Missing gst/audio/audio.h
https://bugs.webkit.org/show_bug.cgi?id=220494

Reviewed by Philippe Normand.

Make the tests include the audio headers for gst/audio/audio. It is
included in TestUIClient through WebPreferences -> IPC::Decoder ->
SharedBuffer -> GStreamerCommon.

  • TestWebKitAPI/glib/CMakeLists.txt:

Jan 8, 2021:

10:04 PM Changeset in webkit [271345] by Kocsen Chung
  • 1 copy in tags/Safari-610.4.3.1.3

Tag Safari-610.4.3.1.3.

10:01 PM Changeset in webkit [271344] by Kocsen Chung
  • 1 copy in tags/Safari-610.4.3.0.2

Tag Safari-610.4.3.0.2.

8:31 PM Changeset in webkit [271343] by Alexey Shvayka
  • 12 edits
    2 adds in trunk

Implement @copyDataProperties in C++ to optimize object rest / spread
https://bugs.webkit.org/show_bug.cgi?id=193618

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/object-rest-destructuring.js: Added.
  • microbenchmarks/object-spread.js: Added.
  • stress/object-rest-deconstruct.js:
  • stress/object-spread.js:

Source/JavaScriptCore:

Since @copyDataProperties is inherently polymorphic, implementing it in JS is not beneficial.
This patch:

  1. Merges almost identical @copyDataProperties variants and moves them to C++, avoiding allocations of JSArray instances and Identifier wrappers.
  2. Skips non-observable Get calls, leveraging slot.isTaintedByOpaqueObject().
  3. Performs DefineOwnProperty via putDirectMayBeIndex(), since the spec guarantees property creation to be successful [1]: target is an newly created object that is not yet accessible to userland code. It's impossible for target to be non-extensible nor have a non-configurable property.
  4. Introduces a fast path similar to Object.assign, but: a) with no checks on target, because it's guaranteed to be an extensible JSFinalObject; b) with less checks on source, since we are performing putDirect() and don't care about

read-only properties nor proto.

Altogether, these changes result in 3.1x speed-up for object rest / spread.
Also, this patch removes unnecessary target return and @isObject check.

[1]: https://tc39.es/ecma262/#sec-copydataproperties (step 6.c.ii.2, note the "!" prefix)

  • builtins/BuiltinNames.h:
  • builtins/GlobalOperations.js:

(globalPrivate.speciesConstructor):
(globalPrivate.copyDataProperties): Deleted.
(globalPrivate.copyDataPropertiesNoExclusions): Deleted.

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecode/LinkTimeConstant.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::ObjectPatternNode::bindValue const):
(JSC::ObjectSpreadExpressionNode::emitBytecode):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_defineEnumerableWritableConfigurableDataProperty): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::canPerformFastPropertyEnumerationForCopyDataProperties):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSGlobalObjectFunctions.h:
7:40 PM Changeset in webkit [271342] by beidson@apple.com
  • 1 edit
    3 deletes in trunk/LayoutTests

Removing broken test from r271337 until I can fix it.
https://bugs.webkit.org/show_bug.cgi?id=220486

Unreviewed test gardening.

  • http/tests/loading/blob-load-fail-expected.txt: Removed.
  • http/tests/loading/blob-load-fail.html: Removed.
  • http/tests/loading/resources/remote-blob.php: Removed.
7:11 PM Changeset in webkit [271341] by Peng Liu
  • 5 edits in trunk

A video element needs to ignore the request to enter/exit fullscreen before the current fullscreen mode change is completed
https://bugs.webkit.org/show_bug.cgi?id=220466

Reviewed by Jer Noble.

Source/WebCore:

Fix a flaky layout test: media/media-fullscreen-inline.html

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::webkitEnterFullscreen):
(WebCore::HTMLVideoElement::webkitExitFullscreen):

LayoutTests:

  • media/media-fullscreen-inline-expected.txt:
  • media/media-fullscreen.js:

(async beginfullscreen):

5:58 PM Changeset in webkit [271340] by Jonathan Bedard
  • 11 edits
    1 copy
    2 adds in trunk/Tools

[webkitscmpy] Provide command to automatically configure git-svn
https://bugs.webkit.org/show_bug.cgi?id=220442
<rdar://problem/72908233>

Reviewed by Yusuke Suzuki.

Add commands to update repository and connect a git repository to a subversion repository.

  • Scripts/git-webkit: Define subversion URL.
  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git.pull): Add function to update repository with the remote.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:

(Scm.pull): Add function to update repository with the remote.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:

(Svn.init): Suppress exception when metadata cache is invalid.
(Svn.pull): Add function to update repository with the remote.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:

(Git): Use tabs in git config, add 'git svn fetch' and 'git pull' commands.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/svn.py:

(Svn.init): Add 'svn up' command.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:

(main): Add Pull and SetupGitSvn commands.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py:

(Command.parser): Support use of the default parser.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/pull.py: Added.

(Pull): Update the current repository from its remote.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/setup_git_svn.py: Added.

(SetupGitSvn): Add command which populates the .git config file with information
linking to a subversion repository.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_git_svn_unittest.py: Added.

(TestSetupGitSvn):
(TestSetupGitSvn.test_svn):
(TestSetupGitSvn.test_empty):
(TestSetupGitSvn.test_add):

5:54 PM Changeset in webkit [271339] by Russell Epstein
  • 4 edits
    3 adds in branches/safari-610.4.3.0-branch

Cherry-pick r271337. rdar://problem/72941197

BlobLoader lifetime cleanup.
<rdar://problem/70498831> and https://bugs.webkit.org/show_bug.cgi?id=220486

Reviewed by Chris Dumez.

Source/WebCore:

Test: LayoutTests/http/tests/loading/blob-load-fail.html

  • fileapi/Blob.cpp: (WebCore::Blob::loadBlob): (WebCore::Blob::text): (WebCore::Blob::arrayBuffer):
  • fileapi/Blob.h:

LayoutTests:

  • http/tests/loading/blob-load-fail-expected.txt: Added.
  • http/tests/loading/blob-load-fail.html: Added.
  • http/tests/loading/resources/remote-blob.php: Added.

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

5:54 PM Changeset in webkit [271338] by Russell Epstein
  • 4 edits
    3 adds in branches/safari-610.4.3.1-branch

Cherry-pick r271337. rdar://problem/72941242

BlobLoader lifetime cleanup.
<rdar://problem/70498831> and https://bugs.webkit.org/show_bug.cgi?id=220486

Reviewed by Chris Dumez.

Source/WebCore:

Test: LayoutTests/http/tests/loading/blob-load-fail.html

  • fileapi/Blob.cpp: (WebCore::Blob::loadBlob): (WebCore::Blob::text): (WebCore::Blob::arrayBuffer):
  • fileapi/Blob.h:

LayoutTests:

  • http/tests/loading/blob-load-fail-expected.txt: Added.
  • http/tests/loading/blob-load-fail.html: Added.
  • http/tests/loading/resources/remote-blob.php: Added.

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

5:49 PM Changeset in webkit [271337] by beidson@apple.com
  • 4 edits
    3 adds in trunk

BlobLoader lifetime cleanup.
<rdar://problem/70498831> and https://bugs.webkit.org/show_bug.cgi?id=220486

Reviewed by Chris Dumez.

Source/WebCore:

Test: LayoutTests/http/tests/loading/blob-load-fail.html

  • fileapi/Blob.cpp:

(WebCore::Blob::loadBlob):
(WebCore::Blob::text):
(WebCore::Blob::arrayBuffer):

  • fileapi/Blob.h:

LayoutTests:

  • http/tests/loading/blob-load-fail-expected.txt: Added.
  • http/tests/loading/blob-load-fail.html: Added.
  • http/tests/loading/resources/remote-blob.php: Added.
5:19 PM Changeset in webkit [271336] by Russell Epstein
  • 3 edits in branches/safari-610.4.3.1-branch/Source/JavaScriptCore

Revert "Cherry-pick r271240. rdar://problem/72935325"

This reverts commit r271315.

5:18 PM Changeset in webkit [271335] by Alan Coon
  • 3 edits in branches/safari-610.4.3.0-branch/Source/JavaScriptCore

Revert r271240. rdar://problem/72935204

4:10 PM Changeset in webkit [271334] by commit-queue@webkit.org
  • 5 edits in trunk/Source/ThirdParty/ANGLE

Failures of attribute location conformance tests with Metal backend
https://bugs.webkit.org/show_bug.cgi?id=220137

Patch by Kyle Piddington <Kyle Piddington> on 2021-01-08
Reviewed by Dean Jackson.

  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:

(GenMetalTraverser::emitAttributeDeclaration):

  • src/libANGLE/renderer/metal/mtl_glslang_mtl_utils.mm:

(rx::mtl::updateShaderAttributes):
(rx::mtl::GlslangGetMSL):

4:03 PM Changeset in webkit [271333] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Unreviewed, reverting r271331.
https://bugs.webkit.org/show_bug.cgi?id=220487

Wasn't ready for review.

Reverted changeset:

"[macOS] Reset user directory suffix before getting sandbox
directory"
https://bugs.webkit.org/show_bug.cgi?id=220358
https://trac.webkit.org/changeset/271331

4:00 PM Changeset in webkit [271332] by ysuzuki@apple.com
  • 5 edits in trunk/Source

[JSC] Disable JITCage compile time in old iOS
https://bugs.webkit.org/show_bug.cgi?id=220477

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • runtime/Gate.h: This is required in LLInt ARM64E.
  • runtime/Options.cpp:

Source/WTF:

ENABLE(JIT_CAGE) becomes false in old iOS.

  • wtf/PlatformEnable.h:
3:49 PM Changeset in webkit [271331] by pvollan@apple.com
  • 4 edits in trunk/Source

[macOS] Reset user directory suffix before getting sandbox directory
https://bugs.webkit.org/show_bug.cgi?id=220358
<rdar://problem/57616019>

Reviewed by Brent Fulgham.

Source/WebCore/PAL:

Declare functions to get and set user directory suffix.

  • pal/spi/cocoa/CoreServicesSPI.h:

Source/WebKit:

Reset user directory suffix before getting sandbox data vault directory. We do not want to include the user directory suffix,
since the compiled sandbox should be shared by all WebKit processes of the same type. Also, creating the data vault directory
can fail under some circumstances if the user directory suffix is not empty.

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::AuxiliaryProcess::initializeSandbox):

3:31 PM Changeset in webkit [271330] by jer.noble@apple.com
  • 4 edits in trunk/Tools

Unreviewed test gardening. Attempting to diagnose failing PiP API tests by enabling more logging
during the test run, to be collected after a failed test.

  • DumpRenderTree/DumpRenderTree.xcodeproj/xcshareddata/xcschemes/DumpRenderTree.xcscheme:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme:
  • TestWebKitAPI/Tests/WebKitCocoa/ExitFullscreenOnEnterPiP.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ExitPiPOnSuspendVideoElement.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCloseAllMediaPresentations.mm:

(TEST):

3:19 PM Changeset in webkit [271329] by Patrick Angle
  • 4 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Font Details sidebar - Improve visibility of values by emphasizing them/de-emphasizing range information
https://bugs.webkit.org/show_bug.cgi?id=219996

Reviewed by Devin Rousso.

Create a separate element to hold secondary axis information like minimum, maxiumum, and default values to make
sure attention is drawn to the actual value.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Main.html:
  • UserInterface/Views/FontDetailsPanel.css: Added.

(.sidebar > .panel.details.style-font > .content .details-section > .content > .group > .row.simple > .value .secondary):

  • UserInterface/Views/FontDetailsPanel.js:

(WI.FontDetailsPanel.prototype._formatSimpleSingleValue):
(WI.FontDetailsPanel.prototype._formatVariationValue):
(WI.FontDetailsPanel.prototype._createVariationValueElement):

  • Both _formatSimpleSingleValue and _formatVariationValue now use _createVariationValueElement when they need to

display secondary information alongside the value.

2:57 PM Changeset in webkit [271328] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[ Big Sur ] imported/w3c/web-platform-tests/mimesniff/mime-types/charset-parameter.window.html if failing
https://bugs.webkit.org/show_bug.cgi?id=220332

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark test as flaky.
2:57 PM Changeset in webkit [271327] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION: [macOS] imported/w3c/web-platform-tests/webrtc/protocol/crypto-suite.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=220077

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark test as flaky.
2:47 PM Changeset in webkit [271326] by commit-queue@webkit.org
  • 6 edits in trunk

Add support for source caching between platforms
https://bugs.webkit.org/show_bug.cgi?id=220439
rdar://72905725

Patch by Ryan Hostetler <rhost@apple.com> on 2021-01-08
Reviewed by Andy Estes.

.:

Include WebInspectorUI Source during any installsrc phase.

  • Source/Makefile:

Source/ThirdParty:

Include all libwebrtc target soruces in the installsrc phase.

Source/ThirdParty/libwebrtc:

Include libwebrtc Source during any installsrc phase.

  • Makefile:
2:45 PM Changeset in webkit [271325] by Peng Liu
  • 5 edits in trunk

PlaybackSessionManager::m_clientCounts is not updated correctly when a video enters picture-in-picture from fullscreen
https://bugs.webkit.org/show_bug.cgi?id=220435

Reviewed by Jer Noble.

Source/WebKit:

A follow-up patch to fix an assertion failure on Mac.
VideoFullscreenManager::exitVideoFullscreenToModeWithoutAnimation() should not call
removeClientForContext() on Mac because didCleanupFullscreen() will do that.

Fix layout test: media/element-containing-pip-video-going-into-fullscreen.html

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::exitVideoFullscreenToModeWithoutAnimation):

LayoutTests:

  • media/element-containing-pip-video-going-into-fullscreen-expected.txt:
  • media/element-containing-pip-video-going-into-fullscreen.html:
2:42 PM Changeset in webkit [271324] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

fast/text/canvas-color-fonts/COLR.html prematurely exits
https://bugs.webkit.org/show_bug.cgi?id=220453
<rdar://problem/71056602>

Reviewed by Sam Weinig.

The test is asynchronous and I forgot to mark it as such.

  • fast/text/canvas-color-fonts/COLR.html:
  • platform/mac-wk1/TestExpectations:
2:41 PM Changeset in webkit [271323] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[Mojave] imported/w3c/web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/parsing.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=220484

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark test as flaky.
2:35 PM Changeset in webkit [271322] by Wenson Hsieh
  • 4 edits in trunk

[macOS] -[WKWebView acceptsFirstMouse:] sometimes crashes in IPC::Connection::createSyncMessageEncoder
https://bugs.webkit.org/show_bug.cgi?id=220469
<rdar://problem/72319199>

Reviewed by Chris Dumez.

Source/WebKit:

When sending IPC to the web process from the UI process, it's possible for the WebProcessProxy's IPC
connection to be null in the case where the web process is still in the act of launching. In the case of
asynchronous IPC, we handle this by queueing the IPC message on the WebProcessProxy in the case where the
connection hasn't been created yet (refer to AuxiliaryProcessProxy::sendMessage). However, in the case where
we're sending a sync message, we assume that the IPC connection exists in MessageSender::sendSync, which
causes us to crash with a null dereference.

To fix this, remove the debug assertion in MessageSender::sendSync and return a null SendSyncResult in the
case where the connection has not been created.

Test: WebKit2.AcceptsFirstMouseDuringWebProcessLaunch

  • Platform/IPC/MessageSender.h:

Tools:

Add an API test that exercises the crash by calling into -acceptsFirstMouse: during web process launch.

  • TestWebKitAPI/Tests/mac/AcceptsFirstMouse.mm:

(TestWebKitAPI::TEST):

2:18 PM Changeset in webkit [271321] by Peng Liu
  • 2 edits in trunk/Source/WebCore

REGRESSION (r271273): Crash in WebCore::HTMLMediaElement::setVideoFullscreenGravity
https://bugs.webkit.org/show_bug.cgi?id=220467

Reviewed by Darin Adler.

Add a null check in VideoFullscreenModelVideoElement::setVideoLayerGravity().

Fix layout test crashes:

  • media/controls/pip-placeholder-without-video-controls.html
  • media/element-containing-pip-video-going-into-fullscreen.html
  • platform/cocoa/VideoFullscreenModelVideoElement.mm:

(WebCore::VideoFullscreenModelVideoElement::setVideoLayerGravity):

1:49 PM Changeset in webkit [271320] by commit-queue@webkit.org
  • 5 edits in trunk/LayoutTests

REGRESSION(r267402): [ macOS iOS Release ] imported/w3c/web-platform-tests/user-timing/measure-l3.any.worker.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217118
LayoutTests/imported/w3c:

Patch by Alex Christensen <achristensen@webkit.org> on 2021-01-08
Reviewed by Tim Horton.

  • web-platform-tests/user-timing/measure-l3.any.js:

(test):

LayoutTests:

<rdar://problem/69774340>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-01-08
Reviewed by Tim Horton.

r268928 wasn't sufficient. This test still failed about 1/500 runs for me, but after further truncation of less significant bits
it successfully ran 10000 times with no failures.

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
1:10 PM Changeset in webkit [271319] by Patrick Angle
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Promote experimental "Show independent Styles sidebar" setting to "Elements" settings pane and enable by default
https://bugs.webkit.org/show_bug.cgi?id=218126

Reviewed by Devin Rousso.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • Remove experimental naming from setting and enable by default.
  • UserInterface/Views/RulesStyleDetailsSidebarPanel.js:

(WI.RulesStyleDetailsSidebarPanel.prototype.get allowExclusivePresentation):
(WI.RulesStyleDetailsSidebarPanel):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createElementsSettingsView):
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

  • Move setting to "Elements" settings pane.
12:33 PM Changeset in webkit [271318] by jiewen_tan@apple.com
  • 3 edits in trunk/Source/WebKit

[WebAuthn] Adopt new UI for the update flow
https://bugs.webkit.org/show_bug.cgi?id=219713
<rdar://problem/72154988>

Reviewed by Brent Fulgham.

Covered by manual tests.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:

(NS_ERROR_ENUM):

  • UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:

(WebKit::AuthenticatorPresenterCoordinator::updatePresenter):

12:23 PM Changeset in webkit [271317] by ap@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

JavaScriptCore API headers contain project style includes
https://bugs.webkit.org/show_bug.cgi?id=220449
rdar://problem/71493605

Reviewed by Yusuke Suzuki.

  • API/JSStringRefCF.h:
  • API/JavaScriptCore.h:
12:16 PM Changeset in webkit [271316] by Fujii Hironori
  • 6 edits in trunk

[Win] Enable ENABLE_USERSELECT_ALL for -webkit-user-select:all support
https://bugs.webkit.org/show_bug.cgi?id=118740

Reviewed by Don Olmstead.

.:

This change also fixes the assertion failure of
editing/inserting/insert-list-user-select-none-crash.html
(Bug 216256).

  • Source/cmake/OptionsFTW.cmake: Removed the line disabling ENABLE_USERSELECT_ALL.
  • Source/cmake/OptionsWin.cmake: Ditto.

LayoutTests:

  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
12:10 PM Changeset in webkit [271315] by Alan Coon
  • 3 edits in branches/safari-610.4.3.1-branch/Source/JavaScriptCore

Cherry-pick r271240. rdar://problem/72935325

The scratch register should be different from the target register when calling validateUntaggedPtr.
https://bugs.webkit.org/show_bug.cgi?id=220397
rdar://72771069

Reviewed by Yusuke Suzuki.

  • assembler/MacroAssemblerARM64E.h: (JSC::MacroAssemblerARM64E::validateUntaggedPtr):
  • Added an ASSERT to enforce this invariant.
  • jit/ThunkGenerators.cpp: (JSC::emitPointerValidation):
  • emitPointerValidation() was reusing the target register as the scratch register. This is a hold over from the previous way of doing the validation (which had a bug). With the validation bug fixed, this register reuse is no longer allowed.

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

12:10 PM Changeset in webkit [271314] by Alan Coon
  • 2 edits in branches/safari-610.4.3.1-branch/Source/JavaScriptCore

Cherry-pick r271144. rdar://problem/72935460

propertyNameEnumerator must check it can still take the fast path after getGenericPropertyNames
https://bugs.webkit.org/show_bug.cgi?id=219957
<rdar://71156284>

Reviewed by Yusuke Suzuki.

We need to check if we still canAccessPropertiesQuicklyForEnumeration on
structureAfterGettingPropertyNames, since we might call out out to a proxy's
getPrototypeOf callback through getGenericPropertyNames.

  • runtime/JSPropertyNameEnumerator.h: (JSC::propertyNameEnumerator):

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

12:04 PM Changeset in webkit [271313] by Alan Coon
  • 3 edits in branches/safari-610.4.3.0-branch/Source/JavaScriptCore

Cherry-pick r271240. rdar://problem/72935204

The scratch register should be different from the target register when calling validateUntaggedPtr.
https://bugs.webkit.org/show_bug.cgi?id=220397
rdar://72771069

Reviewed by Yusuke Suzuki.

  • assembler/MacroAssemblerARM64E.h: (JSC::MacroAssemblerARM64E::validateUntaggedPtr):
  • Added an ASSERT to enforce this invariant.
  • jit/ThunkGenerators.cpp: (JSC::emitPointerValidation):
  • emitPointerValidation() was reusing the target register as the scratch register. This is a hold over from the previous way of doing the validation (which had a bug). With the validation bug fixed, this register reuse is no longer allowed.

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

12:04 PM Changeset in webkit [271312] by Alan Coon
  • 3 edits in branches/safari-610.4.3.0-branch/Source/JavaScriptCore

Revert r271240. rdar://problem/72935204

11:56 AM Changeset in webkit [271311] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Stop using MediaRecorder in API test WebKit2.SpeechRecognitionErrorWhenStartingAudioCaptureOnDifferentPage
https://bugs.webkit.org/show_bug.cgi?id=220347

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-08
Reviewed by Youenn Fablet.

Because MediaRecorder (with real backend) is only supported in some recent MacOS versions now.

  • TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/speechrecognition-basic.html:
11:54 AM Changeset in webkit [271310] by Alan Coon
  • 8 edits in branches/safari-610.4.3.1-branch/Source

Versioning.

WebKit-7610.4.3.1.3

11:53 AM Changeset in webkit [271309] by Alan Coon
  • 3 edits in branches/safari-610.4.3.0-branch/Source/JavaScriptCore

Cherry-pick r271240. rdar://problem/72935204

The scratch register should be different from the target register when calling validateUntaggedPtr.
https://bugs.webkit.org/show_bug.cgi?id=220397
rdar://72771069

Reviewed by Yusuke Suzuki.

  • assembler/MacroAssemblerARM64E.h: (JSC::MacroAssemblerARM64E::validateUntaggedPtr):
  • Added an ASSERT to enforce this invariant.
  • jit/ThunkGenerators.cpp: (JSC::emitPointerValidation):
  • emitPointerValidation() was reusing the target register as the scratch register. This is a hold over from the previous way of doing the validation (which had a bug). With the validation bug fixed, this register reuse is no longer allowed.

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

11:52 AM Changeset in webkit [271308] by Alan Coon
  • 2 edits in branches/safari-610.4.3.0-branch/Source/JavaScriptCore

Cherry-pick r271144. rdar://problem/72935400

propertyNameEnumerator must check it can still take the fast path after getGenericPropertyNames
https://bugs.webkit.org/show_bug.cgi?id=219957
<rdar://71156284>

Reviewed by Yusuke Suzuki.

We need to check if we still canAccessPropertiesQuicklyForEnumeration on
structureAfterGettingPropertyNames, since we might call out out to a proxy's
getPrototypeOf callback through getGenericPropertyNames.

  • runtime/JSPropertyNameEnumerator.h: (JSC::propertyNameEnumerator):

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

11:37 AM Changeset in webkit [271307] by Alan Coon
  • 8 edits in branches/safari-610.4.3.0-branch/Source

Versioning.

WebKit-7610.4.3.0.2

11:34 AM Changeset in webkit [271306] by Jonathan Bedard
  • 9 edits in trunk/Tools

[webkitcorepy] Add standard mechanism for packaging pip packages (work-around)
https://bugs.webkit.org/show_bug.cgi?id=220468
<rdar://problem/72935720>

Reviewed by Stephanie Lewis.

Temporary change to make these packages easier to pip install.

  • Scripts/libraries/resultsdbpy/resultsdbpy/init.py: Bump version.
  • Scripts/libraries/resultsdbpy/setup.py: Use string instead of version object.
  • Scripts/libraries/webkitcorepy/setup.py: Ditto.
  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version.
  • Scripts/libraries/webkitflaskpy/setup.py: Use string instead of version object.
  • Scripts/libraries/webkitflaskpy/webkitflaskpy/init.py: Bump version.
  • Scripts/libraries/webkitscmpy/setup.py: Use string instead of version object.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.
10:52 AM Changeset in webkit [271305] by Alexey Shvayka
  • 4 edits
    2 adds in trunk

for/in over a Proxy should not call GetOwnProperty trap twice per property
https://bugs.webkit.org/show_bug.cgi?id=189034

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/for-in-proxy.js: Added.
  • stress/for-in-redefine-enumerable.js:
  • stress/proxy-for-in.js: Added.

Source/JavaScriptCore:

Although the spec [1] doesn't normatively require calling GetOwnProperty
only once per property, this is what V8 and SpiderMonkey do.

Since Enumerable property attribute is checked by has_enumerable_property
bytecode op, this patch avoids another observable GetOwnProperty call
by using DontEnumPropertiesMode::Include exclusively for Proxy objects.

A side effect of this change: if a property becomes Enumerable after
OwnPropertyKeys trap was called, it will be enumerated, which matches
the spec [2] and developer expectations.

This patch advances provided microbenchmark by 100%.

[1]: https://tc39.es/ecma262/#sec-enumerate-object-properties
[2]: https://tc39.es/ecma262/#sec-%foriniteratorprototype%.next (step 7.b.iii)

  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::getEnumerablePropertyNames):

10:46 AM Changeset in webkit [271304] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, add missing scope.release() in JSModuleNamespaceObject
https://bugs.webkit.org/show_bug.cgi?id=220465

  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::getOwnPropertyNames):

10:18 AM Changeset in webkit [271303] by commit-queue@webkit.org
  • 9 edits
    1 add in trunk

[WASM-References] Add optional default value parameter for Table.constructor, Table.grow and Table.set
https://bugs.webkit.org/show_bug.cgi?id=220323

Patch by Dmitry Bezhetskov <dbezhetskov> on 2021-01-08
Reviewed by Yusuke Suzuki.

JSTests:

Add tests for Table.grow, Table.set and Table ctor with optional initializing parameter.
Spec: https://webassembly.github.io/reference-types/js-api/index.html#tables.

  • wasm/references/table_js_api.js: Added.

(Pelmen):
(testTableGrowForExternrefTables):
(async testTableGrowForFuncrefTables):
(testTableConstructorForExternrefTables):
(async testTableConstructorForFuncrefTables):
(async testTableSetForFuncrefTables):

Source/JavaScriptCore:

Introduce the new optional parameter "defaultValue" for Table.grow(numOfElementsToAdd, [defaultValue]).
It is used to initialize newly added table elements.
Introduce the new optional parameter "defaultValue" for Table({initial: N, element:type}, [defaultValue]).
After Table is created we append initial times defaultValue to table if it is present.
Also add type check for funcref's table for Table.grow, Table ctor and Table.set.
Spec: https://webassembly.github.io/reference-types/js-api/index.html#tables.

  • wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

  • wasm/WasmTable.cpp:

(JSC::Wasm::Table::grow):

  • wasm/WasmTable.h:

(JSC::Wasm::Table::isFuncrefTable const):

  • wasm/js/JSWebAssemblyTable.cpp:

(JSC::JSWebAssemblyTable::grow):

  • wasm/js/JSWebAssemblyTable.h:
  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyTablePrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

10:01 AM Changeset in webkit [271302] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GStreamer] Player audio sink needs to be initialized earlier
https://bugs.webkit.org/show_bug.cgi?id=220462

Patch by Philippe Normand <pnormand@igalia.com> on 2021-01-08
Reviewed by Xabier Rodriguez-Calvar.

Currently the player initializes the audio sink in the load method but that's not enough in
situations where the player has an audiosourceprovider. So initialize it from the
constructor early on, to ensure that the audio provider sink bin is valid.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
9:03 AM Changeset in webkit [271301] by youenn@apple.com
  • 4 edits
    4 adds in trunk/LayoutTests

Fix count failure check in LayoutTests/webrtc/h264-high.html
https://bugs.webkit.org/show_bug.cgi?id=220234
<rdar://problem/72791771>

Reviewed by Eric Carlson.

Frame size error check should check for count being 50 instead of 20.
Update code to use a max variable instead.
Move common code between the two tests in webrtc/h264-profile-tests.js.
Add ios specific expectations since high resolutions do not seem to be supported there.

  • platform/ios/webrtc/h264-baseline-expected.txt: Added.
  • platform/ios/webrtc/h264-high-expected.txt: Added.
  • platform/mac-wk2/TestExpectations:
  • webrtc/h264-baseline.html:
  • webrtc/h264-high.html:
  • webrtc/h264-profile-tests.js: Added.

(async waitForVideoSize):
(testProfile):
(async testResolutions.async resolutions):
(async testResolutions):

9:02 AM Changeset in webkit [271300] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/JSTests

[WASM-References] Add linking tests
https://bugs.webkit.org/show_bug.cgi?id=220314

Patch by Dmitry Bezhetskov <dbezhetskov> on 2021-01-08
Reviewed by Yusuke Suzuki.

Added linking tests for the ref-types spec.
Disabled a few failed minor cases and created apropriate bugs.

  • wasm.yaml:
  • wasm/references-spec-tests/linking.wast.js: Added.
8:58 AM Changeset in webkit [271299] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Mojave Debug] ASSERTION FAILED: !m_requests.contains(clientIdentifier) in WebKit::SpeechRecognitionServer::start()
https://bugs.webkit.org/show_bug.cgi?id=220426
<rdar://problem/72897083>

Patch by Sihui Liu <sihui_liu@appe.com> on 2021-01-08
Reviewed by Youenn Fablet.

We should send end event to mark the end of recognition. Otherwise, SpeechRecognitionServer does not know the
request is finished and won't remove it from map.

  • Modules/speech/SpeechRecognizer.cpp:

(WebCore::SpeechRecognizer::resetRecognition):

8:53 AM Changeset in webkit [271298] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] AtomicsIsLockFree's AI result is wrong
https://bugs.webkit.org/show_bug.cgi?id=220452
<rdar://problem/71228690>

Reviewed by Mark Lam.

JSTests:

  • stress/atomics-is-lock-free-and-zero.js: Added.

Source/JavaScriptCore:

The result type should be SpecBoolean. This leads to FTL unreachable in the test code.

  • dfg/DFGAbstractInterpreterInlines.h:

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

8:30 AM Changeset in webkit [271297] by ysuzuki@apple.com
  • 4 edits
    2 adds in trunk

[JSC] DFG/FTL Atomics should assume non-typed-array input with storage-edge
https://bugs.webkit.org/show_bug.cgi?id=220451
<rdar://problem/71237065>

Reviewed by Mark Lam.

JSTests:

  • stress/atomics-and-multiple-typed-arrays.js: Added.

(foo):

  • stress/atomics-and-string.js: Added.

(foo):

Source/JavaScriptCore:

Atomics implementation assumed that it only gets TypedArray via checkArray filter if storage-edge exists. But this is wrong.
String and the other cases can put storage-edge while it is not TypedArray. We should check whether this is one of TypedArray,
and if it is not, we should make it generic one instead of using fast TypedArray path.

  • dfg/DFGArrayMode.h:

(JSC::DFG::ArrayMode::isOneOfTypedArrayView const):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

7:45 AM Changeset in webkit [271296] by Chris Dumez
  • 4 edits in trunk

Make it safe to re-enter HashMap::clear()
https://bugs.webkit.org/show_bug.cgi?id=220445

Reviewed by Geoffrey Garen.

Source/WTF:

Make it safe to re-enter HashMap::clear(). This will fix some crashes on the GPUProcess bots
due to DisplayList::clear() re-entering via HashMap::clear().

  • wtf/HashTable.h:

(WTF::KeyTraits>::clear):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WTF/HashMap.cpp:

(TestWebKitAPI::TEST):

7:26 AM Changeset in webkit [271295] by youenn@apple.com
  • 10 edits in trunk

PaintFrameForMedia has a null identifier when media player is a media stream track video player
https://bugs.webkit.org/show_bug.cgi?id=220411

Reviewed by Wenson Hsieh.

Source/WebCore:

MediaStreamTrack video player is running in WebProcess as WebProcess gets each video sample.
There is no corresponding remote media player.
Disable the GPU code path for painting the video element and use the in-process one instead.

Covered by test in GPU process mode.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::paintFrameForMedia):

  • platform/graphics/GraphicsContextImpl.h:
  • platform/graphics/cairo/GraphicsContextImplCairo.h:
  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::canPaintFrameForMedia const):
(WebCore::DisplayList::Recorder::paintFrameForMedia):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
  • platform/graphics/win/GraphicsContextImplDirect2D.h:

LayoutTests:

  • gpu-process/TestExpectations:
7:22 AM Changeset in webkit [271294] by youenn@apple.com
  • 9 edits in trunk/Source/WebKit

Service Worker is no longer inspectable
https://bugs.webkit.org/show_bug.cgi?id=220406
<rdar://problem/72883757>

Reviewed by Per Arne Vollan.

We were sending the sandbox extension later when enabling remote inspector.
But this is not soon enough for inspecting service workers.
For that reason, send the sandbox extension at process init time based on whether develop menu is on or not.

Manually tested by validating that Develop Menu can list running service workers.

  • Shared/WebProcessCreationParameters.cpp:

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

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

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::shouldEnableRemoteInspector):
(WebKit::WebProcessProxy::enableRemoteInspectorIfNeeded):

  • UIProcess/WebProcessProxy.h:
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::enableRemoteWebInspector):

5:29 AM Changeset in webkit [271293] by commit-queue@webkit.org
  • 6 edits in trunk

Take aspect-ratio into account for percentage resolution
https://bugs.webkit.org/show_bug.cgi?id=220143

Patch by Rob Buis <rbuis@igalia.com> on 2021-01-08
Reviewed by Darin Adler.

Source/WebCore:

Add aspect-ratio handling to containing block available height
computations to fix percentage resolution on its children.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::availableLogicalHeightUsing const):
(WebCore::blockSizeFromAspectRatio): Deleted.

  • rendering/RenderBox.h:

(WebCore::RenderBox::blockSizeFromAspectRatio):

LayoutTests:

Enable some tests that pass now.

5:27 AM Changeset in webkit [271292] by Chris Lord
  • 7 edits in trunk

[WPE] Enable smooth-motion and kinetic scrolling on touchpads
https://bugs.webkit.org/show_bug.cgi?id=219942

Reviewed by Žan Doberšek.

Source/WebKit:

Interpret axis motion events with a zero value as axis stop events and
send the appropriate wheel event phase. This enables kinetic scrolling
when using touchpads and other smooth-scrolling devices.

  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::doneWithTouchEvent):

  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::m_backend):

  • UIProcess/API/wpe/WPEView.h:

Tools:

  • wpe/backends/WindowViewBackend.cpp:

Update to Wayland protocol 5 and interpret axis stop, discrete and
smooth axis motion events.

5:18 AM Changeset in webkit [271291] by youenn@apple.com
  • 3 edits in trunk

Make sure that if NetworkProcess clears DOMCache, it also clears service worker registrations
https://bugs.webkit.org/show_bug.cgi?id=220408
<rdar://problem/72360003>

Reviewed by Alex Christensen.

It is expected that clearing DOM cache mandates clearing service worker registrations
as service workers expect cache entries added at install time to stay.
It is hard for clients to enforce this so it is best to handle it in Network Process.
When DOMCache is cleared, service worker registrations will also be cleared.
The reverse is not guaranteed.
Covered by API test.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):

5:16 AM Changeset in webkit [271290] by Philippe Normand
  • 8 edits in trunk

[GStreamer] WebAudio provider should clean-up its bin when the client disappears
https://bugs.webkit.org/show_bug.cgi?id=219245

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Clean-up elements downstream of the deinterleave element when the provider client changes or
is removed.

  • platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:

(WebCore::copyGStreamerBuffersToAudioChannel):
(WebCore::AudioSourceProviderGStreamer::provideInput):
(WebCore::AudioSourceProviderGStreamer::handleSample):
(WebCore::AudioSourceProviderGStreamer::setClient):
(WebCore::AudioSourceProviderGStreamer::handleRemovedDeinterleavePad):
(WebCore::AudioSourceProviderGStreamer::deinterleavePadsConfigured):

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::disconnectSimpleBusMessageCallback): Drive-by, remove bus signal handler.
(WebCore::connectSimpleBusMessageCallback):

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp: Drive-by, define

GST_CAT_DEFAULT earlier so that all GST_DEBUG call sites actually log something.

LayoutTests:

Unflag tests no longer crashing.

  • platform/glib/TestExpectations:
  • platform/gtk-wayland/TestExpectations:
  • platform/gtk/TestExpectations:
2:28 AM Changeset in webkit [271289] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer][EME][Thunder] Accept no protection system specific caps for CENC
https://bugs.webkit.org/show_bug.cgi?id=220088

Reviewed by Philippe Normand.

For example in CMAF it could happen that you don't have protection
events and hence no protection system in the caps. We need to
allow those cases.

  • platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp:
1:59 AM Changeset in webkit [271288] by svillar@igalia.com
  • 7 edits in trunk/Source/WebCore

[WebXR] Initial implemention of device initialization/shutdown with OpenXR
https://bugs.webkit.org/show_bug.cgi?id=216925

Reviewed by Darin Adler.

Added a very basic initialization and shutdown processes of XR devices using OpenXR. So far we're just creating and destroying
the XR session. Follow up patches will add the required machinery to get frame data from OpenXR.

  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::WebXRSession): Call initializeTrackingAndRendering().
(WebCore::WebXRSession::~WebXRSession): Call shutdownTrackingAndRendering().
(WebCore::WebXRSession::shutdown): Ditto.

  • Modules/webxr/WebXRSystem.h:
  • platform/xr/PlatformXR.h: New virtual methods to initialize/shutdown devices.
  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::OpenXRDevice::OpenXRDevice): Initialize m_session.
(PlatformXR::OpenXRDevice::~OpenXRDevice): Call shutdownTrackingAndRendering().
(PlatformXR::toXrViewConfigurationType): New method. Translates from SessionMode to XrViewConfigurationType.
(PlatformXR::OpenXRDevice::initializeTrackingAndRendering): New method. Creates a session with a given mode.
(PlatformXR::OpenXRDevice::resetSession): Destroys session.
(PlatformXR::OpenXRDevice::shutdownTrackingAndRendering):

  • platform/xr/openxr/PlatformXROpenXR.h:
  • testing/WebFakeXRDevice.h: Added empty implementations for the new virtual methods.
Note: See TracTimeline for information about the timeline view.