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

Timeline



Jul 1, 2020:

11:00 PM Changeset in webkit [263833] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] Intl.Collator should set usage:"search" option through ICU locale
https://bugs.webkit.org/show_bug.cgi?id=213869

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-collator-co-extension.js: Added.

(shouldBe):
(shouldBeArray):
(explicitTrueBeforeICU67):

  • test262/expectations.yaml:

Source/JavaScriptCore:

Intl.Collator has usage:"search" option, and it affects on collation. However, UCollator does not have an interface to set this collation option,
and only way to configure UCollator is setting "-u-co-search" unicode extension to passed locale string. This patch adds "-u-co-search" unicode
extension if Usage::Search is specified.

  • runtime/IntlCollator.cpp:

(JSC::IntlCollator::initializeCollator):

10:02 PM Changeset in webkit [263832] by commit-queue@webkit.org
  • 8 edits in trunk/Source

MIMETypeRegistry::getExtensionsForMIMEType() needs to handle wildcard MIME types
https://bugs.webkit.org/show_bug.cgi?id=213826

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-07-01
Reviewed by Darin Adler.

Source/WebCore:

Working towards webkit.org/b/213347, it needs to be possible for WebCore
to get the file extensions for wildcard MIME types, e.g. "image/*" or "video/*".

For Cocoa platforms, we will enumerate the UTIs of the system. Get the
MIMEType and the extensions of each UTI. Add the following pairs to a
singleton HashMap:

{ MIMEType, extension }
{ Type(MIMEType)/*, extension }

Change MIMETypeRegistry::getExtensionsForMIMEType() such that it calls
extensionsForWildcardMIMEType() if the MIMEType ends with "*".

  • platform/MIMETypeRegistry.h:
  • platform/cocoa/MIMETypeRegistryCocoa.mm:

(WebCore::extensionsForMIMETypeMap):
(WebCore::extensionsForWildcardMIMEType):
(WebCore::MIMETypeRegistry::getExtensionsForMIMEType):

  • platform/playstation/MIMETypeRegistryPlayStation.cpp:

(WebCore::MIMETypeRegistry::getExtensionsForMIMEType):

  • platform/win/MIMETypeRegistryWin.cpp:

(WebCore::MIMETypeRegistry::getExtensionsForMIMEType):

  • platform/xdg/MIMETypeRegistryXdg.cpp:

(WebCore::MIMETypeRegistry::getExtensionsForMIMEType):

Source/WebKit:

Replace extensionsForMIMEType() with MIMETypeRegistry::getExtensionsForMIMEType().

  • UIProcess/API/Cocoa/WKOpenPanelParameters.mm:

(-[WKOpenPanelParameters _allowedFileExtensions]):

9:04 PM Changeset in webkit [263831] by Lauro Moura
  • 2 edits in trunk/Source/WebKit

[SOUP] Build fix after r263797 for older soup versions.

Build was failing in LTS distributions due to -fpermissive

Unreviewed build fix.

  • NetworkProcess/soup/WebSocketTaskSoup.cpp:

(WebKit::WebSocketTask::sendString):

8:08 PM Changeset in webkit [263830] by commit-queue@webkit.org
  • 31 edits in trunk/Source

Allow the File object to be created with a replacement file
https://bugs.webkit.org/show_bug.cgi?id=213825

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-07-01
Reviewed by Darin Adler.

Source/WebCore:

Working towards webkit.org/b/213347, it needs to be possible to create
the File object with an optional replacement file. Only the registered
BlobDataFileReference will be created with both the original file path
and the replacement file path. So it can delete the replacement file when
it is destroyed. Otherwise BlobDataFileReference will be created with the
replacement file path.

It is important to create the File object with the replacement file because
it needs to get the meta-data and the bytes of the replacement file not
the original file.

  • fileapi/File.cpp:

(WebCore::File::create):

  • fileapi/File.h:
  • fileapi/ThreadableBlobRegistry.cpp:

(WebCore::ThreadableBlobRegistry::registerFileBlobURL):

  • fileapi/ThreadableBlobRegistry.h:
  • html/DirectoryFileListCreator.cpp:

(WebCore::createFileList):

  • html/FileInputType.cpp:

(WebCore::FileInputType::filesFromFormControlState):
When the Files are created from a FormControlState, they will be created
without replacement files since they might have been deleted.

(WebCore::FileInputType::filesChosen):
(WebCore::FileInputType::receiveDroppedFiles):

  • platform/FileChooser.cpp:

(WebCore::FileChooser::chooseFiles):
(WebCore::FileChooser::chooseMediaFiles):

  • platform/FileChooser.h:

(WebCore::FileChooserFileInfo::isolatedCopy const):
(WebCore::FileChooser::chooseFiles):
(WebCore::FileChooserFileInfo::FileChooserFileInfo): Deleted.

  • platform/network/BlobDataFileReference.cpp:

(WebCore::BlobDataFileReference::BlobDataFileReference):
(WebCore::BlobDataFileReference::~BlobDataFileReference):
(WebCore::BlobDataFileReference::path):
(WebCore::BlobDataFileReference::startTrackingModifications):

  • platform/network/BlobDataFileReference.h:
  • platform/network/BlobRegistry.h:

Source/WebKit:

The UIProcess passes a list of strings which represents the replacement
paths along with a list to the original paths to the WebProcess. The
WebProcess passes these two list to FileChooser which creates the File
objects and register the Blobs.

The WebProcess registers the Blobs in the NetworkProcess which creates
BlobDataFileReference objects with both the original path and the
replacement path.

The WebProcess unregisters the Blobs from the NetworkProcess which deletes
the corresponding BlobDataFileReference from its registry. Upon destroying
the BlobDataFileReference, the replacement file should be deleted.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::registerFileBlobURL):
(WebKit::NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked):

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

(WebKit::NetworkProcessPlatformStrategies::createBlobRegistry):

  • Shared/BlobDataFileReferenceWithSandboxExtension.cpp:

(WebKit::BlobDataFileReferenceWithSandboxExtension::BlobDataFileReferenceWithSandboxExtension):

  • Shared/BlobDataFileReferenceWithSandboxExtension.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didChooseFilesForOpenPanel):

  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerFileBlobURL):

  • WebProcess/FileAPI/BlobRegistryProxy.h:
  • WebProcess/WebPage/WebOpenPanelResultListener.cpp:

(WebKit::WebOpenPanelResultListener::didChooseFiles):

  • WebProcess/WebPage/WebOpenPanelResultListener.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didChooseFilesForOpenPanel):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebPlatformStrategies.mm:

Source/WebKitLegacy/win:

  • WebCoreSupport/WebPlatformStrategies.cpp:
7:58 PM Changeset in webkit [263829] by don.olmstead@sony.com
  • 5 edits
    1 add
    1 delete in trunk

[CMake] Add WOFF2 targets
https://bugs.webkit.org/show_bug.cgi?id=213865

Reviewed by Fujii Hironori.

.:

Rework the Find module for WOFF2 to provide targets for libwoff2common and
libwoff2dec. Previously only libwoff2dec was specified in the find module. This
is because pkg-config works on that platform and because shared libraries are
supported. Neither is true for Windows so the module was expanded in anticipation
of support for WinCairo.

  • Source/cmake/FindWOFF2.cmake: Added.
  • Source/cmake/FindWOFF2Dec.cmake: Removed.
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

Use the WOFF:: targets when USE_WOFF2 is set.

  • CMakeLists.txt:
6:26 PM Changeset in webkit [263828] by timothy_horton@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

Fix the arm64 iOS simulator build
https://bugs.webkit.org/show_bug.cgi?id=213868
<rdar://problem/64901603>

  • Configurations/libvpx.xcconfig:
  • Configurations/libwebrtc.xcconfig:
5:43 PM Changeset in webkit [263827] by Alan Coon
  • 3 edits in branches/safari-610.1.20-branch/Source/WebKit

Cherry-pick r263793. rdar://problem/65011200

Fix Swift overlay build after r263727.
https://bugs.webkit.org/show_bug.cgi?id=213823.

Unreviewed, follow up build fix.

  • SwiftOverlay/Tests/WebKitTests.swift: (WebKitTests.testAPI): Fix tests to refer to new parameter name.
  • UIProcess/API/Cocoa/WebKitSwiftOverlay.swift: (callAsyncJavaScript(_:arguments:in:in:completionHandler:Error:)): Use the imported ObjC name that the compiler expects. (evaluateJavaScript(_:in:in:completionHandler:Error:)): Ditto.

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

5:43 PM Changeset in webkit [263826] by Alan Coon
  • 2 edits in branches/safari-610.1.20-branch/Source/WebKit

Cherry-pick r263781. rdar://problem/65011200

Fix Swift overlay build after r263727.
<rdar://problem/64962370> and https://bugs.webkit.org/show_bug.cgi?id=213823

Reviewed by Darin Adler.

No new tests (No behavior change).

Adapt the Swift overlay refinemnt to handle the inFrame: argument for these methods.

  • UIProcess/API/Cocoa/WebKitSwiftOverlay.swift: (callAsyncJavaScript(_:arguments:in:in:completionHandler:Error:)): (evaluateJavaScript(_:in:in:completionHandler:Error:)): (callAsyncJavaScript(_:arguments:in:completionHandler:Error:)): Deleted. (evaluateJavaScript(_:in:completionHandler:Error:)): Deleted.

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

5:32 PM Changeset in webkit [263825] by timothy_horton@apple.com
  • 28 edits
    5 adds in trunk

Swipe snapshot is removed too early when swiping away from a page that is still loading
https://bugs.webkit.org/show_bug.cgi?id=213763
<rdar://problem/64576811>

Reviewed by Darin Adler.

Source/WebKit:

Test: http/tests/swipe/swipe-back-with-outstanding-load-cancellation.html

When swiping back from a page that is still loading, when the swipe commits,
and we start navigating back to the previous page, the unfinished forward navigation
is cancelled.

This cancellation resulted in a "didFailLoadForMainFrame" making it to ViewGestureController,
which took it as an indication that the navigation *it* was interested in (the back navigation)
had failed, and immediately removed the snapshot.

Instead of listening to any random navigation's load notifications, keep track of the navigation
started by goToBackForwardItem, and only listen to notifications from it, ignoring the others.

This requires a bunch of plumbing to get the navigation from WebPageProxy to ViewGestureController,
but is otherwise fairly trivial.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::didFinishNavigation):
(WebKit::PageClientImpl::didFailNavigation):
(WebKit::PageClientImpl::didFinishLoadForMainFrame): Deleted.
(WebKit::PageClientImpl::didFailLoadForMainFrame): Deleted.

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseDidFinishLoadForMainFrame):
(webkitWebViewBaseDidFailLoadForMainFrame):

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/API/ios/WKWebViewIOS.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _didFinishNavigation:]):
(-[WKWebView _didFailNavigation:]):
(-[WKWebView _didFinishLoadForMainFrame]): Deleted.
(-[WKWebView _didFailLoadForMainFrame]): Deleted.

  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::didFinishNavigation):
(WebKit::PageClientImpl::didFailNavigation):
(WebKit::PageClientImpl::didFinishLoadForMainFrame): Deleted.
(WebKit::PageClientImpl::didFailLoadForMainFrame): Deleted.

  • UIProcess/API/wpe/PageClientImpl.h:
  • UIProcess/PageClient.h:
  • UIProcess/ViewGestureController.cpp:

(WebKit::ViewGestureController::didReachNavigationTerminalState):
(WebKit::ViewGestureController::willEndSwipeGesture):
(WebKit::ViewGestureController::didReachMainFrameLoadTerminalState): Deleted.

  • UIProcess/ViewGestureController.h:

(WebKit::ViewGestureController::didFinishNavigation):
(WebKit::ViewGestureController::didFailNavigation):
(WebKit::ViewGestureController::didFinishLoadForMainFrame): Deleted.
(WebKit::ViewGestureController::didFailLoadForMainFrame): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):

  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::didFinishNavigation):
(WebKit::PageClientImpl::didFailNavigation):
(WebKit::PageClientImpl::didFinishLoadForMainFrame): Deleted.
(WebKit::PageClientImpl::didFailLoadForMainFrame): Deleted.

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::willEndSwipeGesture):
(WebKit::ViewGestureController::resetState):

  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::didFinishNavigation):
(WebKit::PageClientImpl::didFailNavigation):
(WebKit::PageClientImpl::didFinishLoadForMainFrame): Deleted.
(WebKit::PageClientImpl::didFailLoadForMainFrame): Deleted.

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::resetState):

  • UIProcess/playstation/PageClientImpl.cpp:

(WebKit::PageClientImpl::didFinishNavigation):
(WebKit::PageClientImpl::didFailNavigation):
(WebKit::PageClientImpl::didFinishLoadForMainFrame): Deleted.
(WebKit::PageClientImpl::didFailLoadForMainFrame): Deleted.

  • UIProcess/playstation/PageClientImpl.h:
  • UIProcess/win/PageClientImpl.cpp:

(WebKit::PageClientImpl::didFinishNavigation):
(WebKit::PageClientImpl::didFinishLoadForMainFrame): Deleted.

  • UIProcess/win/PageClientImpl.h:

LayoutTests:

  • http/tests/swipe/resources/swipe-test.js: Added.
  • http/tests/swipe/swipe-back-with-outstanding-load-cancellation-expected.txt: Added.
  • http/tests/swipe/swipe-back-with-outstanding-load-cancellation.html: Added.

Add a test that ensures that we don't remove the swipe snapshot before the "back" page is loaded.
Before this fix, this test fails the assertion that we're on the first page in didRemoveSwipeSnapshotCallback.

4:50 PM Changeset in webkit [263824] by keith_miller@apple.com
  • 21 edits in trunk/Source/JavaScriptCore

Rename zeroExtend32ToPtr to zeroExtend32ToWord
https://bugs.webkit.org/show_bug.cgi?id=213866

Reviewed by Saam Barati.

The old name no longer makes sense now that we have configurations
where sizeof(void*) != sizeof(CPURegister).

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::branchTruncateDoubleToInt32):
(JSC::MacroAssemblerARM64::zeroExtend32ToWord):
(JSC::MacroAssemblerARM64::branchMul32):
(JSC::MacroAssemblerARM64::zeroExtend32ToPtr): Deleted.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::zeroExtend32ToWord):
(JSC::MacroAssemblerARMv7::zeroExtend32ToPtr): Deleted.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::zeroExtend32ToWord):
(JSC::MacroAssemblerMIPS::zeroExtend32ToPtr): Deleted.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::add32):
(JSC::MacroAssemblerX86Common::and32):
(JSC::MacroAssemblerX86Common::mul32):
(JSC::MacroAssemblerX86Common::or32):
(JSC::MacroAssemblerX86Common::xor32):
(JSC::MacroAssemblerX86Common::zeroExtend32ToWord):
(JSC::MacroAssemblerX86Common::branchAdd32):
(JSC::MacroAssemblerX86Common::zeroExtend32ToPtr): Deleted.

  • b3/air/AirOpcode.opcodes:
  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::compileExit):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileStringSlice):
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compileUInt32ToNumber):
(JSC::DFG::SpeculativeJIT::setIntTypedArrayLoadResult):
(JSC::DFG::SpeculativeJIT::compileArithDiv):
(JSC::DFG::SpeculativeJIT::compileCreateRest):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
(JSC::DFG::SpeculativeJIT::compileArrayIndexOf):
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):
(JSC::DFG::SpeculativeJIT::emitAllocateButterfly):
(JSC::DFG::SpeculativeJIT::compileWeakMapGet):
(JSC::DFG::SpeculativeJIT::emitInitializeButterfly):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillSpeculateInt32Internal):
(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::reboxAccordingToFormat):

  • jit/CallFrameShuffler64.cpp:

(JSC::CallFrameShuffler::emitBox):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_has_indexed_property):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_has_indexed_property):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_put_by_val):

  • jit/JSInterfaceJIT.h:

(JSC::JSInterfaceJIT::emitLoadInt32):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::boxWasmResult):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

  • yarr/YarrJIT.cpp:
4:35 PM Changeset in webkit [263823] by Chris Fleizach
  • 15 edits
    4 adds in trunk

AX: Implement relevant simulated key presses for custom ARIA widgets for increment/decrement
https://bugs.webkit.org/show_bug.cgi?id=213744

Reviewed by Darin Adler.

Source/WebCore:

In order to allow custom ARIA widgets to work, we can post keyboard events for specific ax actions
that are not handled natively.

Spec: https://github.com/WICG/aom/blob/gh-pages/explainer.md#user-action-events-from-assistive-technology

Test: accessibility/keyevents-posted-for-increment-actions.html

accessibility/keyevents-for-increment-actions-with-node-removal.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::postKeyboardKeysForValueChange):
(WebCore::AccessibilityNodeObject::setNodeValue):
(WebCore::AccessibilityNodeObject::changeValueByStep):
(WebCore::AccessibilityNodeObject::changeValueByPercent):

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setValue):

  • accessibility/AccessibilityRenderObject.h:
  • accessibility/AccessibilityScrollbar.cpp:

(WebCore::AccessibilityScrollbar::setValue):

  • accessibility/AccessibilityScrollbar.h:
  • accessibility/AccessibilitySlider.cpp:

(WebCore::AccessibilitySlider::setValue):

  • accessibility/AccessibilitySlider.h:
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::setValue):

  • accessibility/isolatedtree/AXIsolatedObject.h:

LayoutTests:

  • accessibility/keyevents-posted-for-increment-actions-expected.txt: Added.
  • accessibility/keyevents-posted-for-increment-actions.html: Added.
  • accessibility/keyevents-for-increment-actions-with-node-removal-expected.txt: Added.
  • accessibility/keyevents-for-increment-actions-with-node-removal.htmk: Added.
2:46 PM Changeset in webkit [263822] by Chris Dumez
  • 4 edits in trunk/LayoutTests

[ iOS Debug and Mojave Debug ] http/tests/storage/storage-map-leaking.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=213795
<rdar://problem/64937993>

Reviewed by Darin Adler.

Because our GC is conservative, a particular JS wrapper is not guaranteed to go away in a timely fashion.
To try and make the test more reliable, we now use 4 separate Storage wrappers instead of a single one.
We treat the test as passing if any of the 4 storage wrappers go away after removing the 4 subframes from
4 separate origins.

  • http/tests/storage/storage-map-leaking.html:
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
2:04 PM Changeset in webkit [263821] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Allow the WebContent sandbox to check the 'hw.product' sysctl
https://bugs.webkit.org/show_bug.cgi?id=213861
<rdar://problem/64988957>

Reviewed by Per Arne Vollan.

Telemetry shows that we need to read the 'hw.product' sysctl in the font subsystem,
primarily to enable certain font features (for various products) in different locales.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2:01 PM Changeset in webkit [263820] by youenn@apple.com
  • 837 edits
    21 copies
    9 moves
    105 adds
    16 deletes in trunk

Add a functional WebRTC VP9 codec
https://bugs.webkit.org/show_bug.cgi?id=213778

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Update libvpx to synchronize VP9 support with the rest of libwebrtc.
Disable vp9_noop in the build system and use function vp9 encoder/decoder instead.

  • Configurations/libvpx.xcconfig:
  • Source/third_party/libvpx/BUILD.gn:
  • Source/third_party/libvpx/OWNERS:
  • Source/third_party/libvpx/README.chromium:
  • Source/third_party/libvpx/generate_gni.sh:
  • Source/third_party/libvpx/libvpx_srcs.gni:
  • Source/third_party/libvpx/lint_config.sh:
  • Source/third_party/libvpx/run_perl.py:
  • Source/third_party/libvpx/source/config/ios/arm-neon/vp8_rtcd.h:
  • Source/third_party/libvpx/source/config/ios/arm-neon/vp9_rtcd.h:
  • Source/third_party/libvpx/source/config/ios/arm-neon/vpx_config.asm:
  • Source/third_party/libvpx/source/config/ios/arm-neon/vpx_config.c:
  • Source/third_party/libvpx/source/config/ios/arm-neon/vpx_config.h:
  • Source/third_party/libvpx/source/config/ios/arm-neon/vpx_dsp_rtcd.h:
  • Source/third_party/libvpx/source/config/ios/arm64/vp8_rtcd.h:
  • Source/third_party/libvpx/source/config/ios/arm64/vp9_rtcd.h:
  • Source/third_party/libvpx/source/config/ios/arm64/vpx_config.asm:
  • Source/third_party/libvpx/source/config/ios/arm64/vpx_config.c:
  • Source/third_party/libvpx/source/config/ios/arm64/vpx_config.h:
  • Source/third_party/libvpx/source/config/ios/arm64/vpx_dsp_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vp8_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vp9_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.asm:
  • Source/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.c:
  • Source/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_config.h:
  • Source/third_party/libvpx/source/config/linux/arm-neon-cpu-detect/vpx_dsp_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/arm-neon-highbd/vp8_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h.
  • Source/third_party/libvpx/source/config/linux/arm-neon-highbd/vp9_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/generic/vp9_rtcd.h.
  • Source/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_config.asm: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm.
  • Source/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_config.c: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/ios/arm-neon/vpx_config.c.

(vpx_codec_build_config):

  • Source/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_config.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/arm-neon/vpx_config.h.
  • Source/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_dsp_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/generic/vpx_dsp_rtcd.h.
  • Source/third_party/libvpx/source/config/linux/arm-neon-highbd/vpx_scale_rtcd.h: Added.
  • Source/third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/arm-neon/vp9_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/arm-neon/vpx_config.asm:
  • Source/third_party/libvpx/source/config/linux/arm-neon/vpx_config.c:
  • Source/third_party/libvpx/source/config/linux/arm-neon/vpx_config.h:
  • Source/third_party/libvpx/source/config/linux/arm-neon/vpx_dsp_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/arm/vp8_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/arm/vp9_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/arm/vpx_config.asm:
  • Source/third_party/libvpx/source/config/linux/arm/vpx_config.c:
  • Source/third_party/libvpx/source/config/linux/arm/vpx_config.h:
  • Source/third_party/libvpx/source/config/linux/arm/vpx_dsp_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/arm64-highbd/vp8_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h.
  • Source/third_party/libvpx/source/config/linux/arm64-highbd/vp9_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/generic/vp9_rtcd.h.
  • Source/third_party/libvpx/source/config/linux/arm64-highbd/vpx_config.asm: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/arm64/vpx_config.asm.
  • Source/third_party/libvpx/source/config/linux/arm64-highbd/vpx_config.c: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/ios/arm64/vpx_config.c.

(vpx_codec_build_config):

  • Source/third_party/libvpx/source/config/linux/arm64-highbd/vpx_config.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/arm64/vpx_config.h.
  • Source/third_party/libvpx/source/config/linux/arm64-highbd/vpx_dsp_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/generic/vpx_dsp_rtcd.h.
  • Source/third_party/libvpx/source/config/linux/arm64-highbd/vpx_scale_rtcd.h: Added.
  • Source/third_party/libvpx/source/config/linux/arm64/vp8_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/arm64/vp9_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/arm64/vpx_config.asm:
  • Source/third_party/libvpx/source/config/linux/arm64/vpx_config.c:
  • Source/third_party/libvpx/source/config/linux/arm64/vpx_config.h:
  • Source/third_party/libvpx/source/config/linux/arm64/vpx_dsp_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/generic/vp8_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/generic/vp9_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/generic/vpx_config.asm:
  • Source/third_party/libvpx/source/config/linux/generic/vpx_config.c:
  • Source/third_party/libvpx/source/config/linux/generic/vpx_config.h:
  • Source/third_party/libvpx/source/config/linux/generic/vpx_dsp_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/ia32/vp8_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/ia32/vp9_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/ia32/vpx_config.asm:
  • Source/third_party/libvpx/source/config/linux/ia32/vpx_config.c:
  • Source/third_party/libvpx/source/config/linux/ia32/vpx_config.h:
  • Source/third_party/libvpx/source/config/linux/ia32/vpx_dsp_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/mips64el/vp8_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/mips64el/vp9_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/mips64el/vpx_config.c:
  • Source/third_party/libvpx/source/config/linux/mips64el/vpx_config.h:
  • Source/third_party/libvpx/source/config/linux/mips64el/vpx_dsp_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/mipsel/vp8_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/mipsel/vp9_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/mipsel/vpx_config.c:
  • Source/third_party/libvpx/source/config/linux/mipsel/vpx_config.h:
  • Source/third_party/libvpx/source/config/linux/mipsel/vpx_dsp_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/x64/vp8_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/x64/vp9_rtcd.h:
  • Source/third_party/libvpx/source/config/linux/x64/vpx_config.asm:
  • Source/third_party/libvpx/source/config/linux/x64/vpx_config.c:
  • Source/third_party/libvpx/source/config/linux/x64/vpx_config.h:
  • Source/third_party/libvpx/source/config/linux/x64/vpx_dsp_rtcd.h:
  • Source/third_party/libvpx/source/config/mac/ia32/vp8_rtcd.h:
  • Source/third_party/libvpx/source/config/mac/ia32/vp9_rtcd.h:
  • Source/third_party/libvpx/source/config/mac/ia32/vpx_config.asm:
  • Source/third_party/libvpx/source/config/mac/ia32/vpx_config.c:
  • Source/third_party/libvpx/source/config/mac/ia32/vpx_config.h:
  • Source/third_party/libvpx/source/config/mac/ia32/vpx_dsp_rtcd.h:
  • Source/third_party/libvpx/source/config/mac/x64/vp8_rtcd.h:
  • Source/third_party/libvpx/source/config/mac/x64/vp8_rtcd_no_acceleration.h:
  • Source/third_party/libvpx/source/config/mac/x64/vp9_rtcd.h:
  • Source/third_party/libvpx/source/config/mac/x64/vpx_config.asm:
  • Source/third_party/libvpx/source/config/mac/x64/vpx_config.c:
  • Source/third_party/libvpx/source/config/mac/x64/vpx_config.h:
  • Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h:
  • Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd_no_acceleration.h:
  • Source/third_party/libvpx/source/config/nacl/vp8_rtcd.h:
  • Source/third_party/libvpx/source/config/nacl/vp9_rtcd.h:
  • Source/third_party/libvpx/source/config/nacl/vpx_config.c:
  • Source/third_party/libvpx/source/config/nacl/vpx_config.h:
  • Source/third_party/libvpx/source/config/nacl/vpx_dsp_rtcd.h:
  • Source/third_party/libvpx/source/config/vpx_version.h:
  • Source/third_party/libvpx/source/config/win/arm64/vp8_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/arm-neon/vp8_rtcd.h.
  • Source/third_party/libvpx/source/config/win/arm64/vp9_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/generic/vp9_rtcd.h.
  • Source/third_party/libvpx/source/config/win/arm64/vpx_config.asm: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/ios/arm64/vpx_config.asm.
  • Source/third_party/libvpx/source/config/win/arm64/vpx_config.c: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/mips64el/vpx_config.c.

(vpx_codec_build_config):

  • Source/third_party/libvpx/source/config/win/arm64/vpx_config.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/arm64/vpx_config.h.
  • Source/third_party/libvpx/source/config/win/arm64/vpx_dsp_rtcd.h: Copied from Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/config/linux/generic/vpx_dsp_rtcd.h.
  • Source/third_party/libvpx/source/config/win/arm64/vpx_scale_rtcd.h: Added.
  • Source/third_party/libvpx/source/config/win/ia32/vp8_rtcd.h:
  • Source/third_party/libvpx/source/config/win/ia32/vp9_rtcd.h:
  • Source/third_party/libvpx/source/config/win/ia32/vpx_config.asm:
  • Source/third_party/libvpx/source/config/win/ia32/vpx_config.c:
  • Source/third_party/libvpx/source/config/win/ia32/vpx_config.h:
  • Source/third_party/libvpx/source/config/win/ia32/vpx_dsp_rtcd.h:
  • Source/third_party/libvpx/source/config/win/x64/vp8_rtcd.h:
  • Source/third_party/libvpx/source/config/win/x64/vp9_rtcd.h:
  • Source/third_party/libvpx/source/config/win/x64/vpx_config.asm:
  • Source/third_party/libvpx/source/config/win/x64/vpx_config.c:
  • Source/third_party/libvpx/source/config/win/x64/vpx_config.h:
  • Source/third_party/libvpx/source/config/win/x64/vpx_dsp_rtcd.h:
  • libwebrtc.xcodeproj/project.pbxproj:

LayoutTests:

  • webrtc/vp9-expected.txt:
  • webrtc/vp9.html:
1:29 PM Changeset in webkit [263819] by timothy_horton@apple.com
  • 15 edits in trunk/Source

Upstream application accent color support
https://bugs.webkit.org/show_bug.cgi?id=213859

Reviewed by Wenson Hsieh.

Source/WebCore/PAL:

  • pal/spi/mac/NSApplicationSPI.h:

Source/WebKit:

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/Cocoa/PageClientImplCocoa.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::accentColor):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::setAccentColor):
Plumb accent color to the Web Content process so that it is used when
deciding the colors of selection and form controls.

Source/WTF:

  • wtf/PlatformHave.h:
1:16 PM Changeset in webkit [263818] by sbarati@apple.com
  • 4 edits in trunk/PerformanceTests

Make it so JetStream2 can run with the d8 shell
https://bugs.webkit.org/show_bug.cgi?id=213856

Reviewed by Keith Miller.

We use d8's Realm API to create separate global objects for
each test to run in.

  • JetStream2/JetStreamDriver.js:

(Driver.prototype.runCode.globalObject.loadString):
(Driver.prototype.runCode):
(prototype.async run):

  • JetStream2/cli.js:
  • JetStream2/index.html:
1:14 PM Changeset in webkit [263817] by keith_miller@apple.com
  • 2 edits in trunk/Source/WebKit

Add WebXR to WebKit.plist preferences, off by default
https://bugs.webkit.org/show_bug.cgi?id=213860
<rdar://64411568>

Reviewed by Tim Horton.

Right now we look for "WebXR" in the plist, however, it's not in
the file. It so happens that, *I think*, we fall back to false for
missing keys. We should have an entry for readability and
consistency, though.

No tests needed because this shouldn't change behavior.

  • FeatureFlags/WebKit.plist:
10:42 AM Changeset in webkit [263816] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Regression(r259242) WebKit no longer does client navigations at foreground priority for extensions
https://bugs.webkit.org/show_bug.cgi?id=213852
<rdar://problem/63300428>

Reviewed by Alex Christensen.

r259242 tried to address a ASSERT(window) debug assertion hit in applicationType()
by only calling applicationType() when the window is non-null and assuming the
process is an application when the window is null. However, this is not correct
for extensions. The first thing isApplicationVisible() does is call

_UIApplicationIsExtension() to determine if we are an extension. It does not need

the window to make this determination. As a result, I have reverted r259242 and
simply dropped the ASSERT(window) assertion in isApplicationVisible() instead.

This fixes the regression tracked by <rdar://problem/63300428> by reverting the
change that caused it (r259242) and drops the assertion that was hit before r259242.

  • UIProcess/ApplicationStateTracker.mm:

(WebKit::applicationType):

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::isApplicationVisible):

10:26 AM Changeset in webkit [263815] by Devin Rousso
  • 9 edits
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: add back support for 10.3.1
https://bugs.webkit.org/show_bug.cgi?id=213764

Reviewed by Brian Burg.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.initializeTarget):
(WI.NetworkManager.prototype.webSocketWillSendHandshakeRequest):
(WI.NetworkManager.prototype.markResourceRequestAsServedFromMemoryCache): Added.
(WI.NetworkManager.prototype.resourceRequestDidReceiveResponse):

  • UserInterface/Models/Resource.js:

(WI.Resource.prototype.legacyMarkServedFromMemoryCache): Added.
(WI.Resource.prototype.legacyMarkServedFromDiskCache): Added.

  • UserInterface/Models/WebSocketResource.js:

(WI.WebSocketResource.prototype.addFrame):

  • UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js: Added.
  • UserInterface/Protocol/NetworkObserver.js:

(WI.NetworkObserver.prototype.requestServedFromCache): Added.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):

  • UserInterface/Views/NetworkTimelineView.js:

(WI.NetworkTimelineView):

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WI.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse):

  • UserInterface/Views/WebSocketContentView.js:

(WI.WebSocketContentView):
(WI.WebSocketContentView.prototype._addRow):

  • Versions/Inspector-iOS-10.3.json: Added.
10:23 AM Changeset in webkit [263814] by Wenson Hsieh
  • 8 edits in trunk

Fix the WebKit build after <rdar://problem/64288191>
https://bugs.webkit.org/show_bug.cgi?id=213832

Reviewed by Tim Horton.

Source/WebCore:

Upcoming changes to <UIKit/UIWebDocumentView.h> will cause the WebKit build to break, due to conflicting
declarations of WKObject in both WebCore (WAK) code and the WebKit API. Avoid this by renaming the WAK version
to WAKObject, rather than WKObject.

Additionally, fix some minor style issues along the way.

  • platform/ios/wak/WKTypes.h:
  • platform/ios/wak/WKUtilities.c:

(WKRetain):
(WKRelease):
(_WAKObjectDealloc):
(WKGetClassInfo):
(_WKObjectDealloc): Deleted.

  • platform/ios/wak/WKUtilities.h:
  • platform/ios/wak/WKView.h:
  • platform/ios/wak/WKView.mm:

(_WKViewDealloc):

Tools:

Additionally, fix a naming conflict that will result from WebArchivePboardType being declared in both
<WebKitLegacy/WebArchive.h> and DumpRenderTree, by making the latter a local variable instead.

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::imageCountInGeneralPasteboard const):

10:08 AM Changeset in webkit [263813] by dbates@webkit.org
  • 8 edits in trunk

[iOS] Implement support for UIWKDocumentRequestSpatialAndCurrentSelection
https://bugs.webkit.org/show_bug.cgi?id=213704
<rdar://problem/59738878>

Reviewed by Wenson Hsieh.

Source/WebKit:

Implement support for the new request type UIWKDocumentRequestSpatialAndCurrentSelection.
Requests of this type return the contents inside the range that covers both the specified
rect and the current selection, if there is one.

The flag UIWKDocumentRequestSpatialAndCurrentSelection was added in <rdar://problem/64867540>.

  • Platform/spi/ios/UIKitSPI.h: Same thing I did in TestWebKitAPI/ios/UIKitSPI.h. See Tools ChangeLog for why.
  • Shared/DocumentEditingContext.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(toWebDocumentRequestOptions):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

Tools:

Add some tests.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

  • TestWebKitAPI/ios/UIKitSPI.h: Define the enumerator using a macro just like what was done for

UIWKDocumentRequestMarkedTextRects. The reason for the macro instead of modifying the enumeration
definition in this file is to 1) avoid breaking the build for Apple engineers that haven't picked
up <rdar://problem/64867540> and to 2) avoid breaking the OpenSource build.

9:58 AM Changeset in webkit [263812] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for fast/events/before-input-delete-empty-list-target-ranges.html and fast/events/before-input-events-prevent-insert-composition.html and fast/events/before-input-events-prevent-recomposition.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213848

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-07-01

  • platform/ios-simulator/TestExpectations:
9:41 AM Changeset in webkit [263811] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for fast/events/fire-scroll-event.html as it is passing.
https://bugs.webkit.org/show_bug.cgi?id=213850

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-07-01

  • platform/ios-simulator/TestExpectations:
9:20 AM Changeset in webkit [263810] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Script to copy over testapi.js is redundant in xcodebuild
https://bugs.webkit.org/show_bug.cgi?id=213824

Reviewed by Keith Miller.

We're already copying over the entire testapiScripts directory.
No need to manually copy just one file from it, too.

9:19 AM Changeset in webkit [263809] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Remove unnecessary baseline after r263797.

  • platform/glib/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode-expected.txt:
9:15 AM Changeset in webkit [263808] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for fast/events/before-input-prevent-cut.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213849

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-07-01

  • platform/ios/TestExpectations:
9:14 AM Changeset in webkit [263807] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Crash under IPC::isValidMessageName()
https://bugs.webkit.org/show_bug.cgi?id=213751
<rdar://problem/64773416>

Reviewed by Geoffrey Garen.

This is a speculative fix for the crashes tracked by <rdar://problem/64773416>.
The suspicion is that the compiler optimizes the code for IPC::isValidMessageName()
because its parameter is of type MessageName. It may therefore assume the parameter
is a valid MessageName enum value, which is ironic because the purpose of this
function is to check whether or not the enum value is valid.

To address the issue, I got rid of the #ifdefs in MessageName enum so that the
enum values have an underlying value in the range [0, MessageName::Last]. I then
updated the isValidEnum template specialization to verify that the input integer
is indeed in the range [0, MessageName::Last] before casting it to a MessageName
and calling IPC::isValidMessageName().

  • Scripts/webkit/messages.py:
9:03 AM Changeset in webkit [263806] by Kate Cheney
  • 12 edits in trunk

WKUserScripts injecting into all frames seem to violate app-bound domains
https://bugs.webkit.org/show_bug.cgi?id=213816
<rdar://problem/64872296>

Reviewed by Brady Eidson.

Source/WebKit:

Patch to make app-bound domain checks on a per-frame basis instead
of per-page-based-on-main-frame. This will prevent WKUserScripts from
being injected in subframes when the main frame is app-bound. Now, all
ancestors of a frame must be app-bound in order for a frame to
evaluate user script.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomainAndCheckIfPermitted):
Move 'isMainFrame' check to be inside of the check for
m_limitsNavigationsToAppBoundDomains. The navigation should fail if
the main frame is not app-bound and the WKWebView is marked with the
limitsNavigationToAppBoundDomains flag, but non-app-bound subframe
loads are allowed to continue.

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::isTopFrameNavigatingToAppBoundDomain const):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::download):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::startPingLoad):
(WebKit::WebLoaderStrategy::preconnectTo):
For reporting loads to the Network Process, we only care if the main
frame is app bound, so we need to store that info in the WebPage and
WebPageProxy.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::shouldEnableInAppBrowserPrivacyProtections const):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::startDownload):
(WebKit::WebFrame::convertMainResourceLoadToDownload):
(WebKit::WebFrame::shouldEnableInAppBrowserPrivacyProtections):
(WebKit::WebFrame::isTopFrameNavigatingToAppBoundDomain const):

  • WebProcess/WebPage/WebFrame.h:

(WebKit::WebFrame::setIsNavigatingToAppBoundDomain):
(WebKit::WebFrame::isNavigatingToAppBoundDomain const):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest):
(WebKit::WebPage::loadDataImpl):
(WebKit::WebPage::didReceivePolicyDecision):
(WebKit::WebPage::runJavaScript):
(WebKit::WebPage::setIsNavigatingToAppBoundDomain):
(WebKit::WebPage::shouldEnableInAppBrowserPrivacyProtections): Deleted.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::needsInAppBrowserPrivacyQuirks):
(WebKit::WebPage::isNavigatingToAppBoundDomain const): Deleted.
Move all app-bound domain logic from the WebPage to the WebFrame now
that checks are on a per-frame basis.

Tools:

Added API test coverage. Sets up a tree like so: [app-bound domain,
non-app-bound domain, app-bound domain]. Script injection should only
be successful in the top frame. Since message handlers are disabled for non-
app-bound domains, this test injects script which loads an image using a
custom url scheme. If the load succeeds, we increment a counter, and
expect only one successful script load (the main frame).

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(-[InAppBrowserSchemeHandler webView:startURLSchemeTask:]):

8:57 AM Changeset in webkit [263805] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][TFC] Add support for non-baseline aligned cell height
https://bugs.webkit.org/show_bug.cgi?id=213845

Reviewed by Antti Koivisto.

Source/WebCore:

Adjust max ascent/descent only when the cell is basline aligned.

Test: fast/layoutformattingcontext/table-cell-height-middle-align-simple.html

  • layout/tableformatting/TableLayout.cpp:

(WebCore::Layout::TableFormattingContext::TableLayout::distributedVerticalSpace):

LayoutTests:

  • fast/layoutformattingcontext/table-cell-height-middle-align-simple-expected.html: Added.
  • fast/layoutformattingcontext/table-cell-height-middle-align-simple.html: Added.
8:47 AM Changeset in webkit [263804] by graouts@webkit.org
  • 1 edit
    2 moves
    2 adds in trunk/LayoutTests

pointerevents/ios/touch-action-none-on-iframe.html times out
https://bugs.webkit.org/show_bug.cgi?id=213846
<rdar://problem/60393092>

Reviewed by Antti Koivisto.

The test pointerevents/ios/touch-action-none-on-iframe.html was mistakenly assuming that setting touch-action: none on
an <iframe> should prevent scrolling on the outer document with a swipe gesture over the inner document. We're renaming
this test as pointerevents/ios/touch-action-none-on-iframe-outer.html and modifying it to expect scrolling to occur, and
also make it a promise_test to avoid further timeouts due to failures in an async_test.

We also add a new test pointerevents/ios/touch-action-none-on-iframe-inner.html which sets touch-action: none on the
inner document which should indeed prevent scrolling of both the inner and outer documents.

  • pointerevents/ios/touch-action-none-on-iframe-inner-expected.txt: Added.
  • pointerevents/ios/touch-action-none-on-iframe-inner.html: Added.
  • pointerevents/ios/touch-action-none-on-iframe-outer-expected.txt: Renamed from LayoutTests/pointerevents/ios/touch-action-none-on-iframe-expected.txt.
  • pointerevents/ios/touch-action-none-on-iframe-outer.html: Renamed from LayoutTests/pointerevents/ios/touch-action-none-on-iframe.html.
8:40 AM Changeset in webkit [263803] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Remove expectation for fast/dom/Window/open-invalid-url.html and fast/dom/Range/simple-line-layout-getclientrects.html and fast/dom/attr_dead_doc.html and fast/dom/horizontal-scrollbar-when-dir-change.html and fast/dom/vertical-scrollbar-when-dir-change.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213847

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-07-01

  • platform/ios-simulator/TestExpectations:
  • platform/ios/TestExpectations:
8:26 AM Changeset in webkit [263802] by graouts@webkit.org
  • 3 edits
    2 adds in trunk

[Media Controls] Tracks panel can show text tracks with mode "hidden" as selected
https://bugs.webkit.org/show_bug.cgi?id=213839
<rdar://problem/57989325>

Reviewed by Jer Noble.

Source/WebCore:

We only considered text tracks that had their "mode" set to "disabled" as tracks that weren't selected,
but there is also the "hidden" mode which should share the same UI state. We now check for "mode" to
be set to "showing" to consider a text track as selected in the tracks panel.

Test: media/modern-media-controls/tracks-support/tracks-support-hidden-tracks.html

  • Modules/modern-media-controls/media/tracks-support.js:

(TracksSupport.prototype.tracksPanelIsTrackInSectionSelected):

LayoutTests:

Add a new test that dumps the selection state of tracks in the tracks panel when all of media.textTracks
have been set to mode = "hidden".

  • media/modern-media-controls/tracks-support/tracks-support-hidden-tracks-expected.txt: Added.
  • media/modern-media-controls/tracks-support/tracks-support-hidden-tracks.html: Added.
7:49 AM Changeset in webkit [263801] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for fast/css/replaced-element-implicit-size.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213843

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-07-01

  • platform/ios/TestExpectations:
7:31 AM Changeset in webkit [263800] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Regression (r263788): Windows build broken: nameForRenderTreeAsText is not a member of WebCore::Color
https://bugs.webkit.org/show_bug.cgi?id=213841
<rdar://problem/64985276>

Fix Windows build.

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(printColor):

7:28 AM Changeset in webkit [263799] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for fast/canvas/canvas-gradient-addStop-error.html and fast/canvas/canvas-radial-gradient-spreadMethod.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213840

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-07-01

  • platform/ios/TestExpectations:
7:27 AM Changeset in webkit [263798] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for fast/css/font-calculated-value.html as it is passing.
https://bugs.webkit.org/show_bug.cgi?id=178952

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-07-01

  • platform/ios/TestExpectations:
7:23 AM Changeset in webkit [263797] by youenn@apple.com
  • 19 edits in trunk/Source

Make NetworkSendQueue use CString instead of String for UTF-8 data
https://bugs.webkit.org/show_bug.cgi?id=213714

Reviewed by Darin Adler.

Source/WebCore:

Use CString instead of String in NetworkSendQueue as all data is to be encoded as UTF-8.
This allows converting and allocating the UTF-8 string only once.
Covered by existing tests.

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::createMessageQueue):
(WebCore::RTCDataChannel::send):

  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:

(WebCore::LibWebRTCDataChannelHandler::sendStringData):
(WebCore::LibWebRTCDataChannelHandler::sendRawData):

  • Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.h:
  • fileapi/NetworkSendQueue.cpp:

(WebCore::NetworkSendQueue::enqueue):
(WebCore::NetworkSendQueue::processMessages):

  • fileapi/NetworkSendQueue.h:
  • platform/mediastream/RTCDataChannelHandler.h:
  • platform/mock/RTCDataChannelHandlerMock.cpp:

(WebCore::RTCDataChannelHandlerMock::sendStringData):

  • platform/mock/RTCDataChannelHandlerMock.h:

Source/WebKit:

Update code to use CString/DataReference to transmit WebSocket text messages.

  • NetworkProcess/NetworkSocketChannel.cpp:

(WebKit::NetworkSocketChannel::sendString):

  • NetworkProcess/NetworkSocketChannel.h:
  • NetworkProcess/NetworkSocketChannel.messages.in:
  • NetworkProcess/WebSocketTask.h:

(WebKit::WebSocketTask::sendString):

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

(WebKit::WebSocketTask::sendString):

  • NetworkProcess/soup/WebSocketTaskSoup.h:
  • NetworkProcess/soup/WebSocketTaskSoup.cpp:

(WebKit::WebSocketTask::sendString):

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::createMessageQueue):
(WebKit::WebSocketChannel::send):

7:16 AM Changeset in webkit [263796] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for fast/block/positioning/rtl-fixed-positioning.html as it is passing.
https://bugs.webkit.org/show_bug.cgi?id=213838

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-07-01

  • platform/ios-simulator/TestExpectations:
3:49 AM Changeset in webkit [263795] by Alexey Shvayka
  • 4 edits in trunk/Source

Use more efficient makeString() instead of StringBuilder
https://bugs.webkit.org/show_bug.cgi?id=213708

Reviewed by Sam Weinig.

Source/WebCore:

This patch refactors throwRequiredMemberTypeError() and throwArgument*Error()
methods, replacing all StringBuilder usages with more efficient makeString().

Extracts makeArgumentTypeErrorMessage(), similiar to existing helpers,
which can be reused if neccessary.

No new tests, no behavior change.

  • bindings/js/JSDOMExceptionHandling.cpp:

(WebCore::makeArgumentTypeErrorMessage):
(WebCore::throwArgumentMustBeEnumError):
(WebCore::throwArgumentMustBeFunctionError):
(WebCore::throwArgumentMustBeObjectError):
(WebCore::throwArgumentTypeError):
(WebCore::throwRequiredMemberTypeError):
(WebCore::appendArgumentMustBe): Deleted.

Source/WTF:

Introduces StringTypeAdapter<std::tuple> overload, which enables using
makeString() instead of StringBuilder in more cases.

  • wtf/text/StringConcatenate.h:

(WTF::StringTypeAdapter<std::tuple<StringTypes...>, void>): Added.

3:41 AM Changeset in webkit [263794] by svillar@igalia.com
  • 4 edits in trunk

[css-flexbox] Don't include scrollbar extents when computing sizes for percentage resolution
https://bugs.webkit.org/show_bug.cgi?id=213739

Reviewed by Javier Fernandez.

Source/WebCore:

Content override sizes do include scrollbars so they must be substracted when using the override size
to compute percentages.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::crossSizeForPercentageResolution): Remove scrollbars.
(WebCore::RenderFlexibleBox::mainSizeForPercentageResolution): Ditto.

LayoutTests:

3:36 AM Changeset in webkit [263793] by James Savage
  • 3 edits in trunk/Source/WebKit

Fix Swift overlay build after r263727.
https://bugs.webkit.org/show_bug.cgi?id=213823.

Unreviewed, follow up build fix.

  • SwiftOverlay/Tests/WebKitTests.swift:

(WebKitTests.testAPI): Fix tests to refer to new parameter name.

  • UIProcess/API/Cocoa/WebKitSwiftOverlay.swift:

(callAsyncJavaScript(_:arguments:in:in:completionHandler:Error:)): Use
the imported ObjC name that the compiler expects.
(evaluateJavaScript(_:in:in:completionHandler:Error:)): Ditto.

3:36 AM Changeset in webkit [263792] by svillar@igalia.com
  • 3 edits in trunk/Source/WebCore

[css-flex] Remove death code paths when evaluating percentage resolution
https://bugs.webkit.org/show_bug.cgi?id=213809

Reviewed by Manuel Rego Casasnovas.

Both crossSizeForPercentageResolution() and mainSizeForPercentageResolution() are only called from
childLogicalHeightForPercentageResolution(). The former is called whenever hasOrthogonalFlow(child)
is false and the latter when it's true. However crossSizeForPercentageResolution() has a path for
hasOrthogonalFlow(child)==true which is impossible to reach. The same happens to
mainSizeForPercentageResolution() which has a path for hasOrthogonalFlow(child)==false which is
also impossible to reach.

Remove both death code paths and replace them by assertions. We're also making both methods
private since are not meant to be used from the outside.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::crossSizeForPercentageResolution): Remove death code path.
(WebCore::RenderFlexibleBox::mainSizeForPercentageResolution): Ditto.

  • rendering/RenderFlexibleBox.h: Make both calls private.
3:34 AM Changeset in webkit [263791] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Garden flaky failures in EWS GTK-WK2 queue.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
12:09 AM Changeset in webkit [263790] by commit-queue@webkit.org
  • 11 edits in trunk/Source/JavaScriptCore

Use properly flag names for tests of Tools/Scripts/run-builtins-generator-tests
https://bugs.webkit.org/show_bug.cgi?id=213733

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-07-01
Reviewed by Youenn Fablet.

Test cases under Source/JavaScriptCore/Scripts/tests/builtins/ uses exist compilation flags.
But they can take an arbitary flag name and don't have to use an exist flag.
I think it's better to rename them to more proper ones.

  • Scripts/tests/builtins/WebCore-ArbitraryConditionalGuard-Separate.js:
  • Scripts/tests/builtins/WebCore-DuplicateKeyValueAnnotation-Separate.js:
  • Scripts/tests/builtins/WebCore-GuardedBuiltin-Separate.js:
  • Scripts/tests/builtins/WebCore-GuardedInternalBuiltin-Separate.js:
  • Scripts/tests/builtins/WebCore-xmlCasingTest-Separate.js:
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCoreJSBuiltins.h-result:
12:08 AM Changeset in webkit [263789] by youenn@apple.com
  • 16 edits
    3 deletes in trunk/Source/WebKit

Make NetworkRTCProvider receive IPC messages from a background thread
https://bugs.webkit.org/show_bug.cgi?id=213557

Reviewed by Geoffrey Garen.

To ensure webrtc packets do not get blocked on the main thread,
we process WebProcess IPC message directly in the socket thread.
For new sockets, we still go through the main thread, to check suspension or proxy values.
For sending packets/setting options/closing sockets, we stay in the background thread.

  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):

  • NetworkProcess/webrtc/LibWebRTCSocketClient.cpp:

(WebKit::LibWebRTCSocketClient::sendTo):

  • NetworkProcess/webrtc/LibWebRTCSocketClient.h:
  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::NetworkRTCProvider):
(WebKit::NetworkRTCProvider::close):
(WebKit::NetworkRTCProvider::createSocket):
(WebKit::NetworkRTCProvider::createUDPSocket):
(WebKit::NetworkRTCProvider::createServerTCPSocket):
(WebKit::NetworkRTCProvider::createClientTCPSocket):
(WebKit::NetworkRTCProvider::wrapNewTCPConnection):
(WebKit::NetworkRTCProvider::sendToSocket):
(WebKit::NetworkRTCProvider::closeSocket):
(WebKit::NetworkRTCProvider::setSocketOption):
(WebKit::NetworkRTCProvider::addSocket):
(WebKit::NetworkRTCProvider::takeSocket):
(WebKit::NetworkRTCProvider::newConnection):
(WebKit::NetworkRTCProvider::dispatchToThread):

  • NetworkProcess/webrtc/NetworkRTCProvider.h:

(WebKit::NetworkRTCProvider::didReceiveNetworkRTCMonitorMessage):

  • NetworkProcess/webrtc/NetworkRTCProvider.messages.in:
  • NetworkProcess/webrtc/NetworkRTCSocket.cpp: Removed.
  • NetworkProcess/webrtc/NetworkRTCSocket.h: Removed.
  • NetworkProcess/webrtc/NetworkRTCSocket.messages.in: Removed.
  • SourcesCocoa.txt:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/webrtc/LibWebRTCSocket.cpp:

(WebKit::LibWebRTCSocket::SendTo):
(WebKit::LibWebRTCSocket::Close):
(WebKit::LibWebRTCSocket::SetOption):
(WebKit::LibWebRTCSocket::suspend):

Jun 30, 2020:

10:53 PM Changeset in webkit [263788] by weinig@apple.com
  • 40 edits
    2 adds in trunk

Split Color serialization out of Color classes
https://bugs.webkit.org/show_bug.cgi?id=213820

Reviewed by Darin Adler.

Source/WebCore:

Move all color serialization related functions out of the Color family
of classes, and into a standalone ColorSerialization.h

Now all color serialization calls one of the following three functions, depending on need:

  • serializationForCSS(...)
  • serializationForHTML(...)
  • serializationForRenderTreeAsText(...)

These are overload for all three Color classes (Color, SimpleColor and ExtendedColor) to
allow easy use without necessarily needing to construct another type.

  • Headers.cmake:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add new files.

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::inverseTransformColorIfNeeded):
(WebCore::StyleChange::extractTextStyles):

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange):

  • html/ColorInputType.cpp:

(WebCore::ColorInputType::didChooseColor):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::shadowColor const):

  • html/canvas/CanvasStyle.h:

(WebCore::CanvasStyle::color const):

  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
(WebCore::TextTrackCueGeneric::toJSON const):

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::buildArrayForCanvasGradient):

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::colorPropertyCSS const):

  • page/DragController.cpp:

(WebCore::DragController::concludeEditDrag):
(WebCore::DragController::insertDroppedImagePlaceholdersAtCaret):

  • platform/graphics/Color.cpp:

(WebCore::operator<<):
(WebCore::Color::serialized const): Deleted.
(WebCore::Color::cssText const): Deleted.
(WebCore::Color::nameForRenderTreeAsText const): Deleted.

  • platform/graphics/Color.h:
  • platform/graphics/ColorSerialization.cpp: Added.

(WebCore::decimalDigit):
(WebCore::fractionDigitsForFractionalAlphaValue):
(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):
(WebCore::serialization):

  • platform/graphics/ColorSerialization.h: Added.
  • platform/graphics/ExtendedColor.cpp:

(WebCore::ExtendedColor::cssText const): Deleted.

  • platform/graphics/ExtendedColor.h:
  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::dumpProperties const):

  • platform/graphics/InbandGenericCue.cpp:

(WebCore::InbandGenericCue::toJSONString const):

  • platform/graphics/SimpleColor.cpp:

(WebCore::SimpleColor::serializationForHTML const): Deleted.
(WebCore::decimalDigit): Deleted.
(WebCore::fractionDigitsForFractionalAlphaValue): Deleted.
(WebCore::SimpleColor::serializationForCSS const): Deleted.
(WebCore::SimpleColor::serializationForRenderTreeAsText const): Deleted.

  • platform/graphics/SimpleColor.h:
  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::externalRepresentation const):

  • platform/graphics/filters/FEFlood.cpp:

(WebCore::FEFlood::externalRepresentation const):

  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject):

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeRenderSVGTextBox):

  • svg/properties/SVGPropertyTraits.h:

(WebCore::SVGPropertyTraits<Color>::toString):

  • testing/Internals.cpp:

(WebCore::Internals::viewBaseBackgroundColor):
(WebCore::Internals::highlightPseudoElementColor):
(WebCore::Internals::systemColorForCSSValue):
(WebCore::Internals::focusRingColor):
Adopt new serialization functions.

Source/WebKit:

Adopt ColorSerialization.h serialization functions.

  • UIProcess/API/Cocoa/WKWebView.mm:

(dictionaryRepresentationForEditorState):

  • UIProcess/Cocoa/WebViewImpl.mm:

(-[WKTextTouchBarItemController _wkChangeColor:]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _setTextColorForWebView:sender:]):

  • UIProcess/ios/forms/WKFormColorPicker.mm:

(-[WKColorPicker setControlValueFromUIColor:]):

  • WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:

(WebKit::PDFPluginChoiceAnnotation::createAnnotationElement):

  • WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:

(WebKit::PDFPluginTextAnnotation::createAnnotationElement):

Source/WebKitLegacy/mac:

Adopt ColorSerialization.h serialization functions.

  • WebView/WebView.mm:

(-[WebTextTouchBarItemController _webChangeColor:]):

Tools:

  • TestWebKitAPI/Tests/WebCore/ExtendedColorTests.cpp:

(TestWebKitAPI::TEST):
Update tests to use ColorSerialization.h

10:35 PM Changeset in webkit [263787] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[WPE] Garden some failures and add new section to expectation

Start new sections for triaged tests like GTK and GLib.

Unreviewed test gardening.

  • platform/wpe/TestExpectations:
10:21 PM Changeset in webkit [263786] by ggaren@apple.com
  • 2 edits in trunk/Source/WebKit

[Cocoa] [GTK] RunLoop::Timer::isActive() is incorrect for timers while they are firing
https://bugs.webkit.org/show_bug.cgi?id=213771

Unreviewed assertion fix.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::timeOutTimerFired): Removed this ASSERT.
One-shot timers are not active while they are firing.

10:10 PM Changeset in webkit [263785] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[WinCairo] Unreviewed build fix after r263776

WebCore\platform\graphics\ColorUtilities.h(67): error C2039: 'lround': is not a member of 'std'

  • platform/graphics/ColorUtilities.h: Include <cmath> for std::lround.
7:35 PM Changeset in webkit [263784] by Wenson Hsieh
  • 4 edits in trunk

Several key event tests in fast/events/ios are failing after <rdar://problem/62197116>
https://bugs.webkit.org/show_bug.cgi?id=213821
<rdar://problem/64821309>

Reviewed by Megan Gardner.

Source/WebKit:

Add an SPI method declaration.

  • Platform/spi/ios/UIKitSPI.h:

Tools:

After the UIKit changes in <rdar://problem/62197116>, double tapping the Option key now enters dictation mode
by default, and additionally displays a modal popup prompting the user to set up dictation. Both of these
behaviors interfere with layout tests that attempt to press the option key twice in rapid succession, causing
them to time out or fail.

Fix this by setting the default that determines the modifier key to use as the dictation shortcut to -1, which
disables the dictation keyboard shortcut altogether.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

7:17 PM Changeset in webkit [263783] by ggaren@apple.com
  • 5 edits in trunk

[Cocoa] [GTK] RunLoop::Timer::isActive() is incorrect for timers while they are firing
https://bugs.webkit.org/show_bug.cgi?id=213771

Reviewed by Darin Adler.

Source/WTF:

I noticed this because it triggered an assertion failure in
BackgroundProcessResponsivenessTimer::scheduleNextResponsivenessCheck().

In WebKit timer parlance "isActive()" means "will fire again", so a
one-shot timer should report inactive right when it fires. Otherwise,
there's no way to check if it needs to be rescheduled.

  • wtf/cf/RunLoopCF.cpp:

(WTF::RunLoop::TimerBase::timerFired): For one-shot timers, stop our
timer before it fires, so that we know it is not active.

  • wtf/glib/RunLoopGLib.cpp:

(WTF::RunLoop::TimerBase::TimerBase): For repeating timers, reschedule
our timer before it fires, so that we know it is active.

Tools:

  • TestWebKitAPI/Tests/WTF/RunLoop.cpp:

(TestWebKitAPI::DerivedOneShotTimer::fired):
(TestWebKitAPI::DerivedRepeatingTimer::fired):

6:52 PM Changeset in webkit [263782] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

[WebAuthn] Remove whitelistedRpId
https://bugs.webkit.org/show_bug.cgi?id=213817
<rdar://problem/60108131>

Reviewed by Geoffrey Garen.

Remove the whitelist such that we can test the attestation service in a wider range.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
(WebKit::LocalAuthenticatorInternal::whitelistedRpId): Deleted.

6:08 PM Changeset in webkit [263781] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

Fix Swift overlay build after r263727.
<rdar://problem/64962370> and https://bugs.webkit.org/show_bug.cgi?id=213823

Reviewed by Darin Adler.

No new tests (No behavior change).

Adapt the Swift overlay refinemnt to handle the inFrame: argument for these methods.

  • UIProcess/API/Cocoa/WebKitSwiftOverlay.swift:

(callAsyncJavaScript(_:arguments:in:in:completionHandler:Error:)):
(evaluateJavaScript(_:in:in:completionHandler:Error:)):
(callAsyncJavaScript(_:arguments:in:completionHandler:Error:)): Deleted.
(evaluateJavaScript(_:in:completionHandler:Error:)): Deleted.

6:06 PM Changeset in webkit [263780] by Kate Cheney
  • 5 edits in trunk/Source/WebKitLegacy/mac

Remove NeedsInAppBrowserPrivacyQuirks flag from WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=213802
<rdar://problem/64945642>

Reviewed by Darin Adler.

This feature is for testing only and is not needed in WebKitLegacy.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences needsInAppBrowserPrivacyQuirks]): Deleted.
(-[WebPreferences setNeedsInAppBrowserPrivacyQuirks:]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

5:41 PM Changeset in webkit [263779] by Alan Coon
  • 1 copy in tags/Safari-610.1.18.20.3

Tag Safari-610.1.18.20.3.

5:15 PM Changeset in webkit [263778] by Alan Coon
  • 8 edits in branches/safari-610.1.18.20-branch/Source

Versioning.

WebKit-610.1.18.20.3

4:11 PM Changeset in webkit [263777] by Andres Gonzalez
  • 5 edits in trunk

Code cleanup in AccessibilityMenuList.cpp and AXIsolatedTree.h.
https://bugs.webkit.org/show_bug.cgi?id=213806

Reviewed by Darin Adler.

.:

  • WebKit.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:

Source/WebCore:

No change in functionality.
Minor code cleanup pointed out by Darin Adler in reviews for bug 209169 and bug 213575.

  • accessibility/AccessibilityMenuList.cpp:

(WebCore::AccessibilityMenuList::isCollapsed const):

  • accessibility/isolatedtree/AXIsolatedTree.h:
3:50 PM Changeset in webkit [263776] by weinig@apple.com
  • 14 edits
    2 adds in trunk/Source/WebCore

Move Color blending related functions to their own files
https://bugs.webkit.org/show_bug.cgi?id=213742

Reviewed by Dean Jackson.

  • Moves Color::blend(const Color&), Color::blendWithWhite(), blend(const Color&, const Color&, double) and blendWithoutPremultiply(const Color&, const Color&, double) to their own files: ColorBlending.h/cpp
  • Renames Color::blend(const Color&) to blendSourceOver(const Color&, const Color&)
  • Renames Color::blendWithWhite() to blendWithWhite(const Color&).
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add new files.

  • platform/graphics/Color.cpp:

(WebCore::Color::blend const): Deleted.
(WebCore::Color::blendWithWhite const): Deleted.
(WebCore::blend): Deleted.
(WebCore::blendWithoutPremultiply): Deleted.

  • platform/graphics/Color.h:
  • platform/graphics/ColorBlending.cpp: Copied from Source/WebCore/platform/graphics/Color.cpp.
  • platform/graphics/ColorBlending.h: Added.

Move declarations / implementations from Color.h/cpp to ColorBlending.h/cpp.

  • css/CSSGradientValue.cpp:
  • editing/FrameSelection.cpp:

(WebCore::CaretBase::computeCaretColor):

  • page/FrameView.cpp:

(WebCore::FrameView::documentBackgroundColor const):

  • page/TextIndicator.cpp:

(WebCore::estimatedBackgroundColorForRange):

  • page/animation/CSSPropertyAnimation.cpp:
  • platform/graphics/filters/FilterOperation.cpp:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::getItemBackgroundColor const):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::transformSelectionBackgroundColor const):
Update for new signatures and #include ColorBlending.h as neeeded.

3:43 PM Changeset in webkit [263775] by weinig@apple.com
  • 4 edits
    2 moves in trunk/Source/WebCore

Rename ManifestParser.h/cpp to ApplicationCacheManifestParser.h/cpp to make it clear its not the ApplicationManifestParser (a different thing entirely)
https://bugs.webkit.org/show_bug.cgi?id=213815

Reviewed by Darin Adler.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/appcache/ApplicationCacheGroup.cpp:
  • loader/appcache/ApplicationCacheManifestParser.cpp: Copied from Source/WebCore/loader/appcache/ManifestParser.cpp.
  • loader/appcache/ApplicationCacheManifestParser.h: Copied from Source/WebCore/loader/appcache/ManifestParser.h.
  • loader/appcache/ManifestParser.cpp: Removed.
  • loader/appcache/ManifestParser.h: Removed.
3:21 PM Changeset in webkit [263774] by beidson@apple.com
  • 12 edits in trunk

App-bound JavaScript and Navigation failures should have specific error codes.
<rdar://problem/64940268> and https://bugs.webkit.org/show_bug.cgi?id=213808

Reviewed by Tim Hatcher.
(Informally by Kate Cheney)

Source/WebCore:

Covered by API tests.

  • bindings/js/ExceptionDetails.h:

Source/WebKit:

  • UIProcess/API/Cocoa/WKError.h:
  • UIProcess/API/Cocoa/WKError.mm:

(localizedDescriptionForErrorCode):

  • UIProcess/API/Cocoa/WKWebView.mm:

(nsErrorFromExceptionDetails):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::errorForUnpermittedAppBoundDomainNavigation):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScript):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(TEST):

3:18 PM Changeset in webkit [263773] by pvollan@apple.com
  • 10 edits in trunk/Source

[macOS] Connections to the preference daemon are established before entering the sandbox
https://bugs.webkit.org/show_bug.cgi?id=213379

Reviewed by Darin Adler.

Source/WebCore/PAL:

Use correct parameter types in _CFPrefsSetDirectModeEnabled and _CFPrefsSetReadOnly, and move
_CFPrefsSetDirectModeEnabled inside an Objective-C guard, since BOOL only seems to be a builtin
type in Objective-C.

  • pal/spi/cf/CFUtilitiesSPI.h:

Source/WebKit:

On macOS, connections to the preference daemon are established before entering the sandbox. These connections also persist
after entering the sandbox and denying access to the preference daemon. There should not be attempts to connect to the
preference daemon before entering the sandbox, since these attempts will not be stopped by the sandbox. This patch moves
code that connects to the preference daemon to be executed after the sandbox has been entered. That includes code to
prevent connections to the Dock and code to initialize WebKit logging. Also, instead of calling [NSBundle bundleForClass:],
call [NSBundle bundleWithIdentifier:], since calling [NSBundle bundleForClass:] will connect to the preference daemon.
Finally, allow the syscall SYS_gethostuuid, since that is needed by CoreFoundation when there is no access to the
preference daemon.

No new tests. This should be covered by existing tests. It would be nice to have a test to make sure that there are no
connections to the preference daemon just before entering the sandbox, but I am not aware of how to implement this.

  • NetworkProcess/mac/NetworkProcessMac.mm:

(WebKit::NetworkProcess::initializeSandbox):

  • Shared/AuxiliaryProcess.cpp:

(WebKit::AuxiliaryProcess::initialize):

  • Shared/Cocoa/WebKit2InitializeCocoa.mm:

(WebKit::runInitializationCode):

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceMain):

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::webKit2Bundle):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::initializeSandbox):

  • WebProcess/com.apple.WebProcess.sb.in:
3:01 PM Changeset in webkit [263772] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Partially revert r257135 now that the underlying bug is resolved
https://bugs.webkit.org/show_bug.cgi?id=213814
<rdar://problem/59859573>

Reviewed by Per Arne Vollan.

This patch is a partial revert of the code change in Bug 208033, where a temporary
workaround was added for a bug in an underlying framework. Now that the bug has been
fixed, we can remove this workaround.

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::gpuProcessSessionParameters):

2:17 PM Changeset in webkit [263771] by mark.lam@apple.com
  • 11 edits
    3 adds in trunk

Add handling for a case of OOME in CSSTokenizer and CSSParser.
https://bugs.webkit.org/show_bug.cgi?id=213702
<rdar://problem/64808889>

Reviewed by Darin Adler.

Source/WebCore:

We add a bool* constructionSuccess feedback argument to the private CSSTokenizer
constructor. If construction fails and constructionSuccess is provided, the
constructor will set *constructionSuccess to false. If construction fails and
constructionSuccess is not provided, the constructor will crash with a failed
RELEASE_ASSERT. In other words, the client may opt in to handle the failure to
construct if it doesn't want the default behavior of crashing on failure.

We also provide 2 convenience factory methods for CSSTokenizer which will return
a null std::unique_ptr<CSSTokenizer> if construction fails. This is currently
only used by CSSParserImpl, and ensures that its m_tokenizer is null if we fail to
construct. This ensures that there isn't a pointer to a partially constructed
tokenizer that some code may unknowingly use.

The reason we don't force all clients of CSSTokenizer to use the factory methods
instead is because there are clients that currently use on-stack instantiations
of CSSTokenizer to do their work. We don't want to force them to switch to using
a malloc instance. Currently, the constructors used by those clients do not
provide a constructionSuccess argument to the underlying private constructor.
Hence, for them, the CSSTokenizer constructor will crash if construction fails,
which is how things work in pre-existing code. The only difference is that
the crash is deferred till the client attempts to use the tokenizer instead of at
construction time.

As of this patch, only CSSParser::parseSupportsCondition() makes use of the new
feedback mechanism, and handles OOME during CSSTokenizer construction by
interpreting it as CSS not supporting the passed in condition string.

Test: css3/out-of-memory-in-css-tokenizer.html

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseSupportsCondition):

  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::CSSParserImpl):
(WebCore::CSSParserImpl::failed const):

  • css/parser/CSSParserImpl.h:
  • css/parser/CSSTokenizer.cpp:

(WebCore::CSSTokenizer::CSSTokenizer):

  • css/parser/CSSTokenizer.h:

(WebCore::CSSTokenizer::failed const):

Source/WTF:

  1. Added FailureAction so that we can parameterize how we want to handle failures. In this patch, we're only using this for allocation failures, but we could technically apply this to other types of failures as well.
  1. Apply FailureAction to many methods in Vector (and its super classes) so that we can start de-duplicating code. Previously, we were always duplicating code just to have a "try" version of the same method that reports the failure to allocate instead of crashing. We can now parameterize all these methods on a FailureAction template parameter instead, and avoid the code duplication. This patch also reverses some of the existing code duplication.
  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/FailureAction.h: Added.
  • wtf/Vector.h:

(WTF::VectorBufferBase::allocateBuffer):
(WTF::VectorBufferBase::tryAllocateBuffer):
(WTF::VectorBuffer::allocateBuffer):
(WTF::VectorBuffer::tryAllocateBuffer):
(WTF::Vector::reserveCapacity):
(WTF::Vector::tryReserveCapacity):
(WTF::Vector::reserveInitialCapacity):
(WTF::Vector::tryReserveInitialCapacity):
(WTF::Vector::append):
(WTF::Vector::tryAppend):
(WTF::Vector::constructAndAppend):
(WTF::Vector::tryConstructAndAppend):
(WTF::Vector::expandCapacity):
(WTF::Vector::resize):
(WTF::Vector::grow):
(WTF::Vector::reserveCapacity):
(WTF::Vector::reserveInitialCapacity):
(WTF::Vector::append):
(WTF::Vector::constructAndAppend):
(WTF::Vector::appendSlowCase):
(WTF::Vector::constructAndAppendSlowCase):
(WTF::Vector::appendVector):
(WTF::Vector::insert):
(WTF::Vector::tryExpandCapacity): Deleted.
(WTF::Vector::tryReserveCapacity): Deleted.
(WTF::Vector::tryAppend): Deleted.
(WTF::Vector::tryConstructAndAppend): Deleted.
(WTF::Vector::tryConstructAndAppendSlowCase): Deleted.

LayoutTests:

  • css3/out-of-memory-in-css-tokenizer-expected.txt: Added.
  • css3/out-of-memory-in-css-tokenizer.html: Added.
1:58 PM Changeset in webkit [263770] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for fast/attachment/attachment-folder-icon.html as it is passing.
https://bugs.webkit.org/show_bug.cgi?id=213813

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-06-30

  • platform/ios/TestExpectations:
1:55 PM Changeset in webkit [263769] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for editing/style/push-down-font-styles-win.html and editing/style/push-down-implicit-styles-around-list-win.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213812

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-06-30

  • platform/ios-wk2/TestExpectations:
1:37 PM Changeset in webkit [263768] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for css3/filters/null-effect-check.html as it is passing.
https://bugs.webkit.org/show_bug.cgi?id=213810

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-06-30

  • platform/ios-wk2/TestExpectations:
1:31 PM Changeset in webkit [263767] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for editing/inserting/insert-paragraph-selection-outside-contenteditable.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213811

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-06-30

  • platform/ios-simulator-wk2/TestExpectations:
1:08 PM Changeset in webkit [263766] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectations for <canvas/philip/tests/2d.gradient.radial.touch1.html and canvas/philip/tests/2d.gradient.radial.touch2.html and canvas/philip/tests/2d.gradient.radial.touch3.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213800

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-06-30

  • platform/ios/TestExpectations:
12:52 PM Changeset in webkit [263765] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Stop blocking two audio-related user client classes
https://bugs.webkit.org/show_bug.cgi?id=213807
<rdar://problem/64874902>

Reviewed by Per Arne Vollan.

Restore IOAudioControlUserClient and IOAudioEngineUserClient since we find them being
actively used on macOS for some media playback purposes.

  • WebProcess/com.apple.WebProcess.sb.in:
12:41 PM Changeset in webkit [263764] by Peng Liu
  • 14 edits in trunk

Enable the support of FULLSCREEN_API in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=213774

Reviewed by Youenn Fablet.

Replace the definition of ENABLE_FULLSCREEN_API in FeatureDefines.xcconfig with
the one in PlatformEnableCocoa.h. We have to do that because WebKitTestRunner
does not have a FeatureDefines.xcconfig but it uses "ENABLE(FULLSCREEN_API)"
to conditionally compile code to test the element fullscreen API.
WebKitTestRunner can use the macro defined in PlatformEnableCocoa.h.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/PlatformEnableCocoa.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
12:14 PM Changeset in webkit [263763] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for compositing/contents-scale/rasterization-scale.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213805

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-06-30

  • platform/ios-wk2/TestExpectations:
12:05 PM Changeset in webkit [263762] by dbates@webkit.org
  • 36 edits
    3 copies
    3 adds in trunk

[iOS] Editable regions causes ~1% slowdown in PLT5
https://bugs.webkit.org/show_bug.cgi?id=213659
<rdar://problem/64361390>

Reviewed by Simon Fraser.

Source/WebCore:

Fix the slowdown by only enabling editable region when Page::editableElementsInRect is called.

There are two parts that make computing the editable region expensive:

  1. Requires traversing descendents during painting when a normal paint may be able to avoid this.
  2. Can cause more event region invalidations because it extends the invalidation criterion to include changes to element editability.

Tests: editing/editable-region/hit-test-basic-without-editable-region.html

editing/editable-region/iframe-without-editable-region.html
editing/editable-region/text-field-basic-without-editable-region.html

Tests: editing/editable-region/hit-test-basic-without-editable-region.html

editing/editable-region/iframe-without-editable-region.html
editing/editable-region/text-field-basic-without-editable-region.html

  • page/Frame.cpp:

(WebCore::Frame::invalidateContentEventRegionsIfNeeded): Check if editable region is enabled.
If it is then do what we do now. Otherwise, don't invalidate the region unless we were going
to do so anyway.

  • page/Page.cpp:

(WebCore::Page::setEditableRegionEnabled): Added. Update state and then invalidate
the event region in all layers.
(WebCore::Page::shouldBuildEditableRegion const): Added. Returns whether to build the
editable region: either when Page::isEditableRegionEnabled() is true or the editable
region debug overlay is enabled.
(WebCore::Page::didFinishLoad): Turn off editable region as it may not be needed on
the new page.

  • page/Page.h:

(WebCore::Page::isEditableRegionEnabled const): Added.

  • rendering/EventRegion.cpp:

(WebCore::EventRegion::unite):
(WebCore::EventRegion::translate):
(WebCore::EventRegion::containsEditableElementsInRect const):
(WebCore::EventRegion::dump const):

  • rendering/EventRegion.h:

(WebCore::EventRegion::hasEditableRegion const):
(WebCore::EventRegion::rectsForEditableElements const):
(WebCore::EventRegion::decode):
(WebCore::EventRegion::ensureEditableRegion):
The editable region is now an Optional<>. There will only be one if ensureEditableRegion
was called, which is only when Page::isEditableRegionEnabled() returns true.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintObject):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::maintainsEventRegion const):
Only do what we do now if Page::shouldBuildEditableRegion() returns true.

(WebCore::RenderLayerBacking::updateEventRegion): Instantiate the editable region, if needed.
Painting will then populate it.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::applyToCompositedLayerIncludingDescendants): Added.
(WebCore::RenderLayerCompositor::invalidateEventRegionForAllLayers): Added.
(WebCore::RenderLayerCompositor::clearBackingForAllLayers): Wrote in terms of applyToCompositedLayerIncludingDescendants.
(WebCore::RenderLayerCompositor::clearBackingForLayerIncludingDescendants): Deleted.

  • rendering/RenderLayerCompositor.h:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::setEditableRegionEnabled):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Add a new internal setting for testing purposes to toggle enabling/disabling editable region.

Source/WebKit:

Fix up RemoteLayerTreeViews now that the editable region is an Optional<>. Have
the UI process message the web process to enable editable region on the first
invocation of _requestTextInputContextsInRect, which is good indicator that there
would be benefit to computing it as a typical client that calls it will call it
many times.

  • UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:

(WebKit::mayContainEditableElementsInRect): Fix up the logic now that there may
be not be an editable region sent over in the last event region update. If there
isn't one then we don't know if there are editable elements in the rect of not.
So, return true, which could turn out to be a false positive if there aren't any
editable elements in the rect. The caller will have to message the web process
to find out the real answer if they want it. Just to clarify, it's OK for this
function to have false positives, but it must never have false negatives.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::textInputContextsInRect): Enable editable region. If it's already
enabled then doing so again does nothing.

LayoutTests:

Add some tests to ensure the new setting works and the feature can be disabled. Note
that the setting is enabled by default to keep the current behavior. See the WebCore
ChangeLog entry for more details.

Update existings tests that need the editable region enabled to enable it now that it must
be explicitly enabled.

  • editing/editable-region/fixed-and-absolute-contenteditable-scrolled.html:
  • editing/editable-region/float-contenteditable.html:
  • editing/editable-region/hit-test-basic-without-editable-region-expected.txt: Added.
  • editing/editable-region/hit-test-basic-without-editable-region.html: Copied from LayoutTests/editing/editable-region/hit-test-basic.html.
  • editing/editable-region/hit-test-basic.html:
  • editing/editable-region/hit-test-editable-document-element.html:
  • editing/editable-region/hit-test-fixed.html:
  • editing/editable-region/hit-test-overlap.html:
  • editing/editable-region/hit-test-textarea-empty-space.html:
  • editing/editable-region/iframe-without-editable-region-expected.txt: Added.
  • editing/editable-region/iframe-without-editable-region.html: Copied from LayoutTests/editing/editable-region/iframe.html.
  • editing/editable-region/iframe.html:
  • editing/editable-region/out-hanging-child-of-contenteditable.html:
  • editing/editable-region/overflow-scroll-text-field-and-contenteditable.html:
  • editing/editable-region/relative-inside-fixed-contenteditable-scrolled.html:
  • editing/editable-region/relative-inside-transformed-contenteditable.html:
  • editing/editable-region/search-field-basic.html:
  • editing/editable-region/text-field-basic-without-editable-region-expected.txt: Added.
  • editing/editable-region/text-field-basic-without-editable-region.html: Copied from LayoutTests/editing/editable-region/text-field-basic.html.
  • editing/editable-region/text-field-basic.html:
  • editing/editable-region/text-field-inside-composited-negative-z-index-layer.html:
  • editing/editable-region/textarea-basic.html:
  • editing/editable-region/transformed-scrolled-on-top-of-fixed-contenteditables.html:
11:22 AM Changeset in webkit [263761] by graouts@webkit.org
  • 3 edits in trunk/LayoutTests

[iOS] Test landed flaky: webanimations/accelerated-animation-with-easing.html
https://bugs.webkit.org/show_bug.cgi?id=213758
<rdar://problem/64911008>

Reviewed by Dean Jackson.

Adding a little tolerance which seems to address the reported flakiness, at least locally.

  • platform/ios/TestExpectations:
  • webanimations/accelerated-animation-with-easing.html:
10:53 AM Changeset in webkit [263760] by Peng Liu
  • 6 edits in trunk/Source

Scrunching a video to PiP can result in broken animation and leave Safari in a bad state
https://bugs.webkit.org/show_bug.cgi?id=213175

Reviewed by Jer Noble.

Source/WebCore:

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setVideoFullscreenStandby):
(WebCore::HTMLMediaElement::setVideoFullscreenStandby):
The "standby" state is relevant to a video element only when its presentation mode is VideoFullscreenModeNone.

  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::exitFullscreen):
(VideoFullscreenInterfaceAVKit::cleanupFullscreen):
Add a flag m_enteringPictureInPicture. Function exitFullscreen() and cleanupFullscreen() will check
m_enteringPictureInPicture and they will abort the process to exit fullscreen/picture-in-picture if the flag
is true. However, VideoFullscreenManager will retry to exit fullscreen/picture-in-picture after it confirms that
the previous starting picture-in-picture process is completed.

(VideoFullscreenInterfaceAVKit::willStartPictureInPicture):
Set the flag m_enteringPictureInPicture.

(VideoFullscreenInterfaceAVKit::didStartPictureInPicture):
Call m_fullscreenChangeObserver->didEnterFullscreen() if the entering picture-in-picture process is
started by the UI process (e.g., swipe-up gesture).
Clear m_standby and m_enteringPictureInPicture after the video element enters picture-in-picture.

Source/WebKit:

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController _completedExitFullScreen]):
Update _exitRequested after exiting fullscreen to make sure the following
enter fullscreen request can be processed.
(-[WKFullScreenWindowController _dismissFullscreenViewController]):
Make sure _completedExitFullScreen function will always execute.
(-[WKFullScreenWindowController _interactivePinchDismissChanged:]):
Remove a function call which corrupts the state machine under stress test.

10:26 AM Changeset in webkit [263759] by commit-queue@webkit.org
  • 18 edits
    5 deletes in trunk

Remove WTF::MD5
https://bugs.webkit.org/show_bug.cgi?id=213766

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-30
Reviewed by Youenn Fablet.

Source/WebCore:

  • Modules/websockets/WebSocketHandshake.cpp:
  • platform/network/curl/CurlCacheEntry.cpp:

(WebCore::CurlCacheEntry::generateBaseFilename):

Source/WTF:

It was only used for CURL's cache file name generation.
If you want to use a broken hash function, use SHA1.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/MD5.cpp: Removed.
  • wtf/MD5.h: Removed.

Tools:

  • DumpRenderTree/PlatformWin.cmake:
  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/MD5.cpp: Removed.
  • WebKitTestRunner/cg/TestInvocationCG.cpp:

(WTR::computeSHA1HashStringForContext):
(WTR::TestInvocation::dumpPixelsAndCompareWithExpected):
(WTR::computeMD5HashStringForContext): Deleted.

10:16 AM Changeset in webkit [263758] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Set runtime flag m_isWebRTCPlatformCodecsInGPUProcessEnabled to false by default
https://bugs.webkit.org/show_bug.cgi?id=213779

Reviewed by Alex Christensen.

No change of behavior since this flag is WebKit 2 only and off by default.
Move off by default WebRTC flags at the end of the section.

  • page/RuntimeEnabledFeatures.h:
9:54 AM Changeset in webkit [263757] by Jason_Lawrence
  • 14 edits
    2 deletes in trunk/Source/WebCore

Unreviewed, reverting r263753.

This commit caused build failures across multiple platforms.

Reverted changeset:

"Move Color blending related functions to their own files"
https://bugs.webkit.org/show_bug.cgi?id=213742
https://trac.webkit.org/changeset/263753

9:36 AM Changeset in webkit [263756] by Alan Coon
  • 1 copy in tags/Safari-610.1.19.1

Tag Safari-610.1.19.1.

9:35 AM Changeset in webkit [263755] by Alan Coon
  • 2 edits in branches/safari-610.1.19-branch/Source/WebKit

Cherry-pick r263462. rdar://problem/64941936

Fix the build once RBSProcessLimitations.h is introduced
https://bugs.webkit.org/show_bug.cgi?id=213562

Reviewed by Wenson Hsieh.

  • Platform/spi/ios/RunningBoardServicesSPI.h: We can't forward-declare Objective-C SPI if it actually exists without inspiring duplicate definition errors.

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

9:34 AM Changeset in webkit [263754] by Alan Coon
  • 8 edits in branches/safari-610.1.19-branch/Source

Versioning.

WebKit-610.1.19.1

9:11 AM Changeset in webkit [263753] by weinig@apple.com
  • 14 edits
    1 copy
    1 add in trunk/Source/WebCore

Move Color blending related functions to their own files
https://bugs.webkit.org/show_bug.cgi?id=213742

Reviewed by Dean Jackson.

  • Moves Color::blend(const Color&), Color::blendWithWhite(), blend(const Color&, const Color&, double) and blendWithoutPremultiply(const Color&, const Color&, double) to their own files: ColorBlending.h/cpp
  • Renames Color::blend(const Color&) to blendSourceOver(const Color&, const Color&)
  • Renames Color::blendWithWhite() to blendWithWhite(const Color&).
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add new files.

  • platform/graphics/Color.cpp:

(WebCore::Color::blend const): Deleted.
(WebCore::Color::blendWithWhite const): Deleted.
(WebCore::blend): Deleted.
(WebCore::blendWithoutPremultiply): Deleted.

  • platform/graphics/Color.h:
  • platform/graphics/ColorBlending.cpp: Copied from Source/WebCore/platform/graphics/Color.cpp.
  • platform/graphics/ColorBlending.h: Added.

Move declarations / implementations from Color.h/cpp to ColorBlending.h/cpp.

  • css/CSSGradientValue.cpp:
  • editing/FrameSelection.cpp:

(WebCore::CaretBase::computeCaretColor):

  • page/FrameView.cpp:

(WebCore::FrameView::documentBackgroundColor const):

  • page/TextIndicator.cpp:

(WebCore::estimatedBackgroundColorForRange):

  • page/animation/CSSPropertyAnimation.cpp:
  • platform/graphics/filters/FilterOperation.cpp:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::getItemBackgroundColor const):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::transformSelectionBackgroundColor const):
Update for new signatures and #include ColorBlending.h as neeeded.

8:56 AM Changeset in webkit [263752] by graouts@webkit.org
  • 2 edits in trunk/Source/WebKit

[iOS] Crash under WebKit::WebPage::getFocusedElementInformation()
https://bugs.webkit.org/show_bug.cgi?id=213798
<rdar://problem/62754594>

Reviewed by Wenson Hsieh.

Since LabelableElement::labels() returns a RefPtr<NodeList>, ensure we get a value before attempting to read data from it.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getFocusedElementInformation):

8:47 AM Changeset in webkit [263751] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectations for canvas/philip/tests/2d.gradient.radial.cone.bottom.html and canvas/philip/tests/2d.gradient.radial.cone.cylinder.html and canvas/philip/tests/2d.gradient.radial.cone.front.html and canvas/philip/tests/2d.gradient.radial.cone.shape1.html and canvas/philip/tests/2d.gradient.radial.cone.top.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213799

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-06-30

  • platform/ios/TestExpectations:
8:22 AM Changeset in webkit [263750] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for canvas/philip/tests/2d.drawImage.animated.gif.html as they are passing.
https://bugs.webkit.org/show_bug.cgi?id=213797

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-06-30

  • platform/ios/TestExpectations:
7:48 AM Changeset in webkit [263749] by Jonathan Bedard
  • 2 edits in trunk/Tools

[TestExpectations] Add architecture for Apple's ports
https://bugs.webkit.org/show_bug.cgi?id=213769
<rdar://problem/64920013>

Rubber-stamped by Aakash Jain.

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

(TestExpectationParser): Add architectures for Apple's ports.

7:48 AM Changeset in webkit [263748] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Gardened failures from EWS GTK-WK2 queue.

  • platform/gtk/TestExpectations:
7:23 AM Changeset in webkit [263747] by Jason_Lawrence
  • 3 edits in trunk/LayoutTests

[ iOS Debug and Mojave Debug ] http/tests/storage/storage-map-leaking.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=213795

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
7:08 AM Changeset in webkit [263746] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Remove expectation for svg/custom/subpaths-moveto-only-rendering.svg as it is passing.
https://bugs.webkit.org/show_bug.cgi?id=213790

Unreviewed test gardening.

Patch by Karl Rackler <Karl Rackler> on 2020-06-30

  • platform/mac/TestExpectations:
6:59 AM Changeset in webkit [263745] by aestes@apple.com
  • 27 edits in trunk

[Xcode] Enable the "My Mac (Mac Catalyst)" destination in WebKit Xcode projects
https://bugs.webkit.org/show_bug.cgi?id=213740

Reviewed by Darin Adler.

Source/bmalloc:

  • Configurations/Base.xcconfig: Set SUPPORTS_MACCATALYST to YES to tell Xcode that this

project supports building for Mac Catalyst.

Source/JavaScriptCore:

  • Configurations/Base.xcconfig: Set SUPPORTS_MACCATALYST to YES to tell Xcode that this

project supports building for Mac Catalyst.

Source/ThirdParty:

  • gtest/xcode/Config/General.xcconfig: Set SUPPORTS_MACCATALYST to YES to tell Xcode that

this project supports building for Mac Catalyst.

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig: Set SUPPORTS_MACCATALYST to YES to tell Xcode that this

project supports building for Mac Catalyst.

Source/WebCore:

  • Configurations/Base.xcconfig: Set SUPPORTS_MACCATALYST to YES to tell Xcode that this

project supports building for Mac Catalyst.

Source/WebCore/PAL:

  • Configurations/Base.xcconfig: Set SUPPORTS_MACCATALYST to YES to tell Xcode that this

project supports building for Mac Catalyst.

Source/WebInspectorUI:

  • Configurations/Base.xcconfig: Set SUPPORTS_MACCATALYST to YES to tell Xcode that this

project supports building for Mac Catalyst.

Source/WebKit:

  • Configurations/Base.xcconfig: Set SUPPORTS_MACCATALYST to YES to tell Xcode that this

project supports building for Mac Catalyst.

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig: Set SUPPORTS_MACCATALYST to YES to tell Xcode that this

project supports building for Mac Catalyst.

Source/WTF:

  • Configurations/Base.xcconfig: Set SUPPORTS_MACCATALYST to YES to tell Xcode that this

project supports building for Mac Catalyst.

Tools:

  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • ImageDiff/cg/Configurations/Base.xcconfig:
  • MiniBrowser/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/Base.xcconfig: Set SUPPORTS_MACCATALYST to YES to tell

Xcode that these projects support building for Mac Catalyst.

  • MiniBrowser/Configurations/MiniBrowser.xcconfig: Excluded all source files on Mac Catalyst

so that schemes that include MiniBrowser can build for Mac Catalyst.

5:10 AM Changeset in webkit [263744] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Update test expectations after r263737.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
5:09 AM Changeset in webkit [263743] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

[WPE][GTK] Port API test harness to Python3
https://bugs.webkit.org/show_bug.cgi?id=213784

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-30
Reviewed by Carlos Alberto Lopez Perez.

At least now the import chain starting from run-gtk-tests succeeds when the host Python
version is 3. Within the SDK the harness is still executed under Python2 though, for now.

  • Scripts/run-gtk-tests:

(GtkTestRunner._setup_testing_environment):

  • glib/api_test_runner.py:

(TestRunner._run_test_qt):

  • glib/glib_test_runner.py:

(GLibTestRunner._read_from_pipe):
(GLibTestRunner._read_from_stderr):

  • jhbuild/jhbuildutils.py:
4:52 AM Changeset in webkit [263742] by Jonathan Bedard
  • 3 edits in trunk/Tools

[webkitperl] nativeArchitecture() needs to support remote devices
https://bugs.webkit.org/show_bug.cgi?id=213727
<rdar://problem/64892021>

Reviewed by Aakash Jain.

  • Scripts/run-javascriptcore-tests: Determine the machine actually running tests and pass

that to nativeArchitecture(...).
(runTest): Pass nativeTarget and nativePort.
(runJSCStressTests): Ditto.

  • Scripts/webkitdirs.pm:

(determineNativeArchitecture): Native architecture is dependent on the target device.
(determineArchitecture): Call nativeArchitecture() instead of accessing the variable directly.
(nativeArchitecture): Ensure that we return only the architecture of the specified target.

4:34 AM Changeset in webkit [263741] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[GTK] Unreviewed API test gardening. Update test expectations after r263738.

  • TestWebKitAPI/glib/TestExpectations.json:
4:03 AM Changeset in webkit [263740] by commit-queue@webkit.org
  • 2 edits
    2 adds in trunk/Tools

[Flatpak SDK] Add libserf
https://bugs.webkit.org/show_bug.cgi?id=213682

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-30
Reviewed by Carlos Alberto Lopez Perez.

Subversion depends on SERF, which requires SCons for its build (the SERF CMake support is
incomplete)...

  • buildstream/elements/sdk-build-depends/scons.bst: Added.
  • buildstream/elements/sdk/libserf.bst: Added.
  • buildstream/elements/sdk/subversion.bst:
3:40 AM Changeset in webkit [263739] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Upload test expectations after r263737.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
3:19 AM Changeset in webkit [263738] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WPE][GTK] Update stale comment in UserAgentGLib.cpp
https://bugs.webkit.org/show_bug.cgi?id=213749

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-30
Reviewed by Adrian Perez de Castro.

Remove outdated comment.

  • platform/glib/UserAgentGLib.cpp:

(WebCore::platformVersionForUAString):

2:29 AM Changeset in webkit [263737] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Update test expectations after r263734.

  • platform/glib/TestExpectations:
2:26 AM Changeset in webkit [263736] by commit-queue@webkit.org
  • 24 edits in trunk/Source

Unreviewed, reverting r263724.
https://bugs.webkit.org/show_bug.cgi?id=213781

Reverted changeset:

"Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to
replace _WKProcessPoolConfiguration.hstsStorageDirectory"
https://bugs.webkit.org/show_bug.cgi?id=213048
https://trac.webkit.org/changeset/263724

1:20 AM Changeset in webkit [263735] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update expectations after r263733.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
12:19 AM Changeset in webkit [263734] by youenn@apple.com
  • 31 edits
    2 adds in trunk

Add VP9 WebRTC codec runtime flag
https://bugs.webkit.org/show_bug.cgi?id=213724

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Update WebKit binding code to switch on/off VP9 encoder/decoder.
We still use vp9_noop for now, so encoder/decoder is not functional.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Configurations/libwebrtc.xcconfig:
  • Configurations/libwebrtcpcrtc.xcconfig:
  • Source/webrtc/modules/video_coding/codecs/vp9/vp9_noop.cc:
  • Source/webrtc/sdk/WebKit/WebKitDecoder.mm:

(webrtc::createWebKitDecoderFactory):

  • Source/webrtc/sdk/WebKit/WebKitEncoder.mm:

(webrtc::createWebKitEncoderFactory):
(webrtc::setH264HardwareEncoderAllowed):
(webrtc::isH264HardwareEncoderAllowed):

  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
  • Source/webrtc/sdk/objc/api/video_codec/RTCVideoDecoderVP9.h:
  • Source/webrtc/sdk/objc/api/video_codec/RTCVideoEncoderVP9.h:
  • Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.h:
  • Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m:

(-[RTCDefaultVideoDecoderFactory initWithH265:vp9:]):
(-[RTCDefaultVideoDecoderFactory supportedCodecs]):

  • Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.h:
  • Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoEncoderFactory.m:

(-[RTCDefaultVideoEncoderFactory initWithH265:vp9:]):
(-[RTCDefaultVideoEncoderFactory supportedCodecs]):

  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Add binding code to switch on/off VP9 in WebRTC factories based on runtime flag.

Test: webrtc/vp9.html

  • page/Page.cpp:

(WebCore::m_shouldRelaxThirdPartyCookieBlocking):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::webRTCVP9CodecEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCVP9CodecEnabled):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

(WebCore::LibWebRTCProviderCocoa::createDecoderFactory):
(WebCore::LibWebRTCProviderCocoa::createEncoderFactory):

  • testing/Internals.cpp:

(WebCore::Internals::setWebRTCH265Support):
(WebCore::Internals::setWebRTCVP9Support):

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

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

LayoutTests:

  • webrtc/h265.html:
  • webrtc/vp9-expected.txt: Added.
  • webrtc/vp9.html: Added.
12:18 AM Changeset in webkit [263733] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Add more OffscreenCanvas flaky failures.

  • platform/glib/TestExpectations:
12:09 AM Changeset in webkit [263732] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Move WPE and GTK OffscreenCanvas failures to GLIB.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
Note: See TracTimeline for information about the timeline view.