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

Timeline



Jun 4, 2020:

11:19 PM Changeset in webkit [262602] by Paulo Matos
  • 2 edits in trunk/JSTests

Skip microbenchmarks/interpreter-wasm.js on MIPS/ARM

Unreviewed Gardening.

There's no native wasm support on 32bits atm - skipping.

  • microbenchmarks/interpreter-wasm.js:
11:13 PM Changeset in webkit [262601] by sihui_liu@apple.com
  • 5 edits in trunk

Text manipulation: first and last unit in a paragraph should not contain only excluded tokens
https://bugs.webkit.org/show_bug.cgi?id=212759

Reviewed by Wenson Hsieh.

Source/WebCore:

In r262398, we literally made text of one Node as the minimum unit for text manipulation. This patches introduce
a struct ManipulationUnit for that. Now a paragraph can be represented as multiple ManipulationUnits. When all
tokens in a ManipulationUnit are excluded, it means the ManipulationUnit is excluded and should not be
manipulated. To record ManipulationUnits in a paragraph based on our current implementation, we need to keep the
excluded ManipulationUnits surrounded by non-excluded ManipulationUnits, but we can safely remove the leading
and trailing excluded ManipulationUnits. In this case, we can limit the range of paragraph further and thus less
text replacement work.

Covered by existing test.

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::parse):
(WebCore::TextManipulationController::addItemIfPossible):
(WebCore::TextManipulationController::observeParagraphs):

  • editing/TextManipulationController.h:

Tools:

Modify existing test for changed behavior that leading and trailing excluded units are not included in paragraph
now.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

10:58 PM Changeset in webkit [262600] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Report extra memory allocation from PropertyTable
https://bugs.webkit.org/show_bug.cgi?id=212793

Reviewed by Saam Barati.

This patch adds extra memory reporting from PropertyTable to make GC
responsive to the increase of memory in PropertyTable.

  • runtime/PropertyMapHashTable.h:

(JSC::PropertyTable::add):
(JSC::PropertyTable::remove):
(JSC::PropertyTable::rehash):
(JSC::PropertyTable::dataSize):

  • runtime/PropertyTable.cpp:

(JSC::PropertyTable::finishCreation):
(JSC::PropertyTable::visitChildren):

  • runtime/Structure.cpp:

(JSC::Structure::materializePropertyTable):

  • runtime/StructureInlines.h:

(JSC::Structure::add):
(JSC::Structure::remove):

10:52 PM Changeset in webkit [262599] by Peng Liu
  • 2 edits in trunk/Source/WebCore

A YouTube video gets stuck after rapidly tapping on touchbar’s PIP button
https://bugs.webkit.org/show_bug.cgi?id=212729

Reviewed by Darin Adler.

Call HTMLVideoElement::setFullscreenMode() instead of HTMLMediaElement::enterFullscreen()
and HTMLMediaElement::exitFullscreen() to toggle picture-in-picture mode.
HTMLVideoElement::setFullscreenMode() is robust under stress test after r262456.

Manually tested.

  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::togglePictureInPicture):

10:36 PM Changeset in webkit [262598] by ddkilzer@apple.com
  • 11 edits in trunk/Source/WebKit

[IPC] Adopt enum class for PluginProcessType and PluginProcessSandboxPolicy
<https://webkit.org/b/212758>

Reviewed by Darin Adler.

  • PluginProcess/mac/PluginProcessMac.mm:

(WebKit::PluginProcess::platformInitializePluginProcess):

  • Scripts/webkit/messages.py:
  • Shared/Plugins/PluginProcessAttributes.h:

(WebKit::PluginProcessType): Convert to enum class.
(WebKit::PluginProcessSandboxPolicy): Ditto.

  • UIProcess/Plugins/PluginProcessManager.cpp:

(WebKit::PluginProcessManager::fetchWebsiteData):
(WebKit::PluginProcessManager::deleteWebsiteData):
(WebKit::PluginProcessManager::deleteWebsiteDataForHostNames):

  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::didFinishLaunching):

  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:

(WebKit::PluginProcessProxy::platformGetLaunchOptionsWithAttributes):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::findPlugin):

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

(WebKit::WebPage::createPlugin):
(WebKit::WebPage::canPluginHandleResponse):

10:29 PM Changeset in webkit [262597] by Jonathan Bedard
  • 2 edits in trunk/Source/WTF

WTF: Exclude MachExceptions.defs from all embedded builds
https://bugs.webkit.org/show_bug.cgi?id=212796

Reviewed by Alexey Proskuryakov.

  • Configurations/WTF.xcconfig:
10:23 PM Changeset in webkit [262596] by Jonathan Bedard
  • 15 edits in trunk/WebKitLibraries

tvOS: Remove arm64e references in .tbd files
https://bugs.webkit.org/show_bug.cgi?id=212792
<rdar://problem/64003670>

Reviewed by Tim Horton.

  • WebKitPrivateFrameworkStubs/appletvos/13/AppSupport.framework/AppSupport.tbd:
  • WebKitPrivateFrameworkStubs/appletvos/13/AssertionServices.framework/AssertionServices.tbd:
  • WebKitPrivateFrameworkStubs/appletvos/13/AuthKit.framework/AuthKit.tbd:
  • WebKitPrivateFrameworkStubs/appletvos/13/CorePDF.framework/CorePDF.tbd:
  • WebKitPrivateFrameworkStubs/appletvos/13/CorePrediction.framework/CorePrediction.tbd:
  • WebKitPrivateFrameworkStubs/appletvos/13/DeviceIdentity.framework/DeviceIdentity.tbd:
  • WebKitPrivateFrameworkStubs/appletvos/13/FileProvider.framework/FileProvider.tbd:
  • WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd:
  • WebKitPrivateFrameworkStubs/appletvos/13/IOKit.framework/IOKit.tbd:
  • WebKitPrivateFrameworkStubs/appletvos/13/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd:
  • WebKitPrivateFrameworkStubs/appletvos/13/LocalAuthentication.framework/LocalAuthentication.tbd:
  • WebKitPrivateFrameworkStubs/appletvos/13/RunningBoardServices.framework/RunningBoardServices.tbd:
  • WebKitPrivateFrameworkStubs/appletvos/13/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd:
  • WebKitPrivateFrameworkStubs/appletvos/13/URLFormatting.framework/URLFormatting.tbd:
9:42 PM Changeset in webkit [262595] by commit-queue@webkit.org
  • 20 edits in trunk/Source

Unreviewed, reverting r262583.
https://bugs.webkit.org/show_bug.cgi?id=212799

Internal source code has the same bug, needs to be landed
after fixing internal source

Reverted changeset:

"DOM constructor should only accept Ref<> / ExceptionOr<Ref<>>
for creation to ensure toJSNewlyCreated is always returning
object"
https://bugs.webkit.org/show_bug.cgi?id=212767
https://trac.webkit.org/changeset/262583

8:57 PM Changeset in webkit [262594] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

HTMLAppletElement::updateWidget should check for renderer after the overlapping test.
https://bugs.webkit.org/show_bug.cgi?id=212789
<rdar://problem/61854614>

Reviewed by Simon Fraser.

createJavaAppletWidget needs to check if the plugin(replacement) is obscured.
Since the overlapping test requires up-to-date geometry, it initiates a top level style recalc/layout.
We need to check if the apple element still has a renderer after the style recalc.

  • html/HTMLAppletElement.cpp:

(WebCore::HTMLAppletElement::updateWidget):

8:37 PM Changeset in webkit [262593] by Jack Lee
  • 3 edits
    2 adds in trunk

Nullptr crash in DeleteSelectionCommand::doApply() when ending position is disconnected.
https://bugs.webkit.org/show_bug.cgi?id=212723
<rdar://problem/63866653>

Reviewed by Geoffrey Garen.

Source/WebCore:

In this test case, while merging paragraphs after deleting a text element, we need call removeNodeAndPruneAncestors()
to remove a BR node. However, the ancestor of BR is also removed. Later we try to insert a node at the parent of the
removed ancestor in function DeleteSelectionCommand::doApply().

For now we just check the parentless inserting position and bail out. The proper fix should be re-designing
removeNodeAndPruneAncestors() or select a different inserting position after removeNodeAndPruneAncestors() is called.

Test: editing/deleting/delete-txt-in-dl-crash.html

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::doApply):

LayoutTests:

Added a regression test for the crash.

  • editing/deleting/delete-txt-in-dl-crash-expected.txt: Added.
  • editing/deleting/delete-txt-in-dl-crash.html: Added.
8:28 PM Changeset in webkit [262592] by commit-queue@webkit.org
  • 12 edits in trunk/Source/WebKit

Add WKUIDelegate SPI to confirm before opening a PDF
https://bugs.webkit.org/show_bug.cgi?id=212795
<rdar://problem/58715847>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-04
Reviewed by Tim Horton.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::confirmPDFOpening):

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::confirmPDFOpening):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::savePDFToTemporaryFolderAndOpenWithNativeApplication):
(WebKit::WebPageProxy::openPDFFromTemporaryFolderWithNativeApplication):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::savePDFToTemporaryFolderAndOpenWithNativeApplication):
(WebKit::WebPageProxy::openPDFFromTemporaryFolderWithNativeApplication):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::openWithNativeApplication):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::savePDFToTemporaryFolderAndOpenWithNativeApplication):

  • WebProcess/WebPage/WebPage.h:
7:40 PM Changeset in webkit [262591] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add a Thread Specific Cache for LinkBuffer::CompactAndLinkCode()
https://bugs.webkit.org/show_bug.cgi?id=212765

Reviewed by Saam Barati.

Added a thread local buffer for CPU types that use a second buffer when compacting.
This is very similary to the work done in https://bugs.webkit.org/show_bug.cgi?id=212562.

  • assembler/LinkBuffer.cpp:

(JSC::threadSpecificBranchCompactionLinkBuffer):
(JSC::BranchCompactionLinkBuffer::BranchCompactionLinkBuffer):
(JSC::BranchCompactionLinkBuffer::~BranchCompactionLinkBuffer):
(JSC::BranchCompactionLinkBuffer::data):
(JSC::BranchCompactionLinkBuffer::takeBufferIfLarger):
(JSC::BranchCompactionLinkBuffer::size):
(JSC::LinkBuffer::copyCompactAndLinkCode):

5:19 PM Changeset in webkit [262590] by Simon Fraser
  • 2 edits in trunk/LayoutTests

[ Mojave wk2 Debug ] fast/scrolling/mac/scrollbars/select-overlay-scrollbar-hovered.html is flaky failing and flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=212667
<rdar://problem/63896649>

Unreviewed test gardening.

fast/scrolling/mac/scrollbars/select-overlay-scrollbar-hovered.html suffers from AppKit behavior differences on Mojave, so
skip the test on that platform.

  • platform/mac-wk2/TestExpectations:
5:15 PM Changeset in webkit [262589] by Ross Kirsling
  • 2 edits in trunk/Source/WebCore

[PlayStation] Unreviewed revert of build fix. Missing include was not the cause.

  • platform/graphics/ColorUtilities.cpp:
5:04 PM Changeset in webkit [262588] by Chris Dumez
  • 4 edits in trunk

UIProcess may crash after its prewarmed WebProcess gets terminated
https://bugs.webkit.org/show_bug.cgi?id=212790
<rdar://problem/63696191>

Reviewed by Geoffrey Garen.

Source/WebKit:

Query WebProcessProxy::isDummyProcessProxy() because trying to look up the process
in m_dummyProcessProxies. The key for m_dummyProcessProxies is a sessionID but
not all processes have a sessionID. In particular, prewarmed web processes have
no associated WebsiteDataStore and thus not sessionID.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::disconnectProcess):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessPreWarming.mm:

(TEST):

4:58 PM Changeset in webkit [262587] by sihui_liu@apple.com
  • 4 edits in trunk

Source/WebCore:
REGRESSION:(r262398) Text manipulation crashes when content is added
https://bugs.webkit.org/show_bug.cgi?id=212785

Reviewed by Ryosuke Niwa.

r262398 accidentally removed the bound check on array index and was not caught by existing tests.

Test: TextManipulation.CompleteTextManipulationFailWhenContentIsAdded

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::replace):

Tools:
REGRESSION: (r262398) Text manipulation crashes when content is added
https://bugs.webkit.org/show_bug.cgi?id=212785

Reviewed by Ryosuke Niwa.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

4:56 PM Changeset in webkit [262586] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Reduce telemetry and report generation for WebContent Process sandbox
https://bugs.webkit.org/show_bug.cgi?id=212779
<rdar://problem/63769879>

Reviewed by Per Arne Vollan.

This patch cleans up a set of telemetry and reports generated during normal
WebKit operation. Now that we understand the uses of these XPC services, we
can reduce the logging traffic.

This is important to do now, since generating the telemetry and reports has
a non-zero power cost.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
4:54 PM Changeset in webkit [262585] by jiewen_tan@apple.com
  • 4 edits in trunk/Source/WebKit

Disable CFNetwork AppSSO interception for Mac Catalyst
https://bugs.webkit.org/show_bug.cgi?id=212787
<rdar://problem/63738783>

Reviewed by Chris Dumez.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

4:49 PM Changeset in webkit [262584] by Ross Kirsling
  • 2 edits in trunk/Source/WebCore

[PlayStation] Unreviewed build fix following r262352.

  • platform/graphics/ColorUtilities.cpp:
4:10 PM Changeset in webkit [262583] by ysuzuki@apple.com
  • 19 edits in trunk/Source

DOM constructor should only accept Ref<> / ExceptionOr<Ref<>> for creation to ensure toJSNewlyCreated is always returning object
https://bugs.webkit.org/show_bug.cgi?id=212767

Reviewed by Darin Adler.

When using toJSNewlyCreated in DOM constructor, we should ensure that this only returns JSObject* (if exception is not happening) to
avoid isObject() check after that. However AudioContext and ImageData is not following this and can return nullptr from create factory
function. We should not allow this.

In this patch,

  1. AudioContext should throw an error instead of returning null. AudioContext had a limit derived from OS, but this limit is reasonable only in Windows. We should insert OS(WINDOWS) around this check, and throw an error instead of returning null.
  1. ImageData::create can return nullptr potentially, and it can be converted to null. This is not acceptable for DOM constructor. We should throw an error if we failed to create ImageData.
  1. We inserted static_asserts in CodeGeneratorJS.pm to ensure that XXX::create only returns Ref<> or ExceptionOr<Ref<>>. This ensures that toJSNewlyCreated will return JSObject*.
  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::create):

  • Modules/webaudio/AudioContext.h:
  • Modules/webaudio/AudioContext.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorDefinition):

  • dom/ExceptionOr.h:
  • html/ImageData.cpp:

(WebCore::ImageData::create):

  • html/ImageData.h:
  • testing/Internals.cpp:

(WebCore::Internals::videoSampleAvailable):

3:50 PM Changeset in webkit [262582] by Kate Cheney
  • 4 edits in trunk/Source
REGRESSION (r262212): [ iOS Debug wk2 ] ASSERTION FAILED: !isSynchronous()
!m_synchronousLoadData->delayedReply in WebKit::NetworkResourceLoader

https://bugs.webkit.org/show_bug.cgi?id=212678
<rdar://problem/63797758>

Reviewed by Chris Dumez.

No new tests, this will fix http/tests/xmlhttprequest/access-control-preflight-credential-sync.html.

Refactor the bundle identifier setters and getters in
RuntimeApplicationChecksCocoa.mm so that a separate function sets
an override bundle identifier, and clearing the override identifier
does not clear the UI process bundle identifier as well.

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::bundleIdentifierOverride):
(WebCore::bundleIdentifier):
(WebCore::applicationBundleIdentifier):
(WebCore::setApplicationBundleIdentifier):
(WebCore::setApplicationBundleIdentifierOverride):
(WebCore::clearApplicationBundleIdentifierTestingOverride):
(WebCore::applicationBundleIdentifierOverride): Deleted.

3:36 PM Changeset in webkit [262581] by ysuzuki@apple.com
  • 9 edits in trunk/Source/WebCore

MessageEvent should tell its memory cost to GC
https://bugs.webkit.org/show_bug.cgi?id=203990

Reviewed by Mark Lam.

This patch fixes two issues to make MessageEvent's memoryCost working.

  1. MessageEvent does not have memoryCost function. So even if ArrayBuffer etc. is held as a SerializedScriptValue, it does not communicate memory pressure to GC. This patch adds ReportExtraMemoryCost to MessageEvent.idl and memoryCost function to MessageEvent. And we implement SerializedScriptValue::memoryCost function to obtain rough memory cost for SerializedScriptValue.
  1. IDL code generator puts reportExtraMemoryAllocated function call in toJSNewlyCreated. However, toJSNewlyCreated is not always used when creating JS wrapper. For example, JSMessageEvent can be created from toJSNewlyCreated for MessageEvent. But it can be also be created from toJSNewlyCreated for Event through EventFactory. If the latter path is taken, we won't properly report memory cost even if IDL has ReportExtraMemoryCost. In JSC, we put reportExtraMemoryAllocated at the end of JSXXX::finishCreation. IDL code should follow this convention.
  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::SerializedScriptValue):
(WebCore::SerializedScriptValue::computeMemoryCost const):

  • bindings/js/SerializedScriptValue.h:

(WebCore::SerializedScriptValue::memoryCost const):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

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

(WebCore::JSInterfaceName::finishCreation):
(WebCore::toJSNewlyCreated):

  • dom/MessageEvent.cpp:

(WebCore::MessageEvent::memoryCost const):

  • dom/MessageEvent.h:
  • dom/MessageEvent.idl:
  • html/OffscreenCanvas.h:

(WebCore::DetachedOffscreenCanvas::memoryCost const):

3:30 PM Changeset in webkit [262580] by Alan Coon
  • 3 edits in branches/safari-610.1.15-branch/Source/WebKit

Cherry-pick r262572. rdar://problem/63998286

Reduce telemetry and report generation for Network Process sandbox
https://bugs.webkit.org/show_bug.cgi?id=212778
<rdar://problem/63891745>

Reviewed by Per Arne Vollan.

This patch cleans up a set of telemetry and reports generated during normal
WebKit operation. Now that we understand the uses of these XPC services, we
can reduce the logging traffic.

This is important to do now, since telemetry and report generation has
battery life and performance impact.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:

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

3:30 PM Changeset in webkit [262579] by Alan Coon
  • 8 edits in branches/safari-610.1.15-branch/Source/WebKit

Cherry-pick r262560. rdar://problem/63998278

Revise sandbox to support network stack telemetry without sandbox violation reports
https://bugs.webkit.org/show_bug.cgi?id=212720
<rdar://problem/63895783>

Reviewed by Per Arne Vollan.

Telemetry captured for various networking configurations has revealed a handful of mach service
connections that should be allowed in the Network Process to support troubleshooting and field diagnostics.

This patch revises the sandbox to avoid logging these accesses during normal operation.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: Do not generate traces for 'com.apple.diagnosticd'.
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: Ditto.
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Allow 'com.apple.osanalytics.osanalyticshelper' to be used on internal development builds.
  • Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode const): Update to handle both 'diagnosticd' and 'osanalyticshelper' as optional services for internal builds. (WebKit::WebProcessCreationParameters::decode): Ditto.
  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::diagnosticServices): Ditto. (WebKit::WebProcessPool::platformInitializeWebProcess): Ditto.
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess): Ditto.

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

3:30 PM Changeset in webkit [262578] by Alan Coon
  • 3 edits
    4 adds in branches/safari-610.1.15-branch

Cherry-pick r262525. rdar://problem/63984145

Inserted text placeholder should vertically align to top and behave like block-level element when it has 0 width
https://bugs.webkit.org/show_bug.cgi?id=212716
<rdar://problem/62672479>

Reviewed by Darin Adler.

Source/WebCore:

Refine the appearance of a text placeholder based on feedback:

  1. If the width of the placeholder is 0 then put it on its own line. This is accomplished by making it CSS "display: block".
  2. Vertically align the placeholder with the top of the line.

Both of these refinements are to make the rendering more like TextKit's rendering.

Tests: editing/text-placeholder/insert-into-content-editable-non-zero-width-and-height.html

editing/text-placeholder/insert-into-content-editable-zero-width.html

  • html/shadow/TextPlaceholderElement.cpp:

LayoutTests:

Add tests.

  • editing/text-placeholder/insert-into-content-editable-non-zero-width-and-height-expected.html: Added.
  • editing/text-placeholder/insert-into-content-editable-non-zero-width-and-height.html: Added.
  • editing/text-placeholder/insert-into-content-editable-zero-width-expected.html: Added.
  • editing/text-placeholder/insert-into-content-editable-zero-width.html: Added.

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

3:30 PM Changeset in webkit [262577] by Alan Coon
  • 3 edits in branches/safari-610.1.15-branch

Cherry-pick r262497. rdar://problem/63998291

WebProcessPool::notifyPreferencesChanged() is unsafely called on a background thread
https://bugs.webkit.org/show_bug.cgi?id=212697
<rdar://problem/63876652>

Reviewed by Per Arne Vollan.

Make sure we dispatch to the main thread in [WKPreferenceObserver preferenceDidChange] before
we iterate over the process pools and call WebProcessPool::notifyPreferencesChanged() on each
one.

  • UIProcess/Cocoa/PreferenceObserver.mm: (-[WKPreferenceObserver preferenceDidChange:key:encodedValue:]):

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

3:30 PM Changeset in webkit [262576] by Alan Coon
  • 3 edits
    2 adds in branches/safari-610.1.15-branch

Cherry-pick r262363. rdar://problem/63984142

[iBooks] Empty pages appear in book
https://bugs.webkit.org/show_bug.cgi?id=212573
<rdar://problem/62912623>

Reviewed by Antti Koivisto.

Source/WebCore:

Do not add a page break for orphan content unless the line does not fit anymore.

Test: fast/multicol/orphans-ignored.html

  • rendering/SimpleLineLayoutPagination.cpp: (WebCore::SimpleLineLayout::setPageBreakForLine): (WebCore::SimpleLineLayout::adjustLinePositionsForPagination):

LayoutTests:

  • fast/multicol/orphans-ignored-expected.html: Added.
  • fast/multicol/orphans-ignored.html: Added.

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

3:21 PM Changeset in webkit [262575] by Alan Coon
  • 8 edits in branches/safari-610.1.15-branch/Source

Versioning.

3:10 PM Changeset in webkit [262574] by Wenson Hsieh
  • 6 edits in trunk/Source

[macOS] Add a way to override the contact AutoFill button image
https://bugs.webkit.org/show_bug.cgi?id=212775
<rdar://problem/60381452>

Reviewed by Tim Horton.

Source/WebCore:

Rename SYSTEM_ATTACHMENT_PLACEHOLDER_ICON to ALTERNATE_ICONS, and use it to additionally guard an alternate
appearance for the contact AutoFill button icon.

  • css/html.css:

(input::-webkit-contacts-auto-fill-button):

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::extraDefaultStyleSheet):

Source/WTF:

Rename SYSTEM_ATTACHMENT_PLACEHOLDER_ICON to ALTERNATE_ICONS.

  • wtf/PlatformHave.h:
2:54 PM Changeset in webkit [262573] by Russell Epstein
  • 1 copy in tags/Safari-610.1.15.2

Tag Safari-610.1.15.2.

2:31 PM Changeset in webkit [262572] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Reduce telemetry and report generation for Network Process sandbox
https://bugs.webkit.org/show_bug.cgi?id=212778
<rdar://problem/63891745>

Reviewed by Per Arne Vollan.

This patch cleans up a set of telemetry and reports generated during normal
WebKit operation. Now that we understand the uses of these XPC services, we
can reduce the logging traffic.

This is important to do now, since telemetry and report generation has
battery life and performance impact.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
2:30 PM Changeset in webkit [262571] by Jacob Uphoff
  • 6 edits in trunk/Source

Unreviewed, reverting r262546.

This commit caused internal build failures

Reverted changeset:

"[Cocoa] Adopt read-only mode for preferences in the
WebContent process"
https://bugs.webkit.org/show_bug.cgi?id=212411
https://trac.webkit.org/changeset/262546

2:07 PM Changeset in webkit [262570] by mark.lam@apple.com
  • 18 edits in trunk/Source/JavaScriptCore

Add Options::validateDoesGC() for turning DoesGC validation on/off.
https://bugs.webkit.org/show_bug.cgi?id=212773

Reviewed by Saam Barati.

It will default to on if ASSERT_ENABLED because we want testing to be done with
the validation on. When needed, we can turn it off if we need to e.g. to
de-clutter disassembly dumps while debugging.

If Options::validateDoesGC() is false, we turn off JIT code emission for this
check, as well as skip the validation checks. There are still places in C++
code that store to DoesGC::m_value without checking Options::validateDoesGC().
It doesn't hurt to just let these stores proceed, and performance-wise, it's
probably cheaper to just do the store unconditionally than to gate it on a load of
Options::validateDoesGC() first.

Also made it explicit that the check on validateDFGDoesGC is a constexpr check.

  • dfg/DFGDoesGCCheck.cpp:

(JSC::DFG::DoesGCCheck::verifyCanGC):

  • dfg/DFGOSRExit.cpp:

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

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • runtime/OptionsList.h:
2:07 PM Changeset in webkit [262569] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r260142. rdar://problem/63993130

REGRESSION (r258977): Crash under Document::visibilityStateChanged
https://bugs.webkit.org/show_bug.cgi?id=210555

Reviewed by Youenn Fablet.

Re-introduce null check of page in Document::visibilityStateChanged() which got inadvertently
dropped in r258977.

  • dom/Document.cpp: (WebCore::Document::visibilityStateChanged):

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

2:01 PM Changeset in webkit [262568] by Ross Kirsling
  • 11 edits in trunk

Intl classes should have meaningful @@toStringTag values
https://bugs.webkit.org/show_bug.cgi?id=212769

Reviewed by Yusuke Suzuki.

JSTests:

  • test262/expectations.yaml:

Mark 16 test cases as passing.

  • stress/intl-collator.js:
  • stress/intl-datetimeformat.js:
  • stress/intl-numberformat.js:
  • stress/intl-pluralrules.js:

Update stress tests.

Source/JavaScriptCore:

Implementation of https://github.com/tc39/ecma402/pull/430, which achieved consensus this week.
This ensures we get "[object Intl.Collator]" (etc.) instead "[object Object]" for older Intl classes.

  • runtime/IntlCollatorPrototype.cpp:
  • runtime/IntlDateTimeFormatPrototype.cpp:
  • runtime/IntlNumberFormatPrototype.cpp:
  • runtime/IntlPluralRulesPrototype.cpp:
1:49 PM Changeset in webkit [262567] by Alexey Shvayka
  • 7 edits in trunk

GetMethod isn't performed properly on iterators
https://bugs.webkit.org/show_bug.cgi?id=212771

Reviewed by Saam Barati.

JSTests:

  • test262/expectations.yaml: Mark 26 test cases as passing.

Source/JavaScriptCore:

Before this change, iterator's "return" and "throw" methods with value of null were
considered incorrect rather than missing, causing TypeError to be thrown.

This patch aligns method lookup of iterators with the spec [1], V8, and SpiderMonkey
by utilizing isUndefinedOrNull(), which doesn't special-case IsHTMLDDA objects [2],
fixing a few Annex B tests.

for/of microbenchmarks are neutral.

[1]: https://tc39.es/ecma262/#sec-getmethod (step 3)
[2]: https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot

  • builtins/AsyncFromSyncIteratorPrototype.js:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitIteratorGenericClose):
(JSC::BytecodeGenerator::emitGetAsyncIterator):
(JSC::BytecodeGenerator::emitDelegateYield):

  • runtime/IteratorOperations.cpp:

(JSC::iteratorClose):

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::constructGenericTypedArrayViewWithArguments):

1:38 PM Changeset in webkit [262566] by Chris Dumez
  • 11 edits in trunk/Source/WebKit

[iOS] Drop DependentProcessLink ProcessAssertion as it creates power leaks
https://bugs.webkit.org/show_bug.cgi?id=212768
<rdar://problem/62408828>

Reviewed by Alex Christensen.

Drop DependentProcessLink ProcessAssertion since it creates a process assertion cycle between
the UIProcess and the WebContent process and leads to power leaks.

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

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

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

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/ProcessAssertion.h:
  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::assertionName const):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didSetAssertionType):

  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::runningBoardNameForAssertionType):
(WebKit::flagsForAssertionType):
(WebKit::toBKSProcessAssertionReason):

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

1:16 PM Changeset in webkit [262565] by clopez@igalia.com
  • 6 edits in trunk/Tools

Improve watchlist logic for comments on patches touching imported WPT tests.
https://bugs.webkit.org/show_bug.cgi?id=212597

Reviewed by Youenn Fablet.

On r262295 I added a watchlist comment for patches touching the imported WPT tests.
However, this is commenting on patches that are importing WPT tests.

To avoid this situations, this patch adds a new rule to detect if the changes modify
any of the w3c-import.log files, and then changes the logic to make the comment only
for patches that modify the WPT imported tests but not the w3c-import.log files.

In order to support this new logic, watchlist rule parsing is improved to support
the "and" and "not" operators. Previously it only supported the "or" operator.

  • Scripts/webkitpy/common/config/watchlist:
  • Scripts/webkitpy/common/watchlist/watchlistparser.py:

(WatchListParser._rule_definitions_as_set):

  • Scripts/webkitpy/common/watchlist/watchlistparser_unittest.py:

(WatchListParserTest.test_cc_rule_with_undefined_defintion_with_suggestion):
(WatchListParserTest):
(WatchListParserTest.test_cc_rule_with_complex_logic):

  • Scripts/webkitpy/common/watchlist/watchlistrule.py:

(WatchListRule.init):
(WatchListRule._match_test_definitions):
(WatchListRule.match):

  • Scripts/webkitpy/common/watchlist/watchlistrule_unittest.py:

(WatchListRuleTest.test_complex_definition_or):
(WatchListRuleTest):
(WatchListRuleTest.test_complex_definition_and):
(WatchListRuleTest.test_complex_definition_not):
(WatchListRuleTest.test_complex_definition_combined):

1:02 PM Changeset in webkit [262564] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

media/modern-media-controls/time-label/time-label-white-space-nowrap.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=212772
<rdar://problem/63554695>

Reviewed by Eric Carlson.

Remove some leftover debugging code that forces a failure if the test is slow.

  • media/modern-media-controls/time-label/time-label-white-space-nowrap.html:
12:58 PM Changeset in webkit [262563] by commit-queue@webkit.org
  • 12 edits
    2 moves in trunk/Source/WebCore

Rename BlobLineEndings to EndingType to match the latest spec
https://bugs.webkit.org/show_bug.cgi?id=212644

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-06-04
Reviewed by Sam Weinig.

By the latest File API spec, the role of BlobLineEndings is named as EndingType.
https://w3c.github.io/FileAPI/#enumdef-endingtype

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

(WebCore::BlobBuilder::BlobBuilder):
(WebCore::BlobBuilder::append):

  • fileapi/BlobBuilder.h:
  • fileapi/BlobPropertyBag.h:
  • fileapi/BlobPropertyBag.idl:
  • fileapi/EndingType.h: Renamed from Source/WebCore/fileapi/BlobLineEndings.h.
  • fileapi/EndingType.idl: Renamed from Source/WebCore/fileapi/BlobLineEndings.idl.
12:54 PM Changeset in webkit [262562] by mark.lam@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

Reduce DFGDoesGCCheck to only storing a uint32_t.
https://bugs.webkit.org/show_bug.cgi?id=212734

Reviewed by Saam Barati and Caio Lima.

This patch changes the encoding of DoesGCCheck so that it will fit better in a
uint32_t. This has the following benefits:

  1. speed improvement for debug builds because it now takes less instructions (especially in JITted code) to store to DoesGCCheck::m_value.
  2. enables this check for 32-bit platforms as well.

Fun fact: we currently have 373 DFG::NodeTypes. Hence, 9 bits for nodeOp.

The new encoding provides 21 bis for the nodeIndex. This gives us up to 2097152
node indexes. In my experience, I've never seen more than 3 decimal digits for
the nodeIndex so far. If we ever find that we need more than 21 bits of nodeIndex,
we have 2 options to deal with it:

  1. We can just ignore the high bits. After all, it is the nodeOp that is the most interesting piece of data we need to debug doesGC issues.
  1. We can make DoesGCCheck use uint64_t for storage. This encoding automatically scales to 64-bit, while still allowing the more efficient form of storing a 32-bit immediate to be used for the common cases.

This patch also makes ENABLE_DFG_DOES_GC_VALIDATION dependent on ENABLE(DFG_JIT).
DoesGC is only relevant for the DFG and FTL JITs.

  • dfg/DFGDoesGCCheck.cpp:

(JSC::DFG::DoesGCCheck::verifyCanGC):

  • dfg/DFGDoesGCCheck.h:

(JSC::DFG::DoesGCCheck::encode):
(JSC::DFG::DoesGCCheck::expectDoesGC const):
(JSC::DFG::DoesGCCheck::isSpecial const):
(JSC::DFG::DoesGCCheck::special):
(JSC::DFG::DoesGCCheck::nodeOp):
(JSC::DFG::DoesGCCheck::nodeIndex):
(JSC::DFG::DoesGCCheck::expectDoesGC): Deleted.
(JSC::DFG::DoesGCCheck::isSpecial): Deleted.
(JSC::DFG::DoesGCCheck::specialIndex): Deleted.
(JSC::DFG::DoesGCCheck::bits): Deleted.

  • dfg/DFGNodeType.h:
  • dfg/DFGOSRExit.cpp:

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

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • heap/Heap.h:
12:52 PM Changeset in webkit [262561] by clopez@igalia.com
  • 3 edits
    36 adds in trunk/LayoutTests

Gardening after r262539
https://bugs.webkit.org/show_bug.cgi?id=212770

Unreviewed gardening.

Add baselines for GTK/WPE and comment out enabling offscreen canvas
tests that are now broken. Fixing them in bug 212613.

  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/compositing/2d.composite.globalAlpha.canvascopy-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/drawing-images-to-the-canvas/drawimage_canvas-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.bottom-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.front-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.shape1-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.top-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.inside1-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.inside2-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.inside3-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.outside1-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.outside2-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.outside3-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.touch2-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/image-smoothing/imagesmoothing-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/canvas-createImageBitmap-resize-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-drawImage-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-flipY-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-invalid-args-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-serializable-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/imagebitmap/createImageBitmap-transfer-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.isPointInStroke.scaleddashes-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.rect.winding-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/path-objects/2d.path.stroke.scale2-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/shadows/shadowBlur_gaussian_tolerance.1-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/html/canvas/element/text-styles/2d.text.draw.baseline.ideographic-expected.txt: Added.
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
12:45 PM Changeset in webkit [262560] by Brent Fulgham
  • 8 edits in trunk/Source/WebKit

Revise sandbox to support network stack telemetry without sandbox violation reports
https://bugs.webkit.org/show_bug.cgi?id=212720
<rdar://problem/63895783>

Reviewed by Per Arne Vollan.

Telemetry captured for various networking configurations has revealed a handful of mach service
connections that should be allowed in the Network Process to support troubleshooting and field diagnostics.

This patch revises the sandbox to avoid logging these accesses during normal operation.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in: Do not generate traces for 'com.apple.diagnosticd'.
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb: Ditto.
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Allow 'com.apple.osanalytics.osanalyticshelper' to be used on internal development builds.
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const): Update to handle both 'diagnosticd' and 'osanalyticshelper'
as optional services for internal builds.
(WebKit::WebProcessCreationParameters::decode): Ditto.

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

(WebKit::diagnosticServices): Ditto.
(WebKit::WebProcessPool::platformInitializeWebProcess): Ditto.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess): Ditto.

12:44 PM Changeset in webkit [262559] by clopez@igalia.com
  • 2 edits in trunk/Tools

svn-apply command is too slow with big patches
https://bugs.webkit.org/show_bug.cgi?id=212766

Reviewed by Darin Adler.

The script svn-apply was calling a "git add" or "svn add" command
after adding each new file. This caused the git or svn command to
re-check the internal SCM database each time they were called, and
this was really slow when lot of new files are added.
Instead of doing this, we queue the list of new files in memory,
and at the end we call "git add" or "svn add" once (or a few times).

On top of that, another optimization is added for the case of git,
to avoid calling scmKnowsOfFile() inside addDirectoriesIfNeeded(),
which is a slow operation and gets called a lot (once per file).
Doing that for git is totally unneeded, as the only thing we have
to take care about, is of ensuring that the directory is created.
See: https://wkb.ug/86973

This reduces the time spent in the large test patch that caused
this issue (see bug):

  • Git: 8 hours (before) -> 8 minutes (now).
  • SVN: 25 minutes (before) -> 5 minutes (now).
  • Scripts/svn-apply:

(addDirectoriesIfNeeded):
(handleBinaryChange):
(handleGitBinaryChange):
(patch):
(scmRemove):
(scmAddQueued):
(scmCommitQueueAdded):
(scmToggleExecutableBitQueued):
(scmCommitQueueToggledExecutableBit):

12:42 PM Changeset in webkit [262558] by Jonathan Bedard
  • 3 edits in trunk/Tools

Add watchOS and tvOS to build-webkit
https://bugs.webkit.org/show_bug.cgi?id=212719
<rdar://problem/63951600>

Reviewed by Tim Horton.

  • Scripts/build-webkit: Add tvOS and watchOS flags, generalize embedded if statements.
  • Scripts/webkitdirs.pm:

(determineArchitecture): Add tvOS and watchOS architectures.
(argumentsForConfiguration): Add tvOS and watchOS flags.
(extractNonMacOSHostConfiguration): Ditto.

12:23 PM Changeset in webkit [262557] by Jonathan Bedard
  • 1 edit
    30 adds in trunk/WebKitLibraries

Add tvOS framework stubs
https://bugs.webkit.org/show_bug.cgi?id=212760
<rdar://problem/63986134>

Reviewed by Tim Horton.

  • WebKitPrivateFrameworkStubs/appletvos: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/AppSupport.framework: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/AppSupport.framework/AppSupport.tbd: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/AssertionServices.framework: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/AssertionServices.framework/AssertionServices.tbd: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/AuthKit.framework: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/AuthKit.framework/AuthKit.tbd: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/CorePDF.framework: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/CorePDF.framework/CorePDF.tbd: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/CorePrediction.framework: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/CorePrediction.framework/CorePrediction.tbd: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/DeviceIdentity.framework: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/DeviceIdentity.framework/DeviceIdentity.tbd: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/FileProvider.framework: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/FileProvider.framework/FileProvider.tbd: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/GraphicsServices.framework/GraphicsServices.tbd: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/IOKit.framework: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/IOKit.framework/IOKit.tbd: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/IOSurfaceAccelerator.framework: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/LocalAuthentication.framework: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/LocalAuthentication.framework/LocalAuthentication.tbd: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/RunningBoardServices.framework: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/RunningBoardServices.framework/RunningBoardServices.tbd: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/SafariSafeBrowsing.framework: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/URLFormatting.framework: Added.
  • WebKitPrivateFrameworkStubs/appletvos/13/URLFormatting.framework/URLFormatting.tbd: Added.
12:18 PM Changeset in webkit [262556] by Jonathan Bedard
  • 1 edit
    32 adds in trunk/WebKitLibraries

Add watchOS framework stubs
https://bugs.webkit.org/show_bug.cgi?id=212761
<rdar://problem/63986144>

Reviewed by Tim Horton.

  • WebKitPrivateFrameworkStubs/watchos: Added.
  • WebKitPrivateFrameworkStubs/watchos/6: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/AppSupport.framework: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/AppSupport.framework/AppSupport.tbd: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/AssertionServices.framework: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/AssertionServices.framework/AssertionServices.tbd: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/AuthKit.framework: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/AuthKit.framework/AuthKit.tbd: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/CorePDF.framework: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/CorePDF.framework/CorePDF.tbd: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/CorePrediction.framework: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/CorePrediction.framework/CorePrediction.tbd: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/DeviceIdentity.framework: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/DeviceIdentity.framework/DeviceIdentity.tbd: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/FileProvider.framework: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/FileProvider.framework/FileProvider.tbd: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/GraphicsServices.framework/GraphicsServices.tbd: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/IOKit.framework: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/IOKit.framework/IOKit.tbd: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/IOSurfaceAccelerator.framework: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/LocalAuthentication.framework: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/LocalAuthentication.framework/LocalAuthentication.tbd: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/PepperUICore.framework: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/PepperUICore.framework/PepperUICore.tbd: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/RunningBoardServices.framework: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/RunningBoardServices.framework/RunningBoardServices.tbd: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/SafariSafeBrowsing.framework: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/URLFormatting.framework: Added.
  • WebKitPrivateFrameworkStubs/watchos/6/URLFormatting.framework/URLFormatting.tbd: Added.
12:02 PM Changeset in webkit [262555] by mark.lam@apple.com
  • 2 edits in trunk

Editors should not automatically trim trailing whitespace.
https://bugs.webkit.org/show_bug.cgi?id=212763

Reviewed by Yusuke Suzuki.

Doing so would force a lot of unnecessary code changes and make patches hard to
review. It is common WebKit practice to not make unrelated changes in patches.

  • .editorconfig:
12:00 PM Changeset in webkit [262554] by Alan Coon
  • 23 edits
    4 adds in branches/safari-609-branch

Apply patch. rdar://problem/63951369

12:00 PM Changeset in webkit [262553] by Alan Coon
  • 3 edits
    3 adds in branches/safari-609-branch

Cherry-pick r262196. rdar://problem/63951363

Crash under WebNotificationManager::removeNotificationFromContextMap()
https://bugs.webkit.org/show_bug.cgi?id=212410
<rdar://63496726>

Reviewed by Alex Christensen.

Source/WebKit:

Protect the notification object in WebNotificationManager::didDestroyNotification() since
removing it from m_notificationIDMap will deref it and may end up destroying the notification
object otherwise.

Test: http/tests/notifications/crash-on-navigation.html

  • WebProcess/Notifications/WebNotificationManager.cpp: (WebKit::WebNotificationManager::didDestroyNotification):

LayoutTests:

Add layout test coverage.

  • http/tests/notifications/crash-on-navigation-expected.txt: Added.
  • http/tests/notifications/crash-on-navigation.html: Added.
  • http/tests/notifications/resources/crash-on-navigation-iframe.html: Added.

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

12:00 PM Changeset in webkit [262552] by Alan Coon
  • 7 edits in branches/safari-609-branch

Cherry-pick r262171. rdar://problem/63950945

UTF-8 encode strings of invalid URLs when converting WTF::URL to NSURL instead of truncating the UTF-16 encoding
https://bugs.webkit.org/show_bug.cgi?id=212393
<rdar://problem/63095503>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-26
Reviewed by Tim Horton.

Source/WTF:

This only changes behavior in code that is marked as UNLIKELY because it can only be reached by invalid unicode URLs,
but it can be reached and should behave in a reasonable manner in those cases. This makes Safari behave more similarly
to Firefox in this case instead of doing something similar to no other browser.

  • wtf/URL.cpp: (WTF::copyASCII): Deleted. (WTF::URL::copyToBuffer const): Deleted.
  • wtf/URL.h:
  • wtf/cf/URLCF.cpp: (WTF::URL::createCFURL const):
  • wtf/cocoa/URLCocoa.mm: (WTF::URL::createCFURL const):

Tools:

  • TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm: (TestWebKitAPI::TEST):

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

12:00 PM Changeset in webkit [262551] by Alan Coon
  • 4 edits
    2 adds in branches/safari-609-branch

Cherry-pick r261246. rdar://problem/63951358

pointermove event sometimes has incorrect pointerType of 'mouse' on touch interactions
https://bugs.webkit.org/show_bug.cgi?id=210716
<rdar://problem/62084817>

Patch by Antoine Quint <Antoine Quint> on 2020-05-06
Reviewed by Darin Adler.

Source/WebKit:

Set the SyntheticClickType to OneFingerTap when creating a synthetic "mousemove" event for a synthetic "click" event as part of a tap.
On top of being more indicative of the actual action that triggered the synthetic event, it also has the added quality that it will
not yield a "pointermove" event.

Test: pointerevents/ios/click-no-pointermove.html

  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::dispatchSyntheticMouseMove):

LayoutTests:

Add a new test that checks that with content observation enabled a tap on a <button> element
dispatches synthetic mousemove and click events but no pointermove event.

  • pointerevents/ios/click-no-pointermove-expected.txt: Added.
  • pointerevents/ios/click-no-pointermove.html: Added.
  • pointerevents/utils.js: (target_test):

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

12:00 PM Changeset in webkit [262550] by Alan Coon
  • 1 edit in branches/safari-609-branch/Source/WebKit/UIProcess/WebProcessProxy.h

Fixing state of branch due to r259014 and revert of r258924. rdar://problem/63902456

12:00 PM Changeset in webkit [262549] by Alan Coon
  • 13 edits
    5 deletes in branches/safari-609-branch

Revert r258924. rdar://problem/63902456

11:28 AM Changeset in webkit [262548] by graouts@webkit.org
  • 4 edits in trunk/LayoutTests

[ iOS wk2 ] animations/play-state-paused.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=212641
<rdar://problem/63879230>

Reviewed by Dean Jackson.

Rewrite this test to use the AnimationTest helper that will non-flakily check animated values while an animation is running.

  • animations/play-state-paused-expected.txt:
  • animations/play-state-paused.html:
  • platform/ios-wk2/TestExpectations:
11:06 AM Changeset in webkit [262547] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

[iOS] Validate index parameter in PlatformPasteboard
https://bugs.webkit.org/show_bug.cgi?id=212713
<rdar://problem/60068765>

Reviewed by Alex Christensen.

Follow-up to r262529 to also make sure that the index is not negative after
casting to NSInteger.

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::readBuffer const):
(WebCore::PlatformPasteboard::readString const):
(WebCore::PlatformPasteboard::readURL const):

11:04 AM Changeset in webkit [262546] by pvollan@apple.com
  • 6 edits in trunk/Source

[Cocoa] Adopt read-only mode for preferences in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=212411
Source/WebCore/PAL:

Reviewed by Darin Adler.

  • pal/spi/cf/CFUtilitiesSPI.h:

Source/WebKit:

<rdar://problem/63640788>

Reviewed by Darin Adler.

The WebContent process should never write preferences. Adopt read-only mode for preferences.
This will fix some sandbox violations when the UI process is notifying the WebContent process
about preference changes. When notified, the WebContent process will use the preferences API
to write those preferences in-process, but there should be no attempt at writing these new
values to disk, which this patch will ensure.

No new tests, since this is fixing a benign sandbox violation.

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

(WebKit::XPCServiceMain):

Source/WTF:

Reviewed by Darin Adler.

Create HAVE define indicating support for read-only preference SPI.

  • wtf/PlatformHave.h:
10:33 AM Changeset in webkit [262545] by calvaris@igalia.com
  • 3 edits in trunk/Source/WebCore

[EME][GStreamer] cdmProxyAttached does not need to force a bump ref in the signature
https://bugs.webkit.org/show_bug.cgi?id=212754

Reviewed by Philippe Normand.

cdmProxyAttached is currently receiving a RefPtr<CDMProxy> in the
signature, what causes a ref bump when the function is called. A
const RefPtr<CDMProxy>& is more suitable cause the reference is
already bumped when the CDMProxy assigned in the decryptor
attribute.

No new tests, just a rework.

  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:

(cdmProxyAttached):

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h:
10:15 AM Changeset in webkit [262544] by Alexey Shvayka
  • 61 edits
    1 copy
    1 move
    62 adds
    15 deletes in trunk/JSTests

Update test262 to commit 290ceba31fea
https://bugs.webkit.org/show_bug.cgi?id=212752

Reviewed by Ross Kirsling.

  • test262/config.yaml: Unskip tests fixed in r260990.
  • test262/expectations.yaml:
  • test262/latest-changes-summary.txt:
  • test262/test/*: Updated.
  • test262/test262-Revision.txt:
9:51 AM Changeset in webkit [262543] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] The WebContent process should be allowed to consume an extension to the runningboard service
https://bugs.webkit.org/show_bug.cgi?id=212753
<rdar://problem/63948859>

Reviewed by Chris Dumez.

The WebContent process on iOS is failing to consume an extension to the runningboard service, because it is not allowed to do so.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
9:08 AM Changeset in webkit [262542] by timothy_horton@apple.com
  • 29 edits in trunk

Work around broken system version macro
https://bugs.webkit.org/show_bug.cgi?id=212726

Reviewed by Dan Bernstein.

Source/bmalloc:

  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

  • Configurations/DebugRelease.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/DebugRelease.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/DebugRelease.xcconfig:

Source/WebCore:

  • Configurations/DebugRelease.xcconfig:

Source/WebCore/PAL:

  • Configurations/DebugRelease.xcconfig:

Source/WebInspectorUI:

  • Configurations/DebugRelease.xcconfig:

Source/WebKit:

  • Configurations/DebugRelease.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/DebugRelease.xcconfig:

Source/WTF:

  • Configurations/DebugRelease.xcconfig:

Tools:

  • ContentExtensionTester/Configurations/DebugRelease.xcconfig:
  • DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
  • ImageDiff/cg/Configurations/DebugRelease.xcconfig:
  • MiniBrowser/Configurations/DebugRelease.xcconfig:
  • TestWebKitAPI/Configurations/DebugRelease.xcconfig:
  • WebEditingTester/Configurations/DebugRelease.xcconfig:
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:
  • lldb/lldbWebKitTester/Configurations/DebugRelease.xcconfig:
9:02 AM Changeset in webkit [262541] by aestes@apple.com
  • 14 edits in trunk

[watchOS] Re-enable content filtering in the simulator build
https://bugs.webkit.org/show_bug.cgi?id=212711
<rdar://problem/63938350>

Reviewed by Wenson Hsieh.

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/PlatformHave.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
8:49 AM Changeset in webkit [262540] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Reset fragment line info when the relatively positioned inline box becomes static with block child.
https://bugs.webkit.org/show_bug.cgi?id=212724
<rdar://problem/62847534>

Reviewed by Simon Fraser.

adjustFragmentedFlowStateOnContainingBlockChangeIfNeeded was missing the case when the
block container was inside an inline box. It happens when the inline box is relatively positioned while the
child block box is absolutely positioned.
RenderFragmentedFlow keeps track of the associated root lineboxes in m_lineToFragmentMap.
In adjustFragmentedFlowStateOnContainingBlockChangeIfNeeded, when the block is no longer part of the fragment
we remove these cached lineboxes from the m_lineToFragmentMap.
This patch fixes the case when the cached lineboxes are generated by a child block box.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::adjustFragmentedFlowStateOnContainingBlockChangeIfNeeded):

8:07 AM Changeset in webkit [262539] by Chris Dumez
  • 141 edits
    1099 copies
    946 adds
    6 deletes in trunk/LayoutTests

Resync web-platform-tests/2dcontext from upstream
https://bugs.webkit.org/show_bug.cgi?id=212639

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Resync web-platform-tests/2dcontext from upstream d3ea88514a93b7b6968.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/2dcontext/*: Removed.
  • web-platform-tests/html/canvas/element/*: Added.
  • web-platform-tests/html/canvas/resources/*: Added.
  • web-platform-tests/html/canvas/tools/*: Added.

LayoutTests:

  • TestExpectations:
  • canvas/philip/tests/2d.drawImage.incomplete.emptysrc.html:
  • canvas/philip/tests/2d.drawImage.incomplete.nosrc.html:
  • canvas/philip/tests/2d.drawImage.incomplete.removedsrc.html:
  • canvas/philip/tests/2d.pattern.image.incomplete.emptysrc.html:
  • canvas/philip/tests/2d.pattern.image.incomplete.removedsrc.html:
  • gpu-process/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-flipY-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt: Removed.
  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt: Removed.
  • platform/ios-simulator/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt: Removed.
  • platform/mac/TestExpectations:
  • platform/mac/imported/w3c/web-platform-tests/2dcontext/line-styles/2d.line.cap.round-expected.txt: Removed.
  • platform/win/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt: Removed.
8:03 AM Changeset in webkit [262538] by Kate Cheney
  • 4 edits in trunk/Source/WebKit

ITP SQLite Database should only vacuum once per day
https://bugs.webkit.org/show_bug.cgi?id=212712
<rdar://problem/63939711>

Reviewed by Brent Fulgham.

Currently the SQLite Database runs a vacuum command each time statistics
are processed. This is probably too frequent, because the database
rarely needs to delete large amounts of data. We can cut this down to once a day.

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

(WebKit::WebResourceLoadStatisticsStore::performDailyTasks):

7:46 AM Changeset in webkit [262537] by Diego Pino Garcia
  • 4 edits
    7 adds
    2 deletes in trunk/LayoutTests

[GLIB][GTK] Gardening, update test expectations and baselines after r262525
https://bugs.webkit.org/show_bug.cgi?id=212751

Unreviewed gardening.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-none-block-expected.txt: Added after r262312.
  • platform/glib/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-self-block-expected.txt: Added after r262312.
  • platform/glib/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-same-in-same-self-allow-expected.txt: Added after r262312.
  • platform/glib/imported/w3c/web-platform-tests/websockets/unload-a-document/002-expected.txt: Removed after r262312.
  • platform/glib/imported/w3c/web-platform-tests/websockets/unload-a-document/004-expected.txt: Removed after r262312.
  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/encoding/single-byte-decoder-expected.txt: Added after r262235.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/resize-during-playback-expected.txt: Removed after r262254.
  • platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt: Updated after r262235.
7:44 AM Changeset in webkit [262536] by Jacob Uphoff
  • 141 edits
    2002 adds in trunk/LayoutTests

Unreviewed, reverting r262527 and r262531.

The commit 262527 caused over 100 web platform tests to fail
and 262531 edited the file after

Reverted changesets:

"Resync web-platform-tests/2dcontext from upstream"
https://bugs.webkit.org/show_bug.cgi?id=212639
https://trac.webkit.org/changeset/262527

"[GTK][WPE] Gardening, temporarily disable offscreen-canvas
tests"
https://bugs.webkit.org/show_bug.cgi?id=212738
https://trac.webkit.org/changeset/262531

7:40 AM Changeset in webkit [262535] by mark.lam@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

SpeculativeJIT::compileDateGet()'s slow path does not need an exception check.
https://bugs.webkit.org/show_bug.cgi?id=212645

Reviewed by Yusuke Suzuki.

SpeculativeJIT::compileDateGet() implements a bunch of Date intrinsics which call
into a C++ operation function do their work. However, the call to these operation
functions were done using a slow path generator configured to automatically
emit exception checks after the call. These exception checks are unneeded because
those functions will not throw any exceptions.

This issue was found with JSC stress test runs on a debug build. The doesGC
verifier was failing on the exceptionFuzz/date-format-xparb.js test. The reason
is because doesGC does not expect any these Date intrinsics to throw any exceptions,
but SpeculativeJIT was emitting the unneeded exception checks there. These
exception check sites get turned into throw sites by the exceptionFuzzer, and
they allocate an Error object there. This allocation made the doesGC verifier
not happy.

This patch fixes this issue by changing SpeculativeJIT::compileDateGet() to
pass ExceptionCheckRequirement::CheckNotNeeded to the slow path generator.

The patch also proves that all the operation functions cannot throw any exceptions.
Previously, the operations passes a VM& to the Date functions. The purpose for
doing this is so that the Date functions can work with a few date cache data
structures stored as VM fields.

This patch refactors those VM fields into a VM::DateCache struct, and changed all
those Date functions to take a VM::DateCache& instead of a VM&. Since the Date
functions no longer take a VM&, this proves that they cannot throw because they
would need a VM& to make a ThrowScope in order to throw.

Update: Yusuke pointed out that the lack of a JSGlobalObject* argument is sufficient
to guarantee that the Date functions cannot throw. However, we'll keep this
DateCache refactoring since it provides additional info that the Date functions
only operate on the DateCache fields and nothing else in VM.

Also removed DFG::JITCompile's fastExceptionCheck() which is unused.

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::fastExceptionCheck): Deleted.

  • dfg/DFGOperations.cpp:
  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compileDateGet):

  • runtime/DateConstructor.cpp:

(JSC::millisecondsFromComponents):
(JSC::callDate):

  • runtime/DateInstance.cpp:

(JSC::DateInstance::calculateGregorianDateTime const):
(JSC::DateInstance::calculateGregorianDateTimeUTC const):

  • runtime/DateInstance.h:
  • runtime/DatePrototype.cpp:

(JSC::formatLocaleDate):
(JSC::formateDateInstance):
(JSC::dateProtoFuncToISOString):
(JSC::dateProtoFuncGetFullYear):
(JSC::dateProtoFuncGetUTCFullYear):
(JSC::dateProtoFuncGetMonth):
(JSC::dateProtoFuncGetUTCMonth):
(JSC::dateProtoFuncGetDate):
(JSC::dateProtoFuncGetUTCDate):
(JSC::dateProtoFuncGetDay):
(JSC::dateProtoFuncGetUTCDay):
(JSC::dateProtoFuncGetHours):
(JSC::dateProtoFuncGetUTCHours):
(JSC::dateProtoFuncGetMinutes):
(JSC::dateProtoFuncGetUTCMinutes):
(JSC::dateProtoFuncGetSeconds):
(JSC::dateProtoFuncGetUTCSeconds):
(JSC::dateProtoFuncGetTimezoneOffset):
(JSC::setNewValueFromTimeArgs):
(JSC::setNewValueFromDateArgs):
(JSC::dateProtoFuncSetYear):
(JSC::dateProtoFuncGetYear):

  • runtime/JSDateMath.cpp:

(JSC::localTimeOffset):
(JSC::gregorianDateTimeToMS):
(JSC::msToGregorianDateTime):
(JSC::parseDate):

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

(JSC::VM::resetDateCache):

  • runtime/VM.h:
6:37 AM Changeset in webkit [262534] by Paulo Matos
  • 2 edits in trunk/Source/JavaScriptCore

Fix 32bit build broken at r262513
https://bugs.webkit.org/show_bug.cgi?id=212735

Unreviewed Gardening.

Proper fix is being worked out under https://bugs.webkit.org/show_bug.cgi?id=212734

  • dfg/DFGOSRExit.cpp:

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

6:24 AM Changeset in webkit [262533] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Minor optimisation to RemoteAudioBusData::decode
https://bugs.webkit.org/show_bug.cgi?id=212692

Reviewed by Eric Carlson.

  • WebProcess/GPU/media/RemoteAudioBusData.h:

(WebKit::RemoteAudioBusData::decode):
Use releaseNonNull to remove some count churn.

6:01 AM Changeset in webkit [262532] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Read MediaPlayerPrivateMediaStreamAVFObjC::m_canEnqueueDisplayLayer after the lock
https://bugs.webkit.org/show_bug.cgi?id=212693

Reviewed by Eric Carlson.

In case destroyLayers is called and shortly after ensureLayers is also called, the m_canEnqueueDisplayLayer check in enqueueVideoSample
might be bypassed. Make sure to lock before checking m_canEnqueueDisplayLayer in enqueueVideoSample.
For good measure, set m_canEnqueueDisplayLayer to false after locking in destroyLayers.

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSample):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyLayers):

3:35 AM Changeset in webkit [262531] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Gardening, temporarily disable offscreen-canvas tests
https://bugs.webkit.org/show_bug.cgi?id=212738

Unreviewed gardening.

The test started failing after r262527. Disable the tests temporarily
to let the test bots pass.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
1:47 AM Changeset in webkit [262530] by commit-queue@webkit.org
  • 3 edits
    1 add
    3 deletes in trunk/Tools

[Flatpak SDK] Update definitions
https://bugs.webkit.org/show_bug.cgi?id=212698

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-04
Reviewed by Žan Doberšek.

  • buildstream/elements/freedesktop-sdk.bst: Update to FDO 19.08.11
  • buildstream/elements/sdk/gtk.bst: Update GTK4
  • buildstream/patches/fdo/0001-Pango-Bump-to-1.45-master.patch: Added. Needed for GTK4
  • buildstream/patches/fdo/0001-Add-Jack.patch: Removed. This will be used when we update to the 20.08 FDO SDK.
  • buildstream/patches/fdo/0001-components-xdg-desktop-portal.bst-Update-to-1.6.0.patch: Removed. Ditto.
  • buildstream/patches/fdo/0002-Update-PipeWire-to-0.3.1.patch: Removed. Ditto.

Jun 3, 2020:

7:25 PM Changeset in webkit [262529] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

[iOS] Validate index parameter in PlatformPasteboard
https://bugs.webkit.org/show_bug.cgi?id=212713
<rdar://problem/60068765>

Reviewed by Wenson Hsieh.

Validate index parameter in PlatformPasteboard, before calling [NSIndexSet indexSetWithIndex:].
Per documentation, index needs to be in the range [0 .. NSNotFound-1].

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::readBuffer const):
(WebCore::PlatformPasteboard::readString const):
(WebCore::PlatformPasteboard::readURL const):

6:57 PM Changeset in webkit [262528] by aestes@apple.com
  • 17 edits
    1 add
    2 deletes in trunk

[Apple Pay] Add new values for -apple-pay-button-type
https://bugs.webkit.org/show_bug.cgi?id=212684
<rdar://problem/63908535>

Reviewed by Anders Carlsson.

Source/WebCore:

Where available, added new values for -apple-pay-button-type and introduced ApplePaySession v10.

New test: http/tests/ssl/applepay/ApplePayButton.html

  • Modules/applepay/PaymentCoordinatorClient.cpp:

(WebCore::PaymentCoordinatorClient::supportsVersion):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::applePayButtonDescription const):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ApplePayButtonType const):

  • css/CSSValueKeywords.in:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • en.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::AXApplePayReloadLabel):
(WebCore::AXApplePayAddMoneyLabel):
(WebCore::AXApplePayTopUpLabel):
(WebCore::AXApplePayOrderLabel):
(WebCore::AXApplePayRentLabel):
(WebCore::AXApplePaySupportLabel):
(WebCore::AXApplePayContributeLabel):
(WebCore::AXApplePayTipLabel):

  • platform/LocalizedStrings.h:
  • rendering/RenderThemeCocoa.mm:

(WebCore::toPKPaymentButtonType):

  • rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareNonInheritedData.h:

Source/WTF:

  • wtf/PlatformEnableCocoa.h:

LayoutTests:

  • http/tests/ssl/applepay/ApplePayButton-expected.txt: Added.
  • http/tests/ssl/applepay/ApplePayButton.html:
  • http/tests/ssl/applepay/ApplePayButtonV4.html: Removed.
  • platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.png: Removed.
  • platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.txt: Removed.
  • platform/mac/http/tests/ssl/applepay/ApplePayButtonV4-expected.png: Removed.
  • platform/mac/http/tests/ssl/applepay/ApplePayButtonV4-expected.txt: Removed.
6:05 PM Changeset in webkit [262527] by Chris Dumez
  • 141 edits
    6 deletes in trunk/LayoutTests

Resync web-platform-tests/2dcontext from upstream
https://bugs.webkit.org/show_bug.cgi?id=212639

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Resync web-platform-tests/2dcontext from upstream d3ea88514a93b7b6968.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/2dcontext/*: Removed.
  • web-platform-tests/html/canvas/element/*: Added.
  • web-platform-tests/html/canvas/resources/*: Added.
  • web-platform-tests/html/canvas/tools/*: Added.

LayoutTests:

  • TestExpectations:
  • canvas/philip/tests/2d.drawImage.incomplete.emptysrc.html:
  • canvas/philip/tests/2d.drawImage.incomplete.nosrc.html:
  • canvas/philip/tests/2d.drawImage.incomplete.removedsrc.html:
  • canvas/philip/tests/2d.pattern.image.incomplete.emptysrc.html:
  • canvas/philip/tests/2d.pattern.image.incomplete.removedsrc.html:
  • gpu-process/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-flipY-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub-expected.txt: Removed.
  • platform/glib/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt: Removed.
  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt: Removed.
  • platform/ios-simulator/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt: Removed.
  • platform/mac/TestExpectations:
  • platform/mac/imported/w3c/web-platform-tests/2dcontext/line-styles/2d.line.cap.round-expected.txt: Removed.
  • platform/win/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt: Removed.
5:25 PM Changeset in webkit [262526] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[watchOS] fast/events/watchos/change-focus-during-change-event.html crashes
https://bugs.webkit.org/show_bug.cgi?id=212722
<rdar://problem/60633339>

Reviewed by Andy Estes.

When HAVE(QUICKBOARD_COLLECTION_VIEWS) is enabled, the codepath that's used to simulate interacting with the
select menu view controller on watchOS will crash, since it tries to pretend that the user has selected an item
in a table view section (PUICQuickboardListSectionTextOptions) that only exists when Quickboard collection
views are disabled. Fix the crash by adjusting the testing codepath to select the item in the first section when
HAVE(QUICKBOARD_COLLECTION_VIEWS) is defined.

  • UIProcess/ios/forms/WKSelectMenuListViewController.mm:

(-[WKSelectMenuListViewController selectItemAtIndex:]):

5:01 PM Changeset in webkit [262525] by dbates@webkit.org
  • 3 edits
    4 adds in trunk

Inserted text placeholder should vertically align to top and behave like block-level element when it has 0 width
https://bugs.webkit.org/show_bug.cgi?id=212716
<rdar://problem/62672479>

Reviewed by Darin Adler.

Source/WebCore:

Refine the appearance of a text placeholder based on feedback:

  1. If the width of the placeholder is 0 then put it on its own line. This is accomplished by making it CSS "display: block".
  2. Vertically align the placeholder with the top of the line.

Both of these refinements are to make the rendering more like TextKit's rendering.

Tests: editing/text-placeholder/insert-into-content-editable-non-zero-width-and-height.html

editing/text-placeholder/insert-into-content-editable-zero-width.html

  • html/shadow/TextPlaceholderElement.cpp:

LayoutTests:

Add tests.

  • editing/text-placeholder/insert-into-content-editable-non-zero-width-and-height-expected.html: Added.
  • editing/text-placeholder/insert-into-content-editable-non-zero-width-and-height.html: Added.
  • editing/text-placeholder/insert-into-content-editable-zero-width-expected.html: Added.
  • editing/text-placeholder/insert-into-content-editable-zero-width.html: Added.
4:22 PM Changeset in webkit [262524] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Release Assert @ WebCore::RenderTreeBuilder::RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=212714

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-06-03
Reviewed by Geoffrey Garen.

Source/WebCore:

Widget removal in the middle of building a Render Tree causes side effects, leading to Release Assert. Moved the scope for suspension of widgets
update to RenderTreeBuilder instead of having it in RenderTreeUpdater.

Also made sure that the WidgetHierarchyUpdatesSuspensionScope::moveWidgets() should handle all widgets scheduled to move, including new widgets
scheduled during moveWidgets().

Test: fast/rendering/widget-removal-in-render-tree-builder-crash.html

  • rendering/RenderWidget.cpp:

(WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets):

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::tearDownRenderers):

LayoutTests:

Added a regression test.

  • fast/rendering/widget-removal-in-render-tree-builder-crash-expected.txt: Added.
  • fast/rendering/widget-removal-in-render-tree-builder-crash.html: Added.
4:18 PM Changeset in webkit [262523] by Tadeu Zagallo
  • 6 edits
    2 adds in trunk

Disable B3 hoistLoopInvariantValues by default
https://bugs.webkit.org/show_bug.cgi?id=212511
<rdar://problem/63813245>

Reviewed by Mark Lam.

JSTests:

  • microbenchmarks/interpreter-wasm.js: Added.

(key.in.Module.Module.hasOwnProperty):
(quit_):
(locateFile):
(ENVIRONMENT_IS_NODE.read_):
(ENVIRONMENT_IS_NODE.readBinary):
(ENVIRONMENT_IS_NODE.quit_):
(ENVIRONMENT_IS_NODE.Module.string_appeared_here):
(else.read_):
(else.readBinary):
(else.quit_):
(else):
(else.xhr.onload):
(else.readAsync):
(else.setWindowTitle):
(key.in.moduleOverrides.moduleOverrides.hasOwnProperty):
(dynamicAlloc):
(getNativeTypeSize):
(warnOnce):
(convertJsFunctionToWasm):
(addFunctionWasm):
(removeFunctionWasm):
(setTempRet0):
(setValue):
(assert):
(getCFunc):
(toC.string_appeared_here):
(convertReturnValue):
(ccall):
(UTF8ArrayToString):
(UTF8ToString):
(stringToUTF8Array):
(stringToUTF8):
(lengthBytesUTF8):
(allocateUTF8OnStack):
(writeArrayToMemory):
(writeAsciiToMemory):
(updateGlobalBufferAndViews):
(callRuntimeCallbacks):
(preRun):
(initRuntime):
(preMain):
(exitRuntime):
(postRun):
(addOnPreRun):
(addOnPostRun):
(addRunDependency):
(removeRunDependency):
(hasPrefix):
(isDataURI):
(isFileURI):
(getBinary):
(getBinaryPromise):
(createWasm.receiveInstance):
(createWasm.receiveInstantiatedSource):
(createWasm.instantiateArrayBuffer):
(createWasm.instantiateAsync.):
(createWasm.instantiateAsync):
(createWasm):
(ATINIT.push.func):
(demangle):
(demangleAll):
(_emscripten_get_sbrk_ptr):
(_emscripten_memcpy_big):
(abortOnCannotGrowMemory):
(_emscripten_resize_heap):
(PATH.splitPath):
(PATH.normalizeArray):
(PATH.normalize):
(PATH.dirname):
(PATH.basename):
(PATH.extname):
(PATH.join):
(PATH.join2):
(SYSCALLS.printChar):
(SYSCALLS.getStr):
(SYSCALLS.get64):
(_fd_write):
(_setTempRet0):
(_wasm_call_ctors.Module.string_appeared_here):
(_main.Module.string_appeared_here):
(_malloc.Module.string_appeared_here):
(
_errno_location.Module.string_appeared_here):
(_free.Module.string_appeared_here):
(stackSave.Module.string_appeared_here):
(stackAlloc.Module.string_appeared_here):
(stackRestore.Module.string_appeared_here):
(growWasmMemory.Module.string_appeared_here):
(dynCall_ii.Module.string_appeared_here):
(dynCall_iiii.Module.string_appeared_here):
(dynCall_jiji.Module.string_appeared_here):
(ExitStatus):
(dependenciesFulfilled):
(callMain):
(run.doRun):
(run):
(exit):

  • microbenchmarks/interpreter-wasm.wasm: Added.

Source/JavaScriptCore:

The hoistLoopInvariantValues optimization in B3 does not calculate the cost of hoisting the candidates.
For example, in the test case provided with the bug, a switch inside a loop can lead to hoisting the body
of several switch cases which would never be executed. Other than leading to worse runtime, this also
increases the pressure in the register allocate, leading to worse compile times (~10x worse in this case).
I have added a FIXME to consider adding cost calculation and re-enabling this pass, but given that we
already have LICM in DFG, it should be ok to disable it for now.

  • b3/B3Generate.cpp:

(JSC::B3::generateToAir):

  • runtime/OptionsList.h:

Tools:

Enable the B3 hoistLoopInvariantValues pass in one of our existing configurations to
avoid bit rot since we'd like to re-enable it eventually.

  • Scripts/run-jsc-stress-tests:
4:16 PM Changeset in webkit [262522] by Russell Epstein
  • 1 copy in tags/Safari-610.1.15.1.3

Tag Safari-610.1.15.1.3.

4:11 PM Changeset in webkit [262521] by Russell Epstein
  • 8 edits in branches/safari-610.1.15-branch/Source

Revert "Versioning."

This reverts commit r262519.

4:10 PM Changeset in webkit [262520] by Russell Epstein
  • 8 edits in branches/safari-610.1.15.1-branch/Source

Versioning.

4:00 PM Changeset in webkit [262519] by Russell Epstein
  • 8 edits in branches/safari-610.1.15-branch/Source

Versioning.

3:55 PM Changeset in webkit [262518] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS wk1 debug ] svg/custom/textPath-change-id.svg is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=212721

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:15 PM Changeset in webkit [262517] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Gardening: fix broken Windows debug build.
https://bugs.webkit.org/show_bug.cgi?id=212680

Not reviewed.

  • dfg/DFGDoesGCCheck.cpp:

(JSC::DFG::DoesGCCheck::verifyCanGC):

  • dfg/DFGDoesGCCheck.h:
2:34 PM Changeset in webkit [262516] by Megan Gardner
  • 3 edits in trunk/LayoutTests

Refactor long press test to reflect current behaviour.
https://bugs.webkit.org/show_bug.cgi?id=212709
<rdar://problem/59572126>

Reviewed by Wenson Hsieh.

Previously, if you long pressed on editable content, the selection assistant would be triggered
in the wrong mode and you could not modify or interact with the selection. With changes and
refactors that have happened in UIKit and WebKit, the selection can be interacted with
correctly inside of an editable area. We should now allow and test for this behavior.

  • fast/events/touch/ios/long-press-on-editable-expected.txt:
  • fast/events/touch/ios/long-press-on-editable.html:
2:08 PM Changeset in webkit [262515] by Wenson Hsieh
  • 4 edits in trunk

[Text manipulation] Extract the value attribute in inputs of type "text" and "search"
https://bugs.webkit.org/show_bug.cgi?id=212706
<rdar://problem/63876969>

Reviewed by Tim Horton.

Source/WebCore:

Allow text manipulation to extract text for the value of text fields that were not last modified by user input.
Aside from button types, it generally doesn't make sense to perform text manipulation over arbitrary input
element values, especially for text field types such as passwords, URLs, emails, and numbers. However, some
webpages set the value of inputs to implement placeholder-like behavior in text fields, and we need to be
compatible with this.

Tests: TextManipulation.StartTextManipulationExtractsValuesFromTextInputs

TextManipulation.CompleteTextManipulationInButtonsAndTextFields

  • editing/TextManipulationController.cpp:

(WebCore::shouldExtractValueForTextManipulation):

Unfortunately, we need to check the type attribute here against "text", since inputs of type "date" and "time"
fall back to text fields on macOS, and we still want to avoid extracting values for these.

(WebCore::isAttributeForTextManipulation):

Pull the value attribute of this out into a separate method, above.

(WebCore::TextManipulationController::observeParagraphs):
(WebCore::TextManipulationController::replace):

Treat the text field value separately from other attributes by calling HTMLInputElement::value() upon
extraction, and HTMLInputElement::setValue() upon replacement.

Tools:

Add a new test case (similar to the existing test StartTextManipulationExtractsValuesFromButtonInputs) to
verify that we extract text from the value of inputs of type "text" and "search".

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

1:57 PM Changeset in webkit [262514] by Peng Liu
  • 4 edits in trunk/LayoutTests

REGRESSION: (r262456): [ Mac ] media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-pip-to-inline.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=212694

Reviewed by Jer Noble.

Enable the mock video presentation mode of the WebKitTestRunner in the test,
and only request a video element to change its video presentation mode after
the previous change is completed.

  • media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-pip-to-inline-expected.txt:
  • media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-pip-to-inline.html:
  • platform/mac/TestExpectations:
1:23 PM Changeset in webkit [262513] by mark.lam@apple.com
  • 23 edits
    2 copies in trunk/Source/JavaScriptCore

[Re-landing] Enhance DoesGC verification to print more useful info when verification fails.
https://bugs.webkit.org/show_bug.cgi?id=212680

Reviewed by Yusuke Susuki.

When DoesGC verification fails, the first step of debugging it would be to find
out what and which DFG node resulted in the failed verification. In pre-existing
code, all we get is an assertion failure.

This patch makes it so that the verifier will dump useful info. Here's an example:

Error: DoesGC failed @ D@34 DateGetInt32OrNaN in #DtCHMz:[0x1135bd1d0->0x1135bcab0->0x1135e5c80, DFGFunctionCall, 150 (DidTryToEnterInLoop)]

[0] frame 0x7ffee8285660 {

name:
sourceURL:
isInlinedFrame: false
callee: 0x1135f6820
returnPC: 0x50ce61248ae6
callerFrame: 0x7ffee82856f0
rawLocationBits: 5 0x5
codeBlock: 0x1135bd1d0 #DtCHMz:[0x1135bd1d0->0x1135bcab0->0x1135e5c80, DFGFunctionCall, 150 (DidTryToEnterInLoop)]

hasCodeOrigins: true
callSiteIndex: 5 of 13
jitCode: 0x113020200 start 0x50ce61214c60 end 0x50ce61219b00
line: 1
column: 60

EntryFrame: 0x7ffee8285860

}
[1] frame 0x7ffee82856f0 {

name:
sourceURL: date-format-xparb.js
isInlinedFrame: false
callee: 0x1135f65a0
returnPC: 0x50ce61227e99
callerFrame: 0x7ffee8285770
rawLocationBits: 4 0x4
codeBlock: 0x1135bd0a0 #BU6Zcd:[0x1135bd0a0->0x1135bc260->0x1135e5180, DFGFunctionCall, 112 (DidTryToEnterInLoop)]

hasCodeOrigins: true
callSiteIndex: 4 of 12
jitCode: 0x113004000 start 0x50ce61212c60 end 0x50ce61214960
line: 26
column: 22

EntryFrame: 0x7ffee8285860

}
[2] frame 0x7ffee8285770 {

name:
sourceURL: date-format-xparb.js
isInlinedFrame: false
callee: 0x1135f64e0
returnPC: 0x108058eb1
callerFrame: 0x7ffee82857e0
rawLocationBits: 1001 0x3e9
codeBlock: 0x1135bc130 #DAS9xe:[0x1135bc130->0x1135e5100, BaselineFunctionCall, 1149]

bc#1001 of 1149
line: 417
column: 38

EntryFrame: 0x7ffee8285860

}
[3] frame 0x7ffee82857e0 {

name: global code
sourceURL: date-format-xparb.js
isInlinedFrame: false
callee: 0x1130f97b8
returnPC: 0x108039043
callerFrame: 0x0
rawLocationBits: 23 0x17
codeBlock: 0x1135bc000 <global>#CukXvt:[0x1135bc000->0x1130cd768, LLIntGlobal, 81]

bc#23 of 81
line: 425
column: 3

EntryFrame: 0x7ffee8285860

}

ASSERTION FAILED: expectDoesGC()

The error message now comes with the node index, NodeType, codeBlock which this
failure was found in, and the JS call stack that led to the failure.

Changes made:

  1. Introduced a DoesGCCheck value that is used to encode some of the above data.

Previously, we only recorded whether doesGC() returns true or false for the
Node. Now, we record the nodeIndex and nodeOp as well.

Note that we also set DoesGC expectations for OSR exits. So, DoesGCCheck
includes Special cases for those.

  1. Added store64(TrustedImm64 imm, const void* address) emitters for X86_64 and ARM64. Also added a test for this new emitter in testmasm.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::store64):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::store64):

  • assembler/testmasm.cpp:

(JSC::testStore64Imm64AddressPointer):
(JSC::run):

  • dfg/DFGDoesGCCheck.cpp: Copied from Source/JavaScriptCore/dfg/DFGDoesGCCheck.cpp.
  • dfg/DFGDoesGCCheck.h: Copied from Source/JavaScriptCore/dfg/DFGDoesGCCheck.h.
  • dfg/DFGGraph.cpp:
  • dfg/DFGOSRExit.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):
(JSC::FTL::operationCompileFTLOSRExit):

  • heap/CompleteSubspace.cpp:

(JSC::CompleteSubspace::tryAllocateSlow):
(JSC::CompleteSubspace::reallocatePreciseAllocationNonVirtual):

  • heap/CompleteSubspaceInlines.h:

(JSC::CompleteSubspace::allocateNonVirtual):

  • heap/DeferGC.h:

(JSC::DeferGC::~DeferGC):

  • heap/GCDeferralContextInlines.h:

(JSC::GCDeferralContext::~GCDeferralContext):

  • heap/Heap.cpp:

(JSC::Heap::collectNow):
(JSC::Heap::collectAsync):
(JSC::Heap::collectSync):
(JSC::Heap::stopIfNecessarySlow):
(JSC::Heap::collectIfNecessaryOrDefer):

  • heap/Heap.h:

(JSC::Heap::addressOfDoesGC):
(JSC::Heap::setDoesGCExpectation):
(JSC::Heap::verifyCanGC):
(JSC::Heap::expectDoesGC const): Deleted.
(JSC::Heap::setExpectDoesGC): Deleted.
(JSC::Heap::addressOfExpectDoesGC): Deleted.

  • heap/HeapInlines.h:

(JSC::Heap::acquireAccess):
(JSC::Heap::stopIfNecessary):

  • heap/LocalAllocatorInlines.h:

(JSC::LocalAllocator::allocate):

  • heap/PreciseAllocation.cpp:

(JSC::PreciseAllocation::tryCreate):
(JSC::PreciseAllocation::createForLowerTier):

  • runtime/JSString.h:

(JSC::jsSingleCharacterString):
(JSC::JSString::toAtomString const):
(JSC::JSString::toExistingAtomString const):
(JSC::JSString::value const):
(JSC::JSString::tryGetValue const):
(JSC::JSRopeString::unsafeView const):
(JSC::JSRopeString::viewWithUnderlyingString const):
(JSC::JSString::unsafeView const):

  • runtime/RegExpMatchesArray.h:

(JSC::createRegExpMatchesArray):

1:16 PM Changeset in webkit [262512] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

REGRESSION: [macOS WK2] Layout Test fast/mediastream/device-cha nge-event-2.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=188924

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:59 PM Changeset in webkit [262511] by commit-queue@webkit.org
  • 24 edits
    11 adds in trunk

Disallow responses when a response contains invalid header values
https://bugs.webkit.org/show_bug.cgi?id=184493

Patch by Rob Buis <rbuis@igalia.com> on 2020-06-03
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update improved test results and import fetch/h1-parsing.

  • web-platform-tests/fetch/api/basic/header-value-combining.any-expected.txt:
  • web-platform-tests/fetch/api/basic/header-value-combining.any.worker-expected.txt:
  • web-platform-tests/fetch/api/basic/header-value-null-byte.any-expected.txt:
  • web-platform-tests/fetch/api/basic/header-value-null-byte.any.worker-expected.txt:
  • web-platform-tests/fetch/h1-parsing/resources-with-0x00-in-header.window-expected.txt: Added.
  • web-platform-tests/fetch/h1-parsing/resources-with-0x00-in-header.window.html: Added.
  • web-platform-tests/fetch/h1-parsing/resources-with-0x00-in-header.window.js: Added.

(async_test.t.t.step_timeout):

  • web-platform-tests/fetch/h1-parsing/resources/README.md: Added.
  • web-platform-tests/fetch/h1-parsing/resources/blue-with-0x00-in-a-header.asis: Added.
  • web-platform-tests/fetch/h1-parsing/resources/document-with-0x00-in-header.py: Added.

(main):

  • web-platform-tests/fetch/h1-parsing/resources/script-with-0x00-in-header.py: Added.

(main):

  • web-platform-tests/fetch/h1-parsing/resources/w3c-import.log: Added.
  • web-platform-tests/fetch/h1-parsing/w3c-import.log: Added.
  • web-platform-tests/xhr/headers-normalize-response-expected.txt:

Source/WebCore:

From the Fetch specification [1]:
"A value is a byte sequence that matches the following conditions:
"- Contains no 0x00 (NUL) or HTTP newline bytes."

[1] https://fetch.spec.whatwg.org/#concept-header-value

Tests: imported/w3c/web-platform-tests/fetch/h1-parsing/resources-with-0x00-in-header.window.html

imported/web-platform-tests/fetch/api/basic/header-value-combining.any.html
imported/web-platform-tests/fetch/api/basic/header-value-combining.any.worker.html
imported/web-platform-tests/fetch/api/basic/header-value-null-byte.any.html
imported/web-platform-tests/fetch/api/basic/header-value-null-byte.any.worker.html
imported/web-platform-tests/xhr/headers-normalize-response.htm

  • Modules/fetch/FetchHeaders.cpp:

(WebCore::canWriteHeader):
(WebCore::appendToHeaderMap):
(WebCore::FetchHeaders::filterAndFill):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceiveResponse):

  • platform/network/HTTPParsers.cpp:

(WebCore::isValidHTTPHeaderValue):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::containsInvalidHTTPHeaders const):

  • platform/network/ResourceResponseBase.h:

LayoutTests:

Update improved test results.

  • platform/glib/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any-expected.txt:
  • platform/glib/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any.worker-expected.txt:
  • platform/ios-12/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any-expected.txt:
  • platform/ios-12/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any.worker-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any.worker-expected.txt:
  • platform/mac-mojave/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any-expected.txt:
  • platform/mac-mojave/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any.worker-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/fetch/api/basic/header-value-combining.any.worker-expected.txt:
12:55 PM Changeset in webkit [262510] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DFGSSAConversionPhase.cpp needs to #include OperandsInlines.h.
https://bugs.webkit.org/show_bug.cgi?id=212687

Reviewed by Keith Miller.

Without this, strange build failures can happen with unified builds.

For example, the Windows build started failing due a linkage error in this file
when the patch from https://bugs.webkit.org/show_bug.cgi?id=212680 landed.
212680 introduced a new .cpp file, and that probably bumped DFGSSAConversionPhase.cpp
into another unified unit, thereby depriving it from seeing the OperandsInlines.h
#include'd by another .cpp.

  • dfg/DFGSSAConversionPhase.cpp:
12:47 PM Changeset in webkit [262509] by msaboff@apple.com
  • 2 edits in trunk/Tools

[iOS] TestWTF.WTF_Lock.ContendedShortSection is consistently timing out on debug simulator builds
https://bugs.webkit.org/show_bug.cgi?id=211650

Reviewed by Saam Barati.

The prior change to disable this test for Debug actually enabled it
only for Debug IOS builds of any type, simulator or real HW.

This test has intermittently failed or timed out on Debug simulator
builds for for almost a year. We want to test Release builds as well as
hardware builds. Therefore we should disable Debug simulator builds,
and test all other variants.

  • TestWebKitAPI/Tests/WTF/Lock.cpp:
12:45 PM Changeset in webkit [262508] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Hide the PiP button in fullscreen mode if PiP is disabled in preferences
https://bugs.webkit.org/show_bug.cgi?id=212699
<rdar://problem/60391437>

Reviewed by Eric Carlson.

In r260474, we hid the PiP button in fullscreen when PiP was unsupported on the
current device; we must also hide the PiP button when clients have disabled PiP
via preferences.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(-[WKFullScreenViewController videoControlsManagerDidChange]):

12:41 PM Changeset in webkit [262507] by Wenson Hsieh
  • 20 edits
    1 add in trunk

dataTransfer.types is empty when handling the "dragstart" event
https://bugs.webkit.org/show_bug.cgi?id=212685
<rdar://problem/61368402>

Reviewed by Andy Estes.

Source/WebCore:

Implements several currently stubbed methods on StaticPasteboard, so that the DataTransfer provided to the page
on the "dragstart" event contains the DOM-exposed data types that will be written to the system pasteboard. This
includes "text/html", "text/plain", and "text/uri-list".

Tests: DragAndDropTests.DataTransferTypesOnDragStartForTextSelection

DragAndDropTests.DataTransferTypesOnDragStartForImage
DragAndDropTests.DataTransferTypesOnDragStartForLink

...as well as several existing tests in DragAndDropTestsIOS.mm that attempt to set pasteboard data during the
dragstart event:

DragAndDropTests.DataTransferSanitizeHTML
DragAndDropTests.DataTransferSetDataCannotWritePlatformTypes
DragAndDropTests.DataTransferSetDataInvalidURL
DragAndDropTests.DataTransferSetDataUnescapedURL
DragAndDropTests.DataTransferSetDataValidURL

  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::commitToPasteboard):

Only commit data to the native pasteboard if the page actually tried to write or modify the data. This allows us
to preserve existing behavior by allowing DragController to write dragged data to the pasteboard normally in the
case where the page didn't specify any custom data. In the case where the page does specify custom data, we will
write this custom data *in addition* to any default data that was written to the static pasteboard. While this
is a departure from our current behavior (which is to treat the pasteboard as a blank slate that contains only
whatever custom data was provided by the page), it matches behavior in both Chrome and Firefox, and is likely
more compatible with webpages that don't have UA-specific logic targeting WebKit.

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::writeSelectionToPasteboard):

Avoid calling into the injected bundle (as well as writing a few particular non-web-exposed types, such as web
archive data) in the case where we're writing to a static pasteboard (there's no point in doing this for the
static pasteboard, and in the worst case, it could confuse some internal clients).

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::writeImageToPasteboard): Ditto.

  • editing/mac/EditorMac.mm:

(WebCore::Editor::writeImageToPasteboard):

Ditto. But additionally, introduce a markup string to PasteboardImage, so that we will expose the "text/html"
type when starting a drag on an image element.

  • page/DragController.cpp:

(WebCore::DragController::startDrag):

Only attempt to call into Pasteboard::writeTrustworthyWebURLsPboardType in the case where the pasteboard
supports this type (i.e. on macOS). This fixes an existing assertion that was hit by my new API test, which
attempts to override the contents of the pasteboard with custom data while starting a drag on a link.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleDrag):

Since the StaticPasteboard contains data before the page has written anything, don't use Pasteboard::hasData()
to determine whether there's custom data; instead, use the new hasNonDefaultData() method on
StaticPasteboard (see below).

  • platform/Pasteboard.cpp:

(WebCore::Pasteboard::canWriteTrustworthyWebURLsPboardType):

On non-macOS ports, return false.

  • platform/Pasteboard.h:
  • platform/StaticPasteboard.cpp:

(WebCore::StaticPasteboard::hasNonDefaultData const):

Keep track of whether the page attempted to stage any custom data during "dragstart" by maintaining the set of
types written by the page, via calls to writeString() and similar. I'm using a set of types here instead of a
simple bool flag to ensure correctness in the case where the page adds a type, and then later removes that
same custom type, such that there is no longer non-default data.

(WebCore::StaticPasteboard::writeString):
(WebCore::StaticPasteboard::writeData):
(WebCore::StaticPasteboard::writeStringInCustomData):
(WebCore::StaticPasteboard::clear):

See above.

(WebCore::StaticPasteboard::writeMarkup):
(WebCore::StaticPasteboard::writePlainText):
(WebCore::StaticPasteboard::write):

Implement these methods by writing to the PasteboardCustomData. These methods are invoked by our own code
rather than the bindings, and should only be used to stage default data types when starting a drag.

  • platform/StaticPasteboard.h:
  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::write):
(WebCore::Pasteboard::canWriteTrustworthyWebURLsPboardType):

Tools:

Adds new API tests and test infrastructure to verify that DataTransfer types and data are accessible during
the "dragstart" event. See below for more details.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:

(-[TestWKWebView selectElementWithID:]):
(-[DragAndDropSimulator dragFromElementWithID:to:]):

Add a few (very specialized) helper methods to assist with simulating drags over the various elements in the new
drag and drop test harness page below (dragstart-data.html).

(runDragStartDataTestCase):

Test the following scenarios (split between three API tests) by dumping the resulting DataTransfer types and
their data strings, and observing the results:

  • Dragging a normal text selection.
  • Dragging a normal text selection, and then adding a URL string.
  • Dragging a normal text selection, and then adding a custom pasteboard type.
  • Dragging a normal text selection, but then replacing the data with just a URL string.
  • Dragging a normal text selection, but then replacing the data with just a custom data type.
  • Dragging an image element.
  • Dragging an image element, and then overriding the plain text data.
  • Dragging a link (anchor element).
  • Dragging a link, and then adding a custom type.
  • TestWebKitAPI/Tests/WebKitCocoa/dragstart-data.html: Added.

Add a new test harness to help test DataTransfer types when starting a drag. This test page can also be used as
a manual test harness, by simply opening the test page, starting drags on the various elements and observing the
output in the textarea.

  • TestWebKitAPI/Tests/WebKitCocoa/dump-datatransfer-types.html:

Tweak this test page to replace the DataTransfer with custom data (rather than simply append it) by calling
DataTransfer.clearData() prior to writing the custom types.

  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:
  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[TestWKWebViewHostWindow initWithWebView:contentRect:styleMask:backing:defer:]):

Add a __weak reference on TestWKWebViewHostWindow back to the TestWKWebView, so that we can consult
-eventTimestamp when synthesizing mouse events on macOS during API tests.

(-[TestWKWebViewHostWindow _mouseDownAtPoint:simulatePressure:clickCount:]):
(-[TestWKWebViewHostWindow _mouseUpAtPoint:clickCount:]):
(-[TestWKWebViewHostWindow initWithWebView:frame:]):
(-[TestWKWebView _setUpTestWindow:]):
(-[TestWKWebView setEventTimestampOffset:]):
(-[TestWKWebView eventTimestamp]):

Add a mechanism to offset synthetic event timestamps by a given time interval (i.e. the event timestamp offset).

(-[TestWKWebView mouseMoveToPoint:withFlags:]):
(-[TestWKWebView _mouseEventWithType:atLocation:]):
(-[TestWKWebView typeCharacter:]):

  • TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:

(-[DragAndDropSimulator runFrom:to:]):

While simulating drag and drop on macOS, use -setEventTimestampOffset: to "leap forward" in time, so that the
150 millisecond delay when dragging a text selection doesn't prevent drags from beginning.

12:25 PM Changeset in webkit [262506] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Crash with uncaught exception: * -[AVSampleBufferAudioRenderer enqueueSampleBuffer:] Sample buffer has media type 'vide' instead of 'soun'
https://bugs.webkit.org/show_bug.cgi?id=212646
<rdar://problem/63040834>

Reviewed by Eric Carlson.

Protect against the possibility of AVStreamDataParser generating non-video or -audio samples in an otherwise
video- or audio-track. Check the format description attached to the sample before appending, and ASSERT in
debug builds and ERROR_LOG in release builds, as this is an exceptional condition.

  • platform/graphics/FourCC.h:

(WTF::LogArgument<WebCore::FourCC>::toString):

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

(WebCore::SourceBufferPrivateAVFObjC::enqueueSample):

12:13 PM Changeset in webkit [262505] by Kate Cheney
  • 6 edits in trunk/Source

Any active sqlite transactions for the ITP database should be aborted when the network process suspends.
https://bugs.webkit.org/show_bug.cgi?id=212608
<rdar://problem/60540768>

Reviewed by Chris Dumez.

Source/WebCore:

Add WEBCORE_EXPORT macro to use interrupt() function in
ResourceLoadStatisticsDatabaseStore.

  • platform/sql/SQLiteDatabase.h:

Source/WebKit:

Calls to WebResourceLoadStatisticsStore::suspend() should abort any
active SQLite transactions. Unfinished transactions will hold the lock
of a database file and could cause the network process to crash when
suspending.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::~ResourceLoadStatisticsDatabaseStore):
Store all ResourceLoadStatisticsDatabaseStore instances in a static
HashSet so existing transactions can be aborted when the process is
preparing to suspend.

(WebKit::ResourceLoadStatisticsDatabaseStore::interrupt):

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

(WebKit::WebResourceLoadStatisticsStore::suspend):

12:13 PM Changeset in webkit [262504] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

12:10 PM Changeset in webkit [262503] by Alan Coon
  • 1 copy in tags/Safari-610.1.16

Tag Safari-610.1.16.

12:09 PM Changeset in webkit [262502] by Alan Coon
  • 8 edits in branches/safari-610.1.16-branch/Source

Versioning.

12:08 PM Changeset in webkit [262501] by Alan Coon
  • 1 copy in branches/safari-610.1.16-branch

New branch.

12:07 PM Changeset in webkit [262500] by Andres Gonzalez
  • 6 edits
    2 adds in trunk

AX: SVG text node with content is described as "empty group" even if it's not empty
https://bugs.webkit.org/show_bug.cgi?id=210315

Reviewed by Darin Adler.

Source/WebCore:

Test: accessibility/svg-text.html

SVGText elements are conveyed as AXGroups and cannot have a description
or help property, but instead the content of the element is exposed as
static text.

  • accessibility/AccessibilitySVGElement.cpp:

(WebCore::AccessibilitySVGElement::accessibilityDescription const):
(WebCore::AccessibilitySVGElement::helpText const):

  • accessibility/AccessibilitySVGElement.h:

LayoutTests:

  • accessibility/svg-text-expected.txt: Added.
  • accessibility/svg-text.html: Added.
  • accessibility/w3c-svg-name-calculation.html: Expected name for an SVG

text element should be "". Its text content is exposed as a child static text accessibility object.

  • platform/mac/accessibility/w3c-svg-name-calculation-expected.txt:
12:04 PM Changeset in webkit [262499] by sihui_liu@apple.com
  • 4 edits in trunk

Text manipulation sometimes fails to replace text in attributes
https://bugs.webkit.org/show_bug.cgi?id=212701

Reviewed by Wenson Hsieh.

Source/WebCore:

Concatenate replacement tokens of same identifier for attribute like we do for title and option element in
r260393.

Covered by test: TextManipulation.CompleteTextManipulationShouldReplaceTextContentWithMultipleTokens

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::replace):

Tools:

Modify TextManipulation.CompleteTextManipulationShouldReplaceTextContentWithMultipleTokens to cover text
manipulation for attributes.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

11:48 AM Changeset in webkit [262498] by dino@apple.com
  • 3 edits in trunk

[ macOS ] REGRESSION(r262366): webgl/1.0.3/conformance/canvas/buffer-offscreen-test.html & webgl/2.0.0/conformance/canvas/buffer-offscreen-test.html are constant failures
https://bugs.webkit.org/show_bug.cgi?id=212594
<rdar://problem/63828783>

Reviewed by Eric Carlson.

The change in r262366 split the OpenGL work to prepare a canvas for rendering from the actual painting
(or compositing in this case). Canvas elements were being "prepared" at the end of the HTML run loop
if they'd done anything that would change pixels. The problem is that canvas elements that are not in
the document body are never composited, and thus should never be prepared, otherwise they will clear
their drawing buffer. In other words, a canvas in this state must keep the same buffer through
each rendering frame.

The solution is to check if the canvas is in the tree scope at the time we consider preparing
it for display.

  • dom/Document.cpp:

(WebCore::Document::prepareCanvasesForDisplayIfNeeded):

11:40 AM Changeset in webkit [262497] by Chris Dumez
  • 3 edits in trunk

WebProcessPool::notifyPreferencesChanged() is unsafely called on a background thread
https://bugs.webkit.org/show_bug.cgi?id=212697
<rdar://problem/63876652>

Reviewed by Per Arne Vollan.

Make sure we dispatch to the main thread in [WKPreferenceObserver preferenceDidChange] before
we iterate over the process pools and call WebProcessPool::notifyPreferencesChanged() on each
one.

  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKPreferenceObserver preferenceDidChange:key:encodedValue:]):

11:39 AM Changeset in webkit [262496] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Reduce sandbox logging by permitting necessary sysctl
https://bugs.webkit.org/show_bug.cgi?id=212710
<rdar://problem/63900239>

Reviewed by Per Arne Vollan.

Telemetry indicates that we need to access "sysctl.name2oid" in the
Network process during error handling for HTTP connections. Allow this
access and avoid generating unnecessary logging for this case.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
11:07 AM Changeset in webkit [262495] by wilander@apple.com
  • 7 edits
    2 adds in trunk

Storage Access API: Add setting for per-page storage access scope
https://bugs.webkit.org/show_bug.cgi?id=212682
<rdar://problem/63904824>

Reviewed by Brent Fulgham.

Source/WebCore:

This is a follow-up patch to https://bugs.webkit.org/show_bug.cgi?id=212114,
adding an off-by-default setting and a test case for per-page storage access.

Test: http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html

  • dom/DocumentStorageAccess.cpp:

(WebCore::DocumentStorageAccess::requestStorageAccess):

  • page/Settings.yaml:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::setStorageAccessAPIPerPageScopeEnabled):

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

LayoutTests:

  • http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame-expected.txt: Added.
  • http/tests/storageAccess/request-and-grant-access-with-per-page-scope-access-from-another-frame.html: Added.
10:46 AM Changeset in webkit [262494] by Diego Pino Garcia
  • 3 edits in trunk/Tools

[WPE] lint-test-expectations doesn't work when platform is WPE
https://bugs.webkit.org/show_bug.cgi?id=212700

Reviewed by Carlos Alberto Lopez Perez.

When passing arguments '--wpe' or '--platform=wpe*',
lint-test-expectations does nothing for WPE, despite currently
there are many lint errors in WPE's TestExpectations file.

As a side-effect of this patch, now `Tools/Scripts/webkit-path
rebaseline` lists the WPE Release and Debug bots.

  • Scripts/webkitpy/port/builders.py: Add WPE to the list of

exact_matches and fuzzy_matches.

  • Scripts/webkitpy/tool/commands/rebaseline_unittest.py:
10:32 AM Changeset in webkit [262493] by Jonathan Bedard
  • 2 edits in trunk/Tools

Allow using web processes for service workers even though they loaded about URLs (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=212464

Unreviewed build fix.

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm: didFinishNavigation is now used unconditionally.
10:31 AM Changeset in webkit [262492] by mark.lam@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

Fix non-unified --jsc-only build.
https://bugs.webkit.org/show_bug.cgi?id=212707

Reviewed by Yusuke Suzuki.

These files need JSGlobalObjectInlines.h. But rather than adding yet another
#include, we'll just remove many individual ones and just #include JSCInlines.h
instead.

  • wasm/js/JSToWasmICCallee.cpp:
  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:
  • wasm/js/WebAssemblyCompileErrorPrototype.cpp:
  • wasm/js/WebAssemblyGlobalPrototype.cpp:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:
  • wasm/js/WebAssemblyInstancePrototype.cpp:
  • wasm/js/WebAssemblyLinkErrorConstructor.cpp:
  • wasm/js/WebAssemblyLinkErrorPrototype.cpp:
  • wasm/js/WebAssemblyModulePrototype.cpp:
  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:
  • wasm/js/WebAssemblyRuntimeErrorPrototype.cpp:
9:59 AM Changeset in webkit [262491] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Gardening, lint WPE test expectations
https://bugs.webkit.org/show_bug.cgi?id=212705

Unreviewed gardening.

  • platform/wpe/TestExpectations:
9:13 AM Changeset in webkit [262490] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Add more logging related to service worker fetch event handling
https://bugs.webkit.org/show_bug.cgi?id=212632
<rdar://problem/63913271>

Unreviewed.
Build fix.

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::continueDidReceiveResponse):

9:00 AM Changeset in webkit [262489] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r262432): [ iOS wk2 ] imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=212696

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
8:44 AM Changeset in webkit [262488] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r262456): [ Mac ] media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-pip-to-inline.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=212694

Unreviewed test gardening.

  • platform/mac/TestExpectations:
8:37 AM Changeset in webkit [262487] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebKit

Pass WebPageProxyIdentifier to PreconnectTask
https://bugs.webkit.org/show_bug.cgi?id=212648

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-03
Reviewed by Chris Dumez.

Otherwise, AuthenticationManager::didReceiveAuthenticationChallenge sometimes returned early because there was no pageID.
Observed connecting to real websites from my home wifi. Unable to test using local servers because connecting happens too fast.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::preconnectTo):

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

(WebKit::NetworkProcessProxy::preconnectTo):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::preconnectTo):

7:29 AM Changeset in webkit [262486] by commit-queue@webkit.org
  • 23 edits in trunk/Source

Make generated C++ code use modern C++
https://bugs.webkit.org/show_bug.cgi?id=190714

Patch by Rob Buis <rbuis@igalia.com> on 2020-06-03
Reviewed by Jonathan Bedard.

Source/JavaScriptCore:

Update inspector protocol generator and rebaseline the tests.

  • inspector/scripts/codegen/cpp_generator_templates.py:
  • inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
  • inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result:
  • inspector/scripts/tests/expected/enum-values.json-result:
  • inspector/scripts/tests/expected/events-with-optional-parameters.json-result:
  • inspector/scripts/tests/expected/same-type-id-different-domain.json-result:
  • inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-array-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-enum-type.json-result:
  • inspector/scripts/tests/expected/type-declaration-object-type.json-result:
  • inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
  • yarr/generateYarrUnicodePropertyTables.py:

Source/WebCore:

Replace typedef usage by alias-declaration.

No new tests. No change in behavior.

  • css/makeprop.pl:
  • dom/make_names.pl:

(printHeaderHead):
(printInit):
(printTypeHelpersHeaderFile):
(printFactoryCppFile):
(printFactoryHeaderFile):
(printWrapperFactoryCppFile):
(printWrapperFactoryHeaderFile):

Source/WebKit:

Replace typedef usage by alias-declaration.

  • Scripts/test-legacyMessages.h:
  • Scripts/test-superclassMessages.h:
  • Scripts/testMessages.h:
  • Scripts/webkit/messages.py:
6:48 AM Changeset in webkit [262485] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK4] WTR: Forward key events to the active popup menu
https://bugs.webkit.org/show_bug.cgi?id=212690

Reviewed by Adrian Perez de Castro.

I forgot to remove the ifdefs when added support for popup menus in r262414.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSynthesizeKeyEvent):

6:46 AM Changeset in webkit [262484] by Carlos Garcia Campos
  • 6 edits in trunk/Source/WebKit

[GTK4] Fix input methods
https://bugs.webkit.org/show_bug.cgi?id=212317

Reviewed by Adrian Perez de Castro.

Stop using GdkEvent to synthesize compositing events, add a specific NativeWebKeyboardEvent constructor for them.

  • Shared/NativeWebKeyboardEvent.h:
  • Shared/gtk/NativeWebKeyboardEventGtk.cpp:

(WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent):

  • UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp:

(webkitInputMethodContextImplGtkSetClientWidget):
(webkitInputMethodContextImplGtkSetClientWindow): Deleted.

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

(webkitWebViewBaseRealize):
(webkitWebViewBaseUnrealize):
(webkitWebViewBaseKeyPressEvent):
(webkitWebViewBaseKeyReleaseEvent):
(webkitWebViewBaseFocusEnter):
(webkitWebViewBaseFocusLeave):
(webkitWebViewBaseKeyPressed):
(webkitWebViewBaseKeyReleased):
(toplevelWindowIsActiveChanged):
(webkitWebViewBaseSynthesizeCompositionKeyPress):

3:08 AM Changeset in webkit [262483] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK4] Implement file chooser
https://bugs.webkit.org/show_bug.cgi?id=212322

Patch by Santosh Mahto <santosh.mahto@collabora.com> on 2020-06-03
Reviewed by Carlos Garcia Campos.

Port FileChooser to gtk4, Now FileChooser uses undeprecated api's.
Covered by existing tests.

  • UIProcess/API/gtk/WebKitWebViewGtk.cpp:

(fileChooserDialogResponseCallback):
(webkitWebViewRunFileChooser):

2:12 AM Changeset in webkit [262482] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

[GTK4] Implement emoji chooser
https://bugs.webkit.org/show_bug.cgi?id=212330

Reviewed by Adrian Perez de Castro.

GtkEmojiChooser is public API in GTK4, so just use that instead of our own.

  • UIProcess/API/gtk/WebKitEmojiChooser.cpp:

(emojiActivated): Close the popover before emitting emoji-picked for consistency with GTK.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(_WebKitWebViewBasePrivate::_WebKitWebViewBasePrivate):
(_WebKitWebViewBasePrivate::releaseEmojiChooserTimerFired):
(webkitWebViewBaseDispose):
(emojiChooserClosed):
(webkitWebViewBaseShowEmojiChooser):

12:31 AM Changeset in webkit [262481] by jfernandez@igalia.com
  • 4 edits in trunk

[css-grid] Dynamically setting "position: absolute" in a grid item doesn't trigger a relayout of that element
https://bugs.webkit.org/show_bug.cgi?id=191465

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

From Blink r484620 by Sergio Villar <svillar@igalia.com>

Containing block overrides not cleared for position:absolute

Whenever a position:absolute block gets a new containing block the
previously set containing block overrides are not cleared. This causes the
block not to be properly layout for its new containing block (for example
when using relative sizes).

In particular this affects grid items which always get a containing block
override size (which represent the grid areas) in case their
containing block switches from the grid container to a grid ancestor.

No new tests, as this change is covered by current web platform tests.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::insertPositionedObject): Clear the containing block's override width and height.

LayoutTests:

Several tests pass now thanks to this change.

  • TestExpectations: Removed failure expectations, since now these tests pass now.
    • absolute-positioning-changing-containing-block-001.html
    • grid-item-absolute-positioning-dynamic-001.html
12:28 AM Changeset in webkit [262480] by youenn@apple.com
  • 5 edits in trunk/Source

Add more logging related to service worker fetch event handling
https://bugs.webkit.org/show_bug.cgi?id=212632

Reviewed by Chris Dumez.

Source/WebCore:

Add logging related to creating/canceling/deleting fetch event handler related client.
No change of behavior.

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::startFetch):
(WebCore::ServiceWorkerThreadProxy::cancelFetch):
(WebCore::ServiceWorkerThreadProxy::removeFetch):

Source/WebKit:

Add logging to identify the page ID and frame ID used by a service worker.
Add logging to identify what is happening in the case of a response being buffered for navigation purposes.

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::ServiceWorkerFrameLoaderClient::ServiceWorkerFrameLoaderClient):
(WebKit::WebSWContextManagerConnection::installServiceWorker):
(WebKit::WebSWContextManagerConnection::continueDidReceiveFetchResponse):

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::didFail):
(WebKit::WebServiceWorkerFetchTaskClient::didFinish):
(WebKit::WebServiceWorkerFetchTaskClient::continueDidReceiveResponse):

Note: See TracTimeline for information about the timeline view.