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

Timeline



Apr 22, 2020:

11:15 PM Changeset in webkit [260558] by Ryan Haddad
  • 4 edits
    2 deletes in trunk/Source/WebKit

Unreviewed, reverting r260553.

Broke iOS and Catalina builds.

Reverted changeset:

"Soft link QuickLookThumbnailing framework"
https://bugs.webkit.org/show_bug.cgi?id=210894
https://trac.webkit.org/changeset/260553

10:19 PM Changeset in webkit [260557] by Simon Fraser
  • 7 edits in trunk/Source/WebCore

Make it possible to eagerly apply scrolling tree state from the main thread
https://bugs.webkit.org/show_bug.cgi?id=210883

Reviewed by Tim Horton.

Work towards fixing webkit.org/b/210884: at the beginning of Page::updateRendering(),
we are going to need to pull the current state of the scrolling tree back to the
main thread, so that JS-exposed scroll offsets match scrolling tree state.

To this end, expose a scrolling tree traversal function from ScrollingTree, which
takes the lock and then calls a visitor function for each node. For scrolling nodes,
the visitor gets the scroll position and optional layout viewport origin. These
match the data passed back currently via AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll().

The new code is not called yet.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::synchronizeStateFromScrollingTree):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::synchronizeStateFromScrollingTree):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::traverseScrollingTree):
(WebCore::ScrollingTree::traverseScrollingTreeRecursive):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::currentScrollPositionChanged): applyLayerPositions() calls these two
functions, so just call it instead.

9:56 PM Changeset in webkit [260556] by commit-queue@webkit.org
  • 5 edits in trunk

Unreviewed, reverting r260535.
https://bugs.webkit.org/show_bug.cgi?id=210897

Causes crashes in WK1 (Requested by smfr on #webkit).

Reverted changeset:

"[ Mac wk2 ] imported/w3c/web-platform-tests/notifications
/event-onclose.html is flaky failing."
https://bugs.webkit.org/show_bug.cgi?id=209483
https://trac.webkit.org/changeset/260535

9:46 PM Changeset in webkit [260555] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, update test expectations
https://bugs.webkit.org/show_bug.cgi?id=210896

Unreviewed gardening.

  • platform/gtk/TestExpectations:
9:34 PM Changeset in webkit [260554] by Darin Adler
  • 31 edits in trunk

[Cocoa] Build with UChar as char16_t even in builds that use Apple's internal SDK
https://bugs.webkit.org/show_bug.cgi?id=210845

Reviewed by Anders Carlsson.

.:

  • Source/cmake/OptionsCommon.cmake: Move ICU-configuring macros to Platform.h.
  • Source/cmake/OptionsJSCOnly.cmake: Ditto.
  • Source/cmake/OptionsMac.cmake: Ditto.

Source/JavaScriptCore:

  • Configurations/Base.xcconfig: Move ICU-configuring macros to Platform.h.

Source/WebCore:

  • Configurations/WebCore.xcconfig: Move ICU-configuring macros to Platform.h.
  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect): Get rid of an obsolete cast to unsigned to work
around uint16_t not being treated as a number by makeString.

  • rendering/svg/SVGTextLayoutEngineBaseline.cpp:

(WebCore::SVGTextLayoutEngineBaseline::calculateGlyphOrientationAngle const):
Remove deprecated U_EA_COUNT.

Source/WebKit:

  • Configurations/BaseTarget.xcconfig: Move ICU-configuring macros to Platform.h.
  • Platform/unix/EnvironmentUtilities.h: Removed unneeded includes.

This sidesteps a problem with Apple's internal InstallAPI tool that happens
if StringView.h is included and Platform.h is not included first.

  • UIProcess/API/cpp/WKRetainPtr.h: Removed unneeded includes, and used

#pragma once.

  • UIProcess/Cocoa/PreferenceObserver.h: Moved most things out of the header,

since they don't need to be there.

  • UIProcess/Cocoa/PreferenceObserver.mm: Moved them here including using a

class extension for the data member of WKPreferenceObserver.

  • UIProcess/ios/fullscreen/FullscreenTouchSecheuristicParameters.h:

Removed unneeded WTF prefix.

Source/WebKitLegacy/mac:

  • Configurations/WebKitLegacy.xcconfig: Move ICU-configuring macros to Platform.h.

Source/WTF:

  • Configurations/Base.xcconfig: Move ICU-configuring macros to Platform.h.
  • wtf/Platform.h: Set macros here. The file says not to put things like this in it,

but in practice this is the right place to put something that we need set consistently
for all the WebKit projects.

  • U_HIDE_DEPRECATED_API, to make sure we don't use it by accident.
  • U_SHOW_CPLUSPLUS_API=0, to make sure we don't use it by accident.
  • UCHAR_TYPE=char16_t when compiling C++, which is the default on most platforms, but not the default in Apple's internal SDK.
  • U_DISABLE_RENAMING when building on Apple platforms, important so we can link to an older version of ICU and still load with a newer version.
  • wtf/URL.cpp:

(WTF::URL::hostAndPort const): Get rid of an obsolete cast to unsigned to work
around uint16_t not being treated as a number by makeString.

  • wtf/URLHelpers.cpp: Rework to not use deprecated USCRIPT_CODE_LIMIT.

(WTF::URLHelpers::whiteListIDNScript): Added overloads.
(WTF::URLHelpers::initializeDefaultIDNScriptWhiteList): Use an array of
UScriptCode instead of an array of strings.
(WTF::URLHelpers::allCharactersInIDNScriptWhiteList): Updated for the above.

  • wtf/cocoa/NSURLExtras.mm:

(WTF::decodePercentEscapes): Use createCFString instead of converting to NString
and then typecasting.
(WTF::URLByTruncatingOneCharacterBeforeComponent): Updated to use a constexpr
instead of a macro.
(WTF::dataForURLComponentType): Ditto.
(WTF::URLByRemovingComponentAndSubsequentCharacter): Ditto.
(WTF::originalURLData): Ditto.

Tools:

  • TestWebKitAPI/Tests/WTF/StringConcatenate.cpp:

(TestWebKitAPI::TEST): Get rid of an obsolete cast to unsigned to work
around uint16_t not being treated as a number by makeString.

  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

(TestWebKitAPI::TEST): Ditto.

  • TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm:

(TestWebKitAPI::TEST): Ditto.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(TestWebKitAPI::TEST): Ditto.

  • TestWebKitAPI/Tests/WebKit/EnvironmentUtilitiesTest.cpp:

Add an include needed since EvironmentUtilities.h now includes less.

9:05 PM Changeset in webkit [260553] by Nikos Mouchtaris
  • 4 edits
    2 adds in trunk/Source/WebKit

Soft link QuickLookThumbnailing framework
https://bugs.webkit.org/show_bug.cgi?id=210894

Reviewed by Tim Horton.

Soft link QuickLookThumbnailing framework to solve build error.

No new tests. Unnecessary.

  • Configurations/WebKit.xcconfig:
  • UIProcess/QuickLookThumbnailLoader.mm:

(-[WKQLThumbnailLoadOperation initWithURL:identifier:]):
(-[WKQLThumbnailLoadOperation start]):

  • UIProcess/QuickLookThumbnailingSPI.h: Added.
  • UIProcess/QuickLookThumbnailingSoftLink.h: Added.
  • UIProcess/QuickLookThumbnailingSoftLink.mm: Added.
  • WebKit.xcodeproj/project.pbxproj:
8:17 PM Changeset in webkit [260552] by sbarati@apple.com
  • 4 edits
    1 add in trunk/Tools

DumpRenderTree should have the JIT entitlement on Mac
https://bugs.webkit.org/show_bug.cgi?id=210887

Reviewed by Tim Horton.

  • DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
  • DumpRenderTree/mac/Configurations/BaseTarget.xcconfig:
  • DumpRenderTree/mac/Configurations/DumpRenderTree.entitlements: Added.
  • DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig:
8:11 PM Changeset in webkit [260551] by ysuzuki@apple.com
  • 9 edits
    1 add in trunk

[JSC] branchIfBigInt32 can use BigInt32Mask and remove branchIfNumber filter
https://bugs.webkit.org/show_bug.cgi?id=210870

Reviewed by Saam Barati.

JSTests:

  • stress/anybigintuse-should-filter-number-correctly.js: Added.

(shouldBe):
(test):

Source/JavaScriptCore:

By using BigInt32Mask, we can detect BigInt32 without filtering Numbers. In this patch,

  1. Remove branchIfBigInt32KnownNotNumber and branchIfNotBigInt32KnownNotNumber. And always use branchBigInt32 and branchNotBigInt32 instead.
  2. Remove branchIfNumber type filtering in DFG.
  3. Use BigInt32Mask based scheme in FTL.
  4. Add and64(TrustedImm64, RegisterID) implementations in MacroAssembler.
  5. Add TagRegistersMode version in branchIfBigInt. We use numberTagRegister to produce really efficient code[1] by avoiding large constant materialization.

[1]: From

mov %rax, %rdx
mov $0xfffe000000000012, %r11
and %r11, %rdx
cmp $0x12, %rdx

To

lea 0x12(%r14), %rdx
and %rax, %rdx
cmp $0x12, %rdx

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::and64):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::and64):

  • bytecode/ArithProfile.cpp:

(JSC::ArithProfile<BitfieldType>::emitObserveResult):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::fillSpeculateBigInt32):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileToNumeric):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::compileIsBigInt):
(JSC::FTL::DFG::LowerDFGToB3::boolify):
(JSC::FTL::DFG::LowerDFGToB3::buildTypeOf):
(JSC::FTL::DFG::LowerDFGToB3::lowBigInt32):
(JSC::FTL::DFG::LowerDFGToB3::isBigInt32):
(JSC::FTL::DFG::LowerDFGToB3::isNotBigInt32):
(JSC::FTL::DFG::LowerDFGToB3::isNotAnyBigInt):
(JSC::FTL::DFG::LowerDFGToB3::speculateBigInt32):
(JSC::FTL::DFG::LowerDFGToB3::speculateAnyBigInt):
(JSC::FTL::DFG::LowerDFGToB3::isBigInt32KnownNotCell): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::isBigInt32KnownNotNumber): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::isNotBigInt32KnownNotNumber): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::isNotAnyBigIntKnownNotNumber): Deleted.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitConvertValueToBoolean):
(JSC::AssemblyHelpers::branchIfValue):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfBigInt32):
(JSC::AssemblyHelpers::branchIfNotBigInt32):
(JSC::AssemblyHelpers::emitTypeOf):
(JSC::AssemblyHelpers::branchIfBigInt32KnownNotNumber): Deleted.
(JSC::AssemblyHelpers::branchIfNotBigInt32KnownNotNumber): Deleted.

7:18 PM Changeset in webkit [260550] by sbarati@apple.com
  • 4 edits
    1 add in trunk

BigInt32 parsing should be precise
https://bugs.webkit.org/show_bug.cgi?id=210869

Reviewed by Robin Morisset.

JSTests:

  • stress/big-int-32-parsing-should-be-precise.js: Added.

Source/JavaScriptCore:

Our algorithm before was conservative, and might produce a heap big int even
if the value could be an int32. This patch makes the algorithm precise on
64-bit, always producing a bigint32 if the number is indeed an int32.

  • jsc.cpp:

(functionUseBigInt32):
(functionIsBigInt32):
(functionIsHeapBigInt):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::parseInt):

7:14 PM Changeset in webkit [260549] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Edge use kind asserts are wrong for BigInt32 on ValueBitLShift
https://bugs.webkit.org/show_bug.cgi?id=210872

Reviewed by Yusuke Suzuki, Mark Lam, and Robin Morisset.

This is already covered by the v8 tests Yusuke checked in.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitUntypedOrAnyBigIntBitOp):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileValueBitLShift):
(JSC::FTL::DFG::LowerDFGToB3::emitBinaryBitOpSnippet):

6:22 PM Changeset in webkit [260548] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

Add logging to core accessibility.
https://bugs.webkit.org/show_bug.cgi?id=210564
<rdar://problem/61863477>

Reviewed by Simon Fraser and Chris Fleizach.

  • Use LOG and LOG_WITH_STREAM macros instead of WTF::Logger directly.
  • Added logging of AXCoreObjects.
  • accessibility/AXLogger.cpp:

(WebCore::AXLogger::AXLogger):
(WebCore::AXLogger::~AXLogger):
(WebCore::AXLogger::log):
(WebCore::operator<<):

  • accessibility/AXLogger.h:
  • accessibility/AccessibilityObjectInterface.h:
5:42 PM Changeset in webkit [260547] by dbates@webkit.org
  • 7 edits in trunk/Source

Support toggling debug overlay for touch action region and editable element region independent from non-fast scrollable region
https://bugs.webkit.org/show_bug.cgi?id=210774

Reviewed by Dean Jackson.

Source/WebCore:

Break out the touch action region and editable element region debug overlays into their own
flags that can be passed to Settings::setVisibleDebugOverlayRegions() to toggle these overlays,
respectively. Currently both of these overlays piggyback on whether the engine will paint the
non-fast scrollable region.

  • page/SettingsBase.h: Add two more enumerators.
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::invalidateEventRegion const): Update the code to be more precise now that
we can target the update paint overlay hack to when we are painting touch-action or editable
element regions.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::paintDebugOverlays): Condition the painting of touch action region
on one enumerator and the painting of editable element region on another.
(WebCore::RenderLayerBacking::paintContents): Update the code to be more precise.

Source/WebKit:

Expose two new enumerators to toggle touch action region and editable element region
overlay painting.

  • UIProcess/API/C/WKPreferencesRef.h:
  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
5:38 PM Changeset in webkit [260546] by Chris Dumez
  • 6 edits in trunk

[iOS] Expose -_webView:willGoToBackForwardListItem:inPageCache:
https://bugs.webkit.org/show_bug.cgi?id=210878
<rdar://problem/62202276>

Reviewed by Alex Christensen.

Source/WebKit:

Expose -_webView:willGoToBackForwardListItem:inPageCache: on iOS.

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::willGoToBackForwardListItem):

Tools:

Enable corresponding API test on iOS.

  • TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
5:27 PM Changeset in webkit [260545] by Darin Adler
  • 2 edits in trunk/Source/WebKitLegacy/mac

[Cocoa] REGRESSION (r260485): Crash in Legacy WebKit createMenu item function (reproducible under Asan)
https://bugs.webkit.org/show_bug.cgi?id=210888

Reviewed by Alex Christensen.

  • WebView/WebHTMLView.mm:

(createMenuItem): Speculative fix: Go back to using a local variable. Apparently
the Objective-C for loop doesn't extend the lifetime of its argument the way the
C++ range-based for loop does, so the local variable is needed.

5:04 PM Changeset in webkit [260544] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[iOS] Crash on RunningBoard process assertion invalidation
https://bugs.webkit.org/show_bug.cgi?id=210873
<rdar://problem/62194917>

Reviewed by Darin Adler.

  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKRBSAssertionDelegate assertion:didInvalidateWithError:]):
Capture a weak pointer to self and make sure we only access the invalidation handler on
the main thread if |self| is still alive.

(WebKit::ProcessAssertion::~ProcessAssertion):
Null out the WKRBSAssertionDelegate's observer in the ProcessAssertion destructor, to
make sure processAssertionWasInvalidated() cannot get called after the ProcessAssertion
has been destroyed.

4:49 PM Changeset in webkit [260543] by Alan Coon
  • 1 copy in tags/Safari-609.2.7.2

Tag Safari-609.2.7.2.

4:48 PM Changeset in webkit [260542] by Alan Coon
  • 7 edits in branches/safari-609.2.7-branch

Apply patch. rdar://problem/62083319

4:45 PM Changeset in webkit [260541] by dbates@webkit.org
  • 2 edits in trunk/Tools

Add a test for -focusTextInputContext on a field in detached frame
https://bugs.webkit.org/show_bug.cgi?id=210704

Reviewed by Wenson Hsieh.

Calling -focusTextInputContext on a field in a detached frame should not
cause a focus change. Add a test to ensure this behavior doesn't regress.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(TEST):

4:45 PM Changeset in webkit [260540] by Alan Coon
  • 8 edits in branches/safari-609.2.7-branch/Source

Versioning.

4:41 PM Changeset in webkit [260539] by don.olmstead@sony.com
  • 8 edits in trunk

[CMake] Use WEBKIT_EXECUTABLE in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=210132

Reviewed by Adrian Perez de Castro.

.:

Add a WebKitTestRunner derived sources directory.

  • Source/cmake/WebKitFS.cmake:

Tools:

Modify CMake code to use WEBKIT_EXECUTABLE when creating WebKitTestRunner.

  • WebKitTestRunner/CMakeLists.txt:
  • WebKitTestRunner/PlatformFTW.cmake:
  • WebKitTestRunner/PlatformGTK.cmake:
  • WebKitTestRunner/PlatformWPE.cmake:
  • WebKitTestRunner/PlatformWin.cmake:
4:09 PM Changeset in webkit [260538] by Alan Coon
  • 1 copy in tags/Safari-609.2.9.1.2

Tag Safari-609.2.9.1.2.

4:09 PM Changeset in webkit [260537] by Alan Coon
  • 8 edits in branches/safari-609.2.9.1-branch/Source

Versioning.

3:55 PM Changeset in webkit [260536] by Alan Coon
  • 1 copy in tags/Safari-609.2.9.1.1

Tag Safari-609.2.9.1.1.

3:45 PM Changeset in webkit [260535] by Chris Dumez
  • 5 edits in trunk

[ Mac wk2 ] imported/w3c/web-platform-tests/notifications/event-onclose.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209483
<rdar://problem/60830377>

Reviewed by Geoffrey Garen.

Source/WebCore:

Align garbage collection of Notification JS wrapper with the specification:

In particular, the following changes were made:

  1. Instead of using the legacy setPendingActivity() / unsetPendingActivity(), override ActiveDOMObject::virtualHasPendingActivity() to implement the behavior documented in the specification.
  2. Keep the wrapper alive as long as the notification is showing and as long as there are relevant event listeners, as per [1]. Previously, we failed to check for event listeners, which was suboptimal.
  3. Update the constructor to queue a task on the event loop in order to show the notification asynchronously, instead of relying on a SuspendableTimer for this purpose. Previously, the JS wrapper could get collected between construction and the notification getting shown, which was leading to the test flakiness.

No new tests, unskipped existing test.

  • Modules/notifications/Notification.cpp:

(WebCore::Notification::Notification):
(WebCore::Notification::show):
(WebCore::Notification::finalize):
(WebCore::Notification::dispatchShowEvent):
(WebCore::Notification::dispatchClickEvent):
(WebCore::Notification::dispatchCloseEvent):
(WebCore::Notification::dispatchErrorEvent):
(WebCore::Notification::eventListenersDidChange):
(WebCore::Notification::virtualHasPendingActivity const):

  • Modules/notifications/Notification.h:

LayoutTests:

Unskip test now that it is no longer flaky.

  • platform/mac-wk2/TestExpectations:
3:16 PM Changeset in webkit [260534] by don.olmstead@sony.com
  • 6 edits in trunk

[CMake] Add WebKit::WebCoreTestSupport target
https://bugs.webkit.org/show_bug.cgi?id=210867

Reviewed by Michael Catanzaro.

Source/WebCore:

Add the WebKit::WebCoreTestSupport target. Modify WebCoreTestSupport to only
have a dependency on WebCore if WebCore is built as a shared library.

  • CMakeLists.txt:

Tools:

Use the WebKit::WebCoreTestSupport target in DumpRenderTree. Fix an
include for WPE in WebKitTestRunner.

  • DumpRenderTree/CMakeLists.txt:
  • DumpRenderTree/PlatformWin.cmake:
  • WebKitTestRunner/PlatformWPE.cmake:
2:56 PM Changeset in webkit [260533] by mmaxfield@apple.com
  • 7 edits in trunk/LayoutTests

Update dom/events/Event-dispatch-redispatch.html from upstream WPT
https://bugs.webkit.org/show_bug.cgi?id=210842
<rdar://problem/61948094>

Reviewed by Jon Lee.

Pull in https://github.com/web-platform-tests/wpt/commit/e30e282ed7b1fb77f6d953fb05ef74a34985f472
to our local repo.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/events/Event-dispatch-redispatch-expected.txt:
  • web-platform-tests/dom/events/Event-dispatch-redispatch.html:

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/dom/events/Event-dispatch-redispatch-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/dom/events/Event-dispatch-redispatch-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/dom/events/Event-dispatch-redispatch-expected.txt:
2:31 PM Changeset in webkit [260532] by Alan Coon
  • 1 copy in tags/Safari-609.2.9.0.1

Tag Safari-609.2.9.0.1.

1:47 PM Changeset in webkit [260531] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip imported/w3c/web-platform-tests/html/cross-origin-opener-policy since we do not support this feature.

It is not worth spending time investigating failures / flakiness in the folder until we actually
implement this feature.

1:07 PM Changeset in webkit [260530] by sihui_liu@apple.com
  • 2 edits in trunk/Tools

TextManipulation.CompleteTextManipulationAvoidCrashingWhenContentIsRemoved does not wait for result
https://bugs.webkit.org/show_bug.cgi?id=210871

Reviewed by Alex Christensen.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

12:38 PM Changeset in webkit [260529] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

fast/events/event-handler-detached-document-dispatchEvent.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=210859
<rdar://problem/62072269>

Reviewed by Jer Noble.

A media session may not have a Page when it is created, so register with the MediaUsageManager
in inActiveDocumentChanged if necessary.

No new tests, fixes an existing test.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::MediaElementSession):
(WebCore::MediaElementSession::~MediaElementSession):
(WebCore::MediaElementSession::addedMediaUsageManagerSessionIfNecessary):
(WebCore::MediaElementSession::inActiveDocumentChanged):
(WebCore::MediaElementSession::updateMediaUsageIfChanged):

  • html/MediaElementSession.h:
12:24 PM Changeset in webkit [260528] by Antti Koivisto
  • 3 edits
    2 adds in trunk

REGRESSION (r249160): Deleting newline after pasting text ending in a newline results in a discontinuity
https://bugs.webkit.org/show_bug.cgi?id=210677
<rdar://problem/61954169>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/text/delete-line-break-in-pre.html

  • rendering/RenderTextLineBoxes.cpp:

(WebCore::RenderTextLineBoxes::dirtyRange):

r249160 changed InlineTextBox end offset to be consistently first-past-end.
The code here that updates lineBreakPos needs to take this into account too.

LayoutTests:

  • fast/text/delete-line-break-in-pre-expected.html: Added.
  • fast/text/delete-line-break-in-pre.html: Added.
12:14 PM Changeset in webkit [260527] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

IPC::decodeSharedBuffer() should check the return value of SharedMemory::map()
<https://webkit.org/b/210844>
<rdar://problem/60773120>

Reviewed by Geoffrey Garen.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::decodeSharedBuffer):

  • Add nullptr check and early return.
11:59 AM Changeset in webkit [260526] by Chris Dumez
  • 1 edit
    3 adds in trunk/LayoutTests

Add layout test to validate the User-Agent HTTP header of XMLHttpRequest
https://bugs.webkit.org/show_bug.cgi?id=210863

Reviewed by Youenn Fablet.

  • http/tests/xmlhttprequest/xhr-user-agent-expected.txt: Added.
  • http/tests/xmlhttprequest/xhr-user-agent.html: Added.
11:47 AM Changeset in webkit [260525] by graouts@webkit.org
  • 12 edits in trunk

[Web Animations] Coordinate "update animations and send events" procedure across multiple timelines
https://bugs.webkit.org/show_bug.cgi?id=202109
<rdar://problem/59470821>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark a new test as PASS which shows that we correctly perform a single microstask checkpoint when updating multiple timelines.

  • web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-expected.txt:

Source/WebCore:

So far, although we did manage multiple animation timelines per document, we mostly operated
under the assumption that there really was a single timeline. In this patch we make the
"update animations and send events" procedure, which is central to the lifecycle of animations,
work with multiple timelines such that a single microtask checkpoint is performed even with multiple
timelines, whereas we would perform one per timeline before. To do this, we move much of the logic
DocumentTimeline::updateAnimationsAndSendEvents() to DocumentTimelinesController where each step is
run across each timeline, rather than running all steps for each timeline one after the other,
respecting the single microtask checkpoint in the middle of the process.

To minimize code churn at this stage, we still keep a fair bit of logic in DocumentTimeline and,
while we remove updateAnimationsAndSendEvents(), internalUpdateAnimationsAndSendEvents() and
updateCurrentTime(), we expose three methods that allow to run the pre-flight sequence in
documentWillUpdateAnimationsAndSendEvents(), collect pending events in
prepareForPendingAnimationEventsDispatch() and run the post-flight sequence
in documentDidUpdateAnimationsAndSendEvents().

None of the logic changes, this is just moving code around. In the future, more patches will move
code from DocumentTimeline up to DocumentTimelinesController such that events are enqueued there,
and animation scheduling as well. But this already lets us pass a new test that used to flakily
reject promises in the WPT test web-animations/timing-model/timelines/update-and-send-events.html.

  • animation/AnimationTimeline.h:

(WebCore::AnimationTimeline::relevantAnimations const):
(WebCore::AnimationTimeline::allAnimations const):

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::documentWillUpdateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::documentDidUpdateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::prepareForPendingAnimationEventsDispatch):
(WebCore::DocumentTimeline::updateCurrentTime): Deleted.
(WebCore::DocumentTimeline::updateAnimationsAndSendEvents): Deleted.
(WebCore::DocumentTimeline::internalUpdateAnimationsAndSendEvents): Deleted.

  • animation/DocumentTimeline.h:
  • animation/DocumentTimelinesController.cpp:

(WebCore::DocumentTimelinesController::DocumentTimelinesController):
(WebCore::DocumentTimelinesController::updateAnimationsAndSendEvents):

  • animation/DocumentTimelinesController.h:
  • animation/WebAnimationTypes.h:
  • dom/Document.cpp:

(WebCore::Document::ensureTimelinesController):

LayoutTests:

Remove the flaky expectation for the improved test.

11:38 AM Changeset in webkit [260524] by eric.carlson@apple.com
  • 6 edits in trunk/Source/WebCore

[iOS] Add a quirk to keep gizmodo videos visible when playing in fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=210857
<rdar://problem/58875327>

Reviewed by Jer Noble.

  • page/Quirks.cpp:

(WebCore::Quirks::needsFullscreenDisplayNoneQuirk const):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): Drive-by fix: always
set the layer name to make debugging in release builds easier.

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

(WebCore::VideoLayerManagerObjC::setVideoLayer): Ditto.

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjustForSiteSpecificQuirks const): Change display:none into
display:block on div with class "instream-native-video--mobile" when child video
element with id "vjs_video_3_html5_api" is in fullscreen.

11:33 AM Changeset in webkit [260523] by Devin Rousso
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Storage: unable to filter cookies
https://bugs.webkit.org/show_bug.cgi?id=210837

Reviewed by Brian Burg.

  • UserInterface/Views/CookieStorageContentView.js:

(WI.CookieStorageContentView):
(WI.CookieStorageContentView.prototype.get navigationItems):
(WI.CookieStorageContentView.prototype.get canFocusFilterBar): Added.
(WI.CookieStorageContentView.prototype.focusFilterBar): Added.
(WI.CookieStorageContentView.prototype.tableIndexForRepresentedObject):
(WI.CookieStorageContentView.prototype.tableRepresentedObjectForIndex):
(WI.CookieStorageContentView.prototype.tableNumberOfRows):
(WI.CookieStorageContentView.prototype.tableSortChanged):
(WI.CookieStorageContentView.prototype.tableCellContextMenuClicked):
(WI.CookieStorageContentView.prototype.tableDidRemoveRows):
(WI.CookieStorageContentView.prototype.tablePopulateCell):
(WI.CookieStorageContentView.prototype._getCookiesForHost): Renamed from _filterCookies.
(WI.CookieStorageContentView.prototype.async _willDismissCookiePopover):
(WI.CookieStorageContentView.prototype._handleFilterBarFilterDidChange): Added.
(WI.CookieStorageContentView.prototype._handleClearNavigationItemClicked):
(WI.CookieStorageContentView.prototype._reloadCookies):
(WI.CookieStorageContentView.prototype._updateFilteredCookies): Added.
(WI.CookieStorageContentView.prototype._updateEmptyFilterResultsMessage): Added.
(WI.CookieStorageContentView.prototype._cookiesAtIndexes):
(WI.CookieStorageContentView.prototype._filterCookies): Deleted.

  • UserInterface/Views/CookieStorageContentView.css:

(.content-view.cookie-storage > .message-text-view): Added.
(.content-view.cookie-storage > .message-text-view > .message): Added.
(.content-view.cookie-storage > .data-grid): Deleted.
Add a filter bar to the navigation bar that checks the regex-ified filter text against the
formatted text of each cell for each cookie. Also hook it up to the global find shortcut.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype.layout):
(WI.NetworkTableContentView.prototype._showEmptyFilterResultsMessage):
(WI.NetworkTableContentView.prototype._tableNameColumnDidChangeWidth):
(WI.NetworkTableContentView.prototype._positionEmptyFilterMessage): Deleted.

  • UserInterface/Views/NetworkTableContentView.css:

(.content-view.network .message-text-view): Added.
Drive-by: instead of having the "No Filter Results" view only cover the "Name" column, it

should cover the entire table so as to be as noticable as possible (not to mention
the table will be empty anyways, so it's not like anything is being hidden).

Drive-by: ensure that the "No Filter Results" view doesn't cover the statistics.

11:12 AM Changeset in webkit [260522] by ysuzuki@apple.com
  • 4 edits
    1 add in trunk

[JSC] JSBigInt inc operation does not produce right HeapBigInt zero
https://bugs.webkit.org/show_bug.cgi?id=210860

Reviewed by Mark Lam.

JSTests:

  • stress/bigint-zero-canonicalized.js: Added.

(shouldBe):

Source/JavaScriptCore:

JSBigInt::inc can produce signed HeapBigInt zero, which is not meeting the invariant of JSBigInt.
This patch fixes it by checking zero status before setting setSign(true).

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::inc):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::dumpInContextAssumingStructure const):

11:08 AM Changeset in webkit [260521] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

[ Mojave wk1 Release ] animations/transition-and-animation-1.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=210051
<rdar://problem/61345177>

Unreviewed test gardening, forgot to rebaseline this test.

  • animations/transition-and-animation-1-expected.txt:
10:24 AM Changeset in webkit [260520] by Devin Rousso
  • 30 edits in trunk

Web Inspector: Debugger: Step Over should only step through comma expressions if they are comma statements
https://bugs.webkit.org/show_bug.cgi?id=210588

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • parser/Nodes.h:

(JSC::ExpressionNode::isStatement const): Added.
(JSC::ExpressionNode::setIsStatement): Added.

  • parser/NodeConstructors.h:

(JSC::ExprStatementNode::ExprStatementNode):
(JSC::DeclarationStatement::DeclarationStatement):
(JSC::ReturnNode::ReturnNode):
(JSC::ThrowNode::ThrowNode):

  • bytecompiler/NodesCodegen.cpp:

(JSC::CommaNode::emitBytecode):
Only emit WillExecuteStatement debug hooks inside CommaNode if it's the only child of a
statement parent node (e.g. a(), b(), c() vs true && (a(), b(), c()) && true).

  • parser/Parser.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseReturnStatement):
(JSC::Parser<LexerType>::parseThrowStatement):
(JSC::Parser<LexerType>::parseExpressionOrLabelStatement):
(JSC::Parser<LexerType>::parseExpressionStatement):
(JSC::Parser<LexerType>::parseExpression):
Only record a pause location for each sub-expression in a comma separated expression if it's
the only child of a statement (e.g. a(), b(), c() vs true && (a(), b(), c()) && true).

LayoutTests:

  • inspector/debugger/resources/log-pause-location.js:

(TestPage.registerInitializer.window.step):

  • inspector/debugger/breakpoints/resources/dump-functions.js:
  • inspector/debugger/breakpoints/resources/dump-general.js:
  • inspector/debugger/breakpoints/resolved-dump-all-pause-locations-expected.txt:
  • inspector/debugger/breakpoints/resolved-dump-each-line-expected.txt:
  • inspector/debugger/stepping/stepInto.html:
  • inspector/debugger/stepping/stepInto-expected.txt:
  • inspector/debugger/stepping/stepNext.html:
  • inspector/debugger/stepping/stepNext-expected.txt:
  • inspector/debugger/stepping/stepOut.html:
  • inspector/debugger/stepping/stepOut-expected.txt:
  • inspector/debugger/stepping/stepOver.html:
  • inspector/debugger/stepping/stepOver-expected.txt:
  • inspector/debugger/stepping/stepping-control-flow.html:
  • inspector/debugger/stepping/stepping-control-flow-expected.txt:
  • inspector/debugger/stepping/stepping-loops.html:
  • inspector/debugger/stepping/stepping-loops-expected.txt:
  • inspector/formatting/resources/javascript-tests/arrow-functions.js:
  • inspector/formatting/resources/javascript-tests/arrow-functions-expected.js:
  • inspector/formatting/resources/javascript-tests/functions.js:
  • inspector/formatting/resources/javascript-tests/functions-expected.js:
  • inspector/formatting/resources/javascript-tests/try-catch-finally-statements.js:
  • inspector/formatting/resources/javascript-tests/try-catch-finally-statements-expected.js:
10:17 AM Changeset in webkit [260519] by Russell Epstein
  • 2 edits in branches/safari-609.2.9.0-branch/Source/WebKit

Cherry-pick r260474. rdar://problem/62083321

PiP buttons shows up in element fullscreen when PiP is disabled in WKWebViewConfiguration
https://bugs.webkit.org/show_bug.cgi?id=210813

Reviewed by Eric Carlson.

Not currently testable; entering fullscreen never completes in the iOS TestWebKitAPI app
because that process is not a UI Application.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm: (-[WKFullScreenViewController videoControlsManagerDidChange]):

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

9:56 AM Changeset in webkit [260518] by achristensen@apple.com
  • 8 edits
    2 adds in trunk/Tools

Add unit test for resuming downloads
https://bugs.webkit.org/show_bug.cgi?id=210852

Reviewed by Brady Eidson.

This is a test that we should've written years ago.
I made HTTPServer able to take a Function that takes a nw_connection_t to give it more power than declarative request/response pairs.
I made TestDownloadDelegate to be reused by future tests, like those I'm going to add for bug 210313.

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/Download.mm:

(longString):
(TEST):

  • TestWebKitAPI/cocoa/HTTPServer.h:

(TestWebKitAPI::HTTPServer::totalRequests const): Deleted.

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::RequestData::RequestData):
(TestWebKitAPI::HTTPServer::listenerParameters):
(TestWebKitAPI::startListening):
(TestWebKitAPI::HTTPServer::HTTPServer):
(TestWebKitAPI::HTTPServer::totalRequests const):
(TestWebKitAPI::dataFromString):
(TestWebKitAPI::nullTerminatedRequest):
(TestWebKitAPI::HTTPServer::respondToRequests):

  • TestWebKitAPI/cocoa/TestDownloadDelegate.h: Added.
  • TestWebKitAPI/cocoa/TestDownloadDelegate.mm: Added.

(-[TestDownloadDelegate _downloadDidStart:]):
(-[TestDownloadDelegate _download:didReceiveServerRedirectToURL:]):
(-[TestDownloadDelegate _download:didReceiveResponse:]):
(-[TestDownloadDelegate _download:didReceiveData:]):
(-[TestDownloadDelegate _download:decideDestinationWithSuggestedFilename:completionHandler:]):
(-[TestDownloadDelegate _downloadDidFinish:]):
(-[TestDownloadDelegate _download:didFailWithError:]):
(-[TestDownloadDelegate _downloadDidCancel:]):
(-[TestDownloadDelegate _download:didReceiveAuthenticationChallenge:completionHandler:]):
(-[TestDownloadDelegate _download:didCreateDestination:]):

  • TestWebKitAPI/cocoa/TestNavigationDelegate.h:
  • TestWebKitAPI/cocoa/TestNavigationDelegate.mm:

(-[TestNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):

9:34 AM Changeset in webkit [260517] by sbarati@apple.com
  • 3 edits
    1 add in trunk

ValueBitNot is wrong in FTL with AnyBigIntUse
https://bugs.webkit.org/show_bug.cgi?id=210846

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/big-int-value-bit-not-spec-any-big-int.js: Added.

(assert):
(foo):

Source/JavaScriptCore:

We forgot to speculate.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileValueBitNot):

9:31 AM Changeset in webkit [260516] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Switch from debug ASSERT to RELEASE_ASSERT in toNPJSObject
https://bugs.webkit.org/show_bug.cgi?id=210823
<rdar://problem/61774056>

Reviewed by David Kilzer.

  • WebProcess/Plugins/Netscape/NPJSObject.h:

(WebKit::NPJSObject::toNPJSObject):

9:22 AM Changeset in webkit [260515] by sbarati@apple.com
  • 2 edits in trunk/Tools

makeValueRefForValue should be robust against the type encoding of a NSNumber backed by a boolean
https://bugs.webkit.org/show_bug.cgi?id=210821
<rdar://problem/62136598>

Reviewed by Tim Horton.

  • DumpRenderTree/mac/AccessibilityNotificationHandler.mm:

(makeValueRefForValue):

9:22 AM Changeset in webkit [260514] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed, commit updated xcfilelist files.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
9:21 AM Changeset in webkit [260513] by graouts@webkit.org
  • 3 edits in trunk/LayoutTests

[ Mojave wk1 Release ] animations/transition-and-animation-1.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=210051
<rdar://problem/61345177>

Reviewed by Simon Fraser.

The purpose of this test is to check that running an animation does not trigger a transition for the animated
property. The way this test was written is that it would use setTimeout() to set a timer at a time computed to
be 500ms after the completion of the animation. However, using a timer like this is flaky by design as the animation
could technically be still in flight if the system is under heavy load.

We rewrite this test to use an "animationend" event to determine the animation has really completed and then wait
another frame, using requestAnimationFrame() to check that the computed style is as expected.

  • animations/transition-and-animation-1.html:
  • resources/ui-helper.js:

(window.UIHelper.waitForEvent):

8:40 AM Changeset in webkit [260512] by ysuzuki@apple.com
  • 4 edits
    14 adds in trunk

[JSC] AI results of BigInt32 Bitwise shift operation does not match to runtime results
https://bugs.webkit.org/show_bug.cgi?id=210839

Reviewed by Saam Barati.

JSTests:

  • stress/v8-bigint32-add.js: Added.

(main):

  • stress/v8-bigint32-and.js: Added.

(main):

  • stress/v8-bigint32-dec.js: Added.

(main):

  • stress/v8-bigint32-div.js: Added.

(main):

  • stress/v8-bigint32-inc.js: Added.

(main):

  • stress/v8-bigint32-mod.js: Added.

(main):

  • stress/v8-bigint32-mul.js: Added.

(main):

  • stress/v8-bigint32-neg.js: Added.

(main):

  • stress/v8-bigint32-not.js: Added.

(main):

  • stress/v8-bigint32-or.js: Added.

(main):

  • stress/v8-bigint32-sar.js: Added.

(main):

  • stress/v8-bigint32-shl.js: Added.

(main):

  • stress/v8-bigint32-sub.js: Added.

(main):

  • stress/v8-bigint32-xor.js: Added.

(main):

Source/JavaScriptCore:

While runtime function of bitwise ops with BigInt32 sometimes returns HeapBigInt, DFG AI is setting SpecBigInt32
as a result value. This leads to miscompilation particularly in FTL since FTL uses this information to remove
a lot of branches.

And we found that FTL BigInt32 predicate is not correctly checking state. This patch fixes it too.

Added test case found this (v8-bigint32-sar.js).

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileValueBitRShift):
(JSC::FTL::DFG::LowerDFGToB3::compileToNumeric):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::compileIsBigInt):
(JSC::FTL::DFG::LowerDFGToB3::boolify):
(JSC::FTL::DFG::LowerDFGToB3::buildTypeOf):
(JSC::FTL::DFG::LowerDFGToB3::lowBigInt32):
(JSC::FTL::DFG::LowerDFGToB3::isBigInt32KnownNotCell):
(JSC::FTL::DFG::LowerDFGToB3::isBigInt32KnownNotNumber):
(JSC::FTL::DFG::LowerDFGToB3::isNotBigInt32KnownNotNumber):
(JSC::FTL::DFG::LowerDFGToB3::isNotAnyBigIntKnownNotNumber):
(JSC::FTL::DFG::LowerDFGToB3::isNotHeapBigIntUnknownWhetherCell):
(JSC::FTL::DFG::LowerDFGToB3::speculateBigInt32):
(JSC::FTL::DFG::LowerDFGToB3::speculateAnyBigInt):
(JSC::FTL::DFG::LowerDFGToB3::isBigInt32): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::isNotBigInt32): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::isNotAnyBigInt): Deleted.

8:37 AM Changeset in webkit [260511] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

Unreviewed, reverting r259116.

Broke login flow on some apple-internal sites
(rdar://problem/61905262)

Reverted changeset:

"Move applyUserAgentIfNeeded calls to a more central place"
https://bugs.webkit.org/show_bug.cgi?id=209587
https://trac.webkit.org/changeset/259116

7:42 AM Changeset in webkit [260510] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][TFC] Introduce TableFormattingContext::computeAndDistributeExtraVerticalSpace
https://bugs.webkit.org/show_bug.cgi?id=210830

Reviewed by Antti Koivisto.

Add a dedicated function to compute preferred heights for the table rows.
This is in preparation for the 2 pass layout required to finalize row height.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeBorderAndPadding):

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::computedPadding const):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::layoutCell):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraVerticalSpace):
(WebCore::Layout::TableFormattingContext::setComputedGeometryForRows):
(WebCore::Layout::TableFormattingContext::setComputedGeometryForSections):
(WebCore::Layout::TableFormattingContext::positionTableCells): Deleted.

  • layout/tableformatting/TableFormattingContext.h:
7:40 AM Changeset in webkit [260509] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iPadOS wk2 Release ] fast/css-custom-paint/constructor.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=208837

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
6:26 AM Changeset in webkit [260508] by Claudio Saavedra
  • 7 edits in trunk/Source

[GTK4] Several fixes to GdkEvent APIs for GTK4
https://bugs.webkit.org/show_bug.cgi?id=210856

Reviewed by Carlos Garcia Campos.

Source/WebCore:

No tests needed.

Several fixes to GdkEvent API changes for GTK4. This is far from
complete but it allows the GTK4 build to move forward. When
possible, add GTK3-API replacements to GtkVersioning.h to avoid
#ifdef blocks, where the API changes are too complex, just #ifdef.

  • platform/gtk/GtkUtilities.cpp:

(WebCore::wallTimeForEvent):

  • platform/gtk/GtkVersioning.h:

(gdk_event_get_state):
(gdk_event_get_coords):
(gdk_event_get_root_coords):
(gdk_event_is_scroll_stop_event):
(gdk_event_get_scroll_direction):
(gdk_event_get_scroll_deltas):
(gdk_event_get_button):
(gdk_keymap_get_for_display): Deleted as it was wrong and
it's not needed.

  • platform/gtk/PlatformKeyboardEventGtk.cpp:

(WebCore::PlatformKeyboardEvent::currentCapsLockState):
(WebCore::PlatformKeyboardEvent::getCurrentModifierState):
(WebCore::PlatformKeyboardEvent::modifiersContainCapsLock):

  • platform/gtk/PlatformWheelEventGtk.cpp:

(WebCore::PlatformWheelEvent::PlatformWheelEvent):

Source/WTF:

  • wtf/glib/GTypedefs.h: In GTK4 GdkEvent is a struct.
5:12 AM WebKitGTK/2.28.x edited by Philippe Normand
(diff)
4:48 AM Changeset in webkit [260507] by youenn@apple.com
  • 5 edits in trunk/Source

Simplify SWServerWorker::whenActivated logic
https://bugs.webkit.org/show_bug.cgi?id=210795

Reviewed by Alex Christensen.

Source/WebCore:

Improve logging and ensure whenActivated can be called whatever the worker state is.
No change of behavior.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::didFinishInstall):
(WebCore::SWServer::fireInstallEvent):
(WebCore::SWServer::fireActivateEvent):

  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::whenActivated):

Source/WebKit:

Improve logging and update code according whenActivated implementation.
Add an early check for timeouts so that we return earlier in that case.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::createFetchTask):
(WebKit::WebSWServerConnection::startFetch):

4:36 AM Changeset in webkit [260506] by eocanha@igalia.com
  • 7 edits in trunk

[GStreamer][MSE] Youtube 'live stream'/H264 URLs fail to play, VP8/9 URLs play OK
https://bugs.webkit.org/show_bug.cgi?id=209119

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

The fix consists of removing the initial avoiding of seeking and just
issuing the proper segment instead of seeking (seeks in GStreamer can't
be done before prerolling anyway). Appsrc doesn't make easy to emit our
own custom segment, so what I did was to use a segment fixer probe to
modify the original [0, infinity] segment issued by appsrc and use
a [startTime, stopTime] with proper values depending on the seek target
and rate.

Covered by existing tests.

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

(WebCore::checkShouldDelaySeek): Don't hold seeks on startup, when changing from READY to PAUSED.
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek): Refactored seek delay condition. Also, don't do a regular
gst_element_seek() for initial seeks, just proceed with a special case in that situation.

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

(initialSeekSegmentFixerProbe): Probe that fixes the segment.
(webKitMediaSrcPrepareInitialSeek): Behave much like a regular seek, but also compute the right GstSegment, install
the segment fixer probe and setReadyForMoreSamples() on the SourceBufferPrivates.

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h:

LayoutTests:

Unskipped media/media-source/media-source-seek-redundant-append.html,
which passes now.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
3:19 AM Changeset in webkit [260505] by svillar@igalia.com
  • 12 edits
    16 copies
    5 adds in trunk

[WebXR] Test IDLs and stubs
https://bugs.webkit.org/show_bug.cgi?id=209859

Reviewed by Dean Jackson and Youenn Fablet.

Source/WebCore:

WebXR testing is hard as it might involve interaction with actual
devices. That's why the WebXR testing
API (https://immersive-web.github.io/webxr-test-api/) was
proposed. In fact, all the current WebXR tests from
web-platform-tests are using that testing API. This new testing
API supplements navigator.xr and is accessed through
navigator.xr.test.

In order not to expose the API to the web we're adding the XRTest
interface to Internals instead. The mapping from internals.xrTest to
navigator.xr.test happens in the WPT code.

We're adding the required IDLs and very basic (mostly empty)
implementations for testing methods. We're adding testing
infrastructure, adding tests make no sense for this change.

  • CMakeLists.txt: Added new files.
  • DerivedSources.make: Ditto.
  • Modules/webxr/NavigatorWebXR.h: Export API to be used in testing code.
  • Modules/webxr/WebXRSystem.h: Export ::from and ::xr methods.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • bindings/js/WebCoreBuiltinNames.h: Added some new macros.
  • testing/FakeXRBoundsPoint.h: Added.
  • testing/FakeXRBoundsPoint.idl: Added.
  • testing/FakeXRButtonStateInit.h: Added.
  • testing/FakeXRButtonStateInit.idl: Added.
  • testing/FakeXRInputSourceInit.h: Added.
  • testing/FakeXRInputSourceInit.idl: Added.
  • testing/FakeXRRigidTransformInit.h: Added.
  • testing/FakeXRRigidTransformInit.idl: Added.
  • testing/FakeXRViewInit.h: Added.
  • testing/FakeXRViewInit.idl: Added.
  • testing/Internals.cpp:

(WebCore::Internals::xrTest): Added WebXRTest to Internals.

  • testing/Internals.h: Added xrTest() accessor.
  • testing/Internals.idl: Added xrTest attribute.
  • testing/WebFakeXRDevice.cpp: Added.

(WebCore::WebFakeXRDevice::setViews):
(WebCore::WebFakeXRDevice::disconnect):
(WebCore::WebFakeXRDevice::setViewerOrigin):
(WebCore::WebFakeXRDevice::clearViewerOrigin):
(WebCore::WebFakeXRDevice::simulateVisibilityChange):
(WebCore::WebFakeXRDevice::setBoundsGeometry):
(WebCore::WebFakeXRDevice::setFloorOrigin):
(WebCore::WebFakeXRDevice::clearFloorOrigin):
(WebCore::WebFakeXRDevice::simulateResetPose):
(WebCore::WebFakeXRDevice::simulateInputSourceConnection):

  • testing/WebFakeXRDevice.h: Added.
  • testing/WebFakeXRDevice.idl: Added.
  • testing/WebFakeXRInputController.cpp: Added.

(WebCore::WebFakeXRInputController::setHandedness):
(WebCore::WebFakeXRInputController::setTargetRayMode):
(WebCore::WebFakeXRInputController::setProfiles):
(WebCore::WebFakeXRInputController::setGripOrigin):
(WebCore::WebFakeXRInputController::clearGripOrigin):
(WebCore::WebFakeXRInputController::setPointerOrigin):
(WebCore::WebFakeXRInputController::disconnect):
(WebCore::WebFakeXRInputController::reconnect):
(WebCore::WebFakeXRInputController::startSelection):
(WebCore::WebFakeXRInputController::endSelection):
(WebCore::WebFakeXRInputController::simulateSelect):
(WebCore::WebFakeXRInputController::setSupportedButtons):
(WebCore::WebFakeXRInputController::updateButtonState):

  • testing/WebFakeXRInputController.h: Added.
  • testing/WebFakeXRInputController.idl: Added.
  • testing/WebXRTest.cpp: Added.

(WebCore::WebXRTest::simulateDeviceConnection const):
(WebCore::WebXRTest::simulateUserActivation):
(WebCore::WebXRTest::disconnectAllDevices):

  • testing/WebXRTest.h: Added.

(WebCore::WebXRTest::create):

  • testing/WebXRTest.idl: Added.
  • testing/XRSimulateUserActivationFunction.h: Added.
  • testing/XRSimulateUserActivationFunction.idl: Ditto.

LayoutTests:

  • platform/wpe/TestExpectations: Added bug number to the passing webxr test.
12:16 AM Changeset in webkit [260504] by graouts@webkit.org
  • 9 edits
    2 adds in trunk/Source/WebCore

[Web Animations] Add a supporting object for Document to manage timelines
https://bugs.webkit.org/show_bug.cgi?id=210817

Reviewed by Dean Jackson.

Add a new DocumentTimelinesController object owned by Document to manage DocumentTimelines created for it. This simple piece of refactoring is the first
step towards a coordinated "update animations and send events" procedure where all timelines are updated at once with a single microtask checkpoint instead
of each timeline running one.

No change in behavior, so no new tests.

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

(WebCore::DocumentTimeline::DocumentTimeline):
(WebCore::DocumentTimeline::~DocumentTimeline):
(WebCore::DocumentTimeline::controller const):
(WebCore::DocumentTimeline::detachFromDocument):

  • animation/DocumentTimeline.h:
  • animation/DocumentTimelinesController.cpp: Added.

(WebCore::DocumentTimelinesController::DocumentTimelinesController):
(WebCore::DocumentTimelinesController::~DocumentTimelinesController):
(WebCore::DocumentTimelinesController::addTimeline):
(WebCore::DocumentTimelinesController::removeTimeline):
(WebCore::DocumentTimelinesController::detachFromDocument):
(WebCore::DocumentTimelinesController::updateAnimationsAndSendEvents):

  • animation/DocumentTimelinesController.h: Added.
  • dom/Document.cpp:

(WebCore::Document::commonTeardown):
(WebCore::Document::ensureTimelinesController):
(WebCore::Document::updateAnimationsAndSendEvents): Deleted.
(WebCore::Document::addTimeline): Deleted.
(WebCore::Document::removeTimeline): Deleted.

  • dom/Document.h:

(WebCore::Document::timelinesController const):

  • page/Page.cpp:

(WebCore::Page::updateRendering):

12:10 AM Changeset in webkit [260503] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK] Gardening, update test expectations
https://bugs.webkit.org/show_bug.cgi?id=210851

Unreviewed gardening.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/repaint/focus-ring-repaint-expected.txt: Update

baseline after r260367.

Apr 21, 2020:

9:27 PM Changeset in webkit [260502] by Devin Rousso
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r255396): Graphics: viewing a shader program hides the navigation sidebar
https://bugs.webkit.org/show_bug.cgi?id=210838

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel.prototype.canShowRepresentedObject):
Include WI.ShaderProgram in the list of displayable represented objects.

  • UserInterface/Base/Main.js:

(WI.tabContentViewClassForRepresentedObject):

  • UserInterface/Views/GraphicsTabContentView.js:

(WI.GraphicsTabContentView.prototype.canShowRepresentedObject):
Update the list of represented objects that are displayable by the Graphics Tab.

  • UserInterface/Views/GraphicsOverviewContentView.css:

(.content-view.graphics-overview > section > .header):
(.content-view.graphics-overview > section:not(:first-of-type) > .header): Deleted.
Drive-by: add a top border to the first section when overscrolling.

  • UserInterface/Views/CanvasOverviewContentView.css:

(.content-view.canvas-overview > .content-view.canvas > .preview > .message-text-view): Added.
Drive-by: ensure that the "No Preview Available" view doesn't overlap the section header.

9:19 PM Changeset in webkit [260501] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, build fix for watchOS
https://bugs.webkit.org/show_bug.cgi?id=210832

If function is not defined, static declaration should not be declared, otherwise, unused-function-error happens.

  • jsc.cpp:
9:12 PM Changeset in webkit [260500] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewd, speculative Windows build fix part 2
https://bugs.webkit.org/show_bug.cgi?id=210834

  • runtime/Options.cpp:

(JSC::strncasecmp):

9:07 PM Changeset in webkit [260499] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix windows build failure
https://bugs.webkit.org/show_bug.cgi?id=210834

  • runtime/Options.cpp:

(JSC::strncasecmp):

9:05 PM Changeset in webkit [260498] by Ryan Haddad
  • 4 edits in trunk/Source/WebKit

Unreviewed, reverting r260478.

Caused TestWebKitAPI.WKAttachmentTests crashes on Catalina

Reverted changeset:

"Clean up QuickLookThumbnailLoader"
https://bugs.webkit.org/show_bug.cgi?id=210814
https://trac.webkit.org/changeset/260478

8:58 PM Changeset in webkit [260497] by Ryan Haddad
  • 18 edits in trunk

Unreviewed, reverting r260410.

Caused crashes in Safari

Reverted changeset:

"SPI clients using fastServerTrustEvaluationEnabled need SPI
to inform them of modern TLS negotiation"
https://bugs.webkit.org/show_bug.cgi?id=210533
https://trac.webkit.org/changeset/260410

8:53 PM Changeset in webkit [260496] by Ryan Haddad
  • 8 edits in trunk/Source/WebKit

Unreviewed, reverting r260475.

New assert caused layout tests to exit early on iOS and macOS

Reverted changeset:

"REGRESSION(r260410) Frequent Network process crashes"
https://bugs.webkit.org/show_bug.cgi?id=210825
https://trac.webkit.org/changeset/260475

8:45 PM Changeset in webkit [260495] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK] http/tests/websocket/connection-refusal-in-frame-resource-load-statistics.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=194629

Updating test expectation with correct console message after r260356
enabled resource load statistics for GTK/WPE.

Unreviewed test gardening.

  • platform/gtk/http/tests/websocket/connection-refusal-in-frame-resource-load-statistics-expected.txt:
8:39 PM Changeset in webkit [260494] by Lauro Moura
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Test gardening.

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
8:17 PM Changeset in webkit [260493] by Alan Coon
  • 7 edits in branches/safari-609.2.9.0-branch

Apply patch. rdar://problem/62083319

8:13 PM Changeset in webkit [260492] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

IPC::Encoder::reserve() can be private
<https://webkit.org/b/210833>
<rdar://problem/62124193>

Reviewed by Darin Adler.

  • Platform/IPC/Encoder.h:

(IPC::Encoder::reserve):

  • Move from public to private.
8:03 PM Changeset in webkit [260491] by cathiechen
  • 12 edits
    4 adds in trunk

REGRESSION (r254790): No longer get smooth scrolling on music.apple.com
https://bugs.webkit.org/show_bug.cgi?id=210634

Reviewed by Darin Adler.

Source/WebCore:

The page uses the access of "scrollBehavior" in CSSStyleDeclaration as the support of scroll-behavior.
If supported, it will use scroll-behavior. Otherwise, it will perform a JS smooth scroll.
Currently, "scrollBehavior" is still available when CSSOMViewSmoothScrolling is off, only the value
"smooth" is invalidated.
In order to fix this, CSSStyleDeclaration will take account of CSSOMViewSmoothScrolling in Settings.
This patch also tries to provide an interface which let flags in Settings can enable/disable a property.
However, it is not complete, for there are some scenarios that Settings isn't accessible. By adding
"settings-flag" to CSSProperties.json, it would be effective to control the property access in CSSStyleDeclaration.

Tests: fast/scrolling/scroll-behavior-invalidate-if-disabled.html

fast/scrolling/scroll-behavior-validate-if-enabled.html

  • css/CSSProperties.json:
  • css/CSSStyleDeclaration.cpp:

(WebCore::CSSStyleDeclaration::getCSSPropertyIDFromJavaScriptPropertyName):
(WebCore::CSSStyleDeclaration::namedItem):
(WebCore::CSSStyleDeclaration::setNamedItem):
(WebCore::CSSStyleDeclaration::supportedPropertyNames const):

  • css/makeprop.pl:

(addProperty):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::cssPropertyID):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyle::collectProperties const):

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::getSupportedCSSProperties):

Tools:

Add settings-flag. Add support for CSSOMViewSmoothScrolling on Windows DumpRenderTree.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(enableExperimentalFeatures):
(setWebPreferencesForTestOptions):

  • Scripts/webkitpy/style/checkers/jsonchecker.py:

(JSONCSSPropertiesChecker.check_codegen_properties):

LayoutTests:

"scrollBehavior" is not available in CSSStyleDeclaration if the flag is off.
It's available if the flag is on.

  • fast/scrolling/scroll-behavior-invalidate-if-disabled-expected.txt: Added.
  • fast/scrolling/scroll-behavior-invalidate-if-disabled.html: Added.
  • fast/scrolling/scroll-behavior-validate-if-enabled-expected.txt: Added.
  • fast/scrolling/scroll-behavior-validate-if-enabled.html: Added.
7:54 PM Changeset in webkit [260490] by ysuzuki@apple.com
  • 10 edits
    2 adds in trunk

[JSC] SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq should expect AnyBigIntUse
https://bugs.webkit.org/show_bug.cgi?id=210832

Reviewed by Mark Lam.

JSTests:

  • stress/heap-and-32-bigint-eq.js: Added.

(shouldBe):

  • stress/heap-and-32-bigint-stricteq.js: Added.

(shouldBe):

Source/JavaScriptCore:

SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq will get AnyBigIntUse now. We should use ManualOperandSpeculation
and speculate function to perform speculation check.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):

  • jsc.cpp:

(functionCreateHeapBigInt):
(functionCreateBigInt32):

  • runtime/BigIntConstructor.cpp:

(JSC::toBigInt):
(JSC::callBigIntConstructor):

  • runtime/BigIntConstructor.h:
  • runtime/JSBigInt.h:
7:35 PM Changeset in webkit [260489] by ysuzuki@apple.com
  • 8 edits
    3 adds in trunk

Canonicalize JSBigInt generated by structured-cloning by calling rightTrim
https://bugs.webkit.org/show_bug.cgi?id=210816

Reviewed by Keith Miller and Darin Adler.

Source/JavaScriptCore:

  • runtime/JSBigInt.h:

Source/WebCore:

Let's assume that the serialized data is slightly different. JSBigInt's internal representation has various invariants. For example, if JSBigInt is zero, it should have zero length,
and its sign should be false. But there are various ways of representing zero JSBigInt in serialization format. For example, we can set sign = true, length = 0. Current code strongly
assumes that dumped data meets this JSBigInt's internal invariant. This is not good: for example, if we add a new invariant into JSBigInt, already serialized data would not meet this
invariant.
In this patch, we call JSBigInt::rightTrim(VM&) when finishing JSBigInt deserialization. This means that we canonicalize JSBigInt when finishing creation, and this makes this serialization
format free from JSBigInt's internal invariants. This makes JSBigInt serialization/deserialization robust. And we also add lengthInUint64 == 0 path not to call rightTrim when it is zero.
This makes deserialization robust for zero-length & signed corrupted JSBigInt zero.

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::dumpBigInt32Data):
(WebCore::CloneDeserializer::readBigInt):

LayoutTests:

Add HeapZero BigInt test.

  • fast/dom/Window/window-postmessage-clone-expected.txt:
  • fast/dom/Window/window-postmessage-clone.html:
  • js/dom/bigint-canonicalization-in-structured-cloning-expected.txt: Added.
  • js/dom/bigint-canonicalization-in-structured-cloning.html: Added.
  • js/dom/script-tests/bigint-canonicalization-in-structured-cloning.js: Added.
  • platform/gtk/fast/dom/Window/window-postmessage-clone-expected.txt:
7:23 PM Changeset in webkit [260488] by Peng Liu
  • 2 edits in trunk/Source/WebCore

platform/mac/media/audio-session-category-audio-autoplay.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=210826

Reviewed by Jer Noble.

For WebKitLegacy, AudioSession::setCategory() needs to set the category when
m_routingArbitrationClient is nullptr. This patch also fixes an error regarding
setupArbitrationOngoing.

  • platform/audio/mac/AudioSessionMac.mm:

(WebCore::AudioSession::setCategory):

7:03 PM Changeset in webkit [260487] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebKit

[PlayStation] Fix GPU Process build for VIDEO_PRESENTATION_MODE changes
https://bugs.webkit.org/show_bug.cgi?id=210836

Reviewed by Darin Adler.

Build fix, no new tests.

  • GPUProcess/media/playstation/RemoteMediaPlayerProxyPlayStation.cpp:
6:54 PM Changeset in webkit [260486] by Peng Liu
  • 17 edits in trunk

Fix MACCATALYST build failures
https://bugs.webkit.org/show_bug.cgi?id=210815

Reviewed by Tim Horton.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

No new tests, no functional change.

  • Configurations/FeatureDefines.xcconfig:
  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _isShowingVideoPictureInPicture]):
(-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidBecomeActive):

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/PlatformEnable.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
6:50 PM Changeset in webkit [260485] by Darin Adler
  • 78 edits in trunk

[Cocoa] Use createNSArray in many more places that build NSArray objects from C++ collections
https://bugs.webkit.org/show_bug.cgi?id=210702

Reviewed by Alex Christensen.

Source/WebCore:

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityFlowToElements]): Use createNSArray.
(-[WebAccessibilityObjectWrapper textRectsFromMarkers:withText:]): Ditto.
(-[WebAccessibilityObjectWrapper rectsForSelectionRects:]): Deleted. Merged into
the method above.

  • accessibility/mac/WebAccessibilityObjectWrapperBase.h: Take const references

instead of references when passing Path and FloatRect.

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(convertMathPairsToNSArray): Use createNSArray. Also use arrays on the stack
to create NSDictionary rather than using NSMutableDictionary.
(addChildToArray): Deleted.
(convertToNSArray): Uses createNSArray. Rolled addChildToArray in.
(-[WebAccessibilityObjectWrapperBase convertPathToScreenSpace:]): Take const
reference instead of reference.
(-[WebAccessibilityObjectWrapperBase convertRectToSpace:space:]): Ditto.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
Use createNSArray.

  • editing/cocoa/FontAttributesCocoa.mm:

(WebCore::FontAttributes::createDictionary const): Ditto.

  • page/ios/FrameIOS.mm:

(WebCore::Frame::interpretationsForCurrentRoot const): Ditto.

  • platform/cocoa/SearchPopupMenuCocoa.mm:

(WebCore::saveRecentSearches): Ditto.

  • platform/cocoa/SharedBufferCocoa.mm:

(WebCore::SharedBuffer::createNSDataArray const): Ditto.

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

(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense): Ditto.

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

(WebCore::CDMSessionAVContentKeySession::update): Ditto.

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

(WebCore::CDMSessionAVStreamSession::update): Ditto.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Ditto.

  • platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:

(WebCore::PlatformCAAnimationCocoa::setValues): Ditto.
(WebCore::PlatformCAAnimationCocoa::setKeyTimes): Ditto.
(WebCore::PlatformCAAnimationCocoa::setTimingFunctions): Ditto.

  • platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:

(WebCore::PlatformCAFilters::setFiltersOnLayer): Moved almost the whole
function into a call to createNSArray. Removed the default case from
the switch so we get a warning if we miss any filter operation types.

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(WebCore::PlatformCALayerCocoa::setSublayers): Use createNSArray.

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::write): Ditto.

  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::mediaSelectionOptions): Ditto.

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::write): Ditto.

  • platform/mac/WebPlaybackControlsManager.mm:

(mediaSelectionOptions): Ditto.

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::setCookies): Ditto.

  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::doUpdatePlatformRequest): Ditto.

  • platform/network/cocoa/WebCoreNSURLSession.h:

Use the Objective-C type WebCoreNSURLSessionDataTask in the _dataTasks
set rather than using CFTypeRef.

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession dealloc]): Remove now-unneeded typecast.
(-[WebCoreNSURLSession taskCompleted:]): Ditto.
(-[WebCoreNSURLSession finishTasksAndInvalidate]): Use a more idiomatic
form of capturing strongSelf in a lambda.
(-[WebCoreNSURLSession invalidateAndCancel]): Updated the type on a
local variable and removed now-unneeded typecast.
(-[WebCoreNSURLSession getTasksWithCompletionHandler:]): Use RetainPtr
to cut down on autorelease. Use createNSArray, taking advantage of the
fact that it works on HashSet. Removed now-unneeded typecast.
(-[WebCoreNSURLSession getAllTasksWithCompletionHandler:]): Ditto.
(-[WebCoreNSURLSession dataTaskWithRequest:]): Remove now-unneeded typecast.
(-[WebCoreNSURLSession dataTaskWithURL:]): Ditto.

Source/WebKit:

  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::toNSErrors): Use createNSArray and return a RetainPtr to cut down
on autorelease.
(WebKit::toPKShippingMethods): Ditto.
(WebKit::PaymentAuthorizationPresenter::completePaymentSession): Updated for RetainPtr.
(WebKit::PaymentAuthorizationPresenter::completeShippingContactSelection): Ditto.

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest): Use createNSArray.
Also removed code to support platforms without -setThumbnailURLs: since we don't
have those any more.

  • Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::updateChildren): Use createNSArray.

  • UIProcess/API/Cocoa/WKHTTPCookieStore.mm:

(coreCookiesToNSCookies); Ditto.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(+[WKProcessPool _allProcessPoolsForTesting]): Ditto.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _startTextManipulationsWithConfiguration:completion:]): Cut down on
repeated code by adding a lambda to create a _WKTextManipulationItem and by using
createNSArray.
(wkTextManipulationErrors): Use createNSArray. Also tighten up the code that maps
WebCore::TextManipulationController::ManipulationFailureType to the
_WKTextManipulationItemError code.

  • UIProcess/API/Cocoa/WKWebpagePreferences.mm:

(-[WKWebpagePreferences _customHeaderFields]): Use createNSArray.

  • UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:

(-[WKWebsiteDataRecord _originsStrings]): Ditto.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _getResourceLoadStatisticsDataSummary:]): Ditto.

  • UIProcess/API/Cocoa/_WKDownload.mm:

(-[_WKDownload redirectChain]): Ditto.

  • UIProcess/API/Cocoa/_WKFrameTreeNode.mm:

(-[_WKFrameTreeNode childFrames]): Ditto.

  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration additionalReadAccessAllowedURLs]): Ditto.

  • UIProcess/API/Cocoa/_WKResourceLoadStatisticsThirdParty.mm:

(-[_WKResourceLoadStatisticsThirdParty underFirstParties]): Ditto.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _accessibilityRetrieveRectsAtSelectionOffset:withText:completionHandler:]): Ditto.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::didChangeBackForwardList): Ditto.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeScrollingPerformanceData.mm:

(WebKit::RemoteLayerTreeScrollingPerformanceData::data): Ditto.

  • UIProcess/ios/DragDropInteractionState.mm:

(WebKit::createTargetedDragPreview): Ditto.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _updateTapHighlight]): Removed uneeded RetainPtr local variable.
Use createNSArray. Refactored to make the "all rectilinear" case more parallel
to the general case.
(-[WKContentView webSelectionRectsForSelectionRects:]): Use createNSArray.
(wkTextSelectionRects): Ditto.
(createTargetedPreview): Ditto.
(-[WKContentView _presentationRectsForPreviewItemController:]): Ditto.

  • UIProcess/mac/WKTextFinderClient.mm:

(-[WKTextFinderClient didFindStringMatchesWithRects:didWrapAround:]): Use createNSArray.

  • UIProcess/mac/WKTextInputWindowController.mm:

(-[WKTextInputView validAttributesForMarkedText]): Use +[NSArray arrayByAddingObject:].

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(collectIcons): Use createNSArray.

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(-[WKWebProcessPlugInBrowserContextController _setFormDelegate:]): Marked class here
as final. Cut down on local variables a bit. Use createNSArray.

  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(WebKit::addAnimationToLayer): Removed unnecessary use of RetainPtr. Use createNSArray.

  • WebProcess/WebPage/WebBackForwardListProxy.cpp:

(WebKit::WebBackForwardListProxy::WebBackForwardListProxy): Addd a FIXME about
a problem I noticed, unrelated to the rest of the changes.

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject accessibilityParameterizedAttributeNames]): Use createNSArray.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::registerWithStateDumper): Ditto.
(WebKit::activePagesOrigins): Ditto.

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebFrameIOS.mm:

(-[WebFrame selectionRectsForCoreRange:]): Use createNSArray.

Source/WebKitLegacy/mac:

  • DOM/DOM.mm:

(kit): Use createNSArray.
(-[DOMNode getPreviewSnapshotImage:andRects:]): Ditto. Also use makeNSArrayElement
to convert FloatRect to an NSValue containing a CGRect, avoiding use of
+[NSValue value:withObjCType:], while working on macOS where +[NSValue valueWithCGRect:]
is not part of API.

  • History/WebBackForwardList.mm:

(-[WebBackForwardList dictionaryRepresentation]): Use createNSArray, fewer local
variables, and use constexpr instead of #define.
(-[WebBackForwardList setToMatchDictionaryRepresentation:]): Use adoptNS instead
of explicit release and reference instead of pointer.
(vectorToNSArray): Deleted.
(-[WebBackForwardList backListWithLimit:]): Use createNSArray. Also use RetainPtr for
the "hack" here rather than explicit retain/release calls.
(-[WebBackForwardList forwardListWithLimit:]): Ditto.

  • History/WebHistoryItem.mm:

(kit): Added a retain/autorelease pair that is important to have predictable lifetime.
(-[WebHistoryItem initWithURLString:title:displayTitle:lastVisitedTimeInterval:]):
Added a missing null check.
(-[WebHistoryItem initWithWebCoreHistoryItem:]): Added a FIXME about something I
noticed that is not related to the rest of this patch.
(-[WebHistoryItem children]): Use createNSArray.
(-[WebHistoryItem _redirectURLs]): Ditto.

  • Misc/WebCoreStatistics.mm:

(createNSCountedSet): Added. More efficient than the old code because it doesn't
create many NSString objects for each key, but also shared between functions.
(+[WebCoreStatistics javaScriptProtectedObjectTypeCounts]): Use createNSCountedSet.
(+[WebCoreStatistics javaScriptObjectTypeCounts]): Ditto.

  • Misc/WebNSPasteboardExtras.mm:

(-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]):
Use @[] instead of NSMutableArray

  • Storage/WebDatabaseManager.mm:

(-[WebDatabaseManager origins]): Use createNSArray.

  • Storage/WebStorageManager.mm:

(-[WebStorageManager origins]): Ditto.

  • WebCoreSupport/WebApplicationCache.mm:

(+[WebApplicationCache originsWithCache]): Ditto.

  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::updateSpellingUIWithGrammarString): Ditto.

  • WebCoreSupport/WebNotificationClient.mm:

(WebNotificationClient::clearNotifications): Ditto.

  • WebView/WebArchive.mm:

(-[WebArchive subresources]): Ditto.
(-[WebArchive subframeArchives]): Ditto.

  • WebView/WebDataSource.mm:

(-[WebDataSource subresources]): Ditto.

  • WebView/WebFrame.mm:

(-[WebFrame _nodesFromList:]): Deleted. This was not declared in any header and
was also unused.

  • WebView/WebFrameView.mm:

(-[WebFrameView initWithFrame:]): Added a FIXME about something I noticed that is
not related to the rest of this patch.

  • WebView/WebHTMLRepresentation.mm:

(-[WebHTMLRepresentation controlsInForm:]): Use createNSArray.

  • WebView/WebHTMLView.mm:

(createMenuItems): Use createNSArray. Also moved up in the file.
(createMenuItem): Removed unneeded local variable.

  • WebView/WebView.mm:

(-[WebUITextIndicatorData initWithImage:textIndicatorData:scale:]):
Use createNSArray.

Source/WTF:

  • wtf/cocoa/VectorCocoa.h: Improved the createNSArray function template:

1) Skip nil values. This matches what we do with Optional<> in makeVector and

was always my intention; apparently forgot to do it.

2) Instead of taking a const reference argument, take a forwarding reference

and use forwarding when passing collection elements to makeNSArrayElement
or the passed-in function. Can transfer ownership of collection elements
as they are transformed into array elements, which makes sense if the
Objective-C objects are wrappers that take ownership of what's wrapped.

3) Take any collection that works with std::size and a range-based for loop,

no longer requiring a size member function. Includes arrays.

4) Since this now intended for use on collections other than WTF::Vector,

added "using WTF::createNSArray" since argument-dependent lookup won't
find the function template in those cases.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(activateTestingFonts): Use constexpr and NSString instead of a null-pointer terminated
array for the font names. Use createNSArray.

  • DumpRenderTree/mac/UIDelegate.mm:

(-[UIDelegate webView:runOpenPanelForFileButtonWithResultListener:allowMultipleFiles:]):
Use createNSArray.

  • Scripts/webkitpy/style/checkers/cpp.py:

(find_parameter_name_index): Fixed a spelling error.
(_check_parameter_name_against_text): Added a special case to not complain that
parameters named "]" have redundant names. Not obvious to me how to write a test case for
this and how to fix this in a more sensible way, but immediately helpful to not get this
spurious warning.

  • WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:

(WTR::activateSystemCoreWebFonts): Use constexpr array instead of NSArray for font names.
(WTR::activateFonts): Use constexpr and NSString instead of a null-pointer terminated
array for the font names. Use createNSArray.

6:46 PM Changeset in webkit [260484] by Matt Lewis
  • 2 edits in trunk/Tools

Bindings-test should not depend on current working directory.
https://bugs.webkit.org/show_bug.cgi?id=210831

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/bindings/main.py:

(BindingsTests.main):

6:34 PM Changeset in webkit [260483] by Alexey Shvayka
  • 5 edits in trunk

The visibilitychange event should bubble
https://bugs.webkit.org/show_bug.cgi?id=210829

Reviewed by Darin Adler.

Source/WebCore:

This change makes visibilitychange event bubble as per spec [1], aligning WebKit
with Blink and Gecko. Also fixes broken spec link to visibilityState attribute.

[1] https://w3c.github.io/page-visibility/#dfn-now-visible-algorithm (step 2)

Test: fast/events/page-visibility-transition-test.html

  • dom/Document.cpp:

(WebCore::Document::visibilityStateChanged):
(WebCore::Document::visibilityState const):

LayoutTests:

  • fast/events/page-visibility-transition-test-expected.txt:
  • fast/events/page-visibility-transition-test.html:
6:28 PM Changeset in webkit [260482] by Simon Fraser
  • 7 edits
    3 adds in trunk

Composited layers are misplaced inside RTL overflow scroller with visible scrollbar
https://bugs.webkit.org/show_bug.cgi?id=210820

Reviewed by Zalan Bujtas.

Source/WebCore:

RenderLayerBacking::computeParentGraphicsLayerRect() used renderBox.paddingBoxRectIncludingScrollbar()
to position layers inside composited overflow scroll, but this is wrong if the RTL left-side
scrollbar takes space.

Fix by making some static functions that we can call from the various places that ask
about box geometry, and using them.

Test: compositing/scrolling/async-overflow-scrolling/position-inside-rtl-overflow.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::overflowClipRect const):
(WebCore::RenderBox::clipRect const):
(WebCore::RenderBox::overflowClipRect): Deleted.
(WebCore::RenderBox::clipRect): Deleted.

  • rendering/RenderBox.h:

(WebCore::RenderBox::overflowClipRectForChildLayers const):
(WebCore::RenderBox::overflowClipRectForChildLayers): Deleted.

  • rendering/RenderLayerBacking.cpp:

(WebCore::scrollContainerLayerBox):
(WebCore::clippingLayerBox):
(WebCore::overflowControlsHostLayerBox):
(WebCore::RenderLayerBacking::computeParentGraphicsLayerRect const):
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::clipBox): Deleted.

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::overflowClipRect const):
(WebCore::RenderTable::overflowClipRect): Deleted.

  • rendering/RenderTable.h:

LayoutTests:

  • compositing/scrolling/async-overflow-scrolling/position-inside-rtl-overflow-expected.txt: Added.
  • compositing/scrolling/async-overflow-scrolling/position-inside-rtl-overflow.html: Added.
  • platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/position-inside-rtl-overflow-expected.txt: Added.
6:27 PM Changeset in webkit [260481] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

JSC's options should be case insensitive
https://bugs.webkit.org/show_bug.cgi?id=210834

Reviewed by Yusuke Suzuki.

  • runtime/Options.cpp:

(JSC::Options::setOptionWithoutAlias):
(JSC::Options::setAliasedOption):

  • runtime/OptionsList.h:
5:57 PM Changeset in webkit [260480] by Alan Coon
  • 5 edits in branches/safari-609.2.9.1-branch/Source/WebCore

Cherry-pick r260301. rdar://problem/62083309

[WebGL] Confirm there are no errors when setting up framebuffers
https://bugs.webkit.org/show_bug.cgi?id=210632
<rdar://problem/61916680>

Reviewed by Simon Fraser.

We're seeing crashes on macOS inside GraphicsContextGL::reshape().
Specifically when we submit work at the end of the function via
glFlush.

At the moment the cause is a mystery, because we should bail out
before then if the multisample renderbuffer was not complete. In
the hope that it helps somewhat, add a call to glGetError to double
check that there isn't anything horribly wrong before we talk to
the GPU.

  • html/canvas/WebGL2RenderingContext.cpp: (WebCore::WebGL2RenderingContext::WebGL2RenderingContext): If the underlying GCGL context was marked as "LOST" during initialization, skip the rest of our initialization.
  • html/canvas/WebGLRenderingContext.cpp: Ditto. (WebCore::WebGLRenderingContext::WebGLRenderingContext):
  • html/canvas/WebGLRenderingContextBase.cpp: Ditto. (WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase):
  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: Check for a GL error during setup and, if there is one, skip directly into a LOST state. (WebCore::GraphicsContext3D::reshape):

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

5:56 PM Changeset in webkit [260479] by Russell Epstein
  • 539 edits
    19 adds
    160 deletes in branches/safari-610.1.11-branch/Source/ThirdParty/ANGLE

Revert r259589. rdar://problem/62141646

5:51 PM Changeset in webkit [260478] by ddkilzer@apple.com
  • 4 edits in trunk/Source/WebKit

Clean up QuickLookThumbnailLoader
<https://webkit.org/b/210814>

Reviewed by Darin Adler.

The following items are cleaned up:

  • Extract using PlatformImage into QuickLookThumbnailLoader.h, rename to CocoaImage and use to get rid of duplicate code.
  • Change id to instancetype for -init methods.
  • Add atomic keyword to @property definitions that were using it as the default. (Use of atomic properties is rare in WebKit, so being explicit avoids a scenario where it looks like nonatomic was left off by accident.)
  • Change @property definitions to readonly that are never written to outside of QuickLookThumbnailLoader.mm.
  • Delete unused @property definitions.
  • Change method declarations into read-only @property definitions.
  • Re-declare atomic read-only @property definitions in QuickLookThumbnailLoader.h as read-write definitions in QuickLookThumbnailLoader.mm if they are written to.
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::convertPlatformImageToBitmap):

  • UIProcess/QuickLookThumbnailLoader.h:
  • Rename qlThumbnailGenerationQueue @property to just queue.
  • Remove contentType @property. It is not used anywhere. This also fixes a theoretical leak found by the clang static analyzer.
  • Remove shouldWrite @property. It is only used within QuickLookThumbnailLoader.mm.
  • Change identifier and thumbnail to @property declarations.
  • UIProcess/QuickLookThumbnailLoader.mm:
  • Change WKQLThumbnailLoadOperation._identifier type from NSMutableString to NSString. There was no reason for it to be mutable.

(-[WKQLThumbnailQueueManager init]):
(-[WKQLThumbnailQueueManager dealloc]):

  • Release _queue to fix theoretical leak found by the clang static analyzer.

(-[WKQLThumbnailLoadOperation initWithAttachment:identifier:]):
(-[WKQLThumbnailLoadOperation initWithURL:identifier:]):
(-[WKQLThumbnailLoadOperation start]):

  • Rename req to request and use RetainPtr<>.
  • Change separate #if macros to #if/#else since only one version of this code can be used at a time.

(-[WKQLThumbnailLoadOperation thumbnail]):

  • Use CocoaImage to use one copy of the method.
5:29 PM Changeset in webkit [260477] by Fujii Hironori
  • 5 edits
    1 delete in trunk/Source/WTF

[Win] Use generic WorkQueue instead of WorkQueueWin.cpp
https://bugs.webkit.org/show_bug.cgi?id=210785

Reviewed by Darin Adler.

WorkQueueWin was using random threads to execute dispatched
functions. This is not desired for IPC::Connection because it
needs to call CancelIo API in the same thread started aync
ReadFile operations.

Implemented RunLoop::dispatchAfter in RunLoopWin.cpp in order to
use generic WorkQueue.

  • wtf/PlatformWin.cmake:
  • wtf/RunLoop.h: Added DispatchTimer class for USE(WINDOWS_EVENT_LOOP).

(WTF::RunLoop::DispatchTimer::DispatchTimer):
(WTF::RunLoop::DispatchTimer::setFunction):

  • wtf/WorkQueue.h: Removed code for USE(WINDOWS_EVENT_LOOP).
  • wtf/win/RunLoopWin.cpp:

(WTF::RunLoop::dispatchAfter): Added.

  • wtf/win/WorkQueueWin.cpp: Removed.
5:27 PM Changeset in webkit [260476] by ddkilzer@apple.com
  • 4 edits in trunk/Source/WebKit

Fix extra/missing #undef statements
<https://webkit.org/b/210818>
<rdar://problem/61973329>

Reviewed by Chris Dumez.

  • UIProcess/Network/NetworkProcessProxy.cpp:
  • Remove #undef MESSAGE_CHECK_URL. It is no longer used.
  • UIProcess/WebPageProxy.cpp:
  • Add missing #undef MESSAGE_CHECK_COMPLETION.
  • Sort #undef in reverse order of #define.
  • UIProcess/mac/WebPageProxyMac.mm:
  • Add missing #undef MESSAGE_CHECK_WITH_RETURN_VALUE.
  • Sort #undef in reverse order of #define.
5:14 PM Changeset in webkit [260475] by Chris Dumez
  • 8 edits in trunk/Source/WebKit

REGRESSION(r260410) Frequent Network process crashes
https://bugs.webkit.org/show_bug.cgi?id=210825

Reviewed by Alex Christensen.

The webPageProxyID in the NetworkProcessProxy::DidNegotiateModernTLS() IPC was invalid because
NetworkProcessProxy::preconnectTo() was failing to initialize NetworkLoadParameters::webPageProxyID.
This patch addresses the issue.

No new tests, added new assertion that would be tripped by existing tests.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::NetworkLoad):

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

5:03 PM Changeset in webkit [260474] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

PiP buttons shows up in element fullscreen when PiP is disabled in WKWebViewConfiguration
https://bugs.webkit.org/show_bug.cgi?id=210813

Reviewed by Eric Carlson.

Not currently testable; entering fullscreen never completes in the iOS TestWebKitAPI app
because that process is not a UI Application.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(-[WKFullScreenViewController videoControlsManagerDidChange]):

4:12 PM Changeset in webkit [260473] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

[Cocoa] Don't bother compiling UpdateInfo since it's not used
https://bugs.webkit.org/show_bug.cgi?id=210819
<rdar://problem/61774766>

Reviewed by Darin Adler.

Since we don't use the UpdateInfo class in Cocoa builds, let's not
bother building it.

  • Shared/UpdateInfo.cpp:
  • Shared/UpdateInfo.h:
  • UIProcess/DrawingAreaProxy.h:
4:01 PM Changeset in webkit [260472] by fpizlo@apple.com
  • 3 edits in trunk/Websites/webkit.org

Unreviewed, check in some more files for a blog post.

  • blog-files/speculation-in-jsc/clobberize-dependence-graph.graffle:
  • blog-files/speculation-in-jsc/clobberize-dependence-graph.svg:
4:00 PM Changeset in webkit [260471] by Darin Adler
  • 4 edits
    2 deletes in trunk/LayoutTests

[Mac] Enable color well tests on modern WebKit
https://bugs.webkit.org/show_bug.cgi?id=210810

Reviewed by Alexey Proskuryakov.

When running tests I was informed of "unexpected passing" for the
test fast/css/pseudo-visited-background-color-on-input.html.
After doing some research, I found that we have tests of color well
that are still disabled on Mac even though we have implemented it
now, just not for legacy WebKit.

Looking at history I see these tests have been passing consistently
on bots. So changed their expectations to Pass, and also un-skipped
some other tests of the same feature that passed for me locally.

  • platform/mac-highsierra-wk1/*: Removed.
  • platform/mac-highsierra/*: Removed.
  • platform/mac-wk1/TestExpectations: Moved expectations here for tests

that we should not run because we don't have color wells enabled.

  • platform/mac-wk2/TestExpectations: Moved expectations here

for color well tests that still don't work in modern WebKit because we
need more support for dragging tests.

  • platform/mac/TestExpectations: Moved the expections *from* here.
3:55 PM Changeset in webkit [260470] by fpizlo@apple.com
  • 1 edit
    2 adds in trunk/Websites/webkit.org

Unreviewed, check in some more files for a blog post.

  • blog-files/speculation-in-jsc/clobberize-dependence-graph.graffle: Added.
  • blog-files/speculation-in-jsc/clobberize-dependence-graph.svg: Added.
3:53 PM Changeset in webkit [260469] by dbates@webkit.org
  • 2 edits in trunk/Tools

Attempt to fix the build after r260449
(https://bugs.webkit.org/show_bug.cgi?id=210697)

Wrap the C++ methods in namespace TestWebKitAPI so that IPhoneUserInterfaceSwizzler can be
used unqualified.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:
3:53 PM Changeset in webkit [260468] by Alan Coon
  • 1 copy in tags/Safari-610.1.10.2

Tag Safari-610.1.10.2.

3:49 PM Changeset in webkit [260467] by Alan Coon
  • 8 edits in branches/safari-610.1.10-branch/Source

Versioning.

3:37 PM Changeset in webkit [260466] by fpizlo@apple.com
  • 3 edits in trunk/Websites/webkit.org

Unreviewed, check in some more files for a blog post.

  • blog-files/speculation-in-jsc/abstract-heaps.graffle:
  • blog-files/speculation-in-jsc/abstract-heaps.svg:
3:33 PM Changeset in webkit [260465] by Alan Coon
  • 8 edits in branches/safari-609.2.9.1-branch/Source

Versioning.

3:33 PM Changeset in webkit [260464] by fpizlo@apple.com
  • 3 edits in trunk/Websites/webkit.org

Unreviewed, check in some more files for a blog post.

  • blog-files/speculation-in-jsc/abstract-heaps.graffle:
  • blog-files/speculation-in-jsc/abstract-heaps.svg:
3:27 PM Changeset in webkit [260463] by fpizlo@apple.com
  • 1 edit
    2 adds in trunk/Websites/webkit.org

Unreviewed, check in some more files for a blog post.

  • blog-files/speculation-in-jsc/abstract-heaps.graffle: Added.
  • blog-files/speculation-in-jsc/abstract-heaps.svg: Added.
3:21 PM Changeset in webkit [260462] by Alan Coon
  • 8 edits in branches/safari-609.2.9.0-branch/Source

Versioning.

2:50 PM Changeset in webkit [260461] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

One more build fix after r260407

  • Configurations/WebKit.xcconfig:
2:47 PM Changeset in webkit [260460] by Alan Coon
  • 1 copy in tags/Safari-610.1.10.1

Tag Safari-610.1.10.1.

2:45 PM Changeset in webkit [260459] by Alan Coon
  • 3 edits in branches/safari-610.1.10-branch/Source/WebKit

Cherry-pick r260137. rdar://problem/62131504

[iOS] Potential crash under WebProcess::platformInitializeWebProcess
https://bugs.webkit.org/show_bug.cgi?id=210547

Reviewed by Brent Fulgham.

If the UI process fails to issue an extension to the runningboard service, the WebContent process will crash
while trying to consume this extension.

No new tests, since the test runners are unsandboxed, so issuing the extension will always succeed.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess):
  • WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::platformInitializeWebProcess):

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

2:45 PM Changeset in webkit [260458] by Alan Coon
  • 8 edits in branches/safari-610.1.10-branch/Source

Versioning.

2:34 PM Changeset in webkit [260457] by Alan Coon
  • 1 copy in branches/safari-609.2.9.3-branch

New branch.

2:34 PM Changeset in webkit [260456] by Alan Coon
  • 1 copy in branches/safari-609.2.9.2-branch

New branch.

2:33 PM Changeset in webkit [260455] by Alan Coon
  • 1 copy in branches/safari-609.2.9.1-branch

New branch.

2:33 PM Changeset in webkit [260454] by Alan Coon
  • 1 copy in branches/safari-609.2.9.0-branch

New branch.

2:22 PM Changeset in webkit [260453] by Chris Dumez
  • 10 edits in trunk/Source/WebKit

[iOS] Provide better names for ProcessThrottler process assertions
https://bugs.webkit.org/show_bug.cgi?id=210808

Reviewed by Geoffrey Garen.

Provide better names for ProcessThrottler process assertions, to facilitate debugging.

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/ProcessAssertion.cpp:

(WebKit::ProcessAssertion::ProcessAssertion):

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

(WebKit::ProcessThrottler::assertionName const):
(WebKit::ProcessThrottler::setAssertionType):

  • UIProcess/ProcessThrottler.h:
  • UIProcess/ProcessThrottlerClient.h:
  • UIProcess/WebProcessProxy.h:
  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAndUIAssertion::ProcessAndUIAssertion):

1:52 PM Changeset in webkit [260452] by Darin Adler
  • 2 edits in trunk/Tools

WTF API test for StringConcatenate failing for internal Apple builds
https://bugs.webkit.org/show_bug.cgi?id=210812

Reviewed by Brent Fulgham.

  • TestWebKitAPI/Tests/WTF/StringConcatenate.cpp:

(TestWebKitAPI::TEST): Add back a case for when UChar is uint16_t.

1:49 PM Changeset in webkit [260451] by Kate Cheney
  • 3 edits in trunk/Tools

Move WebKit.WebViewCategory test to InAppBrowserPrivacy.mm
https://bugs.webkit.org/show_bug.cgi?id=210811
<rdar://problem/60972505>

Reviewed by Alexey Proskuryakov.

This test was added before InAppBrowserPrivacy.mm existed. It should
be moved here so it has access to all setup/cleanup needed by these
tests.

  • TestWebKitAPI/Tests/WebKitCocoa/Configuration.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
1:36 PM Changeset in webkit [260450] by Simon Fraser
  • 3 edits
    2 adds in trunk

[Async overflow scroll] Overflow that's hidden on one axis is scrollable on that axis
https://bugs.webkit.org/show_bug.cgi?id=210771
<rdar://problem/62080331>

Reviewed by Tim Horton.

Source/WebCore:

eventCanScrollContents() should check the presence of enabled scrollbars, like
ScrollAnimator::handleWheelEvent() does.

Test: fast/scrolling/mac/async-scroll-overflow-hidden-on-one-axis.html

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::eventCanScrollContents const):

LayoutTests:

  • fast/scrolling/mac/async-scroll-overflow-hidden-on-one-axis-expected.txt: Added.
  • fast/scrolling/mac/async-scroll-overflow-hidden-on-one-axis.html: Added.
1:22 PM Changeset in webkit [260449] by dbates@webkit.org
  • 14 edits
    1 move in trunk

[iOS] -_didFinishTextInteractionInTextInputContext should only zoom to reveal focused element if it changed
https://bugs.webkit.org/show_bug.cgi?id=210697
<rdar://problem/60997530>

Source/WebCore:

Reviewed by Wenson Hsieh.

For now, add a comment about the return value of setFocusedElement: it returns
whether focus was blocked. If focused wasn't blocked then it will return true
even if the element wasn't actually focused. For example, it will return true
for non-focusable elements: <input disabled>.

I was tempted to fix setFocusedElement() to return true when it actually focused
the element or if the element was already focused, but I decided to defer this
until I audit the callers and run some tests.

  • dom/Document.h:

Source/WebKit:

Reviewed by Wenson Hsieh.

Add a new state variable to use to track whether -_focusTextInputContext invoked during a
text interaction actually focused an element. Then in -_didFinishTextInteractionInTextInputContext
condition marking the page to reveal the focused element on this state.

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

(-[WKWebView _willBeginTextInteractionInTextInputContext:]): Turn around and call the same
function on the content view.
(-[WKWebView _didFinishTextInteractionInTextInputContext:]): Ditto.

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

(-[WKContentView cleanUpInteraction]): Reset state.
(-[WKContentView _didCommitLoadForMainFrame]): Ditto.
(-[WKContentView _focusTextInputContext:placeCaretAt:completionHandler:]): Update state to
indicate whether the focusd element did change or not. I use bitwise ORing instead of strict
assignment to update it because this function can be called multiple times by an internal
Apple client during a text interaction (e.g. <rdar://problem/59430806>). I thought about
making this a FIXME, but this function is otherwise capable of handling multiple invocations
so I didn't.
(-[WKContentView _willBeginTextInteractionInTextInputContext:]): Reset added state.
(-[WKContentView _didFinishTextInteractionInTextInputContext:]): Check if state was set to
indicate that a focus change happened. If so, do what we do now + reset state. Otherwise,
do everything we do now except for marking the page as needing to reveal the focused element
on the next editor state update.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::focusTextInputContextAndPlaceCaret): Check that the target is focusable
before calling FocusController::setFocusedElement() because it ultimately calls Document::setFocusedElement()
that can return true for a non-focusable element. I added a comment in Document.h to explain
this subtlety. I also decided not to check the return value of FocusController::setFocusedElement().
Instead I am checking the more important condition that the focused element is the target
element. Passing true to visiblePositionInFocusedNodeForPoint() will ultimately assert this
to be true. Note that setFocusedElement() may not have done anything as m_focusedElement
could have already been equal to the target element. This is OK and I still update the
caret position.

Tools:

Reviewed by Wenson Hsieh.

I use the term "assisted" below and in the tests to describe an element that is both DOM
focused and the UI process is showing an input view (like the software keyboard) for it.
For many of the tests I check for a zoom scale change as a way to detect if the page
zoomed to reveal the focused element.

Add some tests for the following cases:

  1. Place the caret in a focused field that isn't being assisted.
  2. Focusing an assisted element should not scroll the page.
  3. Focusing an offscreen read-only element should not change zoom scale.
  4. Focusing an offscreen element should change the zoom scale.
  5. Calling -_focusTextInputContext on an offscreen element multiple times during a text interaction should change the zoom scale. The purpose of this test is to ensure that later calls that do not focus the element (because it is already focused) don't prevent zooming for the first call that did focus the element.
  6. Focusing an offscreen element, defocusing it, disabling it, and focusing it again during a text interaction should not change zoom scale.
  7. Focusing an offscreen element, defocusing it, and focusing it again during a text interaction should change zoom scale.
  8. Focusing an assisted element during a text interaction should not change zoom scale.
  9. Focusing a non-assisted focused element during a text interaction should change zoom scale.

While I am here, I consolidated the RAII helper classes IPhoneUserInterfaceSwizzler and
IPadUserInterfaceSwizzler into a single UserInterfaceSwizzler templated class and defined
the former two as template instances.

  • TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:

(TextInteractionForScope::TextInteractionForScope):
(TextInteractionForScope::~TextInteractionForScope):
Added convenience RAII object to call -_willBeginTextInteractionInTextInputContext
and -_didFinishTextInteractionInTextInputContext.
(TEST): Added.

  • TestWebKitAPI/Tests/ios/ActionSheetTests.mm:
  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:
  • TestWebKitAPI/ios/IPadUserInterfaceSwizzler.h: Removed.
  • TestWebKitAPI/ios/PreferredContentMode.mm:

(IPhoneUserInterfaceSwizzler::IPhoneUserInterfaceSwizzler): Deleted; movedinto UserInterfaceSwizzler.h.
(IPhoneUserInterfaceSwizzler::phoneUserInterfaceIdiom): Deleted; no longer needed.

  • TestWebKitAPI/ios/UserInterfaceSwizzler.h: Renamed from Tools/TestWebKitAPI/ios/IPadUserInterfaceSwizzler.h.

(TestWebKitAPI::UserInterfaceSwizzler::UserInterfaceSwizzler): Formerly named IPadUserInterfaceSwizzler;
repurposed into general purpose template class, consolidating code from PreferredContentMode.mm.
Privately inherits from InstanceMethodSwizzler instead of using composition as that simplifies
the source code a tiny bit.
(TestWebKitAPI::UserInterfaceSwizzler::effectiveUserInterfaceIdiom): Renamed; formerly padUserInterfaceIdiom.

1:21 PM Changeset in webkit [260448] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

Fix for remoteParentObject and platformWidget not being stored properly in the AXIsolatedObject attributes variant.
https://bugs.webkit.org/show_bug.cgi?id=210809

Reviewed by Chris Fleizach.

Adding these properties to the AXIsolatedObject attributes variant as
WeakPtr<void*> fails. So they are now cached as member variables.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::platformWidget const):

  • accessibility/isolatedtree/AXIsolatedObject.h:

(WebCore::AXIsolatedObject::propertyValue const): Deleted.

  • accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:

(WebCore::AXIsolatedObject::initializePlatformProperties):
(WebCore::AXIsolatedObject::remoteParentObject const):

12:18 PM Changeset in webkit [260447] by Alexey Shvayka
  • 6 edits in trunk

constructObjectFromPropertyDescriptor() is incorrect with partial descriptors
https://bugs.webkit.org/show_bug.cgi?id=184629

Reviewed by Ross Kirsling.

JSTests:

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

Source/JavaScriptCore:

Before this change, constructObjectFromPropertyDescriptor() serialized a value-only descriptor
with nullish m_seenAttributes to {value, writable: false, enumerable: false, configurable: false}
instead of just {value}. This was observable when ordinarySetSlow() was called on a Proxy
receiver with "defineProperty" trap.

This patch makes constructObjectFromPropertyDescriptor() 1:1 with the spec [2], aligning JSC
with V8 and SpiderMonkey, and also cleans up its call sites from handling exceptions and
undefined value returns.

[1]: https://tc39.es/ecma262/#sec-ordinarysetwithowndescriptor (step 3.d.iv)
[2]: https://tc39.es/ecma262/#sec-frompropertydescriptor

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorGetOwnPropertyDescriptor):
(JSC::objectConstructorGetOwnPropertyDescriptors):

  • runtime/ObjectConstructor.h:

(JSC::constructObjectFromPropertyDescriptor):

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::performDefineOwnProperty):

11:42 AM Changeset in webkit [260446] by timothy@apple.com
  • 4 edits in trunk

Reset m_userScriptsNotified when web process crashes.
https://bugs.webkit.org/show_bug.cgi?id=210807

Reviewed by Alex Christensen.

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebPageProxy::resetStateAfterProcessExited): Set m_userScriptsNotified to false.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm:

(TEST): Test crashing the web process and reloading.

11:17 AM Changeset in webkit [260445] by Simon Fraser
  • 6 edits
    4 adds in trunk

Horizontal overflow overlay scrollbar is misplaced in RTL
https://bugs.webkit.org/show_bug.cgi?id=210673
<rdar://problem/61950751>

Reviewed by Antti Koivisto.
Source/WebCore:

Code for positioning RenderLayer overflow controls (scrollbars and scroll corner)
was scattered across lots of different functions, making it hard to follow,
and prone to bugs.

Fix by making one source of truth, overflowControlsRects(), which computes
rects for the two scrollbars, the "scroll corner" (the square in the corner which
shows, only for non-overlay scrollbars, when both scrollbars or the resize control
is visible), and the resize control which shows when style specifies the "resize" property.

Call this function in all the places that need to know about overflow control
geometry. RenderLayer::hitTestResizerInFragments() is a little tricky because it wants
the resize control relative to the fragment rect; achieve this by computing the position
of the resizer rect relative to the border box, then shifting it into position relative
to the fragment bounds (which include border).

Test: compositing/overflow/rtl-scrollbar-layer-positioning.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::selectCursor):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollCornerRect const):
(WebCore::RenderLayer::overflowControlsRects const):
(WebCore::RenderLayer::scrollbarOffset const):
(WebCore::RenderLayer::invalidateScrollbarRect):
(WebCore::RenderLayer::positionOverflowControls):
(WebCore::RenderLayer::overflowControlsIntersectRect const):
(WebCore::RenderLayer::paintResizer):
(WebCore::RenderLayer::isPointInResizeControl const):
(WebCore::RenderLayer::hitTestOverflowControls):
(WebCore::RenderLayer::hitTestResizerInFragments const):
(WebCore::cornerStart): Deleted.
(WebCore::cornerRect): Deleted.
(WebCore::resizerCornerRect): Deleted.
(WebCore::RenderLayer::scrollCornerAndResizerRect const): Deleted.
(WebCore::RenderLayer::rectForHorizontalScrollbar const): Deleted.
(WebCore::RenderLayer::rectForVerticalScrollbar const): Deleted.
(WebCore::RenderLayer::verticalScrollbarStart const): Deleted.
(WebCore::RenderLayer::horizontalScrollbarStart const): Deleted.

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

(WebCore::RenderLayerBacking::requiresScrollCornerLayer const):
(WebCore::RenderLayerBacking::positionOverflowControlsLayers):
(WebCore::RenderLayerBacking::paintContents):

LayoutTests:

  • compositing/overflow/rtl-scrollbar-layer-positioning-expected.txt: Added.
  • compositing/overflow/rtl-scrollbar-layer-positioning.html: Added.
  • platform/ios-wk2/compositing/overflow/rtl-scrollbar-layer-positioning-expected.txt: Added.
  • platform/mac-wk1/compositing/overflow/rtl-scrollbar-layer-positioning-expected.txt: Added.
11:13 AM Changeset in webkit [260444] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[ews] Display error message when submit for EWS analysis button doesn't work
https://bugs.webkit.org/show_bug.cgi?id=210803

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/views/submittoews.py:

(SubmitToEWS.post): Display relevant error message on submit for EWS analysis button failure.

  • BuildSlaveSupport/ews-app/ews/fetcher.py:

(BugzillaPatchFetcher.fetch):
(BugzillaPatchFetcher.send_patches_to_buildbot):

  • BuildSlaveSupport/ews-app/ews/config.py: Add few more error codes.
11:10 AM Changeset in webkit [260443] by ysuzuki@apple.com
  • 1 edit
    1 move in trunk/JSTests

Move value-pow-ai-rule-should-box-the-same-way-as-the-runtime.js to JSTests/stress/
https://bugs.webkit.org/show_bug.cgi?id=210805

Reviewed by Saam Barati.

r251408 accidentally puts value-pow-ai-rule-should-box-the-same-way-as-the-runtime.js in JSTests/ instead of JSTests/stress/.
This patch fixes that.

  • stress/value-pow-ai-rule-should-box-the-same-way-as-the-runtime.js: Renamed from JSTests/value-pow-ai-rule-should-box-the-same-way-as-the-runtime.js.
10:50 AM Changeset in webkit [260442] by Lauro Moura
  • 2 edits
    1 delete in trunk/Tools

[GStreamer][JHBuild] Update to 1.16.2
https://bugs.webkit.org/show_bug.cgi?id=210730

Reviewed by Philippe Normand.

Moving the bots closer to the flatpak SDK versions.

  • gstreamer/jhbuild.modules:
  • gstreamer/patches/base-0001-glupload-Add-VideoMetas-and-GLSyncMeta-to-the-raw-up.patch: Removed.
10:48 AM Changeset in webkit [260441] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Fix the build

  • Configurations/WebKit.xcconfig:
10:30 AM Changeset in webkit [260440] by ddkilzer@apple.com
  • 6 edits in trunk/Source/WebKit

[IPC hardening] ShareableResource::create() should validate its parameters
<https://webkit.org/b/210779>
<rdar://problem/60887693>

Reviewed by Chris Dumez.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::store):

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord const):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::didFinishLoadForQuickLookDocumentInMainFrame):

  • Handle nullptr returned from ShareableResource::create().
  • Shared/ShareableResource.cpp:

(WebKit::ShareableResource::create):

  • Change to return RefPtr<>.
  • Validate parameters before calling constructor. Return nullptr on failure.

(WebKit::ShareableResource::ShareableResource):

  • Remove assert and comment since checks are now done in ShareableResource::create().
  • Shared/ShareableResource.h:

(WebKit::ShareableResource::create):

  • Change to return RefPtr<>.
10:28 AM Changeset in webkit [260439] by Alan Coon
  • 1 copy in tags/Safari-609.2.9

Tag Safari-609.2.9.

10:27 AM Changeset in webkit [260438] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/WebKitLegacy/win

Cherry-pick r257802. rdar://problem/62093679

[Win] API header file has USE macro
https://bugs.webkit.org/show_bug.cgi?id=208534

Reviewed by Brent Fulgham.

USE macros should not be used in API header files.

  • WebKitCOMAPI.h:

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

10:25 AM Changeset in webkit [260437] by Alan Coon
  • 8 edits in branches/safari-609-branch/Source

Versioning.

10:20 AM Changeset in webkit [260436] by svillar@igalia.com
  • 13 edits
    21 deletes in trunk

Unreviewed, reverting r260432.

Broke WPE build

Reverted changeset:

"[WebXR] Test IDLs and stubs"
https://bugs.webkit.org/show_bug.cgi?id=209859
https://trac.webkit.org/changeset/260432

10:14 AM Changeset in webkit [260435] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

REGRESSION (r256808): “A problem repeatedly occurred” when attempting to load https://bungalow.com/listings/bay-area
https://bugs.webkit.org/show_bug.cgi?id=210801
<rdar://problem/61658940>

Reviewed by Antti Koivisto.

Even though the page uses the 'async' attribute on the mapbox-gl.js script, deferring the execution of this
script gets the page into a bad state, causing it to use a lot of CPU & memory until the process crashes.
Since we don't have any other evidence of breakage from r256808 yet and since r256808 was a massive PLT
progression, I am opting to add a quirk to disable the async script optimization on bungalow.com for now.

  • dom/Document.cpp:

(WebCore::Document::shouldDeferAsynchronousScriptsUntilParsingFinishes const):

  • page/Quirks.cpp:

(WebCore::Quirks::shouldBypassAsyncScriptDeferring const):

  • page/Quirks.h:
  • platform/RegistrableDomain.h:

(WebCore::RegistrableDomain::operator== const):

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

Check Structure attributes in Object.assign exhaustively
https://bugs.webkit.org/show_bug.cgi?id=210782
<rdar://problem/62065853>

Reviewed by Mark Lam.

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorAssign):

9:58 AM Changeset in webkit [260433] by ap@apple.com
  • 2 edits in trunk/Tools

Correct the path to libclang_rt.asan_iossim_dynamic.dylib in LC_RPATH
https://bugs.webkit.org/show_bug.cgi?id=210770
rdar://problem/61904541

Reviewed by Alex Christensen.

  • asan/asan.xcconfig:
9:30 AM Changeset in webkit [260432] by svillar@igalia.com
  • 13 edits
    16 copies
    5 adds in trunk

[WebXR] Test IDLs and stubs
https://bugs.webkit.org/show_bug.cgi?id=209859

Reviewed by Dean Jackson and Youenn Fablet.

Source/WebCore:

WebXR testing is hard as it might involve interaction with actual
devices. That's why the WebXR testing
API (https://immersive-web.github.io/webxr-test-api/) was
proposed. In fact, all the current WebXR tests from
web-platform-tests are using that testing API. This new testing
API supplements navigator.xr and is accessed through
navigator.xr.test.

In order not to expose the API to the web we're adding the XRTest
interface to Internals instead. The mapping from internals.xrTest to
navigator.xr.test happens in the WPT code.

We're adding the required IDLs and very basic (mostly empty)
implementations for testing methods. We're adding testing
infrastructure, adding tests make no sense for this change.

  • CMakeLists.txt: Added new files.
  • DerivedSources.make: Ditto.
  • Modules/webxr/NavigatorWebXR.h: Export API to be used in testing code.
  • Modules/webxr/WebXRSystem.h: Export ::from and ::xr methods.
  • Sources.txt: Added new files.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • bindings/js/WebCoreBuiltinNames.h: Added some new macros.
  • testing/FakeXRBoundsPoint.h: Added.
  • testing/FakeXRBoundsPoint.idl: Added.
  • testing/FakeXRButtonStateInit.h: Added.
  • testing/FakeXRButtonStateInit.idl: Added.
  • testing/FakeXRInputSourceInit.h: Added.
  • testing/FakeXRInputSourceInit.idl: Added.
  • testing/FakeXRRigidTransformInit.h: Added.
  • testing/FakeXRRigidTransformInit.idl: Added.
  • testing/FakeXRViewInit.h: Added.
  • testing/FakeXRViewInit.idl: Added.
  • testing/Internals.cpp:

(WebCore::Internals::xrTest): Added WebXRTest to Internals.

  • testing/Internals.h: Added xrTest() accessor.
  • testing/Internals.idl: Added xrTest attribute.
  • testing/WebFakeXRDevice.cpp: Added.

(WebCore::WebFakeXRDevice::setViews):
(WebCore::WebFakeXRDevice::disconnect):
(WebCore::WebFakeXRDevice::setViewerOrigin):
(WebCore::WebFakeXRDevice::clearViewerOrigin):
(WebCore::WebFakeXRDevice::simulateVisibilityChange):
(WebCore::WebFakeXRDevice::setBoundsGeometry):
(WebCore::WebFakeXRDevice::setFloorOrigin):
(WebCore::WebFakeXRDevice::clearFloorOrigin):
(WebCore::WebFakeXRDevice::simulateResetPose):
(WebCore::WebFakeXRDevice::simulateInputSourceConnection):

  • testing/WebFakeXRDevice.h: Added.
  • testing/WebFakeXRDevice.idl: Added.
  • testing/WebFakeXRInputController.cpp: Added.

(WebCore::WebFakeXRInputController::setHandedness):
(WebCore::WebFakeXRInputController::setTargetRayMode):
(WebCore::WebFakeXRInputController::setProfiles):
(WebCore::WebFakeXRInputController::setGripOrigin):
(WebCore::WebFakeXRInputController::clearGripOrigin):
(WebCore::WebFakeXRInputController::setPointerOrigin):
(WebCore::WebFakeXRInputController::disconnect):
(WebCore::WebFakeXRInputController::reconnect):
(WebCore::WebFakeXRInputController::startSelection):
(WebCore::WebFakeXRInputController::endSelection):
(WebCore::WebFakeXRInputController::simulateSelect):
(WebCore::WebFakeXRInputController::setSupportedButtons):
(WebCore::WebFakeXRInputController::updateButtonState):

  • testing/WebFakeXRInputController.h: Added.
  • testing/WebFakeXRInputController.idl: Added.
  • testing/WebXRTest.cpp: Added.

(WebCore::WebXRTest::simulateDeviceConnection const):
(WebCore::WebXRTest::simulateUserActivation):
(WebCore::WebXRTest::disconnectAllDevices):

  • testing/WebXRTest.h: Added.

(WebCore::WebXRTest::create):

  • testing/WebXRTest.idl: Added.
  • testing/XRSimulateUserActivationFunction.h: Added.
  • testing/XRSimulateUserActivationFunction.idl: Ditto.

LayoutTests:

  • platform/wpe/TestExpectations: Added bug number to the passing webxr test.
9:21 AM Changeset in webkit [260431] by cturner@igalia.com
  • 3 edits in trunk/Source/WTF

[Clang 10] Fix warning: definition of implicit copy assignment operator for 'PageBlock' is deprecated because it has a user-declared copy constructor
https://bugs.webkit.org/show_bug.cgi?id=210748

Reviewed by Adrian Perez de Castro.

Recent Clang's will issue a warning if you declare an explicit
copy construction, but leave the compiler to fill in an implicit
assignment operator. I think this is to catch cases where you do
something exciting in an assignment operator/copy constructor and
forget to do the same exciting thing in the other.

  • wtf/PageAllocation.h: Import the base's constructor to avoid

defining our own identical one.

  • wtf/PageBlock.h: Remove trivial constructor and replace with

member initializers. Remove copy constructor. This looks identical
to what the compiler would generate anyway.

9:12 AM Changeset in webkit [260430] by clopez@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] Gardening of WPT tests for Intersection Observer v2 after r260388

Unreviewed.

  • platform/gtk/TestExpectations: Due to the override for Pass/Fail in the folder above

its needed to repeat the Skip expectation here to avoid the Missing result.

9:05 AM Changeset in webkit [260429] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[Cocoa] Tighten up some more IPC message checks in WebPasteboardProxy
https://bugs.webkit.org/show_bug.cgi?id=210780
<rdar://problem/62088479>

Reviewed by Alex Christensen.

Adjust some existing IPC message checks in WebPasteboardProxy, and also introduces some new ones. See below for
more details.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::didModifyContentsOfPasteboard):

Move the pasteboardName check here out of didModifyContentsOfPasteboard, and into each call site, such that
we bail and kill the web process before invoking didModifyContentsOfPasteboard in the case where the name is
empty.

(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType):
(WebKit::WebPasteboardProxy::getPasteboardStringForType):
(WebKit::WebPasteboardProxy::getPasteboardStringsForType):
(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::addPasteboardTypes):
(WebKit::WebPasteboardProxy::setPasteboardTypes):
(WebKit::WebPasteboardProxy::setPasteboardURL):
(WebKit::WebPasteboardProxy::setPasteboardColor):
(WebKit::WebPasteboardProxy::setPasteboardStringForType):

Add message checks for empty pasteboard types.

(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
(WebKit::WebPasteboardProxy::writeCustomData):
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):
(WebKit::WebPasteboardProxy::writeURLToPasteboard):
(WebKit::WebPasteboardProxy::writeWebContentToPasteboard):
(WebKit::WebPasteboardProxy::writeImageToPasteboard):
(WebKit::WebPasteboardProxy::writeStringToPasteboard):

Add a message check for empty pasteboard types, but only when the string is also empty; this is because iOS
clears pasteboard data by writing an empty pasteboard string and type.

8:51 AM Changeset in webkit [260428] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[Flatpak SDK] Keep env variable 'RESULTS_SERVER_API_KEY'
https://bugs.webkit.org/show_bug.cgi?id=210798

Reviewed by Philippe Normand.

The variable is needed by several bot steps to upload results.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

8:26 AM Changeset in webkit [260427] by Adrian Perez de Castro
  • 7 edits
    1 delete in trunk

[GTK][CMake] Make gtk-unix-print a component of FindGTK.cmake
https://bugs.webkit.org/show_bug.cgi?id=210792

Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/FindGTK.cmake: Support an "unix-print" component.
  • Source/cmake/FindGTKUnixPrint.cmake: Removed.
  • Source/cmake/OptionsGTK.cmake: Use the "unix-print" component of the GTK find module.

Source/WebKit:

No new tests needed.

  • PlatformGTK.cmake: Use the GTK::UnixPrint imported target.

Tools:

  • TestWebKitAPI/glib/PlatformGTK.cmake: Use the GTK::UnixPrint imported target.
6:26 AM Changeset in webkit [260426] by Philippe Normand
  • 2 edits in trunk/Tools

[Flatpak SDK] Silence git stderr output
https://bugs.webkit.org/show_bug.cgi?id=210789

Reviewed by Sergio Villar Senin.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.is_branch_build): Don't display git errors, usually
emitted when operating on a SVN checkout.

5:31 AM Changeset in webkit [260425] by Claudio Saavedra
  • 4 edits in trunk/Source

[GTK4] Adapt to GtkIconTheme API changes
https://bugs.webkit.org/show_bug.cgi?id=210745

Reviewed by Adrian Perez de Castro.

Source/WebCore:

No new tests needed.

GtkIconTheme changes in GTK and since we're no longer following
the theme we can drop the missing image from the icon theme, so remove
now unnecessary code.

  • platform/graphics/gtk/ImageGtk.cpp:

(WebCore::Image::loadPlatformResource): Directly load image from compiled
GResource.
(WebCore::loadResourceSharedBuffer): Deleted.
(WebCore::loadMissingImageIconFromTheme): Deleted.

Source/WTF:

  • wtf/glib/GTypedefs.h: Remove unneeded GtkIconInfo definition.
3:33 AM Changeset in webkit [260424] by svillar@igalia.com
  • 4 edits in trunk/LayoutTests/imported/w3c

Import latest changes from web-platform-test/webxr/resources to enable testing in WebKit
https://bugs.webkit.org/show_bug.cgi?id=210788

Reviewed by Žan Doberšek.

We landed in wpt new code in webxr_utils.js to map internal.xrTest to
navigator.xr.test to be able to run WebXR WPT in WebKit. Import those changes
from upstream in order to be able to run the tests.

Apart from that we take the chance to import the latest fixes to the
files in resources/ directory.

  • web-platform-tests/webxr/resources/webxr_test_constants.js: Updated.
  • web-platform-tests/webxr/resources/webxr_test_constants_fake_world.js:

(createFakeWorld): Ditto.

  • web-platform-tests/webxr/resources/webxr_util.js: Map internals.xrTest

to navigator.xr.test for WebKit browsers.
(xr_debug): Updated.
(async xr_session_promise_test): Ditto.
(xr_promise_test): Deleted.

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

Exit early in FrameLoader::loadURL when redirecting to another frame
https://bugs.webkit.org/show_bug.cgi?id=210751

Patch by Rob Buis <rbuis@igalia.com> on 2020-04-21
Reviewed by Geoffrey Garen.

Exit early in FrameLoader::loadURL when redirecting to another frame, previously we were preparing
request needlessly, doing it twice in case of frame redirecting. Also move some variables to
where they are actually used.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):

  • loader/FrameLoader.h:
3:28 AM Changeset in webkit [260422] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

[ARMv7][EWS] stress/check-stack-overflow-before-value-profiling-arguments.js is failing
https://bugs.webkit.org/show_bug.cgi?id=210720

Unreviewed gardening.

Skip test on arm since it is failing on EWS, causing significant delays.

Patch by Paulo Matos <Paulo Matos> on 2020-04-21

  • stress/check-stack-overflow-before-value-profiling-arguments.js:
2:52 AM Changeset in webkit [260421] by commit-queue@webkit.org
  • 8 edits in trunk/JSTests

Re-enable previously skipped mips tests
https://bugs.webkit.org/show_bug.cgi?id=209964

Patch by Paulo Matos <Paulo Matos> on 2020-04-21
Reviewed by Mark Lam.

Followup to r259454 - where we re-enabled a few stress tests for arm.

  • stress/JSArrayBufferView-byteOffset-is-racy-from-compiler-thread.js:
  • stress/dont-range-based-iterate-vector-that-is-mutated.js:
  • stress/ensure-code-block-is-not-precise-allocation.js:
  • stress/generator-cell-with-type.js:
  • stress/racy-slow-put-cloned-arguments-when-having-a-bad-time.js:
  • stress/symbol-is-destructed-before-refing-underlying-symbol-impl.js:
  • stress/toctou-having-a-bad-time-new-array.js:
1:47 AM Changeset in webkit [260420] by Carlos Garcia Campos
  • 3 edits
    1 delete in trunk/Source/WebCore

[GTK] Remove PlatformMouseEventGtk
https://bugs.webkit.org/show_bug.cgi?id=210743

Reviewed by Adrian Perez de Castro.

It's unused, we no longer create PlatformMouseEvent from a GdkEvent since WebKit2.

  • SourcesGTK.txt:
  • platform/PlatformMouseEvent.h:
  • platform/gtk/PlatformMouseEventGtk.cpp: Removed.
1:41 AM Changeset in webkit [260419] by Philippe Normand
  • 5 edits in trunk

Source/WebKit:
[CMake] gst-build-backed build fails
https://bugs.webkit.org/show_bug.cgi?id=210742

Reviewed by Xabier Rodriguez-Calvar.

  • PlatformWPE.cmake:

Tools:
[CMake][Flatpak SDK] gst-build-backed build fails
https://bugs.webkit.org/show_bug.cgi?id=210742

Reviewed by Xabier Rodriguez-Calvar.

Add non-core GStreamer include-dirs necessary for the compilation
of the GStreamer API test. Usually GSTREAMER_INCLUDE_DIRS is
sufficient because on a GStreamer system-wide installation, all
headers are stored in the same root include dir, the same as the
core GStreamer library.

But when building with gst-build, include-dirs are scattered all
over the place.

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/PlatformWPE.cmake:
1:38 AM Changeset in webkit [260418] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

[GTK4] Fix platform GDK includes
https://bugs.webkit.org/show_bug.cgi?id=210746

Reviewed by Carlos Garcia Campos.

  • platform/graphics/PlatformDisplay.cpp: Wayland, X11, etc.

platform includes changed path, so update accordingly.

12:48 AM Changeset in webkit [260417] by Adrian Perez de Castro
  • 13 edits in trunk/Source

Non-unified build fixes late February 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=210767

Unreviewed build fix.

Source/JavaScriptCore:

  • dfg/DFGValueRepReductionPhase.cpp: Add missing JSCJSValueInlines.h header.
  • jit/JITCall.cpp: Add missing SlowPathCall.h header.
  • runtime/AggregateError.cpp: Add missing JSCJSValueInlines.h, JSCellInlines.h, and

JSGlobalObjectInlines.h headers.

  • runtime/AggregateErrorConstructor.cpp: Added missing JSCJSValueInlines.h, JSCellInlines.h,

and VMInlines.h headers.

  • runtime/AggregateErrorPrototype.cpp: Added missing AggregateError.h, IdentifierInlines.h,

JSCJSValueInlines.h, JSCellInlines.h, JSGlobalObjectInlines.h, and VMInlines.h headers.

  • runtime/Intrinsic.h: Added missing wtf/Optional.h header.

Source/WebCore:

No new tests needed.

  • css/MediaQueryListEvent.cpp: Add missing wtf/IsoMallocInlines.h header.
  • css/MediaQueryMatcher.cpp: Add missing MediaQueryListEvent.h header.
  • platform/graphics/FloatQuad.cpp: Add missing wtf/text/TextStream.h header.

Source/WebKit:

  • NetworkProcess/NetworkResourceLoadMap.h: Add missing wtf/Function.h header.
Note: See TracTimeline for information about the timeline view.