Timeline



Mar 26, 2020:

11:38 PM Changeset in webkit [259107] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Clear the entropy bits in the encodedStructureBits when deallocating a structureID.
https://bugs.webkit.org/show_bug.cgi?id=209632
<rdar://problem/60943876>

Reviewed by Saam Barati.

We currently only use a 32-bit offset in the StructureIDTable's StructureOrOffset.
Though we will never store an offset value that is near 32-bit in size, let alone
64-bit, there's no reason why we can't just use all 64-bits for the offset.
Doing so will also have the benefit of zero'ing out the entropy bits in the old
encodedStructureBits. This guarantees that there's no chance of coalition between
a "freed" structureID's entropy bits and the entropy bits in a dead cell due to
GC bugs.

  • runtime/StructureIDTable.h:
11:03 PM Changeset in webkit [259106] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening for iOS.

  • platform/ios-wk2/TestExpectations:
10:13 PM Changeset in webkit [259105] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

NetworkConnectionToWebProcess::domCookiesForHost should validate its host parameter
<https://webkit.org/b/209612>
<rdar://problem/60097830>

Reviewed by Alex Christensen.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(NETWORK_PROCESS_MESSAGE_CHECK_COMPLETION):

  • Define/undef macro for killing WebContent process when an invalid IPC message is received.

(WebKit::NetworkConnectionToWebProcess::domCookiesForHost):

  • Use NETWORK_PROCESS_MESSAGE_CHECK_COMPLETION) to validate host parameter.
9:31 PM Changeset in webkit [259104] by don.olmstead@sony.com
  • 4 edits in trunk

[MSVC] Remove experimental lambda processor usage
https://bugs.webkit.org/show_bug.cgi?id=209358

Reviewed by Fujii Hironori.

.:

Remove /experimental:newLambdaProcessor since WebKit is no longer able to build
with this setting as of Visual Studio 16.5.0.

  • Source/cmake/OptionsMSVC.cmake:

Source/WebCore:

Fix build for Visual Studio scoping issue for lambdas. The experimental lambada
processor did build this code but is now failing to build WebKit at all.

  • dom/DocumentStorageAccess.cpp:

(WebCore::DocumentStorageAccess::requestStorageAccess):

9:20 PM Changeset in webkit [259103] by Chris Dumez
  • 6 edits in trunk

REGRESSION: Unable to show Web Inspector on empty tabs in Safari
https://bugs.webkit.org/show_bug.cgi?id=209639
<rdar://problem/60937524>

Reviewed by Darin Adler.

Source/WebKit:

Make sure we launch the WebPageProxy's initial process when trying to inspect the
page using Web Inspector (i.e. WebInspectorProxy::connect() is called).

  • UIProcess/Inspector/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::WebInspectorProxy):

  • Take in a reference instead of a raw pointer as it could never be null.
  • Store the inspected page and add the message receiver to its process, even if the process is the dummy one (due to delayed process launch).

(WebKit::WebInspectorProxy::invalidate):
Call reset() to avoid code duplication.

(WebKit::WebInspectorProxy::connect):
Launch the page's initial process if necessary before trying to send IPC to that
process.

(WebKit::WebInspectorProxy::updateForNewPageProcess):
Take in a reference instead of a raw pointer as it could never be null.

  • UIProcess/Inspector/WebInspectorProxy.h:

(WebKit::WebInspectorProxy::create):
Take in a reference instead of a raw pointer as it could never be null.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::launchProcess):
Call WebInspectorProxy::reset() before launching and connecting to the new process.
This is important now that the WebInspectorProxy connect to the dummy process proxy.
We need to make sure the WebInspectorProxy disconnects from the dummy process proxy
because we connect it to the newly launched process.

(WebKit::WebPageProxy::finishAttachingToWebProcess):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
9:13 PM Changeset in webkit [259102] by Fujii Hironori
  • 7 edits in trunk

[Win] lld-link: error: /manifestdependency: is not allowed in .drectve
https://bugs.webkit.org/show_bug.cgi?id=204831

Reviewed by Ross Kirsling.

.:

  • Source/cmake/WebKitMacros.cmake (WEBKIT_EXECUTABLE): Added /manifestdependency linkder option if WIN32.

Source/JavaScriptCore:

  • shell/DLLLauncherMain.cpp: Removed /manifestdependency for Microsoft.VC80.CRT which seems leftover of Bug 116562 (r178530).

Tools:

  • TestWebKitAPI/win/main.cpp:
  • win/DLLLauncher/DLLLauncherMain.cpp:
8:07 PM Changeset in webkit [259101] by Devin Rousso
  • 18 edits in trunk/Source/WebInspectorUI

Web Inspector: add keyboard shortcut to tooltip of pinned tabs
https://bugs.webkit.org/show_bug.cgi?id=209640

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TabBarItem.js:

(WI.TabBarItem):
(WI.TabBarItem.prototype.get displayName): Added.
(WI.TabBarItem.prototype.set displayName): Added.
(WI.TabBarItem.prototype.set title):
(WI.TabBarItem.prototype.titleDidChange): Deleted.

  • UserInterface/Views/GeneralTabBarItem.js:

(WI.GeneralTabBarItem.fromTabContentView):
(WI.GeneralTabBarItem.prototype.get displayName): Added.
(WI.GeneralTabBarItem.prototype.set displayName): Added.
(WI.GeneralTabBarItem.prototype.get title): Deleted.
(WI.GeneralTabBarItem.prototype.set title): Deleted.

  • UserInterface/Views/PinnedTabBarItem.js:

(WI.PinnedTabBarItem):
(WI.PinnedTabBarItem.fromTabContentView):
(WI.PinnedTabBarItem.titleDidChange): Deleted.

  • UserInterface/Views/TabBar.css:

(.tab-bar > .tabs > .item > .name): Added.
(body.window-inactive .tab-bar > .tabs > .item > .name): Added.
(.tab-bar > .tabs > .item > .name > .content): Added.
(.tab-bar > .tabs > .item:not(.selected):hover > .name): Added.
(.tab-bar > .tabs > .item:not(.disabled).selected > .name): Added.
(body.window-inactive .tab-bar > .tabs > .item:not(.disabled).selected > .name): Added.
(.tab-bar > .tabs > .item > .title): Deleted.
(body.window-inactive .tab-bar > .tabs > .item > .title): Deleted.
(.tab-bar > .tabs > .item > .title > .content): Deleted.
(.tab-bar > .tabs > .item:not(.selected):hover > .title): Deleted.
(.tab-bar > .tabs > .item:not(.disabled).selected > .title): Deleted.
(body.window-inactive .tab-bar > .tabs > .item:not(.disabled).selected > .title): Deleted.
Separate the shown name of the tab (displayName) from the tooltip text (title).

  • UserInterface/Views/SearchTabContentView.js:

(WI.SearchTabContentView.tabInfo):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.tabInfo):
Move the current title value to displayName and add a new title value with the
keyboard shortcut in parenthesis.

  • UserInterface/Views/AuditTabContentView.js:

(WI.AuditTabContentView.tabInfo):

  • UserInterface/Views/ConsoleTabContentView.js:

(WI.ConsoleTabContentView.tabInfo):

  • UserInterface/Views/ElementsTabContentView.js:

(WI.ElementsTabContentView.tabInfo):

  • UserInterface/Views/GraphicsTabContentView.js:

(WI.GraphicsTabContentView.tabInfo):

  • UserInterface/Views/LayersTabContentView.js:

(WI.LayersTabContentView.tabInfo):

  • UserInterface/Views/NetworkTabContentView.js:

(WI.NetworkTabContentView.tabInfo):

  • UserInterface/Views/SourcesTabContentView.js:

(WI.SourcesTabContentView.tabInfo):

  • UserInterface/Views/StorageTabContentView.js:

(WI.StorageTabContentView.tabInfo):

  • UserInterface/Views/TimelineTabContentView.js:

(WI.TimelineTabContentView.tabInfo):
Use displayName instead of title since the name is shown in the UI.

  • UserInterface/Base/Main.js:

(WI.contentLoaded):
Make the Settings Tab shortcut public.

  • Localizations/en.lproj/localizedStrings.js:
7:31 PM Changeset in webkit [259100] by Ryan Haddad
  • 2 edits in trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa

Unreviewed iOS API test gardening for rdar://59611168.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm:
7:31 PM Changeset in webkit [259099] by Ryan Haddad
  • 3 edits in trunk/Tools

Unreviewed test gardening for iOS API tests.

  • TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm:

(TEST):

  • TestWebKitAPI/Tests/ios/FocusPreservationTests.mm:

(TestWebKitAPI::TEST):

7:05 PM Changeset in webkit [259098] by sbarati@apple.com
  • 2 edits in trunk/PerformanceTests

Make it so RAMification can be run with python 3 and 2 and that it recognizes the new JavaScriptCore.framework directory structure
https://bugs.webkit.org/show_bug.cgi?id=209636

Reviewed by Yusuke Suzuki.

  • JavaScriptCore builds now put the jsc shell under JavaScriptCore.framework/Helpers/jsc, not JavaScriptCore.framework/Resources/jsc
  • It's also helpful to be able to run RAMification with python3.7 and 2.7, since there are some contexts where 3.7 is all we have.
  • JetStream2/RAMification.py:

(frameworkPathFromExecutablePath):
(BaseRunner.processLine):
(LocalRunner.runOneTest):
(main.runTestList):
(main):

6:35 PM Changeset in webkit [259097] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression: Unable to trigger context menu on empty tabs in Safari
https://bugs.webkit.org/show_bug.cgi?id=209628

Reviewed by Geoffrey Garen.

Launch the WebPageProxy's initial process if it starts processing mouse events.
As an optimization, the WebPageProxy only launches its initial process when it
really needs to.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleMouseEvent):

5:34 PM Changeset in webkit [259096] by Ross Kirsling
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Rename ANDEQUAL to BITANDEQUAL (etc.) throughout frontend
https://bugs.webkit.org/show_bug.cgi?id=209626

Reviewed by Mark Lam.

Our frontend refers to &= |= ^= as ANDEQUAL OREQUAL XOREQUAL, leaving the bitwiseness implied.
It's important to resolve this ambiguity now, as &&= ||= ??= are expected to reach Stage 3 next week.

  • bytecompiler/NodesCodegen.cpp:

(JSC::emitReadModifyAssignment):

  • parser/Lexer.cpp:

(JSC::Lexer<T>::lexWithoutClearingLineTerminator):

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

(JSC::Parser<LexerType>::parseAssignmentExpression):

  • parser/ParserTokens.h:
5:13 PM Changeset in webkit [259095] by Peng Liu
  • 2 edits in trunk/Source/WebCore

Swipe down gestures cause the video layer to stick for a moment before bouncing back into place
https://bugs.webkit.org/show_bug.cgi?id=209610

Reviewed by Eric Carlson.

Fix an exit fullscreen animation issue by firing the end fullscreen event
to let the page change the video element back to its original position/size
before exiting fullscreen.

Covered by existing tests.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::dispatchEvent):
(WebCore::HTMLMediaElement::exitFullscreen):

5:11 PM Changeset in webkit [259094] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: RTL: ArrowLeft and ArrowRight keys select wrong navigation bar items
https://bugs.webkit.org/show_bug.cgi?id=209617

Reviewed by Devin Rousso.

  • UserInterface/Views/NavigationBar.js:

(WI.NavigationBar.prototype._keyDown):
Reverse direction for RTL mode.

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

Fix various compiler warnings
https://bugs.webkit.org/show_bug.cgi?id=209438

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-26
Reviewed by Darin Adler.

Source/WebCore:

  • dom/Element.cpp: Fix -Wunused-variable warnings.

(WebCore::Element::webAnimations const):
(WebCore::Element::cssAnimations const):
(WebCore::Element::transitions const):
(WebCore::Element::hasCompletedTransitionsForProperty const):
(WebCore::Element::hasRunningTransitionsForProperty const):
(WebCore::Element::hasRunningTransitions const):

  • page/scrolling/ThreadedScrollingTree.cpp: Fix -Wunused-variable warning.

(WebCore::ThreadedScrollingTree::scrollingTreeNodeDidScroll):

  • platform/network/HTTPParsers.h: Fix -Wredundant-move warning.

(WebCore::parseAccessControlAllowList):

Source/WebKit:

  • UIProcess/API/C/WKPage.cpp: Suppress -Wdeprecated-declaration warnings.

(WKPageSetPageLoaderClient):
(WKPageSetPagePolicyClient):

Source/WTF:

Suppress -Wclass-memaccess warning. ConcurrentBuffer is documented to support types that are
bit-copyable but not copy-constructable. This is strange, but who am I to question it?

  • wtf/ConcurrentBuffer.h:
4:27 PM Changeset in webkit [259092] by msaboff@apple.com
  • 14 edits
    1 add
    1 delete in trunk

Refactor YARR Stack Overflow Checks
https://bugs.webkit.org/show_bug.cgi?id=209435
rdar://problem/58988252

Reviewed by Mark Lam.

JSTests:

Added a new test and removed a now obsolete test.

  • stress/regexp-compile-oom.js: Removed because the test is no longer valid.

Previously when therer where different stack check mechanisims we failed different.
This test was based on the different failure modes. With these changes, most of
the contain subtests no longer throw as this test expects.

  • stress/regexp-huge-oom.js: Added.

(shouldBe):
(shouldThrow):

Source/JavaScriptCore:

Refactored stack checks in YARR code including adding a stack check to the YARR JIT'ed code.
The C++ code including the parser, byte code compiler and interpreter now all use StackCheck.
The JIT'ed code needs a stack limit passed via a parameter since the JIT'ed code can be
called from the compiler thread when compiling DFG / FTL code.

Instead of adding a new parameter, consolidated the two pattern context buffer values, buffer
pointer and size, with the new stack limit into a new MatchingContextHolder, an RAII object.
The MatchingContextHolder constructor uses either the VM stack limit or the current thread's
stack limit depending on how it is called.

  • runtime/RegExp.cpp:

(JSC::RegExp::finishCreation):
(JSC::RegExp::byteCodeCompileIfNecessary):
(JSC::RegExp::compile):
(JSC::RegExp::matchConcurrently):
(JSC::RegExp::compileMatchOnly):

  • runtime/RegExp.h:
  • runtime/RegExpInlines.h:

(JSC::RegExp::matchInline):
(JSC::PatternContextBufferHolder::PatternContextBufferHolder): Deleted.
(JSC::PatternContextBufferHolder::~PatternContextBufferHolder): Deleted.
(JSC::PatternContextBufferHolder::buffer): Deleted.
(JSC::PatternContextBufferHolder::size): Deleted.
(): Deleted.

  • yarr/Yarr.h:
  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::Interpreter::matchDisjunction):
(JSC::Yarr::Interpreter::isSafeToRecurse):

  • yarr/YarrJIT.cpp:

(JSC::Yarr::MatchingContextHolder::MatchingContextHolder):
(JSC::Yarr::MatchingContextHolder::~MatchingContextHolder):
(JSC::Yarr::YarrGenerator::initParenContextFreeList):
(JSC::Yarr::YarrGenerator::alignCallFrameSizeInBytes):
(JSC::Yarr::YarrGenerator::compile):
(JSC::Yarr::YarrGenerator::initCallFrame): Deleted.

  • yarr/YarrJIT.h:

(JSC::Yarr::MatchingContextHolder::offsetOfStackLimit):
(JSC::Yarr::MatchingContextHolder::offsetOfPatternContextBuffer):
(JSC::Yarr::MatchingContextHolder::offsetOfPatternContextBufferSize):
(JSC::Yarr::YarrCodeBlock::execute):

  • yarr/YarrPattern.cpp:

(JSC::Yarr::YarrPatternConstructor::YarrPatternConstructor):
(JSC::Yarr::YarrPatternConstructor::isSafeToRecurse):
(JSC::Yarr::YarrPattern::compile):
(JSC::Yarr::YarrPattern::YarrPattern):
(JSC::Yarr::YarrPatternConstructor::isSafeToRecurse const): Deleted.

  • yarr/YarrPattern.h:

LayoutTests:

Updated test for improved stack overflow checking.

  • js/script-tests/stack-overflow-regexp.js:

(shouldThrow.recursiveCall):
(shouldThrow):
(recursiveCall):

  • js/stack-overflow-regexp-expected.txt:
4:10 PM Changeset in webkit [259091] by dbates@webkit.org
  • 3 edits in trunk/Source/WebKit

Rename -_isInteractingWithFocusedElement, add it to the header, and replace calls to hasFocusedElement() with it
https://bugs.webkit.org/show_bug.cgi?id=209623

Reviewed by Simon Fraser.

Rename -_isInteractingWithFocusedElement to -_hasFocusedElement. For now, standardize around
the convention of using -_hasFocusedElement instead of hasFocusedElement(_focusedElementInformation).

I think in the ideal world -_hasFocusedElement would not exist and instead -_elementDidBlur would
reset the state of _focusedElementInformation to what it was when a page is first loaded. I will
look to do this in a subsequent patch because it is risky. Doing so requires a careful audit of all
call sites that use _focusedElementInformation as they may have inadvertently depended on stale state.

While I am here, I added -_hasFocusedElement to WKContentViewInteraction.h so that I can make use
of it in the fix for <rdar://problem/60871807>.

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

(-[WKContentView _didGetTapHighlightForRequest:color:quads:topLeftRadius:topRightRadius:bottomLeftRadius:bottomRightRadius:nodeHasBuiltInClickHandling:]):
(-[WKContentView inputViewForWebView]):
(-[WKContentView _selectionClipRect]):
(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView canPerformActionForWebView:withSender:]):
(-[WKContentView _hasFocusedElement]):
(-[WKContentView changeSelectionWithGestureAt:withGesture:withState:withFlags:]):
(-[WKContentView selectPositionAtPoint:completionHandler:]):
(-[WKContentView selectPositionAtBoundary:inDirection:fromPoint:completionHandler:]):
(-[WKContentView selectTextWithGranularity:atPoint:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):
(-[WKContentView updateSelectionWithExtentPoint:withBoundary:completionHandler:]):
(-[WKContentView setSelectedTextRange:]):
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
(-[WKContentView _updateInputContextAfterBlurringAndRefocusingElement]):
(-[WKContentView _updateSelectionAssistantSuppressionState]):
(-[WKContentView _autofillContext]):
(hasFocusedElement): Deleted.
(-[WKContentView _isInteractingWithFocusedElement]): Deleted.

4:09 PM Changeset in webkit [259090] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION(r259034): access to null UniqueIDBDatabase in UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection()
https://bugs.webkit.org/show_bug.cgi?id=209618
<rdar://problem/60919105>

Reviewed by Geoffrey Garen.

It's possible UniqueIDBDatabase is destroyed before UniqueIDBDatabaseConnection in
UniqueIDBDatabase::connectionClosedFromClient, so it's better not access
UniqueIDBDatabase in ~UniqueIDBDatabaseConnection() and let UniqueIDBDatabaseConnection have a IDBServer member.

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::abortTransactionWithoutCallback):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFireVersionChangeEvent):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::didFinishHandlingVersionChange):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::establishTransaction):

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::database):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::server):

4:06 PM Changeset in webkit [259089] by dbates@webkit.org
  • 6 edits in trunk/Source

Remove hitTestOrder from ElementContext as it is no longer need
https://bugs.webkit.org/show_bug.cgi?id=209561
<rdar://problem/60888305>

Reviewed by Wenson Hsieh.

Revert the temporary workaround made in r257749 as <rdar://problem/59602885>
Source/WebCore:

has been fixed.

  • dom/ElementContext.h:

(WebCore::ElementContext::encode const):
(WebCore::ElementContext::decode):

Source/WebKit:

has been fixed: WebKit no longer needs to explicitly annotate the resulting
elements found in textInputContextsInRect() with their hit test order.
Instead client code has been updated to assume these elements are returned
in hit test order.

  • UIProcess/API/Cocoa/_WKTextInputContext.mm:

(-[_WKTextInputContext _hitTestOrder]): Deleted.

  • UIProcess/API/Cocoa/_WKTextInputContextInternal.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::textInputContextsInRect):
(WebKit::WebPage::contextForElement const):

3:57 PM Changeset in webkit [259088] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Release ] tiled-drawing/scrolling/fixed/four-bars-zoomed.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209624

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:40 PM Changeset in webkit [259087] by Alan Coon
  • 7 edits in branches/safari-609.2.1.2-branch/Source

Cherry-pick r258267, r258062, r258038, r258381, r255997.

3:39 PM Changeset in webkit [259086] by Alan Coon
  • 8 edits in branches/safari-609.2.1.2-branch/Source

Versioning.

3:37 PM Changeset in webkit [259085] by timothy_horton@apple.com
  • 9 edits in trunk/Source

Pinch to zoom gesture has to be repeated twice if the cursor isn't moved between gestures
https://bugs.webkit.org/show_bug.cgi?id=203132
<rdar://problem/27439348>

Reviewed by Simon Fraser.

  • page/EventHandler.h:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::endMagnificationGesture):

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

(WebKit::WebPage::didEndMagnificationGesture):
Plumb the end of a pinch-zoom gesture to EventHandler.

3:22 PM Changeset in webkit [259084] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] http/tests/eventsource/eventsource-reconnect-during-navigate-crash.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209622

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:01 PM Changeset in webkit [259083] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r258949) Safari sometimes crashes when becoming the foreground application
https://bugs.webkit.org/show_bug.cgi?id=209620
<rdar://problem/60930466>

Reviewed by Per Arne Vollan.

Make sure m_activationObserver gets unregistered on all Cocoa platforms, not just on iOS.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::unregisterNotificationObservers):

2:50 PM Changeset in webkit [259082] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk1 ] fast/loader/child-frame-add-after-back-forward.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209621

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:36 PM Changeset in webkit [259081] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

[StressGC] ASSERTION FAILED: m_wrapper under WebCore::HTMLMediaElement::dispatchEvent
https://bugs.webkit.org/show_bug.cgi?id=209616
<rdar://problem/60541294>

Reviewed by Saam Barati.

HTMLMediaElement::hasPendingActivity() should return true if there are pending tasks on
m_playbackTargetIsWirelessQueue since the tasks we enqueue there dispatch events.

No new tests, covered by media/modern-media-controls/placard-support/placard-support-airplay.html.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::hasPendingActivity const):

2:33 PM Changeset in webkit [259080] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

[ Mac wk1] ASSERTION FAILED: m_wrapper under WebCore::XMLHttpRequestUpload::dispatchProgressEvent
https://bugs.webkit.org/show_bug.cgi?id=209560
<rdar://problem/60887773>

Reviewed by Geoffrey Garen.

XMLHttpRequest::hasPendingActivity() was returning false if the XMLHttpRequest object did not
have any relevant event listeners. However, the XMLHttpRequestUpload's wrapper lifetime is tried
to the lifetime of its XMLHttpRequest wrapper. As a result, both the XMLHttpRequest and
XMLHttpRequestUpload wrappers could get garbage collected if the XMLHttpRequest did not have a
relevant listener, even though XMLHttpRequestUpload may have a relevant event listeners. We would
then hit the assertion when trying to fire an event on this XMLHttpRequestUpload object.

To address the issue, we update XMLHttpRequest::hasPendingActivity() to return false if both
XMLHttpRequest AND XMLHttpRequestUpload have no relevant event listeners.

No new tests, covered by imported/w3c/web-platform-tests/xhr/send-response-upload-event-progress.htm

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::hasPendingActivity const):

  • xml/XMLHttpRequestUpload.cpp:

(WebCore::XMLHttpRequestUpload::eventListenersDidChange):

  • xml/XMLHttpRequestUpload.h:
2:25 PM Changeset in webkit [259079] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

Crash in RadioButtonGroups::requiredStateChanged
https://bugs.webkit.org/show_bug.cgi?id=209585

Reviewed by Zalan Bujtas.

Source/WebCore:

Like r254722, radio group could be null in RadioButtonGroups::requiredStateChanged. Added a null check.

Test: fast/forms/update-required-state-on-radio-before-finalizing-tree-insertion-crash.html

  • dom/RadioButtonGroups.cpp:

(WebCore::RadioButtonGroups::requiredStateChanged):

LayoutTests:

Added a regression test.

  • fast/forms/update-required-state-on-radio-before-finalizing-tree-insertion-crash-expected.txt: Added.
  • fast/forms/update-required-state-on-radio-before-finalizing-tree-insertion-crash.html: Added.
2:10 PM Changeset in webkit [259078] by dbates@webkit.org
  • 4 edits in trunk

WebPage::selectPositionAtPoint() does not focus an element in a non-focused frame
https://bugs.webkit.org/show_bug.cgi?id=209559
<rdar://problem/60887055>

Reviewed by Wenson Hsieh.

Source/WebKit:

Call setFocusedFrameBeforeSelectingTextAtLocation() in WebPage::selectPositionAtPoint() to
update the focused frame before performing the selection. This way the target element will
be focused by the selection, if not already focused.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::selectPositionAtPoint):

Tools:

Add a test.

  • TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm:

(TEST):

1:59 PM Changeset in webkit [259077] by Alan Coon
  • 1 copy in tags/Safari-610.1.7.6

Tag Safari-610.1.7.6.

1:57 PM Changeset in webkit [259076] by Fujii Hironori
  • 6 edits in trunk

WebKitTestRunner should enable ResourceLoadStatistics also for non-Cocoa ports
https://bugs.webkit.org/show_bug.cgi?id=209410

Reviewed by Youenn Fablet.

Source/WebKit:

NetworkSession's member variables for ResourceLoadStatistics were
initialized only for Cocoa port. They also should be initialized
for non-Cocoa ports.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession): Added member initializers for ResourceLoadStatistics.

  • NetworkProcess/NetworkSession.h: Have m_resourceLoadStatisticsDirectory only if ENABLE(RESOURCE_LOAD_STATISTICS).
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa): Removed the code to initialize member variables for ResourceLoadStatistics.

Tools:

Cocoa WebKitTestRunner always enables ResourceLoadStatistics.
Other ports should do so.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::platformAdjustContext): Enable ResourceLoadStatistics
by using WKWebsiteDataStoreSetResourceLoadStatisticsEnabled.

1:48 PM Changeset in webkit [259075] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Catalina ] compositing/clipping/border-radius-async-overflow-stacking.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209619

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:45 PM Changeset in webkit [259074] by Kate Cheney
  • 4 edits in trunk

Guard AppBound domain protections with PLATFORM(iOS_FAMILY)
https://bugs.webkit.org/show_bug.cgi?id=209615
<rdar://problem/60931014>

Reviewed by Darin Adler.

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):

Tools:

Tests should only be run on iOS.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
1:43 PM Changeset in webkit [259073] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Fix missing NULL-check in setSyncOnClock
https://bugs.webkit.org/show_bug.cgi?id=209609

Unreviewed, simple fix.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::setSyncOnClock): Some systems are configured so that
audio sinks are not available. Make sure not to crash when asking
to sync with a NULL sink.

1:33 PM Changeset in webkit [259072] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

[iOS] Deny mach lookup to 'com.apple.webinspector' in the WebContent process.
https://bugs.webkit.org/show_bug.cgi?id=207170
<rdar://problem/59134038>

Reviewed by Per Arne Vollan.

We now dynamically add access to the 'com.apple.webinspector' service, so we should remove the blanket
allow rule from the sandbox.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
1:29 PM Changeset in webkit [259071] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

REGRESSION (r258989): ASSERTION FAILED: !isMissingPostLayoutData in WebKit::EditorState::PostLayoutData
https://bugs.webkit.org/show_bug.cgi?id=209570
<rdar://problem/60895050>

Reviewed by Darin Adler.

Send an editor state update before responding to a request for position information
to ensure that the UI process has up-to-date selection state. Otherwise, calling code
that uses this information to determine whether to query for the selection text will
cause an assertion failure.

This fixes the test failure TestWebKitAPI.ActionSheetTests.DataDetectorsLinkIsNotPresentedAsALink
caused by r258989. Following r258989 WebKit now accurately reports whether editor state
has or does not have post-layout details. Prior to this the default EditorState was marked
as having post-layout data even if it did not actually have such data.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):
(WebKit::WebPage::requestPositionInformation):

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

[ iOS ] http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=206763

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

  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame.html:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/resources/frame-with-data-url-iframe.html:
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame-expected.txt:
1:27 PM Changeset in webkit [259069] by keith_miller@apple.com
  • 8 edits
    1 add in trunk

TypedArrays should more gracefully handle OOM during slowDownAndWasteMemory
https://bugs.webkit.org/show_bug.cgi?id=209611

Reviewed by Tadeu Zagallo.

JSTests:

  • stress/typed-array-oom-in-buffer-accessor.js: Added.

(try.foo):

Source/JavaScriptCore:

Right now if we cannot allocate an ArrayBuffer for a TypedArray we
crash. However, since we use the primitive gigacage for
ArrayBuffer allocations we can likely still allocate an OOM error
object. In order to do this some changes were needed in
slowDownAndWasteMemory. Namely, we should not allocate the
butterfly until we know we have an ArrayBuffer. I also check that
all the transitive callers of slowDownAndWasteMemory can handle
failure.

Lastly, this patch makes it so failure to allocate an ArrayBuffer
for a TypeArray during DFG watchpoint addition causes the code
block to be thrown away, rather than crash the process.

  • API/JSTypedArray.cpp:

(JSObjectGetTypedArrayBytesPtr):
(JSObjectGetTypedArrayBuffer):

  • bytecode/Watchpoint.h:
  • dfg/DFGDesiredWatchpoints.cpp:

(JSC::DFG::ArrayBufferViewWatchpointAdaptor::add):

  • runtime/GenericTypedArrayViewInlines.h:

(JSC::GenericTypedArrayView<Adaptor>::tryCreate):

  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::unsharedBuffer):
(JSC::JSArrayBufferView::unsharedJSBuffer):
(JSC::JSArrayBufferView::possiblySharedJSBuffer):
(JSC::JSArrayBufferView::slowDownAndWasteMemory):
(JSC::JSArrayBufferView::possiblySharedImpl):

  • runtime/JSArrayBufferViewInlines.h:

(JSC::JSArrayBufferView::byteOffsetImpl):

1:25 PM Changeset in webkit [259068] by Chris Dumez
  • 4 edits in trunk

REGRESSION: ASSERTION FAILED: m_wrapper on storage/indexeddb/modern/abort-requests tests
https://bugs.webkit.org/show_bug.cgi?id=209499
<rdar://problem/60842165>

Reviewed by Alex Christensen.

Source/WebCore:

IDBTransaction::hasPendingActivity() was failing to consult ActiveDOMObject::hasPendingActivity()
so the JS wrapper would get garbage collected even though the ActiveDOMObject base class was
aware of some pending activity.

No new tests, unskipped existing tests.

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::hasPendingActivity const):

LayoutTests:

Unskip tests that should no longer be flaky.

  • platform/mac-wk1/TestExpectations:
1:22 PM Changeset in webkit [259067] by Ryan Haddad
  • 2 edits in branches/safari-609-branch/LayoutTests

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:12 PM Changeset in webkit [259066] by Russell Epstein
  • 1 copy in tags/Safari-609.2.1.2.2

Tag Safari-609.2.1.2.2.

12:58 PM Changeset in webkit [259065] by rniwa@webkit.org
  • 4 edits
    2 adds in trunk

Sequential focus navigation can't get out of a descendent of a slot element in a document tree
https://bugs.webkit.org/show_bug.cgi?id=199633

Reviewed by Darin Adler.

Source/WebCore:

The bug was caused by slot element outside a shadow tree not being treated as a focus navigation
scope owner as specified in the HTML5 specification:
https://html.spec.whatwg.org/multipage/interaction.html#focus-navigation-scope-owner

Fixed the bug by treating it as such unless custom focusing behavior is used.

Test: fast/shadow-dom/focus-across-slot-outside-shadow-tree.html

  • page/FocusController.cpp:

(WebCore::isFocusScopeOwner):

LayoutTests:

Skip the newly added test in iOS since eventSender isn't supported on iOS.

  • platform/ios/TestExpectations:
  • fast/shadow-dom/focus-across-slot-outside-shadow-tree-expected.txt: Added.
  • fast/shadow-dom/focus-across-slot-outside-shadow-tree.html: Added.
12:26 PM Changeset in webkit [259064] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] status-bubble for tester queues should point to tester queue while waiting in queue (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=209598

Unreviewed follow-up fix.

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

(StatusBubble._build_bubble): Display the tester name in tester's status-bubble hover-over message.

12:05 PM Changeset in webkit [259063] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] status-bubble for tester queues should point to tester queue while waiting in queue
https://bugs.webkit.org/show_bug.cgi?id=209598

Reviewed by Jonathan Bedard.

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

(StatusBubble._build_bubble):

12:00 PM Changeset in webkit [259062] by Kate Cheney
  • 2 edits in trunk/Source/WebCore

ScopeRuleSets::initializeUserStyle() should not add console logging if there are no injected user style sheets
https://bugs.webkit.org/show_bug.cgi?id=209548
<rdar://problem/60851745>

Reviewed by Darin Adler.

Logging when there are no injected user style sheets is unnecessary and confusing.

  • style/StyleScopeRuleSets.cpp:

(WebCore::Style::ScopeRuleSets::initializeUserStyle):

11:58 AM Changeset in webkit [259061] by david_quesada@apple.com
  • 11 edits in trunk/Source/WebKit

Add SPI to specify whether file upload panels are uploading to an enterprise-managed destination
https://bugs.webkit.org/show_bug.cgi?id=209607
rdar://problem/60888386

Reviewed by Darin Adler.

When presenting the file upload panel, set the UIDocumentPickerViewController.isContentManaged
property to a value ultimately provided by the UI delegate. This can be used to prevent the upload
of personal data to enterprise websites on managed devices configured to prevent such a transfer.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/PageClient.h:

(WebKit::PageClient::handleRunOpenPanel):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runOpenPanel):

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

(WebKit::PageClientImpl::handleRunOpenPanel):

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

(-[WKContentView _showRunOpenPanel:frameInfo:resultListener:]):
(-[WKContentView fileUploadPanelDestinationIsManaged:]):
(-[WKContentView _showRunOpenPanel:resultListener:]): Deleted.

  • UIProcess/ios/forms/WKFileUploadPanel.h:
  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel showFilePickerMenu]):

11:44 AM Changeset in webkit [259060] by Chris Fleizach
  • 2 edits in trunk/Tools

AX: WKTR: Don't update isolated tree mode behavior if not required
https://bugs.webkit.org/show_bug.cgi?id=209555
<rdar://problem/60885094>

Reviewed by Darin Adler.

If the isolated tree mode has not changed, then we should not poke at the mechanisms for turning it on/off.
This might have the side effect of turning on accessibility unexpectedly.

  • WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:

(WTR::AccessibilityController::setAccessibilityIsolatedTreeMode):

11:41 AM Changeset in webkit [259059] by Alexey Shvayka
  • 9 edits
    45 adds
    1 delete in trunk/LayoutTests

Sync wpt/domxpath and re-sync wpt/css/cssom-view from upstream
https://bugs.webkit.org/show_bug.cgi?id=209574

Reviewed by Antti Koivisto.

web-platform-tests revision: 1137f4bff2b7

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/cssom-view/*: Updated.
  • web-platform-tests/domxpath/*: Added.
11:40 AM Changeset in webkit [259058] by Alan Coon
  • 7 edits in branches/safari-609.2.1.2-branch/Source

Revert cherry-picks of r258267, r258062, r258038, r258381, r255997.

11:40 AM Changeset in webkit [259057] by Alan Coon
  • 2 edits in branches/safari-609.2.1.2-branch/Source/WebCore

Revert r258246. rdar://problem/60880507

11:00 AM Changeset in webkit [259056] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

Force Touch preview on file:/// URL works while clicking on the URL is blocked
https://bugs.webkit.org/show_bug.cgi?id=209589
<rdar://57687893>

Reviewed by Antoine Quint.

The immediate action for links should never trigger on file: URLs.

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController _defaultAnimationController]):

10:58 AM Changeset in webkit [259055] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[win] animations/many-pseudo-animations.html is failing
https://bugs.webkit.org/show_bug.cgi?id=209601

Unreviewed test gardening.

  • platform/win/TestExpectations: Mark test as failing.
10:51 AM Changeset in webkit [259054] by ap@apple.com
  • 369 edits
    20 copies
    8 deletes in trunk

REGRESSION(r259042): It creates some test failures (Requested by youenn on #webkit).
Roll back the patch.

10:47 AM Changeset in webkit [259053] by aboya@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK debug multimedia gardening
https://bugs.webkit.org/show_bug.cgi?id=209603

I need a clean baseline to check for regressions.

  • platform/gtk/TestExpectations:
10:47 AM Changeset in webkit [259052] by pvollan@apple.com
  • 5 edits in trunk

[iOS] Deny mach lookup access to frontboard services in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=209604

Reviewed by Darin Adler.

Source/WebKit:

Deny mach lookup access to "com.apple.frontboard.systemappservices" in the WebContent process on iOS.

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

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

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
10:44 AM Changeset in webkit [259051] by Antti Koivisto
  • 5 edits
    2 adds in trunk

REGRESSION (r254669): Expand media button doesn't work on first try on photos on reddit.com
https://bugs.webkit.org/show_bug.cgi?id=209590
<rdar://problem/60461809>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio-expected.txt:

Failure here shifts to a different subtest. This one uses fractional pixels and LayoutUnit accuracy is not sufficient to compute the exact ratio.

Source/WebCore:

Image intrinsic size computed from width/height attributes is ignored during preferred width computation
(used for float sizing in this case). This creates a mismatch between layout and preferred width computation,
causing the final image size to be miscomputed.

Test: fast/images/preferred-width-computation-with-attribute-intrinsic-size.html

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::computePreferredLogicalWidths const):

Compute attribute based intrinsic size already during preferred width computation if needed.

LayoutTests:

  • fast/images/preferred-width-computation-with-attribute-intrinsic-size-expected.html: Added.
  • fast/images/preferred-width-computation-with-attribute-intrinsic-size.html: Added.
10:42 AM Changeset in webkit [259050] by Nikos Mouchtaris
  • 2 edits in trunk/Source/WebCore

Remove manual redacting of billing contact after wallet fix for rdar://problem/59075234
https://bugs.webkit.org/show_bug.cgi?id=209557
<rdar://problem/60883506>

Reviewed by Andy Estes.

Removed manual redaction of billing address after wallet fixed
their redaction code.

No new tests. Current tests cover this functionality.

  • Modules/applepay/cocoa/PaymentMethodCocoa.mm:

(WebCore::convert):

10:04 AM Changeset in webkit [259049] by pvollan@apple.com
  • 16 edits
    1 add in trunk/Source

[iOS] Adopt ScreenProperties class.
https://bugs.webkit.org/show_bug.cgi?id=191767

Reviewed by Brent Fulgham.

Source/WebCore:

On macOS, the ScreenProperties class is used to collect screen properties in the UI process
and forward these to the Web process. We should also do this on iOS, in order to be able
to block frontboard services.

No new tests. Covered by existing tests.

  • Sources.txt:
  • platform/PlatformScreen.h:
  • platform/ScreenProperties.h:

(WebCore::ScreenData::encode const):
(WebCore::ScreenData::decode):

  • platform/ios/PlatformScreenIOS.mm:

(WebCore::screenIsMonochrome):
(WebCore::screenHasInvertedColors):
(WebCore::screenSupportsExtendedColor):
(WebCore::collectScreenProperties):

  • platform/mac/PlatformScreenMac.mm:

(WebCore::primaryOpenGLDisplayMask):
(WebCore::displayMaskForDisplay):
(WebCore::primaryGPUID):
(WebCore::gpuIDForDisplay):
(WebCore::screenIsMonochrome):
(WebCore::screenHasInvertedColors):
(WebCore::screenDepth):
(WebCore::screenDepthPerComponent):
(WebCore::screenRectForDisplay):
(WebCore::screenRect):
(WebCore::screenAvailableRect):
(WebCore::screenColorSpace):
(WebCore::screenSupportsExtendedColor):
(WebCore::screenProperties): Deleted.
(WebCore::primaryScreenDisplayID): Deleted.
(WebCore::setScreenProperties): Deleted.
(WebCore::screenData): Deleted.
(WebCore::getScreenProperties): Deleted.

Source/WebKit:

Make relevent macOS platform code cross platform.

  • Shared/WebProcessCreationParameters.cpp:

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

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

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setScreenProperties):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
9:58 AM WebKitGTK/2.28.x edited by Michael Catanzaro
(diff)
9:51 AM Changeset in webkit [259048] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, make GC a bit less aggressive on test to decrease runtime.

  • http/tests/inspector/network/har/har-page-aggressive-gc.html:
9:26 AM Changeset in webkit [259047] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

MESSAGE_CHECK base macros should use UNLIKELY()
<https://webkit.org/b/209581>
<rdar://problem/60901307>

Reviewed by Youenn Fablet.

  • Platform/IPC/Connection.h:

(MESSAGE_CHECK_COMPLETION_BASE):
(MESSAGE_CHECK_WITH_RETURN_VALUE_BASE):

  • Add UNLIKELY() macro since these code paths should not be taken under normal conditions.
  • Add curly braces to multi-line do-while loops per WebKit style guidelines, and is required after moving the ASSERT().
  • Move the ASSERT() outside the if statement since that's more idomatic.
9:12 AM Changeset in webkit [259046] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[Cocoa] Fix incorrect rebase
https://bugs.webkit.org/show_bug.cgi?id=209600

Reviewed by Brent Fulgham.

A rebase went wrong in <https://bugs.webkit.org/show_bug.cgi?id=203214> and placed the method call to
enableRemoteInspectorIfNeeded() in the wrong method. It should be called in WebProcessProxy::didFinishLaunching.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::mayBecomeUnresponsive):
(WebKit::WebProcessProxy::didFinishLaunching):

8:24 AM Changeset in webkit [259045] by Philippe Normand
  • 2 edits in trunk/Tools

[Flatpak SDK] Pass all the arguments of build-webkit to webkit-flatpak
https://bugs.webkit.org/show_bug.cgi?id=209558

Reviewed by Žan Doberšek.

When using flatpak some of the arguments we pass to build-webkit
are not meant to be used by that script but by webkit-flatpak. However we are
not passing all of them to webkit-flatpak but just the configuration ones
(port, release/debug...). This means that all the arguments that configure the
behaviour of webkit-flatpak are lost.

  • Scripts/webkitdirs.pm:

(runInFlatpak): Filter-out Flatpak SDK-specific arguments to a
separate array, passed to webkit-flatpak.

8:22 AM Changeset in webkit [259044] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK] Crash in WebKit::LayerTreeHost::LayerTreeHost with bubblewrap sandbox enabled
https://bugs.webkit.org/show_bug.cgi?id=209106

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-26
Reviewed by Carlos Garcia Campos.

Don't bind the WaylandCompositor socket unless we're running under Wayland and it's actually
started successfully.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindWayland):

7:31 AM Changeset in webkit [259043] by commit-queue@webkit.org
  • 7 edits in trunk

Unreviewed, reverting r259035.
https://bugs.webkit.org/show_bug.cgi?id=209597

broke windows layout-tests (Requested by aakashjain on
#webkit).

Reverted changeset:

"[Win] lld-link: error: /manifestdependency: is not allowed in
.drectve"
https://bugs.webkit.org/show_bug.cgi?id=204831
https://trac.webkit.org/changeset/259035

4:43 AM Changeset in webkit [259042] by youenn@apple.com
  • 367 edits
    8 adds
    20 deletes in trunk

Bump boringssl version to M82
https://bugs.webkit.org/show_bug.cgi?id=209538

Reviewed by Eric Carlson.

  • CMakeLists.txt:
  • Source/third_party/boringssl: Updated.
  • WebKit/0001-Tweaking-boringssl-include-of-internal.h.patch: Removed.
  • libwebrtc.xcodeproj/project.pbxproj:
3:39 AM Changeset in webkit [259041] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

VideoFullscreenManagerProxy::setupFullscreenWithID should message check videoLayerID
<https://webkit.org/b/209578>
<rdar://problem/60703503>

Reviewed by Eric Carlson.

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(MESSAGE_CHECK): Define (and undef) new macro for assertions.
(WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):
Change ASSERT() to MESSAGE_CHECK().

3:10 AM Changeset in webkit [259040] by Diego Pino Garcia
  • 1 edit
    20 adds in trunk/LayoutTests

[GTK] Gardening, add missing expectation files
https://bugs.webkit.org/show_bug.cgi?id=209588

Unreviewed gardening.

  • platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-br-mixed-expected.txt: Added.
  • platform/gtk/editing/selection/vertical-rl-rtl-extend-line-backward-p-mixed-expected.txt: Added.
  • platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-br-mixed-expected.txt: Added.
  • platform/gtk/editing/selection/vertical-rl-rtl-extend-line-forward-p-mixed-expected.txt: Added.
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed-expected.txt: Added.
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed-expected.txt: Added.
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed-expected.txt: Added.
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed-expected.txt: Added.
  • platform/gtk/fast/html/details-marker-style-mixed-expected.txt: Added.
  • platform/gtk/fast/html/details-writing-mode-mixed-expected.txt: Added.
  • platform/gtk/fast/multicol/tall-image-behavior-lr-mixed-expected.txt: Added.
  • platform/gtk/fast/text/vertical-rl-rtl-linebreak-mixed-expected.txt: Added.
  • platform/gtk/fast/writing-mode/background-vertical-lr-mixed-expected.txt: Added.
  • platform/gtk/fast/writing-mode/background-vertical-rl-mixed-expected.txt: Added.
  • platform/gtk/fast/writing-mode/basic-vertical-line-mixed-expected.txt: Added.
  • platform/gtk/fast/writing-mode/border-styles-vertical-lr-mixed-expected.txt: Added.
  • platform/gtk/fast/writing-mode/border-styles-vertical-rl-mixed-expected.txt: Added.
  • platform/gtk/fast/writing-mode/vertical-baseline-alignment-mixed-expected.txt: Added.
  • platform/gtk/fast/writing-mode/vertical-lr-replaced-selection-mixed-expected.txt: Added.
  • platform/gtk/fast/writing-mode/vertical-rl-replaced-selection-mixed-expected.txt: Added.
3:06 AM Changeset in webkit [259039] by Philippe Normand
  • 2 edits in trunk/Tools

[Flatpak SDK] update-webkitgtk-libs fails
https://bugs.webkit.org/show_bug.cgi?id=209546

Reviewed by Žan Doberšek.

Simplify the code a bit, add a --assumeyes argument to the
flatpak update command to make it non-interactive and improve
error handling/reporting a bit as well.

  • flatpak/flatpakutils.py:

(FlatpakObject.flatpak):
(WebkitFlatpak.main):
(WebkitFlatpak.run):
(WebkitFlatpak.install_all):
(WebkitFlatpak.update_all): Deleted.

3:05 AM Changeset in webkit [259038] by Philippe Normand
  • 2 edits in trunk/Tools

[Flatpak SDK] Crash post-mortem debugging is broken
https://bugs.webkit.org/show_bug.cgi?id=209537

Reviewed by Žan Doberšek.

webkit-flatpak --gdb now properly launches gdb to inspect the last
crash reported to coredumpctl. The -m argument can be used to
select another crash dump.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.clean_args):
(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak.run_gdb):

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

Syscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s) in IPC::Connection::sendOutgoingMessage
https://bugs.webkit.org/show_bug.cgi?id=146729

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-26
Reviewed by Carlos Garcia Campos.

The entire MessageInfo is passed to write(), so we have to zero the padding bytes to avoid
writing uninitialized memory.

  • Platform/IPC/unix/UnixMessage.h:

(IPC::MessageInfo::MessageInfo):

12:38 AM Changeset in webkit [259036] by commit-queue@webkit.org
  • 10 edits in trunk/Source/WebCore

Take into account referrer-policy in append Origin header algorithm
https://bugs.webkit.org/show_bug.cgi?id=209066

Patch by Rob Buis <rbuis@igalia.com> on 2020-03-26
Reviewed by Youenn Fablet.

Start taking into account referrer-policy in more places when we
append the origin header [1]. To prevent computing SecurityOrigin
needlessly add a helper function doesRequestNeedHTTPOriginHeader.

[1] https://fetch.spec.whatwg.org/#append-a-request-origin-header

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::populateFrameLoadRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::addExtraFieldsToRequest):
(WebCore::FrameLoader::loadResourceSynchronously):
(WebCore::FrameLoader::loadDifferentDocumentItem):
(WebCore::FrameLoader::addHTTPOriginIfNeeded): Deleted.

  • loader/FrameLoader.h:
  • loader/NavigationScheduler.cpp:
  • loader/PingLoader.cpp:

(WebCore::PingLoader::sendPing):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::updateReferrerOriginAndUserAgentHeaders):

  • platform/network/ResourceRequestBase.cpp:

(WebCore::doesRequestNeedHTTPOriginHeader):

  • platform/network/ResourceRequestBase.h:

Mar 25, 2020:

11:43 PM Changeset in webkit [259035] by Fujii Hironori
  • 7 edits in trunk

[Win] lld-link: error: /manifestdependency: is not allowed in .drectve
https://bugs.webkit.org/show_bug.cgi?id=204831

Reviewed by Ross Kirsling.

.:

clang-cl doesn't support #pragma comment(linker, "/manifestdependency ..").
Use an linker option instead.

  • Source/cmake/WebKitMacros.cmake (WEBKIT_EXECUTABLE): Added -manifestdependency linkder option if WIN32.

Source/JavaScriptCore:

  • shell/DLLLauncherMain.cpp: Removed /manifestdependency for Microsoft.VC80.CRT which seems leftover of Bug 116562 (r178530).

Tools:

  • TestWebKitAPI/win/main.cpp:
  • win/DLLLauncher/DLLLauncherMain.cpp:
11:26 PM Changeset in webkit [259034] by sihui_liu@apple.com
  • 5 edits in trunk/Source/WebCore

IndexedDB: destroy UniqueIDBDatabase when it's not used
https://bugs.webkit.org/show_bug.cgi?id=209532

Reviewed by Geoffrey Garen.

Reviewed by Geoffrey Garen.

When all connections of a UniqueIDBDatabase object are closed and there are no pending reuqests, the
object may not be used any more. We should delete it for better memory use.

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::removeUniqueIDBDatabase):
(WebCore::IDBServer::IDBServer::closeAndTakeUniqueIDBDatabase): Deleted.

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::handleDelete):
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabase::tryCloseAndRemoveFromServer):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
9:44 PM Changeset in webkit [259033] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening for Win10.

  • platform/win/TestExpectations: Skip two webanimations tests that are consistently timing out.
9:29 PM Changeset in webkit [259032] by Ross Kirsling
  • 8 edits
    3 adds
    2 deletes in trunk/JSTests

Unreviewed, reimport test262 once more to make bot green.

  • test262/expectations.yaml:
  • test262/harness/assert.js:
  • test262/harness/propertyHelper.js:
  • test262/latest-changes-summary.txt:
  • test262/test/built-ins/JSON/stringify/replacer-function-stack-overflow.js: Removed.
  • test262/test/built-ins/JSON/stringify/value-tojson-stack-overflow.js: Removed.
  • test262/test/built-ins/NativeErrors/AggregateError/newtarget-is-undefined.js: Added.
  • test262/test/built-ins/RegExp/prototype/Symbol.replace/poisoned-stdlib.js:
  • test262/test/harness/assert-samevalue-zeros.js:
  • test262/test/language/expressions/class/elements/private-field-after-optional-chain.js: Added.
  • test262/test/language/statements/class/elements/private-field-after-optional-chain.js: Added.
  • test262/test262-Revision.txt:
9:28 PM Changeset in webkit [259031] by commit-queue@webkit.org
  • 6 edits in trunk

[ macOS ] svg/custom/textPath-change-id-pattern.svg is flakey failing
https://bugs.webkit.org/show_bug.cgi?id=208532

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

Source/WebCore:

In this layout test, the id of a <path> element changes. This <path> is
referenced by a <textPath> element which is a child of a <pattern> element.
The <pattern> element is used to fill a <rect> element.

This patch ensures all clients (<rect>) of the resource ancestor (<pattern>)
of any sub-resource (<textPath>) is marked for repaint when the id of a
sub-sub-resource (<path>) changes.

  • rendering/svg/RenderSVGResourceContainer.cpp:

(WebCore::RenderSVGResourceContainer::markAllClientsForRepaint):

  • rendering/svg/RenderSVGResourceContainer.h:
  • svg/SVGElement.cpp:

(WebCore::SVGElement::buildPendingResourcesIfNeeded):
(WebCore::SVGElement::invalidateInstances):
Unrelated change. This is a leftover from r179807 which was converting a
"do { } while();" statement to "while() { }" statement.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
8:26 PM Changeset in webkit [259030] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Unable to build WebKit with iOS 13.4 SDK
https://bugs.webkit.org/show_bug.cgi?id=209317

  • Platform/spi/ios/UIKitSPI.h:

Address post-landing review comment; use SDK conditionals, not deployment
target conditionals, since SPI headers are mimicing SDK content.

7:24 PM Changeset in webkit [259029] by Alexey Shvayka
  • 10 edits in trunk

RegExp.prototype[@@replace] relies on globals and doesn't perform ToLength
https://bugs.webkit.org/show_bug.cgi?id=173867

Reviewed by Ross Kirsling.

JSTests:

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

Source/JavaScriptCore:

This change:

a) Adds "lastIndex" ToLength coercion [1], which is observable, unlike ToLength coercion

of RegExpExec result [2] that we omit, just like the one in @@split [3].

b) Removes lastPosition checks/updates, as there are none in the spec, and it was

equivalent to checking nextSourcePosition.

c) Removes reliance of @@replace on globals and also replaces @stringSubstrInternal

built-in with @stringSubstringInternal, as the former is Annex B and accepts size
as 2nd paramter, which is not very handy because ECMA-262 usually says "substring
of S consisting of the code units at indices X (inclusive) through Y (exclusive)".

[1]: https://tc39.es/ecma262/#sec-regexp.prototype-@@replace (step 11.c.iii.2.a)
[2]: https://tc39.es/ecma262/#sec-regexp.prototype-@@replace (step 14.a)
[3]: https://tc39.es/ecma262/#sec-regexp.prototype-@@split (step 19.d.iv.6)

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

(getSubstitution):
(Symbol.replace):
(Symbol.split):

  • builtins/StringPrototype.js:

(globalPrivate.repeatCharactersSlowPath):

  • bytecode/LinkTimeConstant.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/StringPrototype.cpp:

(JSC::stringIndexOfImpl):
(JSC::stringProtoFuncIndexOf):
(JSC::builtinStringIndexOfInternal):
(JSC::stringProtoFuncSubstr):
(JSC::stringSubstringImpl):
(JSC::stringProtoFuncSubstring):
(JSC::builtinStringSubstringInternal):
(JSC::stringProtoFuncSubstrImpl): Deleted.
(JSC::builtinStringSubstrInternal): Deleted.

  • runtime/StringPrototype.h:
7:10 PM Changeset in webkit [259028] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKit

Mini browser immediately hit an assertion in debug build
https://bugs.webkit.org/show_bug.cgi?id=209575

Reviewed by Simon Fraser.

Use 1 instead of 0 as the desination ID to avoid hitting assertions.

  • WebProcess/GPU/media/RemoteAudioSession.cpp:

(WebKit::RemoteAudioSession::RemoteAudioSession):
(WebKit::RemoteAudioSession::~RemoteAudioSession):

6:51 PM Changeset in webkit [259027] by Jack Lee
  • 3 edits
    2 adds in trunk

Nullptr crash in WebCore::Node::isDescendantOf when inserting list
https://bugs.webkit.org/show_bug.cgi?id=209529
<rdar://problem/60693542>

Reviewed by Darin Adler.

Source/WebCore:

The visible positions may be null if the DOM tree is altered before an edit command is applied.
Add null check for visible positions at the beginning of InsertListCommand::doApply.

Test: editing/inserting/insert-list-during-node-removal-crash.html

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::doApply):

LayoutTests:

Added a regression test for the crash.

  • editing/inserting/insert-list-during-node-removal-crash-expected.txt: Added.
  • editing/inserting/insert-list-during-node-removal-crash.html: Added.
6:24 PM Changeset in webkit [259026] by Alexey Shvayka
  • 16 edits in trunk

Invalid numeric and named references should be early syntax errors
https://bugs.webkit.org/show_bug.cgi?id=178175

Reviewed by Ross Kirsling.

JSTests:

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

Source/JavaScriptCore:

This patch:

  1. Fixes named reference parsing in parseEscape(), making /\k/u throw SyntaxError per spec [1].
  1. Reworks containsIllegalNamedForwardReferences(), making dangling (e.g. /\k<a>(?<b>.)/) and incomplete (e.g. /\k<(?<a>.)/) named references throw SyntaxError if the non-Unicode pattern contains a named group [2].
  1. Moves reparsing logic from YarrPattern to YarrParser, ensuring syntax errors due to illegal references (named & numeric) are thrown at parse time; drops isValidNamedForwardReference() from Delegate, refactors saveUnmatchedNamedForwardReferences(), and overall improves cohesion of illegal references logic.

[1]: https://tc39.es/ecma262/#prod-IdentityEscape
[2]: https://tc39.es/ecma262/#sec-regexpinitialize (step 7.b)

  • yarr/YarrErrorCode.cpp:

(JSC::Yarr::errorMessage):
(JSC::Yarr::errorToThrow):

  • yarr/YarrErrorCode.h:
  • yarr/YarrParser.h:

(JSC::Yarr::Parser::CharacterClassParserDelegate::atomNamedBackReference):
(JSC::Yarr::Parser::Parser):
(JSC::Yarr::Parser::parseEscape):
(JSC::Yarr::Parser::parseParenthesesBegin):
(JSC::Yarr::Parser::parse):
(JSC::Yarr::Parser::handleIllegalReferences):
(JSC::Yarr::Parser::containsIllegalNamedForwardReference):
(JSC::Yarr::Parser::resetForReparsing):
(JSC::Yarr::parse):
(JSC::Yarr::Parser::CharacterClassParserDelegate::isValidNamedForwardReference): Deleted.

  • yarr/YarrPattern.cpp:

(JSC::Yarr::YarrPatternConstructor::atomBackReference):
(JSC::Yarr::YarrPatternConstructor::atomNamedForwardReference):
(JSC::Yarr::YarrPattern::compile):
(JSC::Yarr::YarrPatternConstructor::saveUnmatchedNamedForwardReferences): Deleted.
(JSC::Yarr::YarrPatternConstructor::isValidNamedForwardReference): Deleted.

  • yarr/YarrPattern.h:

(JSC::Yarr::YarrPattern::resetForReparsing):
(JSC::Yarr::YarrPattern::containsIllegalBackReference): Deleted.
(JSC::Yarr::YarrPattern::containsIllegalNamedForwardReferences): Deleted.

  • yarr/YarrSyntaxChecker.cpp:

(JSC::Yarr::SyntaxChecker::atomNamedBackReference):
(JSC::Yarr::SyntaxChecker::resetForReparsing):
(JSC::Yarr::SyntaxChecker::isValidNamedForwardReference): Deleted.

Source/WebCore:

Accounts for changes of YarrParser's Delegate interface, no behavioral changes.
resetForReparsing() is never called because we disable numeric backrefences
and named forward references (see arguments of Yarr::parse() call).

Test: TestWebKitAPI.ContentExtensionTest.ParsingFailures

  • contentextensions/URLFilterParser.cpp:

(WebCore::ContentExtensions::PatternParser::resetForReparsing):
(WebCore::ContentExtensions::URLFilterParser::addPattern):
(WebCore::ContentExtensions::PatternParser::isValidNamedForwardReference): Deleted.

Tools:

Removes FIXME as YarrParser is correct not to throw errors as it is
parsing in non-Unicode mode. Also adds a few named groups tests.

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

LayoutTests:

  • js/regexp-named-capture-groups-expected.txt:
  • js/script-tests/regexp-named-capture-groups.js:
5:32 PM Changeset in webkit [259025] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Unable to build WebKit with iOS 13.4 SDK
https://bugs.webkit.org/show_bug.cgi?id=209317

Reviewed by Megan Gardner.

  • Platform/spi/ios/UIKitSPI.h:

Stop defining some UIKit SPI that is now API (hurray!).

5:28 PM Changeset in webkit [259024] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

CanvasRenderingContext2D.putImageData() should not process neutered ImageData
https://bugs.webkit.org/show_bug.cgi?id=208303

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-03-25
Reviewed by Said Abou-Hallawa.

Source/WebCore:

Test: fast/canvas/canvas-putImageData-neutered-ImageData.html

The crash happens when putImageData is called on a neutered ImageData object.
Added a check to exit from CanvasRenderingContext2D.putImageData() function when ImageData object is neutered.

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::putImageData):

LayoutTests:

Added slightly modified version of testcase from bugzilla.
This testcase checks that a neutered ImageData object is not considered to be put onto the canvas.

  • fast/canvas/canvas-putImageData-neutered-ImageData-expected.txt: Added.
  • fast/canvas/canvas-putImageData-neutered-ImageData.html: Added.
4:52 PM Changeset in webkit [259023] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Fix sandbox violations related to media playback
https://bugs.webkit.org/show_bug.cgi?id=209568
<rdar://problem/60262125>

Reviewed by Brent Fulgham.

Fix observed sandbox violations during media playback.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::mediaRelatedMachServices):

4:47 PM Changeset in webkit [259022] by Russell Epstein
  • 1 edit in branches/safari-609-branch/Source/WebKit/Shared/WebPreferencesDefaultValues.cpp

Unreviewed build fix, rdar://problem/60756680

4:41 PM Changeset in webkit [259021] by Chris Dumez
  • 32 edits in trunk/Source

Use JSC::EnsureStillAliveScope RAII object in the generated bindings code
https://bugs.webkit.org/show_bug.cgi?id=209552

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Add method to EnsureStillAliveScope to retrieve its internal JSValue.

  • runtime/JSCJSValue.h:

(JSC::EnsureStillAliveScope::value const):

Source/WebCore:

Use JSC::EnsureStillAliveScope RAII object in the generated bindings code
instead of explicit ensureStillAlive() calls. This makes the bindings
generator code simpler and results in nicer generated code too.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
(GenerateWriteBarriersForArguments):
(GenerateImplementationFunctionCall):
(GenerateEnsureStillAliveCallsForArguments): Deleted.

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

(WebCore::jsMapLikePrototypeFunctionGetBody):
(WebCore::jsMapLikePrototypeFunctionHasBody):
(WebCore::jsMapLikePrototypeFunctionForEachBody):
(WebCore::jsMapLikePrototypeFunctionSetBody):
(WebCore::jsMapLikePrototypeFunctionDeleteBody):

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

(WebCore::jsReadOnlyMapLikePrototypeFunctionGetBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionHasBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionForEachBody):

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

(WebCore::jsReadOnlySetLikePrototypeFunctionHasBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionForEachBody):

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

(WebCore::jsSetLikePrototypeFunctionHasBody):
(WebCore::jsSetLikePrototypeFunctionForEachBody):
(WebCore::jsSetLikePrototypeFunctionAddBody):
(WebCore::jsSetLikePrototypeFunctionDeleteBody):

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

(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunctionBody):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessageBody):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod1Body):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod2Body):

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

(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithArgumentsBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithOptionalVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithDefaultVariantArgumentBody):

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

(WebCore::jsTestDOMJITPrototypeFunctionGetAttributeBody):
(WebCore::jsTestDOMJITPrototypeFunctionItemBody):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementByIdBody):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementsByNameBody):

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

(WebCore::jsTestEnabledBySettingPrototypeFunctionEnabledBySettingOperationBody):

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

(WebCore::JSTestEventConstructorConstructor::construct):

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

(WebCore::jsTestEventTargetPrototypeFunctionItemBody):

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

(WebCore::jsTestGlobalObjectInstanceFunctionRegularOperationBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestGlobalObjectConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeaturesEnabledBody):

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

(WebCore::jsTestIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):

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

(WebCore::JSTestInterfaceConstructor::construct):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2Body):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2Body):

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

(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethodBody):

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

(WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):

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

(WebCore::JSTestNamedConstructorNamedConstructor::construct):

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

(WebCore::jsTestNamedDeleterWithIdentifierPrototypeFunctionNamedDeleterBody):

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

(WebCore::jsTestNamedGetterWithIdentifierPrototypeFunctionGetterNameBody):

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

(WebCore::jsTestNamedSetterWithIdentifierPrototypeFunctionNamedSetterBody):

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

(WebCore::jsTestNamedSetterWithIndexedGetterPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedSetterWithIndexedGetterPrototypeFunctionIndexedSetterBody):

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

(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetter1Body):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetter2Body):

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

(WebCore::JSTestObjConstructor::construct):
(WebCore::callJSTestObj1):
(WebCore::callJSTestObj2):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestObjConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestObjPrototypeFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestObjPrototypeFunctionWorldSpecificMethodBody):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithXPathNSResolverParameterBody):
(WebCore::jsTestObjPrototypeFunctionNullableStringSpecialMethodBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithStandaloneEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrowsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableUSVStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableByteStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionSerializedValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithRecordBody):
(WebCore::jsTestObjPrototypeFunctionPrivateMethodBody):
(WebCore::jsTestObjPrototypeFunctionPublicAndPrivateMethodBody):
(WebCore::jsTestObjPrototypeFunctionAddEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefinedBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalDoubleIsNaNBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalFloatIsNaNBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongIsZeroBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongIsZeroBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceIsEmptyBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanIsFalseBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAnyBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalObjectBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalXPathNSResolverBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalRecordBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalPromiseBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionAndOptionalArgBody):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArgBody):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod10Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod11Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod12Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter2Body):
(WebCore::jsTestObjConstructorFunctionClassMethodWithOptionalBody):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod11Body):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12Body):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClampBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClampOnOptionalBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeOnOptionalBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequenceBody):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunctionBody):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunctionBody):
(WebCore::jsTestObjPrototypeFunctionOperationWithOptionalUnionParameterBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequenceBody):
(WebCore::jsTestObjPrototypeFunctionGetElementByIdBody):
(WebCore::jsTestObjPrototypeFunctionConvert1Body):
(WebCore::jsTestObjPrototypeFunctionConvert2Body):
(WebCore::jsTestObjPrototypeFunctionConvert3Body):
(WebCore::jsTestObjPrototypeFunctionConvert4Body):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicUnionMethodBody):
(WebCore::jsTestObjPrototypeFunctionAnyBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Body):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Body):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionAttachShadowRootBody):
(WebCore::jsTestObjPrototypeFunctionOperationWithExternalDictionaryParameterBody):
(WebCore::jsTestObjPrototypeFunctionBufferSourceParameterBody):
(WebCore::jsTestObjPrototypeFunctionLegacyCallerNamedBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationWithExceptionBody):

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

(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):
(WebCore::constructJSTestOverloadedConstructors3):
(WebCore::constructJSTestOverloadedConstructors4):

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

(WebCore::constructJSTestOverloadedConstructorsWithSequence1):
(WebCore::constructJSTestOverloadedConstructorsWithSequence2):

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

(WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItemBody):

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

(WebCore::JSTestPromiseRejectionEventConstructor::construct):

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

(WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionFunctionBody):

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

(WebCore::JSTestTypedefsConstructor::construct):
(WebCore::jsTestTypedefsPrototypeFunctionFuncBody):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadowBody):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionSequenceOfNullablesArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfNullablesArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfUnionsArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionUnionArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampBody):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampInTypedefBody):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunctionBody):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunction2Body):
(WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresIncludeBody):

4:26 PM Changeset in webkit [259020] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the watchOS build after r259008

Put a call to Pasteboard::nameOfDragPasteboard behind ENABLE(DRAG_SUPPORT); additionally, update an out-of-date
comment to reflect the fact that arbitrary UIPasteboards can be converted to a list of NSItemProviders, whose
data can be traversed in fidelity order.

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::respectsUTIFidelities const):

4:19 PM Changeset in webkit [259019] by zhifei_fang@apple.com
  • 2 edits in trunk/Tools

[Timeline] A better default get label function, which fit the assumpation the label is always a string
https://bugs.webkit.org/show_bug.cgi?id=209567

Reviewed by Jonathan Bedard.

  • resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:
4:19 PM Changeset in webkit [259018] by chris.reid@sony.com
  • 2 edits in trunk/Source/WTF

[PlayStation] Specify a 16 KB minimum page size
https://bugs.webkit.org/show_bug.cgi?id=209566

Reviewed by Ross Kirsling.

  • wtf/PageBlock.h:
4:05 PM Changeset in webkit [259017] by zhifei_fang@apple.com
  • 2 edits in trunk/Tools

[Timeline] Fix the out of bound dot index
https://bugs.webkit.org/show_bug.cgi?id=209492

Reviewed by Jonathan Bedard.

  • resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:

(Timeline.CanvasSeriesComponent):

3:53 PM Changeset in webkit [259016] by sihui_liu@apple.com
  • 3 edits in trunk/Source/WTF

Remove unused suspend functions in CrossThreadTaskHandler
https://bugs.webkit.org/show_bug.cgi?id=209553

Reviewed by Geoffrey Garen.

  • wtf/CrossThreadTaskHandler.cpp:

(WTF::CrossThreadTaskHandler::taskRunLoop):
(WTF::CrossThreadTaskHandler::suspendAndWait): Deleted.
(WTF::CrossThreadTaskHandler::resume): Deleted.

  • wtf/CrossThreadTaskHandler.h:
3:28 PM Changeset in webkit [259015] by Simon Fraser
  • 4 edits
    2 adds in trunk

Flashing and partly visible elements
https://bugs.webkit.org/show_bug.cgi?id=204605

Reviewed by Zalan Bujtas.

Source/WebCore:

If, during a compositing update, a layer becomes non-composited, then we repaint its
location in its new target compositing layer. However, that layer might be in the list
of BackingSharingState's layers that may paint into backing provided by some ancestor,
so they'd be in a limbo state where their repaint target was unknown. We'd erroneously
repaint in some ancestor, resulting in missing content.

Fix by having BackingSharingState track a set of layers that can't be repainted currently
because their ancestor chain contains a maybe-sharing layer, and repaint them when
the backing sharing state is resolved.

This is only an issue during RenderLayerCompositor::computeCompositingRequirements()
when the backing sharing state is being computed, so most repaints are not affected.

Test: compositing/shared-backing/repaint-into-shared-backing.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::BackingSharingState::isPotentialBackingSharingLayer const):
(WebCore::RenderLayerCompositor::BackingSharingState::addLayerNeedingRepaint):
(WebCore::RenderLayerCompositor::BackingSharingState::endBackingSharingSequence):
(WebCore::RenderLayerCompositor::BackingSharingState::issuePendingRepaints):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::updateLayerCompositingState):
(WebCore::RenderLayerCompositor::layerRepaintTargetsBackingSharingLayer const):

  • rendering/RenderLayerCompositor.h:

LayoutTests:

  • compositing/shared-backing/repaint-into-shared-backing-expected.html: Added.
  • compositing/shared-backing/repaint-into-shared-backing.html: Added.
2:57 PM Changeset in webkit [259014] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebKit

Unreviewed build fixes, rdar://problem/60756680&60827009

2:56 PM Changeset in webkit [259013] by dbates@webkit.org
  • 4 edits in trunk

Element context character rects may be in wrong coordinate system
https://bugs.webkit.org/show_bug.cgi?id=209493
<rdar://problem/60840261>

Reviewed by Wenson Hsieh.

Source/WebKit:

Convert the character rects from content view coordinates to root view coordinates
as that is the coordinate system callers of -requestDocumentContext expect.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

Tools:

Add some tests.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

2:36 PM Changeset in webkit [259012] by Doug Kelly
  • 2 edits in trunk/Tools

Unreviewed, add new committer to contributors.json

  • Scripts/webkitpy/common/config/contributors.json:
2:30 PM Changeset in webkit [259011] by Alan Coon
  • 4 edits in branches/safari-610.1.7-branch/Source

Cherry-pick r258795. rdar://problem/60886075

Ensure media cache directory is created before passing to AVURLAsset.
https://bugs.webkit.org/show_bug.cgi?id=209341

Reviewed by Eric Carlson.

Source/WebCore:

Sandbox changes require the media cache directory to be created before passing to
AVFoundation, to ensure that a sandbox extension is allowed to be created for that
directory.

When the mediaCacheDirectory is empty or null, no longer specify a temporary directory. This
allows clients to disable caching by specifying an empty string for the cache directory.
Since now assetCacheForPath() can return nil, update all the call sites to handle that
possibility. Add a new method, ensureAssetCacheExistsAtPath() which tries to create a
directory at the specified path, and returns nil if that is not possible. This ensures the
cache path exists before adding the AVAssetCache to the AVURLAsset options dictionary.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::assetCacheForPath): (WebCore::ensureAssetCacheExistsForPath): (WebCore::MediaPlayerPrivateAVFoundationObjC::originsInMediaCache): (WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCache): (WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCacheForOrigins): (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):

Source/WebKitLegacy/mac:

MediaPlayerPrivateAVFoundaionObjC will no longer create an asset cache in a temporary
directory by default; ensure that it's media cache directory is set during initialization.

  • WebView/WebView.mm: (-[WebView _commonInitializationWithFrameName:groupName:]):

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

2:27 PM Changeset in webkit [259010] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] svg/as-image/svg-image-with-data-uri-background.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209564

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:16 PM Changeset in webkit [259009] by Chris Dumez
  • 15 edits
    2 adds in trunk

Event listeners registered with 'once' option may get garbage collected too soon
https://bugs.webkit.org/show_bug.cgi?id=209504
<rdar://problem/60541567>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Add EnsureStillAliveScope RAII object for ensureStillAliveHere().

  • runtime/JSCJSValue.h:

(JSC::EnsureStillAliveScope::EnsureStillAliveScope):
(JSC::EnsureStillAliveScope::~EnsureStillAliveScope):

Source/WebCore:

In EventTarget::innerInvokeEventListeners, if the listener we're about to call is a one-time
listener (has 'once' flag set), we would first unregister the event listener and then call
it, as per the DOM specification. However, once unregistered, the event listener is no longer
visited for GC purposes and its internal JS Function may get garbage collected before we get
a chance to call it.

To address the issue, we now make sure the JS Function (and its wrapper) stay alive for the
duration of the scope using ensureStillAliveHere().

Test: http/tests/inspector/network/har/har-page-aggressive-gc.html

  • bindings/js/JSEventListener.h:
  • dom/EventListener.h:

(WebCore::EventListener::jsFunction const):
(WebCore::EventListener::wrapper const):

  • dom/EventTarget.cpp:

(WebCore::EventTarget::innerInvokeEventListeners):

LayoutTests:

Add layout test coverage.

  • http/tests/inspector/network/har/har-page-aggressive-gc-expected.txt: Added.
  • http/tests/inspector/network/har/har-page-aggressive-gc.html: Added.
  • platform/gtk/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/win/TestExpectations:
2:13 PM Changeset in webkit [259008] by Wenson Hsieh
  • 8 edits in trunk/Source

Rename "data interaction pasteboard" to "drag and drop pasteboard"
https://bugs.webkit.org/show_bug.cgi?id=209556

Reviewed by Tim Horton.

Source/WebCore:

"Data interaction" is an obsolete term for drag and drop on iOS, and was meant only to be used early on in
development. Replace this with the more descriptive name "drag and drop pasteboard", and additionally hide the
name behind a Cocoa-only Pasteboard helper method so that each call site won't need to repeat the string.

  • platform/Pasteboard.h:
  • platform/cocoa/DragDataCocoa.mm:

(WebCore::DragData::DragData):

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::nameOfDragPasteboard):
(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::Pasteboard::respectsUTIFidelities const):

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::PlatformPasteboard):

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::nameOfDragPasteboard):

Source/WebKit:

Adopt Pasteboard::nameOfDragPasteboard instead of the literal string "data interaction pasteboard".

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView dropInteraction:sessionDidEnter:]):
(-[WKContentView dropInteraction:sessionDidUpdate:]):
(-[WKContentView dropInteraction:sessionDidExit:]):
(-[WKContentView dropInteraction:performDrop:]):

1:48 PM Changeset in webkit [259007] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk1] ASSERTION FAILED: m_wrapper under WebCore::XMLHttpRequestUpload::dispatchProgressEvent
https://bugs.webkit.org/show_bug.cgi?id=209560

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:12 PM Changeset in webkit [259006] by commit-queue@webkit.org
  • 17 edits
    18 adds in trunk

Unprefix -webkit-text-orientation
https://bugs.webkit.org/show_bug.cgi?id=196139

Source/WebCore:

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield

In order to unprefix -webkit-text-orientation to be text-orientation,
a new property, "text-orientation" is added to CSSProperties.json.
I didn't use alias because the prefixed version still supports non-standard values,
and we want the unprefixed version to strictly follow the specs.
However only adding a new property is not enough because -webkit-text-orientation
is a high-priority property, and without extra logic, the CSS property
"last-one-wins" ordering rule cannot be enforced because high-priority properties
are applied to elements in the order they appear in the generated CSSPropertyNames.cpp file.
Therefore a codegen flag, "related-property" is added to both
-webkit-text-orientation and text-orientation to point to each other,
so that when applying high priorities, the algorithm will know that the
two properties are modifying the same style of the element (in our case, text orientation)
and thus the CSS property "last-one-wins" ordering rule will take effect.

This code change also helps future developments when we want to unprefix other high-priority properties.

Tests: fast/text/orientation-inheritance.html

fast/text/orientation-mixed-unprefix.html
fast/text/orientation-sideways-prefix-unprefix.html
fast/text/orientation-sideways-unprefix.html
fast/text/orientation-upright-unprefix.html
fast/text/test-orientation-parsing-001.html
fast/text/text-orientation-parse-competition.html
fast/text/text-orientation-parse.html
imported/w3c/web-platform-tests/css/css-writing-modes/text-orientation-parsing-001.html

  • css/CSSComputedStyleDeclaration.cpp:
    • added support for parsing "text-orientation"

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

  • added a new RenderStyle, CSSPropertyTextOrientation
  • css/CSSProperties.json:
    • added a new codegen property, "related-property"
  • css/makeprop.pl:
    • added new rules for generating code to parse related properties

(addProperty):

  • inserts new rule in the generated code to parse related properties
  • css/parser/CSSParserFastPaths.cpp:
    • Specified the CSS property values that the unprefixed "text-orientation" can take

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • Only supports the standard values for text-orientation

(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • Added switch case value CSSPropertyTextOrientation
  • css/parser/CSSParserImpl.cpp:
    • Added rules to treat related properties differently

(WebCore::filterProperties):

  • For related rules that are also high priority, if we saw one in the property list, we will mark all the related property as seen, in order to enforce the "last-one-wins" ordering rule
  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyValueTextOrientation):

  • added functionality to parse the newly added "text-orientation" property

Tools:

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield.

This change is made to add the extra flag "related-property" in CSSProperty.json
in the jsonchecker so that the jsonchecker would not complain about unrecognized key

  • Scripts/webkitpy/style/checkers/jsonchecker.py: added check for related-property

(JSONCSSPropertiesChecker.check_codegen_properties):

LayoutTests:

Added test cases to check that Webkit can now parse text-orientation correctly,
as well as that the precedence rule for CSS property still applies when both
-webkit-text-orientation and text-orientation property are present, the second
one takes precedence.

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield

  • fast/text/orientation-inheritance-expected.html: Added.
  • fast/text/orientation-inheritance.html: Added.
  • fast/text/orientation-mixed-unprefix-expected.html: Added.
  • fast/text/orientation-mixed-unprefix.html: Added.
  • fast/text/orientation-sideways-prefix-unprefix-expected.html: Added.
  • fast/text/orientation-sideways-prefix-unprefix.html: Added.
  • fast/text/orientation-sideways-unprefix-expected.html: Added.
  • fast/text/orientation-sideways-unprefix.html: Added.
  • fast/text/orientation-upright-unprefix-expected.html: Added.
  • fast/text/orientation-upright-unprefix.html: Added.
  • fast/text/test-orientation-parsing-001-expected.txt: Added.
  • fast/text/test-orientation-parsing-001.html: Added.
  • fast/text/text-orientation-parse-competition-expected.txt: Added.
  • fast/text/text-orientation-parse-competition.html: Added.
  • fast/text/text-orientation-parse-expected.txt: Added.
  • fast/text/text-orientation-parse.html: Added.
  • fast/text/text-orientation-parse-stylesheet-expected.txt: Added.
  • fast/text/text-orientation-parse-stylesheet.html: Added.
1:02 PM Changeset in webkit [259005] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit

Some WKWebView.h header doc cleanup.
https://bugs.webkit.org/show_bug.cgi?id=209549

Reviewed by Simon Fraser.

  • UIProcess/API/Cocoa/WKWebView.h:
12:49 PM Changeset in webkit [259004] by Nikos Mouchtaris
  • 1 edit
    2 adds in trunk/LayoutTests

Add ref test for apple pay button corner radius change
https://bugs.webkit.org/show_bug.cgi?id=208959

Reviewed by Andy Estes.

Add ref test to check that providing a border-radius does not result in rendering
a default apple pay button.

  • http/tests/ssl/applepay/ApplePayButtonCornerRadius-expected-mismatch.html: Added.
  • http/tests/ssl/applepay/ApplePayButtonCornerRadius.html: Added.
12:29 PM Changeset in webkit [259003] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

Layout Test fast/images/async-image-multiple-clients-repaint.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=202328
<rdar://problem/54325032>

Unreviewed test gardening.

Put the skip statement for this test back in mac-wk1/TestExpectations
since <rdar://problem/42625657> has not been fixed yet.

  • platform/mac-wk1/TestExpectations:
12:16 PM Changeset in webkit [259002] by Russell Epstein
  • 10 edits
    2 adds in branches/safari-609-branch

Apply patch. rdar://problem/60756680

12:16 PM Changeset in webkit [259001] by Russell Epstein
  • 8 edits
    2 deletes in branches/safari-609-branch

Revert "Apply patch. rdar://problem/60756680"

This reverts commit r258972.

11:34 AM Changeset in webkit [259000] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Remove CompositingChangeRepaint which was always CompositingChangeRepaintNow
https://bugs.webkit.org/show_bug.cgi?id=209551

Reviewed by Zalan Bujtas.

All callers to updateBacking() passed CompositingChangeRepaintNow, so remove this argument
and the enum.

No behavior change.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::layerStyleChanged):
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::updateLayerCompositingState):

  • rendering/RenderLayerCompositor.h:
11:24 AM Changeset in webkit [258999] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] commit-queue should comment on bug if it fails to find any modified ChangeLog
https://bugs.webkit.org/show_bug.cgi?id=209550

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(FindModifiedChangeLogs): Set haltOnFailure to false.
(FindModifiedChangeLogs.getResultSummary):
(FindModifiedChangeLogs.evaluateCommand): Add build steps to comment on bug and set cq- on patch appropriately.

  • BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
11:11 AM Changeset in webkit [258998] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for GTK.

In wkb.ug/209536 we replaced ENABLE_WEBGL by ENABLE_WEBXR for cmake
builds. We just forgot to do it the same for derived sources.

  • Sources.txt: replaced ENABLE_WEBGL by ENABLE_WEBXR.
11:08 AM Changeset in webkit [258997] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] status-bubble should link to buildbot queue while waiting in queue
https://bugs.webkit.org/show_bug.cgi?id=209543

Reviewed by Jonathan Bedard.

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

(StatusBubble._build_bubble): Link to buildbot queue whil patch is waiting in queue.

  • BuildSlaveSupport/ews-app/ews/common/buildbot.py:

(Buildbot.update_icons_for_queues_mapping): Generate the mapping for shortname to full queue name.

10:37 AM Changeset in webkit [258996] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/tests/cache-storage/page-cache-domcache-pending-promise.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209514

Fixing expectations.

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:32 AM Changeset in webkit [258995] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

Remove newline that I accidentally added in r258989.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
10:27 AM Changeset in webkit [258994] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Avoid logging sensitive information for all network sessions
https://bugs.webkit.org/show_bug.cgi?id=209522
<rdar://problem/54807157>

Reviewed by Alex Christensen.

We avoid logging sensitive information (such as visited URLs) on production builds and for ephemeral sessions.

We should also avoid such logging for engineering and prerelease builds to reduce the possibility of any
personally identifiable information being retained in logs.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::configurationForSessionID): Deny senstive logging for all sessions.

10:15 AM Changeset in webkit [258993] by Said Abou-Hallawa
  • 4 edits
    1 add
    1 delete in trunk/LayoutTests

Layout Test fast/images/async-image-multiple-clients-repaint.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=202328
<rdar://problem/54325032>

Unreviewed test gardening.

Remove flaky expectation for this test since it has been passing on all
Mac and iOS platforms. Make the iOS expected result the same for the
device and for the simulator.

  • platform/ios-simulator/fast/images: Removed.
  • platform/ios/TestExpectations:
  • platform/ios/fast/images/async-image-multiple-clients-repaint-expected.txt: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
10:07 AM Changeset in webkit [258992] by Alan Coon
  • 1 copy in tags/Safari-610.1.7.3.2

Tag Safari-610.1.7.3.2.

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

Fix build after https://trac.webkit.org/changeset/258977/webkit
https://bugs.webkit.org/show_bug.cgi?id=209545

Unreviewed.

  • dom/Document.cpp:

(WebCore::Document::visibilityStateChanged):
Add ENABLE(MEDIA_STREAM) compilation flag.

10:03 AM Changeset in webkit [258990] by commit-queue@webkit.org
  • 71 edits
    27 copies
    52 adds
    1 delete in trunk

LayoutTests/imported/w3c:
WebKit uses Alphabetic Baseline when "-webkit-text-orientation" is "mixed" in Vertical Writing Mode
https://bugs.webkit.org/show_bug.cgi?id=208824

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield.

Those -expected.txt files need to be updated since previously they are expecting
failures, but after the code change those failures are actually passing, so the
expected.txt files need to be updated.

  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-008-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-container-baseline-001-expected.txt:

Source/WebCore:
WebKit uses Alphabetic Baseline when "-webkit-text-orientation" is "mixed" in Vertical Writing Mode
https://bugs.webkit.org/show_bug.cgi?id=208824

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield.

According to the CSS documentation, https://drafts.csswg.org/css-writing-modes/#text-orientation and
https://drafts.csswg.org/css-writing-modes/#text-baselines "In vertical typographic mode,
the central baseline is used as the dominant baseline when text-orientation is mixed or upright.
Otherwise the alphabetic baseline is used."

However, InlineFlowBox::requiresIdeographicsBaseline returns true only when text orientation is
"upright", meaning it applies the same baseline for mixed and sideways text orientation.
Therefore, a new clause is added to check if text-orientation is "mixed"

Currently in our implementation, text orientation is determinted by the following:

  • mixed: FontDescription returns Vertical and nonCJKGlyphOrientation returns Mixed
  • upright: FontDescription returns Vertical and nonCJKGlyphOrientation returns Upright
  • sideways: FontDescription returns Horizontal and nonCJKGlyphOrientation returns Mixed

Original code only checks if FontDescription returns Vertical and nonCJKGlyphOrientation returns Mixed, which
is only checking if text orientation is "upright", and returns true for requiresIdeographicBaseline, treating
"mixed" and "sideways" the same, requesting alphabetic baseline, which is incorrect.

Therefore, to correct this bahavior, change the code so that requiresIdeographicsBaseline returns true either
when text-orientation is "mixed" or "upright". Equivalently, we return true when FontDescription returns Vertical
false otherwise.

Test: imported/w3c/web-platform-tests/css/css-writing-modes/

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::requiresIdeographicBaseline const):

LayoutTests:
WebKit uses Alphabetic Baseline when "-webkit-text-orientation" is "mixed" in Vertical Writing Mode
https://bugs.webkit.org/show_bug.cgi?id=208824

Patch by Frank Yang <guowei_yang@apple.com> on 2020-03-25
Reviewed by Myles C. Maxfield.

Fixed errors in existing test files and expected results regarding
baseline alignment. This baseline alignment bug is probably in the codebase
for a long time, and all the following tests are based on
two incorrect behaviors within WebKit, which is

1) WebKit cannot parse "text-orientation" since it's not supported yet,
2) WebKit doesn't distinguish "mixed" and "sideways" when selecting baselines,

so both orientations alphabetic baseline is selected. Therefore, for those test
cases, the expected files are actually reflecting the behavior of
"sideways" instead of "mixed". Now after this patch, "mixed" now
selects ideographic baseline, which will cause the tests to fail,
so I added "-webkit-text-orientation: sideways" to these tests, and
I also created new tests to cover "mixed" text orientation.

  • editing/selection/vertical-rl-rtl-extend-line-backward-br.html:
  • editing/selection/vertical-rl-rtl-extend-line-backward-p.html:
  • editing/selection/vertical-rl-rtl-extend-line-forward-br.html:
  • editing/selection/vertical-rl-rtl-extend-line-forward-p.html:
  • fast/backgrounds/background-leakage-transforms.html:
  • fast/css/vertical-text-overflow-ellipsis-text-align-center.html:
  • fast/css/vertical-text-overflow-ellipsis-text-align-justify.html:
  • fast/css/vertical-text-overflow-ellipsis-text-align-left.html:
  • fast/css/vertical-text-overflow-ellipsis-text-align-right.html:
  • fast/html/details-marker-style.html:
  • fast/html/details-writing-mode.html:
  • fast/inline-block/baseline-vertical-01-expected.html:
  • fast/inline-block/baseline-vertical-01.html:
  • fast/inline-block/baseline-vertical-02-expected.html:
  • fast/inline-block/baseline-vertical-02.html:
  • fast/inline-block/baseline-vertical-03-expected.html:
  • fast/inline-block/baseline-vertical-03.html:
  • fast/inline-block/baseline-vertical-04-expected.html:
  • fast/inline-block/baseline-vertical-04.html:
  • fast/inline-block/baseline-vertical-05-expected.html:
  • fast/inline-block/baseline-vertical-05.html:
  • fast/inline-block/baseline-vertical-06-expected.html:
  • fast/inline-block/baseline-vertical-06.html:
  • fast/inline-block/baseline-vertical-07-expected.html:
  • fast/inline-block/baseline-vertical-07.html:
  • fast/inline-block/baseline-vertical-08-expected.html:
  • fast/inline-block/baseline-vertical-08.html:
  • fast/lists/003-vertical.html:
  • fast/lists/009-vertical.html:
  • fast/multicol/tall-image-behavior-lr.html:
  • fast/multicol/vertical-rl/rule-style.html:
  • fast/ruby/overhang-vertical-no-overlap2.html:
  • fast/ruby/overhang-vertical.html:
  • fast/text/vertical-rl-rtl-linebreak.html:
  • fast/writing-mode/background-vertical-lr.html:
  • fast/writing-mode/background-vertical-rl.html:
  • fast/writing-mode/basic-vertical-line.html:
  • fast/writing-mode/border-image-vertical-lr.html:
  • fast/writing-mode/border-image-vertical-rl.html:
  • fast/writing-mode/border-styles-vertical-lr.html:
  • fast/writing-mode/border-styles-vertical-rl.html:
  • fast/writing-mode/vertical-lr-replaced-selection.html:
  • fast/writing-mode/vertical-rl-replaced-selection.html:
  • platform/ios/media/track/track-cue-rendering-vertical-expected.txt:
  • platform/mac/fast/ruby/bopomofo-expected.txt:
  • platform/mac/fast/ruby/bopomofo-letter-spacing-expected.txt:
  • platform/mac/fast/ruby/bopomofo-rl-expected.txt:
  • platform/mac/fast/text/orientation-sideways-expected.png: Removed.
  • platform/mac/fast/writing-mode/text-orientation-basic-expected.txt:
  • platform/mac/fast/writing-mode/vertical-baseline-alignment-expected.txt:
  • platform/win/fast/ruby/bopomofo-expected.txt:
  • platform/win/fast/ruby/bopomofo-letter-spacing-expected.txt:
  • platform/win/fast/ruby/bopomofo-rl-expected.txt:
  • platform/win/fast/writing-mode/text-orientation-basic-expected.txt:
  • platform/win/fast/writing-mode/vertical-align-table-baseline-expected.txt:
  • platform/win/fast/writing-mode/vertical-baseline-alignment-expected.txt:
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed-expected.txt: Added.
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed-expected.txt: Added.
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed-expected.txt: Added.
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed-expected.txt: Added.
  • platform/win/fast/html/details-marker-style-mixed-expected.txt: Added.
  • platform/win/fast/html/details-writing-mode-mixed-expected.txt: Added.
  • platform/win/fast/multicol/tall-image-behavior-lr-mixed-expected.txt: Added.
  • platform/win/fast/ruby/bopomofo-mixed-expected.txt: Added.
  • platform/win/fast/text/vertical-rl-rtl-linebreak-mixed-expected.txt: Added.
  • platform/win/fast/writing-mode/vertical-baseline-alignment-mixed-expected.txt: Added.
  • platform/win/fast/writing-mode/vertical-lr-replaced-selection-mixed-expected.txt: Added.
  • platform/win/fast/writing-mode/vertical-rl-replaced-selection-mixed-expected.txt: Added.
  • printing/resources/iframe-subframe-vertical-rl.html:
  • editing/selection/vertical-rl-rtl-extend-line-backward-br-mixed-expected.txt: Added.
  • editing/selection/vertical-rl-rtl-extend-line-backward-br-mixed.html: Added.
  • editing/selection/vertical-rl-rtl-extend-line-backward-p-mixed-expected.txt: Added.
  • editing/selection/vertical-rl-rtl-extend-line-backward-p-mixed.html: Added.
  • editing/selection/vertical-rl-rtl-extend-line-forward-br-mixed-expected.txt: Added.
  • editing/selection/vertical-rl-rtl-extend-line-forward-br-mixed.html: Added.
  • editing/selection/vertical-rl-rtl-extend-line-forward-p-mixed-expected.txt: Added.
  • editing/selection/vertical-rl-rtl-extend-line-forward-p-mixed.html: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed-expected.txt: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-center-mixed.html: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed-expected.txt: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-justify-mixed.html: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed-expected.txt: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-left-mixed.html: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed-expected.txt: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-right-mixed.html: Added.
  • fast/html/details-marker-style-mixed-expected.txt: Added.
  • fast/html/details-marker-style-mixed.html: Added.
  • fast/html/details-writing-mode-mixed-expected.txt: Added.
  • fast/html/details-writing-mode-mixed.html: Added.
  • fast/multicol/tall-image-behavior-lr-mixed-expected.txt: Added.
  • fast/multicol/tall-image-behavior-lr-mixed.html: Added.
  • fast/ruby/bopomofo-mixed-expected.txt: Added.
  • fast/ruby/bopomofo-mixed.html: Added.
  • fast/ruby/overhang-vertical-mixed-expected.txt: Added.
  • fast/ruby/overhang-vertical-mixed.html: Added.
  • fast/ruby/overhang-vertical-no-overlap2-mixed-expected.txt: Added.
  • fast/ruby/overhang-vertical-no-overlap2-mixed.html: Added.
  • fast/text/vertical-rl-rtl-linebreak-mixed-expected.txt: Added.
  • fast/text/vertical-rl-rtl-linebreak-mixed.html: Added.
  • fast/writing-mode/background-vertical-lr-mixed-expected.txt: Added.
  • fast/writing-mode/background-vertical-lr-mixed.html: Added.
  • fast/writing-mode/background-vertical-rl-mixed-expected.txt: Added.
  • fast/writing-mode/background-vertical-rl-mixed.html: Added.
  • fast/writing-mode/basic-vertical-line-mixed-expected.txt: Added.
  • fast/writing-mode/basic-vertical-line-mixed.html: Added.
  • fast/writing-mode/border-styles-vertical-lr-mixed-expected.txt: Added.
  • fast/writing-mode/border-styles-vertical-lr-mixed.html: Added.
  • fast/writing-mode/border-styles-vertical-rl-mixed-expected.txt: Added.
  • fast/writing-mode/border-styles-vertical-rl-mixed.html: Added.
  • fast/writing-mode/vertical-baseline-alignment-mixed-expected.txt: Added.
  • fast/writing-mode/vertical-baseline-alignment-mixed.html: Added.
  • fast/writing-mode/vertical-lr-replaced-selection-mixed-expected.txt: Added.
  • fast/writing-mode/vertical-lr-replaced-selection-mixed.html: Added.
  • fast/writing-mode/vertical-rl-replaced-selection-mixed-expected.txt: Added.
  • fast/writing-mode/vertical-rl-replaced-selection-mixed.html: Added.
  • LayoutTests/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
9:50 AM Changeset in webkit [258989] by dbates@webkit.org
  • 14 edits
    3 adds in trunk

[iOS] ASSERTION FAILURE: !isMissingPostLayoutData in WebKit::EditorState::postLayoutData()
https://bugs.webkit.org/show_bug.cgi?id=199960
<rdar://problem/53323966>

Reviewed by Simon Fraser.

Source/WebKit:

Refactor the computation of editor state so that we can request that a layout be performed
each time we compute the editor state as part of asking the UI process to interpret a key
event. The full (read: after layout) editor state is needed for UIKit to perform a deletion
because UIKit wants to know how many characters are before the selection. Otherwise, we hit
an assert due to the fact the last editor state sent (when the Web process asked the UI process
to interpret the key) is missing layout data.

The refactoring also moves the Cocoa-common code out of the platform-independent WebPage.cpp
file into WebPageCocoa.mm.

One side effect of the refactoring is that we no longer allow the platformEditorState() function
to override the isMissingPostLayoutData bit. Currently it can even though the calling code, the
platform independent code (PIE) in WebPage, may have attached layout data. Now the PIE code sets
this bit if it attached layout data and the platformEditorState() function only attaches more
layout data if that bit is set. platformEditorState() never unsets that bit (i.e. sets isMissingPostLayoutData
to true).

The patch also removes m_isEditorStateMissingPostLayoutData in WebPage.h. This instance variable
has been unused since <https://trac.webkit.org/changeset/221064/webkit>. Also we haven't been using
IncludePostLayoutDataHint::No since the last reference to it was removed in <https://trac.webkit.org/changeset/244494/webkit>.

I also renamed platformEditorState() to getPlatformEditorState() since it has an out argument.

Test: editing/deleting/ios/backspace-last-character.html

  • Shared/EditorState.h:
  • UIProcess/API/glib/WebKitEditorState.cpp:

(webkitEditorStateCreate): Initialize _WebKitEditorStatePrivate::typingAttributes to WEBKIT_EDITOR_TYPING_ATTRIBUTE_NONE.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::getPlatformEditorStateCommon const): Added. Moved Cocoa-common code from WebPage.cpp to here.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState const): Move Cocoa-common code to WebPageCocoa.mm. Change enum to
track whether a layout should be performed. Keep the current behavior of only including post layout
data if the frame view does not need a layout. This behavior is encoded in the enumerator ShouldPerformLayout::Default.
which is the default argument value for the argument shouldPerformLayout.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::platformNeedsLayoutForEditorState const): Added. Non-Cocoa port implementation
that returns false.

  • WebProcess/WebPage/glib/WebPageGLib.cpp:

(WebKit::WebPage::getPlatformEditorState const): Early return if isMissingPostLayoutData is true.
(WebKit::WebPage::platformEditorState const): Deleted.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformNeedsLayoutForEditorState const): Added. Keep the current behavior of
performing a layout if we have a composition or a hardware keyboard is attached.
(WebKit::WebPage::getPlatformEditorState const): Call platformEditorStateCommon(). Bail out early
if isMissingPostLayoutData is true.
(WebKit::WebPage::handleEditingKeyboardEvent): The important part of this patch. Request a layout
when computing the editor state that we will send to the UI process.
(WebKit::WebPage::platformEditorState const): Deleted.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::getPlatformEditorState const): Call platformEditorStateCommon(). Bail out early
if isMissingPostLayoutData is true.
(WebKit::WebPage::platformEditorState const): Deleted.

  • WebProcess/WebPage/playstation/WebPagePlayStation.cpp:

(WebKit::WebPage::getPlatformEditorState const): Update as needed.
(WebKit::WebPage::platformEditorState const): Deleted.

  • WebProcess/WebPage/win/WebPageWin.cpp:

(WebKit::WebPage::getPlatformEditorState const): Update as needed.
(WebKit::WebPage::platformEditorState const): Deleted.

LayoutTests:

Add a test to ensure we do not assert when using the software keyboard to type a character
into a <textarea> and then delete it.

  • TestExpectations: Skip tests in editing/deleting/ios on all platforms.
  • editing/deleting/ios/backspace-last-character-expected.txt: Added.
  • editing/deleting/ios/backspace-last-character.html: Added.
  • platform/ios/TestExpectations: Unskip tests in editing/deleting/ios on iOS.
9:49 AM Changeset in webkit [258988] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore/platform/mediastream/mac

Apply patch. rdar://problem/60827023

9:32 AM Changeset in webkit [258987] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

Use ENABLE_WEBXR to guard WebXR IDL files in CMakeLists.txt
https://bugs.webkit.org/show_bug.cgi?id=209536

Reviewed by Darin Adler.

  • CMakeLists.txt: replaced ENABLE_WEBGL by ENABLE_WEBXR.
9:29 AM Changeset in webkit [258986] by Kate Cheney
  • 5 edits in trunk/Source

App-bound domain checks should provide more debugging details at script evaluation sites
https://bugs.webkit.org/show_bug.cgi?id=209521
<rdar://problem/60837954>

Reviewed by Chris Dumez.

Source/WebCore:

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeScriptInWorld):
Return makeUnexpected object with an error message instead of null to
provide more details as to why the executeScriptInWorld()
call was not completed. Also add console logging and release logging.

  • page/Frame.cpp:

(WebCore::Frame::injectUserScriptImmediately):
There is no option to return an exception here, so this patch adds
console logging and release logging.

Source/WebKit:

Return an exception because that option is available here, and also add
console and release logging for consistency across app-bound domain checks.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScript):

9:19 AM Changeset in webkit [258985] by Simon Fraser
  • 3 edits
    2 adds in trunk

REGRESSION (r251385): box-shadow interferes with backdrop-filter
https://bugs.webkit.org/show_bug.cgi?id=208070
<rdar://problem/59683152>

Reviewed by Dean Jackson.

Source/WebCore:

updateClippingStrategy() compares the rounded rect passed in with the geometry
of the first layer argument, so the rect needs to have a zero origin. We do
the same computation in GraphicsLayerCA::updateContentsRects().

Test: compositing/filters/backdrop-filter-rect.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateBackdropFiltersRect):

LayoutTests:

  • compositing/filters/backdrop-filter-rect-expected.html: Added.
  • compositing/filters/backdrop-filter-rect.html: Added.
8:59 AM Changeset in webkit [258984] by youenn@apple.com
  • 122 edits
    9 moves
    26 adds
    2 deletes in trunk/Source/ThirdParty/libwebrtc

Bump opus to M82
https://bugs.webkit.org/show_bug.cgi?id=209540

Reviewed by Eric Carlson.

  • Source/third_party/opus: Updated.
8:57 AM Changeset in webkit [258983] by youenn@apple.com
  • 43 edits in trunk/Source/ThirdParty/libwebrtc

Bump libyuv to M82
https://bugs.webkit.org/show_bug.cgi?id=209539

Reviewed by Eric Carlson.

  • Source/third_party/libyuv: Updated.
8:53 AM Changeset in webkit [258982] by youenn@apple.com
  • 6 edits
    4 deletes in trunk/Source/ThirdParty/libwebrtc

Bump rnnoise to M82
https://bugs.webkit.org/show_bug.cgi?id=209541

Reviewed by Eric Carlson.

  • CMakeLists.txt:
  • Source/third_party/rnnoise: Updated.
  • libwebrtc.xcodeproj/project.pbxproj:
8:20 AM Changeset in webkit [258981] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ios] svg/custom/object-sizing-explicit-width.xhtml is flaky failure
https://bugs.webkit.org/show_bug.cgi?id=209544

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
8:05 AM Changeset in webkit [258980] by Wenson Hsieh
  • 16 edits in trunk/Source

Avoid querying pasteboard strings while dragging content over a potential drop target
https://bugs.webkit.org/show_bug.cgi?id=209531

Reviewed by Tim Horton and Ryosuke Niwa.

Source/WebCore:

A couple of places in WebCore currently use PasteboardStrategy::stringForType() to query for pasteboard URL
strings. These call sites attempt to read URL strings (using both readString and stringForType) for the purposes
of checking whether or not we should avoid exposing the URL string to web content (note that in the case of
containsPlainText, we actually check whether or not the string is empty, which depends on whether or not the
string is safe to expose to the web -- e.g., not a file URL).

This is incompatible with some changes in the near future which will prevent the web content process from
reading any data from the pasteboard, if a paste or drop action has not yet been performed. To address this
issue, we introduce an alternate PasteboardStrategy method, containsStringSafeForDOMToReadForType, which returns
(for a given platform pasteboard type) whether or not a string that can be safely exposed to bindings exists.

Rather than allow the web process to read the entire string, limit it to just this true/false answer.

  • platform/PasteboardStrategy.h:
  • platform/PlatformPasteboard.h:
  • platform/cocoa/DragDataCocoa.mm:

(WebCore::DragData::containsPlainText const):

Use containsStringSafeForDOMToReadForType instead of stringForType.

  • platform/cocoa/PasteboardCocoa.mm:

(WebCore::Pasteboard::fileContentState):

Use containsStringSafeForDOMToReadForType instead of readString.

  • platform/cocoa/PlatformPasteboardCocoa.mm:

(WebCore::PlatformPasteboard::containsStringSafeForDOMToReadForType const):

Source/WebKit:

Add PasteboardStrategy and WebPasteboardProxy (IPC) plumbing; see WebCore for more details.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::containsStringSafeForDOMToReadForType):

  • UIProcess/WebPasteboardProxy.cpp:

(WebKit::WebPasteboardProxy::containsStringSafeForDOMToReadForType):

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::containsStringSafeForDOMToReadForType):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

Add PasteboardStrategy plumbing; see WebCore for more details.

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::containsStringSafeForDOMToReadForType):

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

[GTK] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=209534

Unreviewed gardening.

Gardening of flaky tests and of tests that are failing in the EWS bot
but not in the test bot.

  • platform/gtk/TestExpectations:
6:54 AM Changeset in webkit [258978] by commit-queue@webkit.org
  • 5 edits in trunk

[GTK] Add user agent quirk for auth.mayohr.com
https://bugs.webkit.org/show_bug.cgi?id=209378

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2020-03-25
Reviewed by Michael Catanzaro.

Source/WebCore:

This site blocks the login page completely and asks the user to download
Google Chrome when using our standard user agent. It only blocks the
login page. After logging in, it works fine without user agent quirks.

Note that it is required to hide Version/X from the user agent string
for the site to recognize it as a valid Chrome user agent. Since Chrome
itself does not use Version/X, it should be safe to modify the existing
quirk instead of adding a new one to handle it.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):
(WebCore::urlRequiresNoSafariVersion):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):

  • platform/UserAgentQuirks.h:
  • platform/glib/UserAgentGLib.cpp:

(WebCore::buildUserAgentString):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::assertUserAgentForURLHasNoSafariVersionQuirk):
(TestWebKitAPI::TEST):

6:44 AM Changeset in webkit [258977] by youenn@apple.com
  • 9 edits in trunk/Source/WebCore

Audio fails to capture stream in WebRTC if AudioSession gets interrupted
https://bugs.webkit.org/show_bug.cgi?id=208516
<rdar://problem/60020467>

Reviewed by Eric Carlson.

In case of page going to hidden, continue calling each capture factory to mute the corresponding sources if needed.
In case of page being visible again, reset all tracks according page muted state. This allows restarting tracks that have been
muted while page was hidden (video tracks or suspended audio tracks).

Since tracks can go to muted when visibility changes, we no longer return early when setting the muted state of a page to the same value.
Instead we apply it which ensures we comply with what UIProcess wants.

We start removing the concept of a RealtimeMediaSource be interrupted. Instead we use muting of sources.
This allows UIProcess or the page to override any muted state, for instance if page goes in foreground again.

We update the AudioSharedUnit to allow restarting capture even if suspended.
This ensures that we are able to restart capturing even if we do not receive the audio session end of interruption.
Also, this notification sometimes takes a long time to happen and we do not want to wait for it when user is interacting with the page.
A future refactoring will further remove RealtimeMediaSource interrupted-related code.

Manually tested.

  • dom/Document.cpp:

(WebCore::Document::visibilityStateChanged):

  • page/Page.cpp:

(WebCore::Page::setMuted):

  • platform/audio/PlatformMediaSessionManager.h:

(WebCore::PlatformMediaSessionManager::isInterrupted const):

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::setInterrupted):
(WebCore::RealtimeMediaSource::setMuted):

  • platform/mediastream/mac/BaseAudioSharedUnit.cpp:

(WebCore::BaseAudioSharedUnit::startProducingData):
(WebCore::BaseAudioSharedUnit::resume):
(WebCore::BaseAudioSharedUnit::suspend):

6:18 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
6:16 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
6:08 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
6:02 AM WebKitGTK/Debugging edited by Philippe Normand
(diff)
4:11 AM Changeset in webkit [258976] by Alexey Shvayka
  • 7 edits in trunk

\b escapes inside character classes should be valid in Unicode patterns
https://bugs.webkit.org/show_bug.cgi?id=209528

Reviewed by Darin Adler.

JSTests:

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

Source/JavaScriptCore:

This change removes isIdentityEscapeAnError('b') check, allowing \b escapes
inside character classes in Unicode patterns match U+0008 (BACKSPACE) characters,
aligning JSC with V8 and SpiderMonkey.

Grammar: https://tc39.es/ecma262/#prod-ClassEscape
('b' comes before CharacterEscape :: IdentityEscape)

  • yarr/YarrParser.h:

(JSC::Yarr::Parser::parseEscape):

LayoutTests:

  • js/regexp-unicode-expected.txt:
  • js/script-tests/regexp-unicode.js:
3:19 AM Changeset in webkit [258975] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Remove noisy warning about broken LC support
https://bugs.webkit.org/show_bug.cgi?id=209472

Reviewed by Philippe Normand.

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::initializeGStreamer): There's no seemingly nice way of
ensuring this message is issued once in WebKit the
lifetime. Issuing multiple times is upsetting users. We can't rely
on Gst logging at this point, and there's no established story of
using the LOG_CHANNEL stuff on WPE/GTK ports for suppressible
WebKit message AFAICT.

Mar 24, 2020:

11:00 PM Changeset in webkit [258974] by dbates@webkit.org
  • 4 edits in trunk

Unreviewed, reverting r258945.

Revert change that broke API tests while I investigate
offline.

Reverted changeset:

"Element context character rects may be in wrong coordinate
system"
https://bugs.webkit.org/show_bug.cgi?id=209493
https://trac.webkit.org/changeset/258945

10:55 PM Changeset in webkit [258973] by jiewen_tan@apple.com
  • 2 edits in trunk/Tools

Unreviewed, skips a test for iOS

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
9:05 PM Changeset in webkit [258972] by Russell Epstein
  • 8 edits
    2 adds in branches/safari-609-branch

Apply patch. rdar://problem/60756680

8:48 PM Changeset in webkit [258971] by Andres Gonzalez
  • 6 edits in trunk/Source/WebCore

Avoid multiple unnecessary updates of the IsolatedTree.
https://bugs.webkit.org/show_bug.cgi?id=209409

Reviewed by Chris Fleizach.

AXObjectCache::notificationPostTimerFired was updating the isolated tree
in every single notification, causing a big performance hit.
This change filters out repeated notifications for the same node, thus
reducing significantly the number of times the isolated tree is updated.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::notificationPostTimerFired):
(WebCore::AXObjectCache::postNotification):
(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::generateIsolatedTree):
(WebCore::AXObjectCache::updateIsolatedTree):
(WebCore::appendIfNotContainsMatching): Helper function that might be
added to WTF::Vector.
(WebCore::createIsolatedTreeHierarchy): Became AXIsolatedTree::createSubtree

  • accessibility/AXObjectCache.h:
  • accessibility/AccessibilityObjectInterface.h:

(WebCore::AXCoreObject::childrenIDs):

  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::removeTreeForPageID):
(WebCore::AXIsolatedTree::generateSubtree):
(WebCore::AXIsolatedTree::createSubtree):
(WebCore::AXIsolatedTree::updateNode): Updates only the given node.
(WebCore::AXIsolatedTree::updateSubtree): Recreates the entire subtree.
(WebCore::AXIsolatedTree::updateChildren): Updates the associated object,
recreating only the children that are added and removing the ones that
are no longer present in the AX tree.
(WebCore::AXIsolatedTree::removeNode):
(WebCore::AXIsolatedTree::removeSubtree):
(WebCore::AXIsolatedTree::appendNodeChanges):
(WebCore::AXIsolatedTree::applyPendingChanges):

  • accessibility/isolatedtree/AXIsolatedTree.h:
8:31 PM Changeset in webkit [258970] by wilander@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix for deprecated DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection
https://bugs.webkit.org/show_bug.cgi?id=209530
<rdar://problem/60855794>

Unreviewed build fix. Solution suggested by Darin Adler.

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::buildPhoneNumberHighlights):

Use of DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection put between
ALLOW_DEPRECATED_DECLARATIONS_BEGIN and ALLOW_DEPRECATED_DECLARATIONS_END.

(WebCore::ServicesOverlayController::buildSelectionHighlight):

Use of DDHighlightCreateWithRectsInVisibleRectWithStyleAndDirection put between
ALLOW_DEPRECATED_DECLARATIONS_BEGIN and ALLOW_DEPRECATED_DECLARATIONS_END.

8:21 PM Changeset in webkit [258969] by wilander@apple.com
  • 13 edits in trunk/Source/WebKit

Refactor ResourceLoadStatisticsStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor() to return a struct instead of a Vector of pairs
https://bugs.webkit.org/show_bug.cgi?id=209463
<rdar://problem/60808759>

Reviewed by Alex Christensen.

This change does three things:

  1. Replaces the Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>> with a new struct called

RegistrableDomainsToDeleteOrRestrictWebsiteDataFor for sending around which domains to delete website data for.

  1. Removes the enum WebsiteDataToRemove, replacing its structure with the members of the above mentioned struct:
  • domainsToDeleteAllCookiesFor
  • domainsToDeleteAllButHttpOnlyCookiesFor
  • domainsToDeleteAllNonCookieWebsiteDataFor
  1. Consistently renames "domainsToDeleteFor" to "domainsToDeleteOrRestrictFor" in preparation for website data

policies that are not about deletion, see for instance recently landed https://trac.webkit.org/changeset/258884.

No new tests. No changed functionality. This code is covered by several existing tests.

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

(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToRemoveWebsiteDataFor): Deleted.

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

(WebKit::domainsToString):
(WebKit::ResourceLoadStatisticsStore::removeDataRecords):

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

(WebKit::WebResourceLoadStatisticsStore::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::WebResourceLoadStatisticsStore::deleteWebsiteDataForRegistrableDomains): Deleted.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:

(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isolatedCopy const):
(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isEmpty const):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::deleteCookiesForTesting):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkSession::deleteWebsiteDataForRegistrableDomains): Deleted.

  • NetworkProcess/NetworkSession.h:
7:07 PM Changeset in webkit [258968] by Ross Kirsling
  • 4 edits in trunk/Source/JavaScriptCore

Introduce @tryGetByIdWithWellKnownSymbol instead of repurposing @tryGetById itself
https://bugs.webkit.org/show_bug.cgi?id=209524

Reviewed by Saam Barati and Yusuke Suzuki.

r258865 allowed @tryGetById to take any ResolveNode, such that a built-in could pass a well-known symbol.
This is much more permissive than necessary, since we shouldn't really need a ResolveNode in the first place;
instead, let's make a new bytecode intrinsic function @tryGetByIdWithWellKnownSymbol for this purpose.

  • builtins/RegExpPrototype.js:

(globalPrivate.hasObservableSideEffectsForRegExpSplit):

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

(JSC::BytecodeIntrinsicNode::emit_intrinsic_tryGetById): Revert change from r258865.
(JSC::BytecodeIntrinsicNode::emit_intrinsic_tryGetByIdWithWellKnownSymbol): Added.

6:46 PM Changeset in webkit [258967] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[MultiColumn] Infinite recursion in RenderBlockFlow::relayoutToAvoidWidows
https://bugs.webkit.org/show_bug.cgi?id=209527
<rdar://problem/56993589>

Reviewed by Simon Fraser.

Source/WebCore:

This patch expands on r204980. This is yet another case when we can't possibly accommodate widows in the current column.

Test: fast/multicol/page-cant-accommodate-widow-crash.html

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::adjustLinePositionForPagination):

LayoutTests:

  • fast/multicol/page-cant-accommodate-widow-crash-expected.txt: Added.
  • fast/multicol/page-cant-accommodate-widow-crash.html: Added.
6:22 PM Changeset in webkit [258966] by Wenson Hsieh
  • 4 edits
    2 moves in trunk/Source/WebCore

Rename DragDataMac and DragImageMac to DragDataCocoa and DragImageCocoa
https://bugs.webkit.org/show_bug.cgi?id=209523

Reviewed by Megan Gardner.

Rename DragDataMac to DragDataCocoa, and DragImageMac to DragImageCocoa. These files contain logic relevant to
both macOS and iOS, and as such, belong in platform/cocoa rather than platform/mac.

No change in behavior.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/DragDataCocoa.mm: Renamed from Source/WebCore/platform/mac/DragDataMac.mm.

(WebCore::rtfPasteboardType):
(WebCore::rtfdPasteboardType):
(WebCore::stringPasteboardType):
(WebCore::urlPasteboardType):
(WebCore::htmlPasteboardType):
(WebCore::colorPasteboardType):
(WebCore::pdfPasteboardType):
(WebCore::tiffPasteboardType):
(WebCore::DragData::DragData):
(WebCore::DragData::containsURLTypeIdentifier const):
(WebCore::DragData::canSmartReplace const):
(WebCore::DragData::containsColor const):
(WebCore::DragData::containsFiles const):
(WebCore::DragData::numberOfFiles const):
(WebCore::DragData::asFilenames const):
(WebCore::DragData::containsPlainText const):
(WebCore::DragData::asPlainText const):
(WebCore::DragData::asColor const):
(WebCore::DragData::containsCompatibleContent const):
(WebCore::DragData::containsPromise const):
(WebCore::DragData::containsURL const):
(WebCore::DragData::asURL const):

  • platform/cocoa/DragImageCocoa.mm: Renamed from Source/WebCore/platform/mac/DragImageMac.mm.

(WebCore::dragImageSize):
(WebCore::deleteDragImage):
(WebCore::scaleDragImage):
(WebCore::dissolveDragImageToFraction):
(WebCore::createDragImageFromImage):
(WebCore::createDragImageIconForCachedImageFilename):
(WebCore::dragOffsetForLinkDragImage):
(WebCore::anchorPointForLinkDragImage):
(WebCore::LinkImageLayout::LinkImageLayout):
(WebCore::createDragImageForLink):
(WebCore::createDragImageForColor):

  • platform/graphics/gpu/cocoa/GPUShaderModuleMetal.mm:

Unrelated build fix due to changing unified sources.

5:51 PM Changeset in webkit [258965] by Tadeu Zagallo
  • 3 edits
    1 add in trunk

LLIntGenerator must link switch jumps to otherwise redundant labels
https://bugs.webkit.org/show_bug.cgi?id=209333
<rdar://problem/60827987>

Reviewed by Saam Barati.

JSTests:

  • wasm/stress/terminal-jump-switch-target.js: Added.

Source/JavaScriptCore:

The LLIntGenerator optimizes jumps at the end of blocks. It does so when a block ends, by checking if
the last instruction emitted was a jump, if it pointed to the end of the current block and if it was
the only jump that pointed there. If all those conditions are satisfied, the jump is removed and it's
not necessary to emit the label at the end of block, since the only jump that pointed to it was removed.
However, switches (br_table) are handled specially by the LLIntGenerator and therefore are not counted
in Label::unresolvedJumps, which was used to check whether we could skip emitting the label.
The end result is that we might skip linking a switch jump if it points to a block that ends with a jump.

  • wasm/WasmLLIntGenerator.cpp:

(JSC::Wasm::LLIntGenerator::addEndToUnreachable):
(JSC::Wasm::LLIntGenerator::linkSwitchTargets):
(JSC::GenericLabel<Wasm::GeneratorTraits>::setLocation):

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

Memory::fastMappedBytes() is wrong
https://bugs.webkit.org/show_bug.cgi?id=209488

Reviewed by Mark Lam.

  • wasm/WasmMemory.cpp:

(JSC::Wasm::Memory::fastMappedBytes):

5:20 PM Changeset in webkit [258963] by Alexey Shvayka
  • 6 edits in trunk/JSTests

Update test262 to commit dfc7ecc6785e
https://bugs.webkit.org/show_bug.cgi?id=209449

Unreviewed test gardening.

  • test262/expectations.yaml:
  • test262/harness/propertyHelper.js:
  • test262/latest-changes-summary.txt:
  • test262/test/*: Updated.
  • test262/test262-Revision.txt:
5:18 PM Changeset in webkit [258962] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(r258314): Leak in MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuffer()
https://bugs.webkit.org/show_bug.cgi?id=209519

Reviewed by Eric Carlson.

Obey the "copy" rule and adopt the results of -copyPixelBufferForSourceTime:sourceTimeForDisplay:.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::updateLastPixelBuffer):

5:03 PM Changeset in webkit [258961] by jiewen_tan@apple.com
  • 13 edits
    1 copy in trunk/Source

[WebAuthn] Customize a bit more on the macOS LocalAuthentication prompt
https://bugs.webkit.org/show_bug.cgi?id=208703
<rdar://problem/60136974>

Reviewed by Brent Fulgham.

Part 2.

This patch adds a different LocalAuthentication prompt title for getAssertion.
It also polishes the text used for makeCredential.

Besides that, it also enhances the iOS title strings.

Source/WebCore:

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

(WebCore::getAssertionTouchIDPromptTitle):

  • platform/LocalizedStrings.h:

Source/WebKit:

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::continueMakeCredentialAfterDecidePolicy):
(WebKit::LocalAuthenticator::continueGetAssertionAfterResponseSelected):

  • UIProcess/WebAuthentication/Cocoa/LocalConnection.h:
  • UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:

(WebKit::LocalConnection::verifyUser const):

  • UIProcess/WebAuthentication/Mock/MockLocalConnection.h:
  • UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:

(WebKit::MockLocalConnection::verifyUser const):

5:02 PM Changeset in webkit [258960] by Said Abou-Hallawa
  • 3 edits in trunk/LayoutTests

[ macOS ] fast/images/slower-decoding-than-animation-image.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207859

Unreviewed tiny follow-up to make the test more reliable on slow bots.

  • fast/images/slower-decoding-than-animation-image-expected.txt:
  • fast/images/slower-decoding-than-animation-image.html:
5:01 PM Changeset in webkit [258959] by Chris Dumez
  • 40 edits in trunk/Source/WebCore

Function passed to addEventListener may get garbage collected before the event listener is even added
https://bugs.webkit.org/show_bug.cgi?id=209445

Reviewed by Yusuke Suzuki.

Function passed to addEventListener may get garbage collected before the event listener is even added.
The issue is that the JS bindings for addEventListener() would first create a JSEventListener to store
the JSC Function that was passed in and then add this JSEventListener as an event listener on the
EventTarget. The JSC function held by JSEventListener is supposed to get visited by
JSEventListener::visitJSFunction() which gets called by EventTarget::visitJSEventListeners() which
gets called every time an EventTarget wrapper gets visited. The issue is that when the JSEventListener
gets created, the JSEventListener is not yet connected to its EventTarget and thus
EventTarget::visitJSEventListeners() would not visit it. However, the constructor of JSEventListener
would issue a write barrier on that JSC Function.

Several changes were made to address this issue in the generated bindings:

  1. We now create a local variable (named argumentX, X being argument index) for each argument that gets passed in to an operation
  2. At the end of the operation implementation, we call ensureStillAliveHere() on each JSValue argument to make sure they stay alive until the end of the operation
  3. For EventListeners / EventHandlers, we also issue a write barrier at the end of the operation implementation, when it is safe to do so. Now that we do this here in the bindings, I dropped the code in the JSEventListener constructor to issue the write barrier (as this was too early).
  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::JSEventListener):

  • bindings/scripts/CodeGeneratorJS.pm:

(GetOperationReturnedParameterName):
(GenerateAttributeSetterBodyDefinition):
(GenerateParametersCheck):
(GenerateEnsureStillAliveCallsForArguments):
(GenerateImplementationFunctionCall):

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

(WebCore::jsMapLikePrototypeFunctionGetBody):
(WebCore::jsMapLikePrototypeFunctionHasBody):
(WebCore::jsMapLikePrototypeFunctionEntriesBody):
(WebCore::jsMapLikePrototypeFunctionKeysBody):
(WebCore::jsMapLikePrototypeFunctionValuesBody):
(WebCore::jsMapLikePrototypeFunctionForEachBody):
(WebCore::jsMapLikePrototypeFunctionSetBody):
(WebCore::jsMapLikePrototypeFunctionDeleteBody):

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

(WebCore::jsReadOnlyMapLikePrototypeFunctionGetBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionHasBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionEntriesBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionKeysBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionValuesBody):
(WebCore::jsReadOnlyMapLikePrototypeFunctionForEachBody):

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

(WebCore::jsReadOnlySetLikePrototypeFunctionHasBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionEntriesBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionKeysBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionValuesBody):
(WebCore::jsReadOnlySetLikePrototypeFunctionForEachBody):

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

(WebCore::jsSetLikePrototypeFunctionHasBody):
(WebCore::jsSetLikePrototypeFunctionEntriesBody):
(WebCore::jsSetLikePrototypeFunctionKeysBody):
(WebCore::jsSetLikePrototypeFunctionValuesBody):
(WebCore::jsSetLikePrototypeFunctionForEachBody):
(WebCore::jsSetLikePrototypeFunctionAddBody):
(WebCore::jsSetLikePrototypeFunctionDeleteBody):

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

(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunctionBody):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessageBody):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod1Body):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionOverloadedMethod2Body):

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

(WebCore::jsTestCEReactionsStringifierPrototypeFunctionToStringBody):

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

(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithArgumentsBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithNullableVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithOptionalVariantArgumentBody):
(WebCore::jsTestCallTracerPrototypeFunctionTestOperationWithDefaultVariantArgumentBody):

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

(WebCore::jsTestDOMJITPrototypeFunctionGetAttributeBody):
(WebCore::jsTestDOMJITPrototypeFunctionItemBody):
(WebCore::jsTestDOMJITPrototypeFunctionHasAttributeBody):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementByIdBody):
(WebCore::jsTestDOMJITPrototypeFunctionGetElementsByNameBody):

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

(WebCore::jsTestEnabledBySettingPrototypeFunctionEnabledBySettingOperationBody):

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

(WebCore::JSTestEventConstructorConstructor::construct):

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

(WebCore::jsTestEventTargetPrototypeFunctionItemBody):

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

(WebCore::jsTestGlobalObjectInstanceFunctionRegularOperationBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestGlobalObjectConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestGlobalObjectInstanceFunctionEnabledInSpecificWorldWhenRuntimeFeaturesEnabledBody):
(WebCore::jsTestGlobalObjectInstanceFunctionGetSecretBooleanBody):
(WebCore::jsTestGlobalObjectInstanceFunctionTestFeatureGetSecretBooleanBody):

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

(WebCore::jsTestIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):

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

(WebCore::JSTestInterfaceConstructor::construct):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2Body):
(WebCore::jsTestInterfacePrototypeFunctionTakeNodesBody):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2Body):

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

(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethodBody):

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

(WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedAndIndexedSetterWithIdentifierPrototypeFunctionIndexedSetterBody):

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

(WebCore::JSTestNamedConstructorNamedConstructor::construct):

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

(WebCore::jsTestNamedDeleterWithIdentifierPrototypeFunctionNamedDeleterBody):

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

(WebCore::jsTestNamedGetterWithIdentifierPrototypeFunctionGetterNameBody):

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

(WebCore::jsTestNamedSetterWithIdentifierPrototypeFunctionNamedSetterBody):

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

(WebCore::jsTestNamedSetterWithIndexedGetterPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedSetterWithIndexedGetterPrototypeFunctionIndexedSetterBody):

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

(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionNamedSetterBody):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetter1Body):
(WebCore::jsTestNamedSetterWithIndexedGetterAndSetterPrototypeFunctionIndexedSetter2Body):

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

(WebCore::jsTestNodePrototypeFunctionGetSecretBooleanBody):
(WebCore::jsTestNodePrototypeFunctionTestFeatureGetSecretBooleanBody):

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

(WebCore::JSTestObjConstructor::construct):
(WebCore::callJSTestObj1):
(WebCore::callJSTestObj2):
(WebCore::setJSTestObjOnfooSetter):
(WebCore::setJSTestObjOnwebkitfooSetter):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation1Body):
(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation2Body):
(WebCore::jsTestObjConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestObjPrototypeFunctionEnabledInSpecificWorldWhenRuntimeFeatureEnabledBody):
(WebCore::jsTestObjPrototypeFunctionWorldSpecificMethodBody):
(WebCore::jsTestObjPrototypeFunctionGetSecretBooleanBody):
(WebCore::jsTestObjPrototypeFunctionTestFeatureGetSecretBooleanBody):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionByteMethodBody):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionOctetMethodBody):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionLongMethodBody):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgsBody):
(WebCore::jsTestObjPrototypeFunctionObjMethodBody):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgsBody):
(WebCore::jsTestObjInstanceFunctionUnforgeableMethodBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithXPathNSResolverParameterBody):
(WebCore::jsTestObjPrototypeFunctionNullableStringMethodBody):
(WebCore::jsTestObjConstructorFunctionNullableStringStaticMethodBody):
(WebCore::jsTestObjPrototypeFunctionNullableStringSpecialMethodBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithStandaloneEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrowsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableUSVStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUSVStringArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNullableByteStringArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithByteStringArgTreatingNullAsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionSerializedValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithRecordBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithExceptionReturningLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithExceptionReturningObjectBody):
(WebCore::jsTestObjPrototypeFunctionPrivateMethodBody):
(WebCore::jsTestObjPrototypeFunctionPublicAndPrivateMethodBody):
(WebCore::jsTestObjPrototypeFunctionAddEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListenerBody):
(WebCore::jsTestObjPrototypeFunctionWithExecStateObjBody):
(WebCore::jsTestObjPrototypeFunctionWithExecStateObjExceptionBody):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateObjExceptionBody):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndExecStateWithSpacesBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgsBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringAndDefaultValueBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefinedBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUSVStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomStringIsEmptyStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalDoubleIsNaNBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalFloatIsNaNBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalLongLongIsZeroBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalUnsignedLongLongIsZeroBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequenceIsEmptyBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalBooleanIsFalseBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAnyBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalObjectBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalXPathNSResolverBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalRecordBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalPromiseBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArgBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionAndOptionalArgBody):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArgBody):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArgBody):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod10Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod11Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod12Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWith2DistinguishingUnions2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithNonDistinguishingUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion2Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter1Body):
(WebCore::jsTestObjPrototypeFunctionOverloadWithNullableNonDistinguishingParameter2Body):
(WebCore::jsTestObjConstructorFunctionClassMethodWithOptionalBody):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod11Body):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12Body):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClampBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClampOnOptionalBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeBody):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithEnforceRangeOnOptionalBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequenceBody):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunctionBody):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunctionBody):
(WebCore::jsTestObjPrototypeFunctionOperationWithOptionalUnionParameterBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequenceBody):
(WebCore::jsTestObjPrototypeFunctionGetElementByIdBody):
(WebCore::jsTestObjPrototypeFunctionGetSVGDocumentBody):
(WebCore::jsTestObjPrototypeFunctionConvert1Body):
(WebCore::jsTestObjPrototypeFunctionConvert2Body):
(WebCore::jsTestObjPrototypeFunctionConvert3Body):
(WebCore::jsTestObjPrototypeFunctionConvert4Body):
(WebCore::jsTestObjPrototypeFunctionMutablePointFunctionBody):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethodBody):
(WebCore::jsTestObjPrototypeFunctionVariadicUnionMethodBody):
(WebCore::jsTestObjPrototypeFunctionAnyBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentBody):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction1Body):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Body):
(WebCore::jsTestObjPrototypeFunctionTestReturnsOwnPromiseAndPromiseProxyFunctionBody):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload1Body):
(WebCore::jsTestObjPrototypeFunctionSingleConditionalOverload2Body):
(WebCore::jsTestObjPrototypeFunctionAttachShadowRootBody):
(WebCore::jsTestObjPrototypeFunctionOperationWithExternalDictionaryParameterBody):
(WebCore::jsTestObjPrototypeFunctionBufferSourceParameterBody):
(WebCore::jsTestObjPrototypeFunctionLegacyCallerNamedBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationBody):
(WebCore::jsTestObjPrototypeFunctionTestReturnValueOptimizationWithExceptionBody):
(WebCore::jsTestObjPrototypeFunctionToStringBody):

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

(WebCore::constructJSTestOverloadedConstructors1):
(WebCore::constructJSTestOverloadedConstructors2):
(WebCore::constructJSTestOverloadedConstructors3):
(WebCore::constructJSTestOverloadedConstructors4):

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

(WebCore::constructJSTestOverloadedConstructorsWithSequence1):
(WebCore::constructJSTestOverloadedConstructorsWithSequence2):

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

(WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItemBody):

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

(WebCore::JSTestPromiseRejectionEventConstructor::construct):

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

(WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionFunctionBody):
(WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionFunctionReturningBody):

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

(WebCore::jsTestStringifierPrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierAnonymousOperationPrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierNamedOperationPrototypeFunctionIdentifierBody):
(WebCore::jsTestStringifierNamedOperationPrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierOperationImplementedAsPrototypeFunctionIdentifierBody):
(WebCore::jsTestStringifierOperationImplementedAsPrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierOperationNamedToStringPrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierReadOnlyAttributePrototypeFunctionToStringBody):

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

(WebCore::jsTestStringifierReadWriteAttributePrototypeFunctionToStringBody):

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

(WebCore::JSTestTypedefsConstructor::construct):
(WebCore::jsTestTypedefsPrototypeFunctionFuncBody):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadowBody):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionSequenceOfNullablesArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfNullablesArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionNullableSequenceOfUnionsArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionUnionArgBody):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampBody):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClampInTypedefBody):
(WebCore::jsTestTypedefsPrototypeFunctionPointFunctionBody):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunctionBody):
(WebCore::jsTestTypedefsPrototypeFunctionStringSequenceFunction2Body):
(WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresIncludeBody):

4:51 PM Changeset in webkit [258958] by Kate Cheney
  • 3 edits in trunk/Source/WebKit

Ignore in-app browser privacy checks for apps with com.apple.private.applemediaservices entitlement
https://bugs.webkit.org/show_bug.cgi?id=209509
<rdar://problem/60750956>

Reviewed by Brent Fulgham.

  • UIProcess/WebPageProxy.cpp:

(WebKit::m_ignoresAppBoundDomains):
(WebKit::WebPageProxy::setIsNavigatingToAppBoundDomain):

  • UIProcess/WebPageProxy.h:
4:33 PM Changeset in webkit [258957] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Add console message when legacy TLS is used
https://bugs.webkit.org/show_bug.cgi?id=209444

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-24
Reviewed by Darin Adler.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::didReceiveResponse):
Indent less, add host to inspector, add release logging without host.

4:27 PM Changeset in webkit [258956] by Jonathan Bedard
  • 2 edits in trunk/Tools

results.webkit.org: Documentation for uncollapsed failure endpoints is wrong
https://bugs.webkit.org/show_bug.cgi?id=209496

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/templates/documentation.html:
4:17 PM Changeset in webkit [258955] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/tests/security/cookies/third-party-cookie-blocking.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209517

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:07 PM Changeset in webkit [258954] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] http/wpt/fetch/dnt-header-after-redirection.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209520

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:59 PM Changeset in webkit [258953] by Alan Coon
  • 8 edits in branches/safari-610.1.7.3-branch/Source

Versioning.

3:53 PM Changeset in webkit [258952] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Fix isEmpty AssemblyHelpers function and add isNotEmpty
https://bugs.webkit.org/show_bug.cgi?id=209507

Reviewed by Saam Barati.

This fixes the 32 version of my HasIndexedProperty patch as well
as properly names the functions for what they do.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileHasIndexedProperty):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::isEmpty):
(JSC::AssemblyHelpers::isNotEmpty):

3:52 PM Changeset in webkit [258951] by Jonathan Bedard
  • 3 edits in trunk/Tools

results.webkit.org: Filter suite results by expectation by default
https://bugs.webkit.org/show_bug.cgi?id=209500

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/static/js/timeline.js: Allow the Legend constructor

to set a willFilterExpected default.

  • resultsdbpy/resultsdbpy/view/templates/suite_results.html:
3:42 PM Changeset in webkit [258950] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ iOS ] http/tests/cache-storage/page-cache-domcache-pending-promise.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209514

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:41 PM Changeset in webkit [258949] by pvollan@apple.com
  • 12 edits in trunk

[Cocoa] Fix launch time regression with CF prefs direct mode enabled
https://bugs.webkit.org/show_bug.cgi?id=209244
Source/WebKit:

<rdar://problem/60542149>

Reviewed by Darin Adler.

When CF prefs direct mode was enabled in https://trac.webkit.org/changeset/258064/webkit, it introduced
a significant launch time regression. This patch addresses this regression. The number of observed domains
is reduced and domain observation is initiated later when Safari is first activated. Swizzling code is
removed, since that has a performance cost in the Objective-C runtime. Normal priority instead of
QOS_CLASS_BACKGROUND is used in the thread which starts the observing, since using a background priority
class can lead to priority inversion. Finally, a dictionary comparison is removed when a notification
about a preference change is received, since this check is redundant and doubles the cost of this method.

  • UIProcess/Cocoa/PreferenceObserver.mm:

(-[WKPreferenceObserver init]):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitialize):
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):

  • UIProcess/WebProcessPool.h:

Source/WTF:

Reviewed by Darin Adler.

Re-enable CF prefs direct mode.

  • wtf/PlatformEnable.h:
  • wtf/PlatformEnableCocoa.h:

Tools:

Reviewed by Darin Adler.

  • TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:

(TEST):
(sharedInstanceMethodOverride):

3:34 PM Changeset in webkit [258948] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] http/tests/cache/disk-cache/disk-cache-vary-cookie-private.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209512

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:30 PM Changeset in webkit [258947] by Jonathan Bedard
  • 2 edits in trunk/Tools

results.webkit.org: Correct UUID capitalization in documentation
https://bugs.webkit.org/show_bug.cgi?id=209497

Reviewed by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/templates/documentation.html:
3:26 PM Changeset in webkit [258946] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] commit-queue should comment on bug if it fails to create git commit
https://bugs.webkit.org/show_bug.cgi?id=209487

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(CreateLocalGITCommit):
(CreateLocalGITCommit.start):
(CreateLocalGITCommit.evaluateCommand):

  • BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
3:08 PM Changeset in webkit [258945] by dbates@webkit.org
  • 4 edits in trunk

Element context character rects may be in wrong coordinate system
https://bugs.webkit.org/show_bug.cgi?id=209493
<rdar://problem/60840261>

Reviewed by Wenson Hsieh.

Source/WebKit:

Convert the character rects from content view coordinates to root view coordinates
as that is the coordinate system callers of -requestDocumentContext expect.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

Tools:

Add some tests.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

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

[ iOS ] REGRESSION: fast/dom/window-open-ephemeral.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209502

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:03 PM Changeset in webkit [258943] by Alexey Shvayka
  • 407 edits
    34 copies
    1 move
    125 adds
    2 deletes in trunk/JSTests

Update test262 to commit 79146e5cf48d
https://bugs.webkit.org/show_bug.cgi?id=209449

Reviewed by Keith Miller.

  • test262/config.yaml: Add 3 tests that timeout.
  • test262/expectations.yaml:
  • test262/latest-changes-summary.txt:
  • test262/test/*: Updated.
  • test262/test262-Revision.txt:
2:59 PM Changeset in webkit [258942] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Debug] http/tests/referrer-policy-anchor/origin/cross-origin-http.https.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209503

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:56 PM Changeset in webkit [258941] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

Use SimpleRange in characterRectsForRange()
https://bugs.webkit.org/show_bug.cgi?id=209495

Reviewed by Darin Adler.

The function characterRectsForRange() is capable of working correctly with a SimpleRange
instead of a Range. Callers currently pass a Range. So, there is still a conversion, but
maybe someday they can pass a SimpleRange. This change is towards that future.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

2:40 PM Changeset in webkit [258940] by Russell Epstein
  • 1 edit in branches/safari-609-branch/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp

Unreviewed build fix, rdar://problem/60827028

2:38 PM Changeset in webkit [258939] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Catalina wk1 ] storage/indexeddb/modern/abort-requests flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209499

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:07 PM Changeset in webkit [258938] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk1 ] fast/events/mouse-cursor-no-mousemove.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209494

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:36 PM Changeset in webkit [258937] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] position in queue shown in status-bubble is larger than actual position
https://bugs.webkit.org/show_bug.cgi?id=209481

Reviewed by Jonathan Bedard.

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

(StatusBubble._queue_position): Use created timestamp instead of modified.

1:34 PM Changeset in webkit [258936] by Alan Coon
  • 8 edits in branches/safari-610.1.7-branch/Source

Cherry-pick r258476. rdar://problem/60839077

Add missing checks needed for AppBound Quirk
https://bugs.webkit.org/show_bug.cgi?id=209117
<rdar://problem/60460097>

Reviewed by John Wilander.

The checks for the 'NeedsInAppBrowserPrivacyQuirks' flag added in r258101 was incomplete.
Source/WebCore:

Two additional call sites need to check the state of the flag.

  • bindings/js/ScriptController.cpp: (WebCore::ScriptController::executeScriptInWorld): Add missing check for the quirk.
  • loader/FrameLoaderClient.h: Add new API for the 'NeedsInAppBrowserPrivacyQuirks' debug flag.
  • page/Frame.cpp: (WebCore::Frame::injectUserScriptImmediately): Ditto.

Source/WebKit:

These changes let the WebFrameLoaderClient report the quirk state to WebCore code.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::needsInAppBrowserPrivacyQuirks): Added.
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebPage.h: (WebKit::WebPage::needsInAppBrowserPrivacyQuirks const): Added.

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

1:32 PM Changeset in webkit [258935] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac ] fast/animation/request-animation-frame-cancel2.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209491

RUnreviewed test gardening.

  • platform/mac/TestExpectations:
1:20 PM Changeset in webkit [258934] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] http/tests/media/track-in-band-hls-metadata.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209490

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:17 PM Changeset in webkit [258933] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

Unreviewed, reverting r258931.

Expectations need to include the timeout that is set in mac.

Reverted changeset:

"[ Mac wk2 ] http/tests/media/track-in-band-hls-metadata.html
is flaky crashing."
https://bugs.webkit.org/show_bug.cgi?id=209490
https://trac.webkit.org/changeset/258931

1:14 PM Changeset in webkit [258932] by Chris Dumez
  • 13 edits in trunk/Source/WebKit

Unreviewed, reverting r258928.

Broke the build

Reverted changeset:

"Refactor
ResourceLoadStatisticsStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor()
to return a struct instead of a Vector of pairs"
https://bugs.webkit.org/show_bug.cgi?id=209463
https://trac.webkit.org/changeset/258928

1:13 PM Changeset in webkit [258931] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] http/tests/media/track-in-band-hls-metadata.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209490

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:40 PM Changeset in webkit [258930] by commit-queue@webkit.org
  • 6 edits in trunk/LayoutTests

[ macOS ] fast/images/slower-decoding-than-animation-image.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207859

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-03-24
Reviewed by Simon Fraser.

Instead of using setTimeout() to time the drawing of the animated image
frames, we will listen to the internal event 'webkitImageFrameReady' which
fires after the decoding of a frame finishes.

  • fast/images/slower-decoding-than-animation-image-expected.txt:
  • fast/images/slower-decoding-than-animation-image.html:
  • platform/ios/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
12:36 PM Changeset in webkit [258929] by Alan Coon
  • 8 edits in branches/safari-610.1.7-branch/Source

Versioning.

12:29 PM Changeset in webkit [258928] by wilander@apple.com
  • 13 edits in trunk/Source/WebKit

Refactor ResourceLoadStatisticsStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor() to return a struct instead of a Vector of pairs
https://bugs.webkit.org/show_bug.cgi?id=209463
<rdar://problem/60808759>

Reviewed by Alex Christensen.

This change does three things:

  1. Replaces the Vector<std::pair<RegistrableDomain, WebsiteDataToRemove>> with a new struct called

RegistrableDomainsToDeleteOrRestrictWebsiteDataFor for sending around which domains to delete website data for.

  1. Removes the enum WebsiteDataToRemove, replacing its structure with the members of the above mentioned struct:
  • domainsToDeleteAllCookiesFor
  • domainsToDeleteAllButHttpOnlyCookiesFor
  • domainsToDeleteAllNonCookieWebsiteDataFor
  1. Consistently renames "domainsToDeleteFor" to "domainsToDeleteOrRestrictFor" in preparation for website data

policies that are not about deletion, see for instance recently landed https://trac.webkit.org/changeset/258884.

No new tests. No changed functionality. This code is covered by several existing tests.

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

(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToRemoveWebsiteDataFor): Deleted.

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

(WebKit::domainsToString):
(WebKit::ResourceLoadStatisticsStore::removeDataRecords):

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

(WebKit::WebResourceLoadStatisticsStore::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::WebResourceLoadStatisticsStore::deleteWebsiteDataForRegistrableDomains): Deleted.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:

(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isolatedCopy const):
(WebKit::RegistrableDomainsToDeleteOrRestrictWebsiteDataFor::isEmpty const):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::deleteCookiesForTesting):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::deleteAndRestrictWebsiteDataForRegistrableDomains):
(WebKit::NetworkSession::deleteWebsiteDataForRegistrableDomains): Deleted.

  • NetworkProcess/NetworkSession.h:
12:19 PM Changeset in webkit [258927] by rniwa@webkit.org
  • 4 edits
    2 deletes in trunk/LayoutTests

[ macOS iOS ] fast/parser/parser-yield-timing.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207559

Reviewed by Geoffrey Garen.

Delete the test which was added in r120108 to test the yielding time of the parser.

This test has been flaky everywhere, and there isn't a way to test these kinds of timing
reliably in our layout test infrastructure.

  • fast/parser/parser-yield-timing-expected.txt: Removed.
  • fast/parser/parser-yield-timing.html: Removed.
  • platform/gtk/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
12:14 PM WebKitGTK/2.28.x edited by Michael Catanzaro
(diff)
12:03 PM Changeset in webkit [258926] by Russell Epstein
  • 8 edits in branches/safari-609-branch/Source/JavaScriptCore

Cherry-pick r258901. rdar://problem/60827028

HasIndexedProperty should know about sane chain
https://bugs.webkit.org/show_bug.cgi?id=209457

Reviewed by Saam Barati.

This patch makes it so HasIndexedProperty is aware of
sane chain. This is useful because, most of the time we do an
indexed in it is on an array. If the array has a sane chain (i.e.
no indexed properties on it's prototypes and has the default
prototype chain) then we can just test for the index being a hole.

Note, we could also just convert OOB indices into false but that
should happen in another patch.
https://bugs.webkit.org/show_bug.cgi?id=209456

I didn't add any tests because it turns out we already have a ton.
I know this because I broke most of them repeatedly... >.>

  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
  • dfg/DFGClobberize.h: (JSC::DFG::clobberize):
  • dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode): (JSC::DFG::FixupPhase::setSaneChainIfPossible): (JSC::DFG::FixupPhase::convertToHasIndexedProperty):
  • dfg/DFGNodeType.h:
  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileHasIndexedProperty):
  • ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty): (JSC::FTL::DFG::LowerDFGToB3::speculateAndJump):
  • jit/AssemblyHelpers.h: (JSC::AssemblyHelpers::isEmpty):

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

12:03 PM Changeset in webkit [258925] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r258814. rdar://problem/60827019

decodeSharedBuffer() in WebCoreArgumentCoders.cpp should validate bufferSize
<https://webkit.org/b/209373>
<rdar://problem/60610919>

Reviewed by Darin Adler.

  • Shared/WebCoreArgumentCoders.cpp: (IPC::decodeSharedBuffer):
  • Return early if bufferSize is too big.

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

12:03 PM Changeset in webkit [258924] by Russell Epstein
  • 13 edits
    1 copy
    4 adds in branches/safari-609-branch

Cherry-pick r258180. rdar://problem/60827009

[iOS] Replace "unexpectedly resumed" observer with RunningBoard suspendible assertions
https://bugs.webkit.org/show_bug.cgi?id=205687
<rdar://problem/57890246>

Reviewed by Tim Horton.

Adopt new RunningBoard process assertion to indicate that WebContent processes depend on their
UIProcess (and therefore, the UIProcess must be running if the WebContent process is). This
replaces our "Unexpectedly resumed" assertion which was causing unexpected terminations in some
cases.

  • Configurations/WebKit.xcconfig:
  • Platform/spi/ios/RunningBoardServicesSPI.h: Added.
  • Scripts/process-entitlements.sh:
  • Shared/DependencyProcessAssertion.cpp: Added. (WebKit::DependencyProcessAssertion::DependencyProcessAssertion): (WebKit::DependencyProcessAssertion::~DependencyProcessAssertion):
  • Shared/DependencyProcessAssertion.h: Added.
  • Shared/ios/DependencyProcessAssertionIOS.mm: Added. (WebKit::DependencyProcessAssertion::DependencyProcessAssertion): (WebKit::DependencyProcessAssertion::~DependencyProcessAssertion):
  • Sources.txt:
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:
  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeConnection):
  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

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

11:57 AM Changeset in webkit [258923] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK] Crash in WebKit::LayerTreeHost::LayerTreeHost with bubblewrap sandbox enabled
https://bugs.webkit.org/show_bug.cgi?id=209106

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-24
Reviewed by Adrian Perez de Castro.

The bubblewrap sandbox is blocking access to WebKit's nested Wayland compositor. Apparently
nobody has ever tested the nested Wayland compositor with the sandbox enabled until now.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindWayland):

11:28 AM Changeset in webkit [258922] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS and Mac Debug ] fast/canvas/webgl/simulated-vertexAttrib0-invalid-indicies.html is flaky timing out and crashing.
https://bugs.webkit.org/show_bug.cgi?id=208817

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
11:20 AM Changeset in webkit [258921] by Russell Epstein
  • 17 edits
    2 deletes in branches/safari-609-branch/Source

Revert "Cherry-pick r258658. rdar://problem/60756680"

This reverts commit r258853.

Revert "[Cocoa] Push applicationSDKVersion() down from WebCore into WTF"

This reverts commit r258870.

11:00 AM Changeset in webkit [258920] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

Simplify characterRectsForRange() in WebPage::requestDocumentEditingContext()
https://bugs.webkit.org/show_bug.cgi?id=209462

Reviewed by Wenson Hsieh.

No need to allow by-reference capture by default. Update code to take a const
Range& and unsigned instead of non-const and uint64_t params. The former is
const correct for this code, which doesn't modify anything. The latter is
actually the max width data type callers pass. Simplify the inside of the loop
by using StringView::isEmpty(). Lastly add a constant for the stride length
to make the 1s less mysterious despite the name of the function alluding to
this stride.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext):

10:57 AM Changeset in webkit [258919] by dbates@webkit.org
  • 6 edits in trunk

[iOS][WK2] Set text trait isSingleLineDocument
https://bugs.webkit.org/show_bug.cgi?id=209391
<rdar://problem/60705870>

Reviewed by Darin Adler.

Source/WebKit:

Set the SPI text trait isSingleLineDocument to NO if the focused element is
a <textarea> or contenteditable element because these elements support multi-
line text. For all other elements, consider them single line text fields and
return YES.

Note that I chose to go with the above criterion because it is simple. In reality,
it is possible to make a <textarea> or contenteditable behave like a single-line
document, but it requires going out of your way to to do so and may involve
platform-specific heuristics. See <https://bugs.webkit.org/show_bug.cgi?id=209391#c9>
for more details. For now, let's try something simple.

  • Platform/spi/ios/UIKitSPI.h: Expose more SPI.
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView textInputTraits]):

Tools:

Add a test.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/UIKitSPI.h: Expose more SPI.
10:53 AM Changeset in webkit [258918] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebKit

REGRESSION(r258871): [GTK] test bot exiting early due to too many crashes
https://bugs.webkit.org/show_bug.cgi?id=209467

Reviewed by Darin Adler.

  • WebProcess/WebPage/glib/WebPageGLib.cpp:

(WebKit::WebPage::platformEditorState const): Add a check to prevent start
and end position of selection range is not null.

10:46 AM Changeset in webkit [258917] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

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

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:20 AM Changeset in webkit [258916] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[Web Animations] Clean timeline headers up
https://bugs.webkit.org/show_bug.cgi?id=209482

Patch by Antoine Quint <Antoine Quint> on 2020-03-24
Reviewed by Antti Koivisto.

The AnimationTimeline::removeAnimationsForElement() method isn't used and DocumentTimeline::applyPendingAcceleratedAnimations()
is only used internally in DocumentTimeline so it can be made private.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::removeAnimationsForElement): Deleted.

  • animation/AnimationTimeline.h:
  • animation/DocumentTimeline.h:
10:14 AM Changeset in webkit [258915] by pvollan@apple.com
  • 12 edits in trunk

[Cocoa] Deny access to database mapping service
https://bugs.webkit.org/show_bug.cgi?id=209339
Source/WebKit:

<rdar://problem/56966010>

Reviewed by Brent Fulgham.

In order for the WebContent process to not have permantent access to the database mapping service,
this patch creates an extension for the service in the UI process, sends it to the WebContent
process, where it is consumed. Then, an API call is made which will map the database, and next the
WebContent process will revoke the extension. The WebContent process has then mapped the database,
and access to the database mapping service is no longer needed.

Tested by: fast/sandbox/ios/sandbox-mach-lookup.html

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

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

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

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

  • WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

<rdar://problem/56966010>

Reviewed by Brent Fulgham.

Disable the use of UTTypeRecord swizzling, since this is not needed with the new approach
of denying the database mapping service in this patch.

  • wtf/PlatformUse.h:

LayoutTests:

Reviewed by Brent Fulgham.

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
10:07 AM Changeset in webkit [258914] by achristensen@apple.com
  • 20 edits in trunk

Unreviewed, reverting r258862.

SPI was not what was needed

Reverted changeset:

"Add SPI to move localStorage to a different domain"
https://bugs.webkit.org/show_bug.cgi?id=209260
https://trac.webkit.org/changeset/258862

9:47 AM Changeset in webkit [258913] by commit-queue@webkit.org
  • 5 edits in trunk

[iOS+macOS Debug] ASSERTION FAILED: m_effects.isEmpty() in WebCore::KeyframeEffectStack::~KeyframeEffectStack()
https://bugs.webkit.org/show_bug.cgi?id=208718
<rdar://problem/59956433>

Patch by Antoine Quint <Antoine Quint> on 2020-03-24
Reviewed by Darin Adler.

Source/WebCore:

This assertion is only valid in the case where elements with relevant animations are still alive when the document is
torn down. However, it's fine to have an Element be destroyed with a relevant animation while its document is still alive.

  • animation/KeyframeEffectStack.cpp:

(WebCore::KeyframeEffectStack::~KeyframeEffectStack):

LayoutTests:

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
9:40 AM Changeset in webkit [258912] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] webgl/2.0.0/conformance/attribs/gl-vertexattribpointer.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209480

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
9:14 AM Changeset in webkit [258911] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: [ iOS wk2 Debug ] fast/text/control-characters/visible-control-characters-1.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209450

Unreviewed test gardening.

Adjusted test expectations further.

  • platform/ios-wk2/TestExpectations:
8:46 AM Changeset in webkit [258910] by Chris Lord
  • 2 edits in trunk/Tools

[GTK][WPE] WEB_PROCESS_CMD_PREFIX and others have stopped working
https://bugs.webkit.org/show_bug.cgi?id=209478

Make sure *_PROCESS_CMD_PREFIX variables are whitelisted in the Flatpak sandbox.

Reviewed by Philippe Normand.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

8:41 AM Changeset in webkit [258909] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

[ macOS wk1 ] webgl/2.0.0/conformance2/rendering/blitframebuffer-filter-outofbounds.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=209479

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:

Mar 23, 2020:

10:05 PM Changeset in webkit [258908] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Safari jetsams with repeated drawImage/getImageData
https://bugs.webkit.org/show_bug.cgi?id=207957

Reviewed by Tim Horton.

SubimageCacheWithTimer used a DeferrableOneShotTimer to clear itself, but if content
adds an entry to the cache on every frame (as might content drawing video frames into a canvas)
then the cache was never cleared. Nor was it cleared via a memory warning.

Fix by tracking cache entries by age, and using a repeating timer to prune old images
from the cache. Also hook up the cache to the memory pressure handler, which clears it.

Reduce the timer frequency from 1s to 500ms, since that was observed to reduce the memory use
on the provided testcase from ~600M to ~350M, making jetsam less likely.

Rename m_images to m_imageCounts to make its role clearer.

  • page/cocoa/MemoryReleaseCocoa.mm:

(WebCore::platformReleaseMemory):

  • platform/graphics/cg/SubimageCacheWithTimer.cpp:

(WebCore::SubimageCacheWithTimer::clear):
(WebCore::SubimageCacheAdder::translate):
(WebCore::SubimageCacheWithTimer::SubimageCacheWithTimer):
(WebCore::SubimageCacheWithTimer::pruneCacheTimerFired):
(WebCore::SubimageCacheWithTimer::prune):
(WebCore::SubimageCacheWithTimer::subimage):
(WebCore::SubimageCacheWithTimer::clearImageAndSubimages):
(WebCore::SubimageCacheWithTimer::clearAll):
(WebCore::SubimageCacheWithTimer::invalidateCacheTimerFired): Deleted.

  • platform/graphics/cg/SubimageCacheWithTimer.h:
9:51 PM Changeset in webkit [258907] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebCore

[WinCairo][PlayStation] Failure to build with ENABLE_XSLT=OFF
https://bugs.webkit.org/show_bug.cgi?id=209454

Reviewed by Ross Kirsling.

No new tests, build fix.

  • xml/parser/XMLDocumentParserLibxml2.cpp:
9:48 PM Changeset in webkit [258906] by Alan Bujtas
  • 8 edits
    2 copies in trunk

becu.org: Placeholder text "Search" is cut off
https://bugs.webkit.org/show_bug.cgi?id=209447
<rdar://problem/45951728>

Reviewed by Simon Fraser.

Source/WebCore:

'line-height: initial' ensures that that the placeholder text is visible and properly positioned when the input itself has
incompatible values. This is also what Chrome has in their UA stylesheet.

Test: fast/forms/placeholder-content-line-height.html

  • css/html.css:

(input::placeholder):

LayoutTests:

  • fast/forms/placeholder-content-center-expected.html:
  • fast/forms/placeholder-content-center.html:
  • fast/forms/placeholder-content-line-height-expected.html: Copied from LayoutTests/fast/forms/placeholder-content-center-expected.html.
  • fast/forms/placeholder-content-line-height.html: Copied from LayoutTests/fast/forms/placeholder-content-center.html.
9:17 PM Changeset in webkit [258905] by Simon Fraser
  • 4 edits in trunk

[mac-wk1] fast/scrolling/arrow-key-scroll-in-rtl-document.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=209427

Reviewed by Wenson Hsieh.
Source/WebCore:

In WebKit1, arrow-key scrolls are instantaneous, so scrolling is complete before the test
registers the 'monitor wheel events' callback. However, nothing triggers a subsequent rendering
update, so the test never completes.

Fix by having WheelEventTestMonitor::setTestCallbackAndStartMonitoring() trigger a rendering
update.

  • page/WheelEventTestMonitor.cpp:

(WebCore::WheelEventTestMonitor::setTestCallbackAndStartMonitoring):

Tools:

0 => NULL

  • DumpRenderTree/mac/DumpRenderTree.mm:

(invalidateAnyPreviousWaitToDumpWatchdog):

9:09 PM Changeset in webkit [258904] by Alan Bujtas
  • 13 edits in trunk/Source/WebCore

[LFC] Layout::Box::initialContainingBlock() should return const InitialContainingBlock&
https://bugs.webkit.org/show_bug.cgi?id=209406
<rdar://problem/60749715>

Reviewed by Antti Koivisto.

Use is<InitialContainingBlock> where applicable.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::geometryForBox const):
(WebCore::Layout::FormattingContext::collectOutOfFlowDescendantsIfNeeded):

  • layout/FormattingContextQuirks.cpp:

(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):

  • layout/blockformatting/BlockFormattingContextQuirks.cpp:
  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::absoluteDisplayBox):

  • layout/invalidation/InvalidationState.cpp:

(WebCore::Layout::InvalidationState::markNeedsUpdate):

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::establishesBlockFormattingContext const):
(WebCore::Layout::Box::containingBlock const):
(WebCore::Layout::Box::formattingContextRoot const):
(WebCore::Layout::Box::initialContainingBlock const):
(WebCore::Layout::Box::isInFormattingContextOf const):
(WebCore::Layout::Box::isOverflowVisible const):

  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::isInitialContainingBlock const):
(WebCore::Layout::Box::isInlineTextBox const):
(WebCore::Layout::Box::isLineBreakBox const):
(WebCore::Layout::Box::isReplacedBox const):

  • layout/layouttree/LayoutInitialContainingBlock.cpp:

(WebCore::Layout::InitialContainingBlock::InitialContainingBlock):

  • layout/layouttree/LayoutInlineTextBox.cpp:

(WebCore::Layout::InlineTextBox::InlineTextBox):

  • layout/layouttree/LayoutLineBreakBox.cpp:

(WebCore::Layout::LineBreakBox::LineBreakBox):

  • layout/layouttree/LayoutReplacedBox.cpp:

(WebCore::Layout::ReplacedBox::ReplacedBox):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::outputLayoutBox):

8:40 PM Changeset in webkit [258903] by Simon Fraser
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] tiled-drawing/scrolling/scroll-iframe-latched-selects.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209283

Unreviewed test gardening.

The test needs to call monitorWheelEvents() before each gesture.

  • tiled-drawing/scrolling/scroll-iframe-latched-selects.html:
8:20 PM Changeset in webkit [258902] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit

IPC::Decoder::decodeFixedLengthData() should be marked WARN_UNUSED_RETURN
<https://webkit.org/b/209448>
<rdar://problem/60797998>

Reviewed by Chris Dumez.

  • Platform/IPC/ArgumentCoders.h:

(struct VectorArgumentCoder::decode):

  • Check the return value of Decoder::decodeFixedLengthData().
  • Platform/IPC/Decoder.h:

(IPC::Decoder::decodeFixedLengthData): Add WARN_UNUSED_RETURN.

8:02 PM Changeset in webkit [258901] by keith_miller@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

HasIndexedProperty should know about sane chain
https://bugs.webkit.org/show_bug.cgi?id=209457

Reviewed by Saam Barati.

This patch makes it so HasIndexedProperty is aware of
sane chain. This is useful because, most of the time we do an
indexed in it is on an array. If the array has a sane chain (i.e.
no indexed properties on it's prototypes and has the default
prototype chain) then we can just test for the index being a hole.

Note, we could also just convert OOB indices into false but that
should happen in another patch.
https://bugs.webkit.org/show_bug.cgi?id=209456

I didn't add any tests because it turns out we already have a ton.
I know this because I broke most of them repeatedly... >.>

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::setSaneChainIfPossible):
(JSC::DFG::FixupPhase::convertToHasIndexedProperty):

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

(JSC::DFG::SpeculativeJIT::compileHasIndexedProperty):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty):
(JSC::FTL::DFG::LowerDFGToB3::speculateAndJump):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::isEmpty):

7:44 PM Changeset in webkit [258900] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r257791): event breakpoint icon should be [E]
https://bugs.webkit.org/show_bug.cgi?id=209434

Reviewed by Timothy Hatcher.

  • UserInterface/Images/TypeIcons.svg:
  • UserInterface/Views/PathComponentIcons.css:

(.snapshot-list-icon .icon):
(@media (prefers-color-scheme: dark) .snapshot-list-icon .icon):
Drive-by: make a separate "HeapSnapshotList" target so that it won't be affected if "Events"

is ever changed.

7:38 PM Changeset in webkit [258899] by Justin Fan
  • 4 edits in trunk/Source/WebCore

[ Mac wk2 Debug ] webgpu/whlsl/vector-compare.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209024

Reviewed by Myles C. Maxfield.

Prevent GPUBindGroup destructor from accidentally dereferencing GPUBindGroupAllocator too many times
if the owning GPUDevice has already been destroyed. A GPUBindGroupAllocator should reset whenever its
spawned GPUBindGroups are all cleaned up.

Covered by existing tests.

  • platform/graphics/gpu/GPUBindGroupAllocator.h:
  • platform/graphics/gpu/cocoa/GPUBindGroupAllocatorMetal.mm:

(WebCore::GPUBindGroupAllocator::allocateAndSetEncoders):
(WebCore::GPUBindGroupAllocator::tryReset):

  • platform/graphics/gpu/cocoa/GPUBindGroupMetal.mm:

(WebCore::GPUBindGroup::~GPUBindGroup):

7:22 PM Changeset in webkit [258898] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

REGRESSION(r257759, r258623): Web Inspector: Settings icon sometimes placed below the tab bar
https://bugs.webkit.org/show_bug.cgi?id=208603
<rdar://problem/60108967>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TabBar.js:

(WI.TabBar.prototype.layout):
If the total width of all WI.GeneralTabBarItem is not an integer, it needs to be rounded
when compared to the width of the container WI.TabBar. This is be necessary because CSS
often rounds to the nearest pixel, meaning that 99.5px would actually render as 100px,
whereas 99.4px would render as 99px.

  • UserInterface/Views/TabBar.css:

(body:not(.docked) .tab-bar > .tabs:not(.calculate-width) > .item:not(.pinned)): Added.
(.tab-bar > .tabs.calculate-width > .item:not(.pinned)): Added.
(body:not(.docked) .tab-bar > .tabs > .item:not(.pinned)): Deleted.
(.tab-bar > .tabs.calculate-width > .item): Deleted.
When undocked, force all WI.GeneralTabBarItem to take up as little width as possible when
resizing so that if there isn't enough room for all of them, any that flex-wrap won't be
incorrectly perceived as needing a much larger width.

  • UserInterface/Debug/Bootstrap.css:

(.tab-bar > .navigation-bar .inspect-inspector):
Ensure that the "inspect inspector" navigation item has an integer pixel width.

7:05 PM Changeset in webkit [258897] by dino@apple.com
  • 2 edits in trunk/Tools

webkitpy Git class must expose the repository URL
https://bugs.webkit.org/show_bug.cgi?id=209439
<rdar://problem/60792668>

Reviewed by Simon Fraser.

Some internal tools were relying on the svn_url() method
that was changed/removed in r258164. Add a replacement.

  • Scripts/webkitpy/common/checkout/scm/git.py:

(Git.svn_repository_url):

6:56 PM Changeset in webkit [258896] by Wenson Hsieh
  • 14 edits in trunk/Source

Remove the unused method PasteboardStrategy::uniqueName()
https://bugs.webkit.org/show_bug.cgi?id=209452

Reviewed by Tim Horton.

Source/WebCore:

This was introduced in <https://trac.webkit.org/r107844>, where it was used in the implementation of
Editor::newGeneralClipboard. However, this was subsequently removed in <https://trac.webkit.org/r150351>.

No change in behavior.

  • platform/PasteboardStrategy.h:
  • platform/PlatformPasteboard.h:
  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::uniqueName): Deleted.

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::uniqueName): Deleted.

Source/WebKit:

See WebCore/ChangeLog for more detail.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::getPasteboardUniqueName): Deleted.

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::uniqueName): Deleted.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

See WebCore/ChangeLog for more detail.

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::uniqueName): Deleted.

6:40 PM Changeset in webkit [258895] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

Layout Test imported/w3c/web-platform-tests/hr-time/test_cross_frame_start.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196944

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:

Remove flaky expectation for the test.

6:31 PM Changeset in webkit [258894] by commit-queue@webkit.org
  • 12 edits in trunk

Unreviewed, reverting r258891.
https://bugs.webkit.org/show_bug.cgi?id=209459

Introduced layout test failures (Requested by perarne on
#webkit).

Reverted changeset:

"[Cocoa] Deny access to database mapping service"
https://bugs.webkit.org/show_bug.cgi?id=209339
https://trac.webkit.org/changeset/258891

6:22 PM Changeset in webkit [258893] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Fix memory leak introduced in r257726
https://bugs.webkit.org/show_bug.cgi?id=208399

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-23
Reviewed by John Wilander.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::websiteDataStore):
We were leaking page configurations.

5:42 PM Changeset in webkit [258892] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

[Win] http/tests/misc/last-modified-parsing.html always fails on Windows EWS
<https://webkit.org/b/209455>

Unreviewed test gardening.

  • platform/win/TestExpectations:
5:15 PM Changeset in webkit [258891] by pvollan@apple.com
  • 12 edits in trunk

[Cocoa] Deny access to database mapping service
https://bugs.webkit.org/show_bug.cgi?id=209339
Source/WebKit:

<rdar://problem/56966010>

Reviewed by Brent Fulgham.

In order for the WebContent process to not have permantent access to the database mapping service,
this patch creates an extension for the service in the UI process, sends it to the WebContent
process, where it is consumed. Then, an API call is made which will map the database, and next the
WebContent process will revoke the extension. The WebContent process has then mapped the database,
and access to the database mapping service is no longer needed.

Tested by: fast/sandbox/ios/sandbox-mach-lookup.html

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

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

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

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

  • WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

<rdar://problem/56966010>

Reviewed by Brent Fulgham.

Disable the use of UTTypeRecord swizzling, since this is not needed with the new approach
of denying the database mapping service in this patch.

  • wtf/PlatformUse.h:

LayoutTests:

Reviewed by Brent Fulgham.

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
5:06 PM Changeset in webkit [258890] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Add console message when legacy TLS is used
https://bugs.webkit.org/show_bug.cgi?id=209444

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-23
Reviewed by Darin Adler.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::didReceiveResponse):

4:48 PM Changeset in webkit [258889] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 Debug ] fast/text/control-characters/visible-control-characters-1.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=209450

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
4:42 PM Changeset in webkit [258888] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Removed FIXME comment for work that had already been done.

  • UIProcess/ios/WKSyntheticTapGestureRecognizer.mm:

(-[WKSyntheticTapGestureRecognizer touchesEnded:withEvent:]):

4:28 PM Changeset in webkit [258887] by ysuzuki@apple.com
  • 9 edits
    1 add in trunk

[JSC] Caller of Delete IC should emit write-barrier onto owner
https://bugs.webkit.org/show_bug.cgi?id=209392
<rdar://problem/60683173>

Reviewed by Saam Barati.

JSTests:

  • stress/delete-ic-requires-write-barrier.js: Added.

(foo):

Source/JavaScriptCore:

DeleteIC can change Structure of the owner cell in the fast path. However it is not emitting write-barrier,
while we are writing a Structure cell id into a JSObject's header.
In this patch,

  1. Emit write-barrier in baseline. Be careful about when emitting write-barrier since it clobbers registers.
  2. DFG and FTL recognize DeleteById / DeleteByVal in DFGStoreBarrierInsertionPhase.
  3. DFGStoreBarrierInsertionPhase only accepts nodes which base is speculated as a Cell. Current DeleteById / DeleteByVal can have UntypedUse base value, but we miss emitting write-barrier DeleteById / DeleteByVal with UntypedUse in the fast path. In this patch, we optimize DeleteById / DeleteByVal only when we speculate child1 as a cell. We can take the further steps after fixing this bug, e.g. (1) accepting UntypedUse in store-barrier-insertion[1] or (2) emitting write-barrier if child1's speculation is UntypedUse. For now, we fix the bug by taking a generic path when child1 is not speculated as a cell. And we can optimize it in a separate change[2].

This is following the design of PutIC.
Currently, we use ShouldFilterBase for emitWriteBarrier. But we could use UnconditionalWriteBarrier here since
we already filter non-cells in Baseline's hot path. I filed it as a separate bug in [3].

[1]: https://bugs.webkit.org/show_bug.cgi?id=209396
[2]: https://bugs.webkit.org/show_bug.cgi?id=209397
[3]: https://bugs.webkit.org/show_bug.cgi?id=209395

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compileDeleteById):
(JSC::DFG::SpeculativeJIT::compileDeleteByVal):

  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileDeleteById):
(JSC::FTL::DFG::LowerDFGToB3::compileDeleteByVal):

  • jit/JIT.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emit_op_del_by_id):
(JSC::JIT::emit_op_del_by_val):
(JSC::JIT::emit_op_put_by_id):
(JSC::JIT::emitWriteBarrier):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emit_op_put_by_id):

4:21 PM Changeset in webkit [258886] by Alan Coon
  • 1 copy in tags/Safari-610.1.7.3.1

Tag Safari-610.1.7.3.1.

4:18 PM Changeset in webkit [258885] by Jason_Lawrence
  • 3 edits in trunk/LayoutTests

[ Mac Debug and iOS ] imported/w3c/web-platform-tests/navigation-timing/test_timing_attributes_order.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209446

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
4:00 PM Changeset in webkit [258884] by wilander@apple.com
  • 30 edits
    3 adds in trunk

Add the capability to change all of a website's cookies to SameSite=Strict
https://bugs.webkit.org/show_bug.cgi?id=209369
<rdar://problem/60710690>

Reviewed by Alex Christensen and David Kilzer.

Source/WebCore:

Test: http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict.html

  • platform/network/NetworkStorageSession.cpp:

(WebCore::NetworkStorageSession::setAllCookiesToSameSiteStrict):

Stub function for non-Cocoa platforms.

  • platform/network/NetworkStorageSession.h:
  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::setAllCookiesToSameSiteStrict):

  • testing/Internals.h:

Added code to expose SameSite=None and path properties of cookies.
However, they don't seem to carry over so I'll have to revisit the
internal workings.

Source/WebKit:

These changes add test infrastructure to run function
WebCore::NetworkStorageSession::setAllCookiesToSameSiteStrict() in the
network process.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setToSameSiteStrictCookiesForTesting):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetResourceLoadStatisticsToSameSiteStrictCookiesForTesting):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::setToSameSiteStrictCookiesForTesting):

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

(WebKit::WebsiteDataStore::setResourceLoadStatisticsToSameSiteStrictCookiesForTesting):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Source/WTF:

  • wtf/PlatformHave.h:

Adds HAVE_CFNETWORK_SAMESITE_COOKIE_API for macOS Catalina and up,
iOS 13 and up, Catalyst, watchOS, and Apple TV.

Tools:

These changes add TestRunner function statisticsSetToSameSiteStrictCookies().

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::statisticsSetToSameSiteStrictCookies):
(WTR::TestRunner::statisticsCallDidSetToSameSiteStrictCookiesCallback):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::setStatisticsToSameSiteStrictCookies):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didSetToSameSiteStrictCookies):

  • WebKitTestRunner/TestInvocation.h:

LayoutTests:

  • http/tests/resourceLoadStatistics/resources/set-all-kinds-of-cookies.php: Added.
  • http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict-expected.txt: Added.
  • http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict.html: Added.
  • platform/ios/TestExpectations:

Marked http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict.html
as Pass.

  • platform/mac-wk2/TestExpectations:

Marked http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict.html
as Pass for Catalina+.

  • platform/wk2/TestExpectations:

Skipped http/tests/resourceLoadStatistics/set-all-cookies-to-same-site-strict.html
since it's only available on macOS Catalina and up and the functionality is not
implemented on non-Cocoa platforms.

3:59 PM Changeset in webkit [258883] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WPE][GTK] Allow distributors to brand user agent
https://bugs.webkit.org/show_bug.cgi?id=162611

Unreviewed, un-break my previous commit.

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-23

  • platform/glib/UserAgentGLib.cpp:

(WebCore::standardUserAgent):

3:53 PM Changeset in webkit [258882] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

[iOS WK2] compositing/overflow/dynamic-composited-scrolling-status.html asserts
https://bugs.webkit.org/show_bug.cgi?id=209440
<rdar://problem/60705261>

Reviewed by Wenson Hsieh.

nonFastScrollableRectsForTesting() needs to eagerly update event regions after r258528,
as we do for touchEventRectsForEventForTesting().

Also renamed the function so it's clear that it's for testing only.

  • page/Page.cpp:

(WebCore::Page::nonFastScrollableRectsForTesting):
(WebCore::Page::nonFastScrollableRects): Deleted.

  • page/Page.h:
  • testing/Internals.cpp:

(WebCore::Internals::nonFastScrollableRects const):

3:48 PM Changeset in webkit [258881] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk1 Debug ] http/tests/css/shared-stylesheet-mutation-preconstruct.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209442

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:44 PM Changeset in webkit [258880] by dino@apple.com
  • 4 edits in trunk

Set important EGL context attributes
https://bugs.webkit.org/show_bug.cgi?id=208724

Patch by James Darpinian <James Darpinian> on 2020-03-06
Reviewed by Dean Jackson.

Re-landing after r258875.

These EGL context attributes are important to make ANGLE's validation correct for
WebGL contexts. ROBUST_RESOURCE_INITIALIZATION is especially important; the lack
of it may be a root cause of some of the test flakiness we have seen. With this
change WebKit's EGL context attributes now match Chromium's for ANGLE/WebGL
contexts.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

3:14 PM Changeset in webkit [258879] by Nikos Mouchtaris
  • 2 edits in trunk/Tools

Uneviewed, added myself to contributors.json.

  • Scripts/webkitpy/common/config/contributors.json:
2:59 PM Changeset in webkit [258878] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Win] Unreviewed test gardening.

  • platform/win/TestExpectations:
2:50 PM Changeset in webkit [258877] by commit-queue@webkit.org
  • 5 edits in trunk

[GTK] Allow distributors to brand user agent
https://bugs.webkit.org/show_bug.cgi?id=162611

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-23
Reviewed by Adrian Perez de Castro.

.:

Add build option for inserting distributor branding into the user agent string.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WebCore:

  • platform/glib/UserAgentGLib.cpp:

(WebCore::buildUserAgentString):

2:28 PM Changeset in webkit [258876] by Alan Coon
  • 8 edits in branches/safari-610.1.7.3-branch/Source

Versioning.

2:28 PM Changeset in webkit [258875] by dino@apple.com
  • 11 edits in trunk

[WebGL] Skip vertexAttrib0 simulation when using ANGLE
https://bugs.webkit.org/show_bug.cgi?id=209416
<rdar://problem/60765734>

Reviewed by Antoine Quint.

Source/WebCore:

When using ANGLE as a backend, we do not need to simulate a
missing vertexAttrib0 at the WebGL layer, since ANGLE will
handle it for us.

This causes a couple of tests to begin passing (they were marked as
failures). It also allows us to re-land r258025, which was rolled
out in r258226.

  • html/canvas/WebGL2RenderingContext.cpp: Wrap any code that does vertexAttrib0

simulation in a !USE(ANGLE).
(WebCore::WebGL2RenderingContext::initializeVertexArrayObjects):

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::initializeVertexArrayObjects):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::~WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::disableVertexAttribArray):
(WebCore::WebGLRenderingContextBase::validateDrawArrays):
(WebCore::WebGLRenderingContextBase::validateDrawElements):
(WebCore::WebGLRenderingContextBase::drawArrays):
(WebCore::WebGLRenderingContextBase::drawElements):
(WebCore::WebGLRenderingContextBase::getActiveUniform):
(WebCore::WebGLRenderingContextBase::getVertexAttrib):
(WebCore::WebGLRenderingContextBase::vertexAttribfImpl):
(WebCore::WebGLRenderingContextBase::vertexAttribfvImpl):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLVertexArrayObjectBase.cpp:

(WebCore::WebGLVertexArrayObjectBase::unbindBuffer):

LayoutTests:

Remove the console logging that is no longer output when using ANGLE.
Remove failing expectations for some tests.

  • fast/canvas/webgl/index-validation-with-subsequent-draws-expected.txt:
  • fast/canvas/webgl/out-of-bounds-simulated-vertexAttrib0-drawArrays-expected.txt:
  • platform/mac/TestExpectations:
2:09 PM Changeset in webkit [258874] by ysuzuki@apple.com
  • 9 edits
    1 add in trunk

[JSC] DFG OSR exit cannot find StructureStubInfo for put_by_val if CodeBlock is once converved from Baseline to LLInt
https://bugs.webkit.org/show_bug.cgi?id=209327
<rdar://problem/60631061>

Reviewed by Saam Barati.

JSTests:

  • stress/osr-exit-attempts-to-find-stubinfo-which-is-cleared-by-previous-baseline-to-llint-conversion.js: Added.

(setter):
(foo):

Source/JavaScriptCore:

DFG compiles op_put_by_val as PutById and inlines SetterCall only when DFG found StructureStubInfo for this op_put_by_val.
However, it is still possible that DFG OSR exit cannot find StructureStubInfo for SetterCall generated by op_put_by_val.
Let's consider the following scenario.

  1. Baseline CodeBlock (A) is compiled.
  2. (A) gets DFG (B).
  3. Since (A) collects enough information for put_by_val, (B) can get StructureStubInfo from (A) and compile it as inlined Setter call.
  4. (A)'s JITData is destroyed since it is not executed. Then, (A) becomes LLInt.
  5. The CodeBlock inlining (A) gets OSR exit. So (A) is executed and (A) eventually gets Baseline CodeBlock again.
  6. (B) gets OSR exit. (B) attempts to search for StructureStubInfo in (A) for PutById (originally, put_by_val). But it does not exist since (A)'s JITData is cleared once.

We should just link to doneTarget of ByValInfo when the SetterCall is generated by op_put_by_val. ByValInfo and its doneTarget always exists per op_put_by_val.

  • bytecode/ByValInfo.h:

(JSC::ByValInfo::ByValInfo):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::findByValInfo):

  • bytecode/CodeBlock.h:
  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::callerReturnPC):

  • jit/JITOpcodes.cpp:

(JSC::JIT::privateCompileHasIndexedProperty):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileHasIndexedProperty):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::privateCompilePutByVal):
(JSC::JIT::privateCompilePutByValWithCachedId):

2:00 PM Changeset in webkit [258873] by dbates@webkit.org
  • 10 edits
    1 add in trunk

Support inserting text or dictation alternative by simulating keyboard input
https://bugs.webkit.org/show_bug.cgi?id=209380
<rdar://problem/59445102>

Reviewed by Darin Adler.

Source/WebKit:

As a workaround for sites the implement their own editing system (e.g. facebook.com)
add a new insertion option that makes the insertion having a passing resemblance
of a person typing. The resemblance is achieved by dispatching DOM events with type
"keydown", "keyup", and "change".

  • Shared/Cocoa/InsertTextOptions.cpp:

(IPC::ArgumentCoder<WebKit::InsertTextOptions>::encode):
(IPC::ArgumentCoder<WebKit::InsertTextOptions>::decode):
Encode and decode the new option.

  • Shared/Cocoa/InsertTextOptions.h: Default the new option, shouldSimulateKeyboardInput,

to false to keep our current behavior.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _shouldSimulateKeyboardInputOnTextInsertion]): Added. Returns NO when
building without USE(TEXT_INTERACTION_ADDITIONS) to keep the current behavior.

(-[WKContentView insertText:]):
(-[WKContentView insertText:alternatives:style:]):
Set the shouldSimulateKeyboardInput option.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::insertDictatedTextAsync):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::insertTextAsync):
If shouldSimulateKeyboardInput is false then do what we do now. Otherwise, dispatch a DOM event
of type "keydown" and perform the insertion. Then dispatch DOM events of type "keyup" and "change".

Tools:

Add tests to ensure that DOM events are dispatched on insertion when shouldSimulateKeyboardInput
is enabled.

I also added a convenience assertion function, EXPECT_NS_EQUAL, that can
compare NSObjects so long as they implement -isEqual and -description. I
make use of this to compare the actual array of fired DOM events types to
an expected array.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::shouldSimulateKeyboardInputOnTextInsertionOverride):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/TestCocoa.h:

(TestWebKitAPI::Util::assertNSObjectsAreEqual): Added.
(EXPECT_NS_EQUAL): Added.

  • TestWebKitAPI/ios/insert-text.html: Added.
1:53 PM Changeset in webkit [258872] by Alan Coon
  • 8 edits in branches/safari-609-branch/Source

Versioning.

1:50 PM Changeset in webkit [258871] by Darin Adler
  • 36 edits in trunk

Change TextIterator::rangeLength to not require a live range
https://bugs.webkit.org/show_bug.cgi?id=209207

Reviewed by Antti Koivisto.

Source/WebCore:

  • Renamed TextIterator::rangeLength to characterCount.
  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::rangeMatchesTextNearRange): Use characterCount.
(WebCore::resetNodeAndOffsetForReplacedNode): Ditto.
(WebCore::AXObjectCache::nextCharacterOffset): Ditto.

  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::AXObjectCache::nodeTextChangePlatformNotification): Ditto.

  • accessibility/atk/WebKitAccessibleHyperlink.cpp:

(rangeLengthForObject): Ditto.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _convertToNSRange:]): Ditto.

  • dom/SimpleRange.h: Export another constructor.
  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::applyAlternativeTextToRange):
Use characterCount.

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyBlockStyle): Ditto.

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs): Ditto.

  • editing/Editing.cpp:

(WebCore::indexForVisiblePosition): Ditto.

  • editing/TextCheckingHelper.cpp:

(WebCore::TextCheckingParagraph::rangeLength const): Ditto.
(WebCore::TextCheckingParagraph::offsetTo const): Ditto.
(WebCore::TextCheckingParagraph::checkingStart const): Ditto.
(WebCore::TextCheckingParagraph::checkingEnd const): Ditto.
(WebCore::TextCheckingParagraph::checkingLength const): Ditto.
(WebCore::TextCheckingParagraph::automaticReplacementStart const): Ditto.
(WebCore::TextCheckingParagraph::automaticReplacementLength const): Ditto.
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar): Ditto.
(WebCore::TextCheckingHelper::isUngrammatical const): Ditto.

  • editing/TextIterator.cpp:

(WebCore::TextIterator::rangeLength): Deleted.
(WebCore::characterCount): Like the baove but the argument is SimpleRange
and return is CharacterCount. Even though each individual node is limited
to 32-bit size, ranges covering multiple nodes could have a count of
characters that exceeds 32 bits, so CharacterCount is size_t.
(WebCore::TextIterator::getLocationAndLengthFromRange): Use characterCount.

  • editing/TextIterator.h: Added characterCount function,

CharacterCount and CharacterRange types. Removed TextIterator::rangeLength.
Added FIXME comments about the next steps.

  • editing/VisiblePosition.cpp:

(WebCore::makeBoundaryPoint): Added.

  • editing/VisiblePosition.h: Added makeBoundaryPoint. Also removed

extraneous forward declarations and moved some function bodies out of the
class definition.

  • editing/VisibleUnits.cpp:

(WebCore::distanceBetweenPositions): Changed return type to ptrdiff_t.
Use characterCount.

  • editing/VisibleUnits.h: Updated for the above.
  • editing/cocoa/DataDetection.mm:

(WebCore::detectItemAtPositionWithRange): Use characterCount.

  • editing/cocoa/DictionaryLookup.mm:

(WebCore::DictionaryLookup::rangeForSelection): Ditto.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.

  • editing/ios/DictationCommandIOS.cpp:

(WebCore::DictationCommandIOS::doApply): Ditto.

  • editing/mac/DictionaryLookupLegacy.mm:

(WebCore::DictionaryLookup::rangeForSelection): Ditto.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.

  • page/EventHandler.cpp:

(WebCore::textDistance): Ditto.

Source/WebKit:

  • Shared/EditingRange.cpp:

(WebKit::EditingRange::toRange): Use characterCount.

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::insertionPointFromCurrentSelection): Changed return type to
CharacterCount and use characterCount.
(WebKit::WebEditorClient::supportsGlobalSelection): Tweaked #if.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::targetFrameForEditing): Use characterCount.

  • WebProcess/WebPage/glib/WebPageGLib.cpp:

(WebKit::WebPage::platformEditorState const): Ditto.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::rangeNearPositionMatchesText): Ditto.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::platformEditorState const): Ditto.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebEditorClient.mm:

(insertionPointFromCurrentSelection): Use characterCount.
(WebEditorClient::requestCandidatesForSelection): Ditto.

  • WebView/WebFrame.mm:

(-[WebFrame _convertToDOMRange:rangeIsRelativeTo:]): Ditto.

LayoutTests:

  • editing/mac/spelling/autocorrection-contraction-expected.txt: Update these expected

results because of changes to delegate callbacks. The test is still passing and this
change is only in the legacy WebKit case (there is a separate result for modern WebKit).
This seems to be a progression, not evidence of a bug.

1:19 PM Changeset in webkit [258870] by Russell Epstein
  • 16 edits
    2 adds in branches/safari-609-branch/Source

[Cocoa] Push applicationSDKVersion() down from WebCore into WTF
https://bugs.webkit.org/show_bug.cgi?id=209030

Reviewed by Simon Fraser.

Source/JavaScriptCore:

dyld_get_program_sdk_version() gives you the wrong answer in the Web Process (or at least
not the answer you actually want). There are already facilities for the UI Process to tell
the Web Process what the real value is, but those functions are currently in WebCore,
which is inaccessible to WTF. This patch is in preparation for
https://bugs.webkit.org/show_bug.cgi?id=208969 which needs to know this information in WTF.

I also found a few places which were calling dyld_get_program_sdk_version() in JavaScriptCore
and WebCore (which is wrong because those libraries exist in the Web Process), and have fixed
them up to use applicationSDKVersion() instead.

  • API/JSWrapperMap.mm:

(supportsInitMethodConstructors):

Source/WebCore:

  • html/HTMLObjectElement.cpp:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback const):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):

  • platform/RuntimeApplicationChecks.h:
  • platform/Timer.cpp:

(WebCore::shouldSuppressThreadSafetyCheck):

  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::applicationSDKVersionOverride): Deleted.
(WebCore::setApplicationSDKVersion): Deleted.
(WebCore::applicationSDKVersion): Deleted.

Source/WebKit:

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultCSSOMViewScrollingAPIEnabled):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/PlatformMac.cmake:
  • wtf/cocoa/RuntimeApplicationChecksCocoa.cpp: Added.
  • wtf/cocoa/RuntimeApplicationChecksCocoa.h: Added.

(WTF::applicationSDKVersionOverride):
(WTF::setApplicationSDKVersion):
(WTF::applicationSDKVersion):

12:46 PM Changeset in webkit [258869] by youenn@apple.com
  • 33 edits in trunk/Source

Rename blankURL to aboutBlankURL
https://bugs.webkit.org/show_bug.cgi?id=209344

Reviewed by Darin Adler.

Source/WebCore:

No change of behavior.

  • dom/Document.cpp:

(WebCore::Document::setURL):
(WebCore::Document::completeURL const):
(WebCore::Document::ensureTemplateDocument):

  • dom/Document.h:

(WebCore::Document::urlForBindings const):

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::parserContextForElement):

  • dom/Node.cpp:

(WebCore::Node::baseURI const):

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::WebContentReader::readWebArchive):

  • editing/markup.cpp:

(WebCore::createFragmentFromMarkup):

  • html/DOMURL.cpp:

(WebCore::DOMURL::create):

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::openURL):
(WebCore::HTMLFrameElementBase::location const):

  • html/parser/XSSAuditor.cpp:

(WebCore::XSSAuditor::filterScriptToken):
(WebCore::XSSAuditor::filterObjectToken):
(WebCore::XSSAuditor::filterParamToken):
(WebCore::XSSAuditor::filterEmbedToken):
(WebCore::XSSAuditor::filterFormToken):
(WebCore::XSSAuditor::filterInputToken):
(WebCore::XSSAuditor::filterButtonToken):
(WebCore::XSSAuditor::isLikelySafeResource):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::maybeLoadEmpty):

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::serverRedirectSourceForHistory const):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadWithDocumentLoader):

  • loader/HistoryController.cpp:

(WebCore::HistoryController::currentItemShouldBeReplaced const):
(WebCore::HistoryController::initializeItem):

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::requestFrame):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::createFromSelection):

  • page/Location.cpp:

(WebCore::Location::url const):

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::shouldInheritSecurityOriginFromOwner):

  • platform/win/ClipboardUtilitiesWin.cpp:

(WebCore::markupToCFHTML):

  • svg/SVGImageLoader.cpp:

(WebCore::SVGImageLoader::sourceURI const):

Source/WebKit:

  • UIProcess/API/C/WKPage.cpp:

(WKPageLoadPlainTextStringWithUserData):

  • UIProcess/API/C/WKPageGroup.cpp:

(WKPageGroupAddUserStyleSheet):
(WKPageGroupAddUserScript):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_load_plain_text):

  • UIProcess/Inspector/WebPageDebuggable.cpp:

(WebKit::WebPageDebuggable::url const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadDataWithNavigationShared):
(WebKit::WebPageProxy::loadWebArchiveData):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadData):
(WebKit::WebPage::loadAlternateHTML):
(WebKit::WebPage::dumpHistoryForTesting):
(WebKit::WebPage::addUserScript):
(WebKit::WebPage::addUserStyleSheet):

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::updateGlobalHistory):

  • WebView/WebFrame.mm:

(-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]):

Source/WTF:

Rename blankURL to aboutBlankURL and allow using it without WTF:: prefix.

  • wtf/URL.cpp:

(WTF::aboutBlankURL):
(WTF::blankURL): Deleted.

  • wtf/URL.h:
12:33 PM Changeset in webkit [258868] by youenn@apple.com
  • 4 edits
    1 delete in trunk/Source/WebCore

Remove DOMCache::m_records
https://bugs.webkit.org/show_bug.cgi?id=209425

Reviewed by Alex Christensen.

We do not need to keep references of FetchRequest and FetchResponse since we clone them before exposing them.
For that reason, remove m_records and directly use records given from the CacheStorageConnection.
Minor refactoring to modernize/improve code readability.

This is a first step towards a future refactoring that will reduce the sending of records from network process to web process
based on the request parameters: record filtering will be done in network process instead of web process.

No change of behavior.

  • Modules/cache/DOMCache.cpp:

(WebCore::createResponse):
(WebCore::DOMCache::doMatch):
(WebCore::DOMCache::cloneResponses):
(WebCore::DOMCache::matchAll):
(WebCore::createRequest):
(WebCore::DOMCache::keys):
(WebCore::DOMCache::retrieveRecords):
(WebCore::DOMCache::queryCache):
(WebCore::DOMCache::queryCacheWithTargetStorage):
(WebCore::DOMCache::batchDeleteOperation):
(WebCore::DOMCache::batchPutOperation):
(WebCore::copyRequestRef): Deleted.
(WebCore::queryCacheMatch): Deleted.
(WebCore::DOMCache::updateRecords): Deleted.

  • Modules/cache/DOMCache.h:
12:32 PM Changeset in webkit [258867] by Alan Coon
  • 1 copy in branches/safari-610.1.7.3-branch

New branch.

12:31 PM Changeset in webkit [258866] by commit-queue@webkit.org
  • 12 edits in trunk

XMLHttpRequest: getAllResponseHeaders() sorting
https://bugs.webkit.org/show_bug.cgi?id=200565

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

LayoutTests/imported/w3c:

Update improved test result.

  • web-platform-tests/xhr/getallresponseheaders-expected.txt:

Source/WebCore:

Sort headers using the ASCII-uppercase header name as key but use ASCII-lowercase header
names in the string result.

Nehavior matches Firefox and Chrome.

Test: imported/web-platform-tests/xhr/getallresponseheaders.htm

[1] https://xhr.spec.whatwg.org/#dom-xmlhttprequest-getallresponseheaders

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::getAllResponseHeaders const):

Source/WTF:

Add a new manipulator that can efficiently convert
Strings to lower or upper ASCII.

  • wtf/text/StringConcatenate.h:

(WTF::lowercase):
(WTF::uppercase):

  • wtf/text/StringView.cpp:

(WTF::getCharactersWithASCIICaseInternal):
(WTF::StringView::getCharactersWithASCIICase const):

  • wtf/text/StringView.h:

LayoutTests:

Update improved test results.

  • platform/ios/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt:
  • platform/mac-highsierra/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt:
  • platform/mac-mojave/imported/w3c/web-platform-tests/xhr/getallresponseheaders-expected.txt:
12:05 PM Changeset in webkit [258865] by Ross Kirsling
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, address Yusuke's feedback on r258801.

  • builtins/RegExpPrototype.js:

(globalPrivate.hasObservableSideEffectsForRegExpSplit):

  • bytecompiler/NodesCodegen.cpp:

(JSC::BytecodeIntrinsicNode::emit_intrinsic_tryGetById):

11:49 AM Changeset in webkit [258864] by Truitt Savell
  • 13 edits in trunk/Source/WebCore

Unreviewed, reverting r258847.

Broke testing on Mac Debug with an Assert

Reverted changeset:

"[LFC] Layout::Box::initialContainingBlock() should return
const InitialContainingBlock&"
https://bugs.webkit.org/show_bug.cgi?id=209406
https://trac.webkit.org/changeset/258847

11:47 AM Changeset in webkit [258863] by Kate Cheney
  • 5 edits in trunk

Add checks for app-bound navigations when evaluating user style sheets
https://bugs.webkit.org/show_bug.cgi?id=209368
<rdar://problem/60204230>

Reviewed by Brent Fulgham.

Source/WebCore:

  • page/Page.cpp:

(WebCore::Page::injectUserStyleSheet):
If the style sheet is for a specific WebView, it will have a pageID
and we can check for app-bound navigation in the page object.

  • style/StyleScopeRuleSets.cpp:

(WebCore::Style::ScopeRuleSets::initializeUserStyle):
If the user style sheet is being applied to all WebViews, we can check for
for a page's existence and navigation state here before the style sheet is
updated.

Tools:

Tested cases based on those in UserContentController.mm.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(-[InAppBrowserSchemeHandler webView:startURLSchemeTask:]):
(expectScriptEvaluatesToColor):
(TEST):

11:40 AM Changeset in webkit [258862] by achristensen@apple.com
  • 20 edits in trunk

Add SPI to move localStorage to a different domain
https://bugs.webkit.org/show_bug.cgi?id=209260
<rdar://problem/60285683>

Reviewed by Brady Eidson.

Source/WebKit:

Covered by an API test.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::renameDomainInWebsiteData):
(WebKit::NetworkProcess::getLocalStorageOriginDetails):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/WebStorage/LocalStorageNamespace.cpp:

(WebKit::LocalStorageNamespace::renameDomain):

  • NetworkProcess/WebStorage/LocalStorageNamespace.h:
  • NetworkProcess/WebStorage/StorageArea.cpp:

(WebKit::StorageArea::close):

  • NetworkProcess/WebStorage/StorageArea.h:
  • NetworkProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::renameDomain):

  • NetworkProcess/WebStorage/StorageManager.h:
  • NetworkProcess/WebStorage/StorageManagerSet.cpp:

(WebKit::StorageManagerSet::renameDomain):

  • NetworkProcess/WebStorage/StorageManagerSet.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _renameDomain:to:forDataOfTypes:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::renameDomainInWebsiteData):

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

(WebKit::WebsiteDataStore::renameDomainInWebsiteData):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

11:23 AM Changeset in webkit [258861] by Ross Kirsling
  • 5 edits in trunk

Catch parameters must not be lexically redeclared
https://bugs.webkit.org/show_bug.cgi?id=208976

Reviewed by Keith Miller.

JSTests:

  • test262/expectations.yaml:

Mark four test cases as passing.

Source/JavaScriptCore:

From https://tc39.es/ecma262/#sec-try-statement-static-semantics-early-errors:

Catch : catch ( CatchParameter ) Block

It is a Syntax Error if any element of the BoundNames of CatchParameter
also occurs in the LexicallyDeclaredNames of Block.

In other words, let/const/class/function declarations in the immediate catch block scope
must not shadow catch parameters.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseTryStatement):
(JSC::Parser<LexerType>::parseBlockStatement):

  • parser/Parser.h:

(JSC::Scope::Scope):
(JSC::Scope::setIsCatchBlockScope): Added.
(JSC::Scope::isCatchBlockScope): Added.
(JSC::Parser::declareVariable):
(JSC::Parser::declareFunction):

11:10 AM Changeset in webkit [258860] by youenn@apple.com
  • 2 edits in trunk/Tools

Disable TestWebKitAPI.ProcessSwap.GetUserMediaCaptureState if getUserMedia is not supported
https://bugs.webkit.org/show_bug.cgi?id=209428

Reviewed by Jonathan Bedard.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
11:01 AM Changeset in webkit [258859] by Jacob Uphoff
  • 2 edits in trunk/LayoutTests

Fixing merge conflict

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
10:50 AM Changeset in webkit [258858] by graouts@webkit.org
  • 4 edits in trunk/Source

DocumentTimeline / CSSTransition objects are leaking on CNN.com
https://bugs.webkit.org/show_bug.cgi?id=208069
<rdar://problem/59680143>

Reviewed by Darin Adler.

Integrating post-commit review feedback from Darin.

Source/WebCore:

  • testing/Internals.cpp:

(WebCore::Internals::animationWithIdExists const):

Source/WTF:

  • wtf/ListHashSet.h:

(WTF::=):

10:49 AM WebKitGTK/2.28.x edited by clopez@igalia.com
(diff)
10:34 AM Changeset in webkit [258857] by commit-queue@webkit.org
  • 7 edits in trunk/Source

REGRESSION(r249808): [GTK] Crash in JSC Config::permanentlyFreeze() on architecture ppc64el
https://bugs.webkit.org/show_bug.cgi?id=209236

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-23
Reviewed by Mark Lam.

Source/JavaScriptCore:

  • heap/MarkedBlock.h: Use new CeilingOnPageSize.
  • runtime/JSCConfig.cpp:

(JSC::Config::permanentlyFreeze): Use pageSize instead of vmPageSize.

  • runtime/JSCConfig.h: Use new CeilingOnPageSize.

Source/WTF:

Add new CeilingOnPageSize constants, for use in JSC, in order to centralize our compile-time
page size guessing into one place. Improve the implementation of pageSize() to
RELEASE_ASSERT() when CeilingOnPageSize is wrong, so we can detect and fix it if so. (It
will be even easier to detect if we change RELEASE_ASSERT_WITH_MESSAGE() to actually print
its message in release builds.) Change pageSize() to use sysconf(_SC_PAGESIZE), which is
specified by POSIX, instead of getpagesize(), which is nonstandard.

  • wtf/PageBlock.cpp:

(WTF::systemPageSize):
(WTF::pageSize):

  • wtf/PageBlock.h:
10:00 AM Changeset in webkit [258856] by Russell Epstein
  • 5 edits
    2 adds in branches/safari-609-branch

Cherry-pick r258799. rdar://problem/60756681

Content-Type & Nosniff Ignored on XML External Entity Resources
<https://webkit.org/b/191171>
<rdar://problem/45763222>

Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/security/contentTypeOptions/nosniff-xml-external-entity.xhtml

  • platform/MIMETypeRegistry.cpp: (WebCore::MIMETypeRegistry::isXMLEntityMIMEType): Add.
  • platform/MIMETypeRegistry.h: (WebCore::MIMETypeRegistry::isXMLEntityMIMEType): Add.
  • Checks for XML external entity MIME types.
  • xml/parser/XMLDocumentParserLibxml2.cpp: (WebCore::externalEntityMimeTypeAllowedByNosniff): Add.
  • Checks whether the MIME type is valid based on the presence of the "X-Content-Type-Options: nosniff" header. (WebCore::openFunc):
  • Drop the contents of the resource that was returned and print an error message to the Web Inspector console if externalEntityMimeTypeAllowedByNosniff() says the MIME type is not allowed.

LayoutTests:

  • http/tests/security/contentTypeOptions/nosniff-xml-external-entity-expected.txt: Add.
  • http/tests/security/contentTypeOptions/nosniff-xml-external-entity.xhtml: Add.

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

10:00 AM Changeset in webkit [258855] by Russell Epstein
  • 5 edits in branches/safari-609-branch

Cherry-pick r258741. rdar://problem/60756641

Sanitize suggested download filename received from web process
https://bugs.webkit.org/show_bug.cgi?id=209300
<rdar://problem/59487723>

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

Source/WebKit:

  • UIProcess/Downloads/DownloadProxy.cpp: (WebKit::DownloadProxy::decideDestinationWithSuggestedFilenameAsync):

LayoutTests:

  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-backslash-expected.txt:
  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-backslash.html:

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

10:00 AM Changeset in webkit [258854] by Russell Epstein
  • 3 edits
    2 adds in branches/safari-609-branch

Cherry-pick r258711. rdar://problem/60756645

Source/WebCore:
AX: VO and safari: can't press the play button
https://bugs.webkit.org/show_bug.cgi?id=209249

Reviewed by Darin Adler.

Test: accessibility/ios-simulator/has-touch-event-listener-with-shadow.html

If a node is in a shadowRoot, going up the node parent tree will stop and not check the entire tree for touch event listeners
and a touch event won't be dispatched. We need to change to use the parentInComposedTree instead to go up the chain.

  • accessibility/ios/AccessibilityObjectIOS.mm: (WebCore::AccessibilityObject::hasTouchEventListener const):

LayoutTests:
AX: VO and safari: caan't press the play button
https://bugs.webkit.org/show_bug.cgi?id=209249

Reviewed by Darin Adler.

  • accessibility/ios-simulator/has-touch-event-listener-with-shadow-expected.txt: Added.
  • accessibility/ios-simulator/has-touch-event-listener-with-shadow.html: Added.

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

10:00 AM Changeset in webkit [258853] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WTF

Cherry-pick r258658. rdar://problem/60756680

REGRESSION(r254389): Cordova throws an exception because it expects a hyphen inside navigator.locale
https://bugs.webkit.org/show_bug.cgi?id=208969
<rdar://problem/59845517>

Reviewed by Darin Adler.

We want to thwart fingerprinting by minimizing the list of locales, but we also don't want to break existing apps.
We can achieve both by a linked-on-or-after check.

  • wtf/cocoa/LanguageCocoa.mm: (WTF::canMinimizeLanguages):

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

9:52 AM Changeset in webkit [258852] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

[Win] http/wpt/css/css-animations/start-animation-001.html is failing on Windows EWS
https://bugs.webkit.org/show_bug.cgi?id=209426

Unreviewed test gardening.

  • platform/win/TestExpectations:
9:52 AM Changeset in webkit [258851] by Russell Epstein
  • 3 edits in branches/safari-609-branch/Source/WebKit

Apply patch. rdar://problem/60756683

9:51 AM Changeset in webkit [258850] by Chris Dumez
  • 13 edits in trunk

Port window.postMessage to the HTML event loop
https://bugs.webkit.org/show_bug.cgi?id=209359

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline test now that the logging ordering is slightly different.

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

Source/WebCore:

Port window.postMessage to the HTML event loop instead of using a 0-timer.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::willPostMessageImpl):
(WebCore::InspectorInstrumentation::didPostMessageImpl):
(WebCore::InspectorInstrumentation::didFailPostMessageImpl):
(WebCore::InspectorInstrumentation::willDispatchPostMessageImpl):
(WebCore::InspectorInstrumentation::didDispatchPostMessageImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::willPostMessage):
(WebCore::InspectorInstrumentation::didPostMessage):
(WebCore::InspectorInstrumentation::didFailPostMessage):
(WebCore::InspectorInstrumentation::willDispatchPostMessage):
(WebCore::InspectorInstrumentation::didDispatchPostMessage):

  • inspector/agents/WebDebuggerAgent.cpp:

(WebCore::WebDebuggerAgent::willPostMessage):
(WebCore::WebDebuggerAgent::didPostMessage):
(WebCore::WebDebuggerAgent::didFailPostMessage):
(WebCore::WebDebuggerAgent::willDispatchPostMessage):
(WebCore::WebDebuggerAgent::didDispatchPostMessage):
(WebCore::WebDebuggerAgent::didClearAsyncStackTraceData):

  • inspector/agents/WebDebuggerAgent.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::postMessage):
(WebCore::PostMessageTimer::PostMessageTimer): Deleted.
(WebCore::PostMessageTimer::event): Deleted.
(WebCore::PostMessageTimer::targetOrigin const): Deleted.
(WebCore::PostMessageTimer::stackTrace const): Deleted.
(WebCore::DOMWindow::postMessageTimerFired): Deleted.

  • page/DOMWindow.h:

LayoutTests:

Update tests so that it does not run postMessage tests in parallel on the 2 different-origin iframes,
since the ordering would not be guaranteed and it would cause flakiness.

  • http/tests/security/postMessage/resources/recv.js:

(recv):

  • http/tests/security/postMessage/target-origin-expected.txt:
  • http/tests/security/postMessage/target-origin.html:
9:43 AM Changeset in webkit [258849] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebKit

Apply patch. rdar://problem/60555343

Cherry-pick r258565. rdar://problem/60555343

2020-03-17 David Kilzer <ddkilzer@apple.com>

REGRESSION (r258334): WebPasteboardProxy::setPasteboardBufferForType should allow zero-size buffers
<https://webkit.org/b/209167>
<rdar://problem/60516302>

Reviewed by Geoffrey Garen.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm: (WebKit::WebPasteboardProxy::setPasteboardBufferForType):
  • Remove check for zero-size buffer to match WebPageProxy::dataSelectionForPasteboard().
9:15 AM Changeset in webkit [258848] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: TypeError: this._springEditor.removeListeners is not a function. (In 'this._springEditor.removeListeners()', 'this._springEditor.removeListeners' is undefined)
https://bugs.webkit.org/show_bug.cgi?id=209325

Reviewed by Brian Burg.

  • UserInterface/Controllers/CodeMirrorSpringEditingController.js:

(WI.CodeMirrorSpringEditingController.prototype.popoverDidDismiss): Deleted.

9:08 AM Changeset in webkit [258847] by Alan Bujtas
  • 13 edits in trunk/Source/WebCore

[LFC] Layout::Box::initialContainingBlock() should return const InitialContainingBlock&
https://bugs.webkit.org/show_bug.cgi?id=209406
<rdar://problem/60749715>

Reviewed by Antti Koivisto.

Use is<InitialContainingBlock> where applicable.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::geometryForBox const):
(WebCore::Layout::FormattingContext::collectOutOfFlowDescendantsIfNeeded):

  • layout/FormattingContextQuirks.cpp:

(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):

  • layout/blockformatting/BlockFormattingContextQuirks.cpp:
  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::absoluteDisplayBox):

  • layout/invalidation/InvalidationState.cpp:

(WebCore::Layout::InvalidationState::markNeedsUpdate):

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::establishesBlockFormattingContext const):
(WebCore::Layout::Box::containingBlock const):
(WebCore::Layout::Box::formattingContextRoot const):
(WebCore::Layout::Box::initialContainingBlock const):
(WebCore::Layout::Box::isInFormattingContextOf const):
(WebCore::Layout::Box::isOverflowVisible const):

  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::isInitialContainingBlock const):
(WebCore::Layout::Box::isInlineTextBox const):
(WebCore::Layout::Box::isLineBreakBox const):
(WebCore::Layout::Box::isReplacedBox const):

  • layout/layouttree/LayoutInitialContainingBlock.cpp:

(WebCore::Layout::InitialContainingBlock::InitialContainingBlock):

  • layout/layouttree/LayoutInlineTextBox.cpp:

(WebCore::Layout::InlineTextBox::InlineTextBox):

  • layout/layouttree/LayoutLineBreakBox.cpp:

(WebCore::Layout::LineBreakBox::LineBreakBox):

  • layout/layouttree/LayoutReplacedBox.cpp:

(WebCore::Layout::ReplacedBox::ReplacedBox):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::outputLayoutBox):

8:38 AM Changeset in webkit [258846] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

[MSE] Handle the case where AVStreamDataParser packages sync and non-sync samples together in a CMSampleBufferRef.
https://bugs.webkit.org/show_bug.cgi?id=209365
<rdar://problem/60625209>

Reviewed by Eric Carlson.

AVStreamDataParser will package together muliple samples into a single CMSampleBufferRef for efficiency's sake. When
this occurs, it may include sync and non-sync samples together into the same CMSampleBufferRef, which is problematic
as we consider a CMSampleBufferRef to be "sync" only when every sample inside the buffer is also sync.

To handle this scenario, when receiving a CMSampleBufferRef from AVStreamDataParser, first check whether that buffer
is "homogeneous", meaning every sample within the buffer has the same effective MediaSample flags. Then, if the buffer
is not homogenous, break the buffer into muliple homogenious CMSampleBufferRefs. Then, each of those resulting buffers
is passed up to SourceBuffer as a MediaSample individually.

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

(WebCore::isCMSampleBufferAttachmentRandomAccess):
(WebCore::isCMSampleBufferRandomAccess):
(WebCore::isCMSampleBufferAttachmentNonDisplaying):
(WebCore::isCMSampleBufferNonDisplaying):
(WebCore::MediaSampleAVFObjC::flags const):
(WebCore::MediaSampleAVFObjC::isHomogeneous const):
(WebCore::MediaSampleAVFObjC::divideIntoHomogeneousSamples):

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

(WebCore::SourceBufferPrivateAVFObjC::processCodedFrame):

8:35 AM Changeset in webkit [258845] by pvollan@apple.com
  • 5 edits in trunk

[iOS] Deny mach lookup access to icon services
https://bugs.webkit.org/show_bug.cgi?id=209340

Reviewed by Brent Fulgham.

Source/WebKit:

Tested by fast/sandbox/ios/sandbox-mach-lookup.html

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

LayoutTests:

  • fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/ios/sandbox-mach-lookup.html:
8:27 AM Changeset in webkit [258844] by aboya@igalia.com
  • 4 edits in trunk/Source/WebCore

[MSE][GStreamer] Clean and explain first sample PTS hack
https://bugs.webkit.org/show_bug.cgi?id=209335

Reviewed by Philippe Normand.

MediaSample::applyPtsOffset() had a rather confusing name, so it has
been changed to something more descriptive of its actual function:
extendToTheBeginning().

Also, its only argument has been removed, as it's always zero.

An explanation of the hack has also been added.

This patch introduces no behavior changes.

  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::extendToTheBeginning):
(WebCore::MediaSampleGStreamer::applyPtsOffset): Deleted.

  • platform/graphics/gstreamer/MediaSampleGStreamer.h:
  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::appsinkNewSample):

8:25 AM Changeset in webkit [258843] by Alan Bujtas
  • 7 edits
    1 delete in trunk/Source/WebCore

[LFC] Remove unused LayoutAncestorIterator class
https://bugs.webkit.org/show_bug.cgi?id=209401
<rdar://problem/60743144>

Reviewed by Sam Weinig.

  • WebCore.xcodeproj/project.pbxproj:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:
  • layout/displaytree/DisplayPainter.cpp:
  • layout/layouttree/LayoutAncestorIterator.h: Removed.
  • layout/layouttree/LayoutChildIterator.h:

(WebCore::Layout::LayoutChildIteratorAdapter<T>::last const): Deleted.

  • layout/layouttree/LayoutIterator.h:

(WebCore::Layout::LayoutBoxTraversal::nextSkippingChildren): Deleted.
(WebCore::Layout::Traversal::lastChild): Deleted.
(WebCore::Layout::Traversal::previousSibling): Deleted.
(WebCore::Layout::Traversal::findAncestorOfType): Deleted.
(WebCore::Layout::LayoutIterator<T>::traversePreviousSibling): Deleted.
(WebCore::Layout::LayoutIterator<T>::traverseAncestor): Deleted.

  • layout/layouttree/LayoutTreeBuilder.cpp:
7:41 AM Changeset in webkit [258842] by graouts@webkit.org
  • 8 edits in trunk/Source/WebCore

[Web Animations] Refactor cancelDeclarativeAnimationsForElement and willDestroyRendererForElement on AnimationTimeline
https://bugs.webkit.org/show_bug.cgi?id=209423

Reviewed by Antti Koivisto.

The methods cancelDeclarativeAnimationsForElement and willDestroyRendererForElement on AnimationTimeline did the same
thing save for the argument passed to WebAnimation::cancel(). We now refactor those two methods into a single
cancelDeclarativeAnimationsForElement method with an argument to set whether cancelation should be silent.
As a result, we also change WebAnimation::cancel() to have a single flavor instead of one without an argument and one
with the silent argument.

No test because there is no change in visible behavior.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::elementWasRemoved):
(WebCore::AnimationTimeline::cancelDeclarativeAnimationsForElement):
(WebCore::AnimationTimeline::willDestroyRendererForElement): Deleted.

  • animation/AnimationTimeline.h:
  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::cancel):

  • animation/DeclarativeAnimation.h:
  • animation/WebAnimation.cpp:
  • animation/WebAnimation.h:
  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::tearDownRenderers):

7:38 AM Changeset in webkit [258841] by Jacob Uphoff
  • 12 edits in trunk

Unreviewed, reverting r258803.

This revision caused many layout tests and 10 API tests to
start failing/crashing

Reverted changeset:

"[Cocoa] Deny access to database mapping service"
https://bugs.webkit.org/show_bug.cgi?id=209339
https://trac.webkit.org/changeset/258803

7:35 AM Changeset in webkit [258840] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

AudioTrackPrivateMediaStream recovers from a muted track very late
https://bugs.webkit.org/show_bug.cgi?id=209411

Reviewed by Eric Carlson.

In case of a muted track, the AudioSampleDataSource is not pushed any new sample.
When unmuting the tracks, pulled samples will be zeroes for some time until the newly pushed samples are used.
To fix this, we pause the audio player whenever muted/disabled/ended and restart playing when unmuted/enabled.
Manually tested.

  • platform/mediastream/AudioTrackPrivateMediaStream.cpp:

(WebCore::AudioTrackPrivateMediaStream::updateRendererMutedState):

7:33 AM Changeset in webkit [258839] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

AudioMediaStreamTrackRendererCocoa does not recover from AudioSession interruption
https://bugs.webkit.org/show_bug.cgi?id=209412

Reviewed by Eric Carlson.

In case there is an AudioSession interruption, like the app is in the background
and another app starts to play audio, AudioMediaStreamTrackRendererCocoa will not restart playing audio.
Fix this by clearing the AudioUnit when starting since the renderer is paused during the interruption.
This ensures resuming from the interruption in a clean state.

Manually tested.

  • platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp:

(WebCore::AudioMediaStreamTrackRendererCocoa::start):

7:26 AM Changeset in webkit [258838] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

RemoteAudioSession should listen to GPUProcess messages
https://bugs.webkit.org/show_bug.cgi?id=209422

Reviewed by Eric Carlson.

Make sure RemoteAudioSession is registered as a listener to GPUProcess messages.

  • WebProcess/GPU/media/RemoteAudioSession.cpp:

(WebKit::RemoteAudioSession::RemoteAudioSession):
(WebKit::RemoteAudioSession::~RemoteAudioSession):

7:24 AM Changeset in webkit [258837] by youenn@apple.com
  • 5 edits in trunk

MediaDevices::refreshDevices should take device type into account
https://bugs.webkit.org/show_bug.cgi?id=209417
<rdar://problem/60521332>

Reviewed by Eric Carlson.

Source/WebCore:

Now that we set deviceId to the empty string when media capture is not granted,
we can have two devices with the same ID. We also need to handle the device type.

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::refreshDevices):

LayoutTests:

  • fast/mediastream/media-device-info-expected.txt:
  • fast/mediastream/media-device-info.html:
7:22 AM Changeset in webkit [258836] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] Box::establishesBlockFormattingContext should check isInitialContainingBlock
https://bugs.webkit.org/show_bug.cgi?id=209390
<rdar://problem/60735021>

Reviewed by Antti Koivisto.

It's more correct to call isInitialContainingBlock() to check if the current box is the ICB.

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::establishesBlockFormattingContext const):
(WebCore::Layout::Box::initialContainingBlock const):

6:33 AM Changeset in webkit [258835] by Pablo Saavedra
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] Check the cgroups memory limits (v1 and v2) to calculate the systemMemoryUsedAsPercentage() in the MemoryPressureMonitor
https://bugs.webkit.org/show_bug.cgi?id=209186

Reviewed by Carlos Alberto Lopez Perez.

Modifies the systemMemoryUsedAsPercentage() function adding the logic
to read the memory limits and the current memory used in the cgroup
associated to the WebKit process:

  • memory.memsw.usage_in_bytes (or memory.memsw.max in cgroupV2): current usage for memory+Swap
  • memory.limit_in_bytes (or memory.current in cgroupV2): limit of memory usage
  • memory.memsw.limit_in_bytes (or memory.max in cgroupV2): limit of memory+Swap usage

In case of the WK processes are associated to a cgroup with memory
controller, the function reads the memory.limit_in_bytes or
the memory.memsw.limit_in_bytes and the and memory.usage_in_bytes
from the cgroup mount point and calculates the percentage of
memory used.

In other cases (no cgroup memory controller associated or limits
higher than the real memory available), the function will return the
percentage based on the real memory available and real total memory
in the system.

The logic supports supports both cgroupV1 and cgroupV2

  • UIProcess/linux/MemoryPressureMonitor.cpp:

(WebKit::getMemoryTotalWithCgroup):
(WebKit::getMemoryUsageWithCgroup):
(WebKit::getCgroupController):
(WebKit::systemMemoryUsedAsPercentage):

5:41 AM Changeset in webkit [258834] by graouts@webkit.org
  • 6 edits in trunk/Source/WebCore

[Web Animations] ElementAnimationRareData is created too frequently
https://bugs.webkit.org/show_bug.cgi?id=209415

Reviewed by Antti Koivisto.

The various accessors on Element to access transitions and animations will ensure there is a backing
ElementAnimationRareData object. However, in a lot of cases, such as when we consider whether CSS
Transitions should be created, updated or removed under AnimationTimeline::updateCSSTransitionsForElement(),
we end up not needing to actually access the data structures on ElementAnimationRareData.

We now make the various methods on Element to access transitions and animations const T* and add ensure*()
methods to access the collections for modification. We also add methods to query whether there are running or
completed transitions at all or for a given property.

No test because there is no change in visible behavior.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::animationWasAddedToElement):
(WebCore::AnimationTimeline::animationWasRemovedFromElement):
(WebCore::AnimationTimeline::removeDeclarativeAnimationFromListsForOwningElement):
(WebCore::AnimationTimeline::animationsForElement const):
(WebCore::AnimationTimeline::willDestroyRendererForElement):
(WebCore::AnimationTimeline::cancelDeclarativeAnimationsForElement):
(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):
(WebCore::AnimationTimeline::updateCSSTransitionsForElement):

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

(WebCore::DocumentTimeline::transitionDidComplete):

  • dom/Element.cpp:

(WebCore::Element::webAnimations const):
(WebCore::Element::cssAnimations const):
(WebCore::Element::transitions const):
(WebCore::Element::hasCompletedTransitionsForProperty const):
(WebCore::Element::hasRunningTransitionsForProperty const):
(WebCore::Element::hasRunningTransitions const):
(WebCore::Element::ensureWebAnimations):
(WebCore::Element::ensureCSSAnimations):
(WebCore::Element::ensureTransitions):
(WebCore::Element::ensureCompletedTransitionsByProperty):
(WebCore::Element::ensureRunningTransitionsByProperty):
(WebCore::Element::webAnimations): Deleted.
(WebCore::Element::cssAnimations): Deleted.
(WebCore::Element::transitions): Deleted.
(WebCore::Element::completedTransitionsByProperty): Deleted.
(WebCore::Element::runningTransitionsByProperty): Deleted.

  • dom/Element.h:
5:22 AM Changeset in webkit [258833] by Philippe Normand
  • 3 edits in trunk

[GTK][WPE] Disable systemd logging by default

Rubber-stamped by Žan Doberšek.

The logAlways logs are filling the journal way too fast currently,
specially on EWS running tests and buildbots. For the time being
disable logging until we figure out a better way to handle this.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
4:03 AM Changeset in webkit [258832] by cturner@igalia.com
  • 3 edits in trunk/Source/WebCore

[GStreamer] Fail gracefully in the absence of a WebVTT encoder.
https://bugs.webkit.org/show_bug.cgi?id=209290

Reviewed by Philippe Normand.

Covered by existing tests.

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::initializeGStreamer): Gets rid of "plugin not found"
errors. It's not an error to have potentially broken AAC decoders,
but it's nice to give a clear warning.

  • platform/graphics/gstreamer/TextCombinerGStreamer.cpp:

(webkit_text_combiner_class_init):
(webkitTextCombinerNew): Check for the "subenc" *plugin*. This
check indirectly tells us the "webvttenc" *element* will exist.

3:57 AM Changeset in webkit [258831] by commit-queue@webkit.org
  • 5 edits in trunk/Source

[WPE] AsyncScrolling: horizontal scrolling is inverted
https://bugs.webkit.org/show_bug.cgi?id=208638

Source/WebCore:

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-03-23
Reviewed by Adrian Perez de Castro.

Scrolling down should scroll to the right and up to the left..

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::handleWheelEvent): Invert also the x axis.

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::handleWheelEvent): Ditto.

Source/WebKit:

Patch by Chris Lord <Chris Lord> on 2020-03-23
Reviewed by Adrian Perez de Castro.

  • UIProcess/API/wpe/ScrollGestureController.cpp:

(WebKit::ScrollGestureController::handleEvent):

3:49 AM Changeset in webkit [258830] by Chris Lord
  • 2 edits in trunk/Tools

Add missing committer status to Chris Lord in contributors.json

Unreviewed

  • Scripts/webkitpy/common/config/contributors.json:
3:16 AM Changeset in webkit [258829] by youenn@apple.com
  • 6 edits in trunk/Source

Explicitly activate the new DrawingAreaProxy on PSON navigation
https://bugs.webkit.org/show_bug.cgi?id=209232

Reviewed by Antti Koivisto.

Delay tree unfreezing for provisional pages until the main frame load is committed.
At that point, UIProcess is made aware and is doing the process swap.
We can thus unfreeze the tree so that UIProcess starts getting DrawAreaProxy messages.

This allows UIProcess to start listening to DrawAreaProxy messages at the time of doing process swapping in WebPageProxy.

  • UIProcess/DrawingAreaProxy.cpp:

(WebKit::DrawingAreaProxy::DrawingAreaProxy):
(WebKit::DrawingAreaProxy::startReceivingMessages):

  • UIProcess/DrawingAreaProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setDrawingArea):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didCompletePageTransition):
(WebKit::WebPage::didCommitLoad):

2:48 AM Changeset in webkit [258828] by youenn@apple.com
  • 5 edits in trunk

StringView::startsWith and String::startsWith do not treat null strings the same
https://bugs.webkit.org/show_bug.cgi?id=209273

Reviewed by Darin Adler.

Source/WTF:

Align StringImpl with StringView and make startsWith return true if prefix is null.

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::startsWith const):

Tools:

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/WTFString.cpp:

(TestWebKitAPI::TEST):

2:05 AM Changeset in webkit [258827] by graouts@webkit.org
  • 6 edits in trunk/Source/WebCore

[Web Animations] Fix the typo for ElementAnimationRareData::completedTransitionByProperty()
https://bugs.webkit.org/show_bug.cgi?id=209413

Reviewed by Antti Koivisto.

There can be several completed transitions by property, so renaming this property to completedTransitionsByProperty.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::removeDeclarativeAnimationFromListsForOwningElement):
(WebCore::AnimationTimeline::updateCSSTransitionsForElement):

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::transitionDidComplete):

  • animation/ElementAnimationRareData.h:

(WebCore::ElementAnimationRareData::completedTransitionsByProperty):
(WebCore::ElementAnimationRareData::completedTransitionByProperty): Deleted.

  • dom/Element.cpp:

(WebCore::Element::completedTransitionsByProperty):
(WebCore::Element::completedTransitionByProperty): Deleted.

  • dom/Element.h:
1:17 AM Changeset in webkit [258826] by graouts@webkit.org
  • 12 edits
    3 adds in trunk

DocumentTimeline / CSSTransition objects are leaking on CNN.com
https://bugs.webkit.org/show_bug.cgi?id=208069
<rdar://problem/59680143>

Reviewed by Simon Fraser, Geoffrey Garen and Darin Adler.

Source/WebCore:

Test: webanimations/leak-css-animation.html

We add a test feature that lets use query the availability of a given WebAnimation by its "id" property in the WebAnimation::instances list.
We also fix some build issues that appeared with a change in UnifiedSources order.

  • animation/ElementAnimationRareData.cpp:

(WebCore::ElementAnimationRareData::setAnimationsCreatedByMarkup):

  • animation/ElementAnimationRareData.h:

(WebCore::ElementAnimationRareData::setAnimationsCreatedByMarkup): Deleted.

  • animation/WebAnimation.h:
  • testing/Internals.cpp:

(WebCore::Internals::animationWithIdExists const):

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

Source/WTF:

If a CSSAnimation is set on an element using the animation-name CSS property, and later removed, it will leak due to the ListHashSet<RefPtr<CSSAnimation>>
(aka CSSAnimationCollection) member on ElementAnimationRareData being replaced to the new list, but the old list not being cleared from its members.

We fix the ListHashSet assignment operator to use swap ensuring previously held items are cleared.

  • wtf/ListHashSet.h:

(WTF::=):

Tools:

Add a test that checks that a ListHashSet containing RefPtr<> types correctly calls the destructor for those items when the assignment operator is used.

  • TestWebKitAPI/Tests/WTF/ListHashSet.cpp:

(TestWebKitAPI::ListHashSetReferencedItem::create):
(TestWebKitAPI::ListHashSetReferencedItem::ListHashSetReferencedItem):
(TestWebKitAPI::ListHashSetReferencedItem::~ListHashSetReferencedItem):
(TestWebKitAPI::FakeElementAnimationRareData::FakeElementAnimationRareData):
(TestWebKitAPI::FakeElementAnimationRareData::~FakeElementAnimationRareData):
(TestWebKitAPI::FakeElementAnimationRareData::collection):
(TestWebKitAPI::FakeElementAnimationRareData::setCollection):
(TestWebKitAPI::TEST):

LayoutTests:

Add a test that checks that setting a CSSAnimation on an element, waiting a frame, and removing it will not leak that CSSAnimation.

  • webanimations/leak-css-animation-expected.txt: Added.
  • webanimations/leak-css-animation.html: Added.
  • webanimations/resources/css-animation-leak-iframe.html: Added.

Mar 22, 2020:

9:57 PM Changeset in webkit [258825] by ysuzuki@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Unreviewed, rename keepAlive to ensureStillAliveHere
https://bugs.webkit.org/show_bug.cgi?id=209398

Based on Geoff and Mark's feedback, renaming keepAlive to ensureStillAliveHere
to make the effect of keepAlive clear.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileAtomicsReadModifyWrite):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileArraySlice):
(JSC::FTL::DFG::LowerDFGToB3::ensureStillAliveHere):
(JSC::FTL::DFG::LowerDFGToB3::keepAlive): Deleted.

  • heap/HeapCell.cpp:

(JSC::ensureStillAliveHere):
(JSC::keepAlive): Deleted.

  • heap/HeapCell.h:

(JSC::ensureStillAliveHere):
(JSC::HeapCell::use const):
(JSC::keepAlive): Deleted.

  • runtime/JSCJSValue.cpp:

(JSC::ensureStillAliveHere):
(JSC::keepAlive): Deleted.

  • runtime/JSCJSValue.h:

(JSC::ensureStillAliveHere):
(JSC::keepAlive): Deleted.

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):

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

[JSC] Add JSC::keepAlive(JSValue)
https://bugs.webkit.org/show_bug.cgi?id=209398

Reviewed by Mark Lam.

Add JSC::keepAlive(JSValue). This is useful to make some JSValue variable alive from GC.

  • heap/HeapCell.cpp:
  • runtime/JSCJSValue.cpp:

(JSC::keepAlive):

  • runtime/JSCJSValue.h:

(JSC::keepAlive):

3:57 PM Changeset in webkit [258823] by commit-queue@webkit.org
  • 5 edits in trunk

[ Mac ] imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209239
<rdar://problem/60591358>

Patch by Antoine Quint <Antoine Quint> on 2020-03-22
Reviewed by Simon Fraser.

Source/WebCore:

This test was made flaky by r257417, the initial fix for webkit.org/b/208069. A new, appropriate fix for that bug is in the works. In the
meantime we revert r257417 in this patch.

The reason this test became flaky is that it features the following code:

animB.timeline = new DocumentTimeline({

originTime:

document.timeline.currentTime - 100 * MS_PER_SEC - animB.startTime,

});

In this case the only reference to the created DocumentTimeline is through animB.timeline. But because r257417 made the timeline reference from
WebAnimation a weak reference, in some cases, if GC kicks in, the timeline would be dereferenced and the test would fail. We restore that relationship
to its previous state, which is a strong reference.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::setTimeline):
(WebCore::WebAnimation::setTimelineInternal):
(WebCore::WebAnimation::enqueueAnimationEvent):
(WebCore::WebAnimation::acceleratedStateDidChange):
(WebCore::WebAnimation::timeline const): Deleted.

  • animation/WebAnimation.h:

(WebCore::WebAnimation::timeline const):

LayoutTests:

  • platform/mac/TestExpectations:
1:33 PM Changeset in webkit [258822] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=209404

Unreviewed gardening.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
12:29 PM Changeset in webkit [258821] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

Adopt -[UIWindowScene interfaceOrientation] when determining device orientation
https://bugs.webkit.org/show_bug.cgi?id=209372
<rdar://problem/60491857>

Reviewed by Darin Adler.

Currently, for WebKit clients that have adopted the UIScene lifecycle (and also do not set an interface
orientation override, like MobileSafari does), device orientation APIs will always report that the device is in
portrait mode, regardless of the actual device orientation. This is because our current mechanism for tracking
device orientation asks the shared UIApplication for its -statusBarOrientation. This is hard-coded to always
return UIInterfaceOrientationPortrait for apps that adopt the UIScene lifecycle, and will additionally trigger a
simulated crash, explaining that it is invalid for any scene-based app to call -statusBarOrientation.

To fix this, we adjust the deviceOrientation helper in WKWebViewIOS.mm to work for scene-based apps. See below
for more details.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/API/ios/WKWebViewIOS.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _setupScrollAndContentViews]):

Change call sites of deviceOrientation() to be [self _deviceOrientation] instead.

(-[WKWebView _deviceOrientation]):

Replace deviceOrientation() with a _deviceOrientation helper method on WKWebView. For non-scene-based
apps, this new helper method does not change any behavior, and continues to go through UIApplication. However,
for scene-based apps, we instead ask the web view's window's UIWindowScene for its interface orientation.

Importantly, this means that if a WKWebView is not parented, it doesn't have a valid device orientation (i.e.
the orientation is UIInterfaceOrientationUnknown). As such, a newly created WKWebView that is unparented will
start out with no orientation; it's only upon moving the view into a window that it is able to determine the
device orientation. To ensure this, we add logic to -didMoveToWindow to recompute device orientation and
dispatch an update if needed.

To avoid sending unnecessary updates, if a WKWebView is unparented, we wait until it's parented again to send
the new device orientation.

(-[WKWebView didMoveToWindow]):
(-[WKWebView _windowDidRotate:]):
(deviceOrientation): Deleted.

See -[WKWebView _deviceOrientation] above.

10:41 AM Changeset in webkit [258820] by Alan Bujtas
  • 9 edits
    2 copies in trunk/Source/WebCore

[LFC] Introduce InitialContainingBox class
https://bugs.webkit.org/show_bug.cgi?id=209399
<rdar://problem/60741767>

Reviewed by Antti Koivisto.

ICB is the top level containing block. This helps to make sure we don't accidentally call parent() on the ICB.
This is also a preparation for "const Box& Layout::Box::parent()".

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/integration/LayoutIntegrationBoxTree.cpp:

(WebCore::LayoutIntegration::BoxTree::BoxTree):
(): Deleted.

  • layout/integration/LayoutIntegrationBoxTree.h:

(WebCore::LayoutIntegration::BoxTree::rootLayoutBox const):
(WebCore::LayoutIntegration::BoxTree::rootLayoutBox):

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::isInitialContainingBlock const): Deleted.

  • layout/layouttree/LayoutBox.h:

(WebCore::Layout::Box::isInitialContainingBlock const):

  • layout/layouttree/LayoutContainerBox.h:
  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::buildLayoutTree):

7:02 AM Changeset in webkit [258819] by Alan Bujtas
  • 16 edits in trunk/Source/WebCore

[LFC] Layout::Box::containingBlock should return a const ContainerBox&
https://bugs.webkit.org/show_bug.cgi?id=209381
<rdar://problem/60732278>

Reviewed by Antti Koivisto.

Layout tree is immutable during layout, so every box should be able to return a valid containing block (except the ICB).
(This patch also removes the unused isDescendantOf() function and renames isDescendantOfFormattingRoot to isInFormattingContextOf).

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):
(WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const):

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::isHeightAuto):
(WebCore::Layout::FormattingContext::Geometry::computedHeightValue const):
(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::staticHorizontalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::inFlowPositionedPositionOffset const):

  • layout/FormattingContextQuirks.cpp:

(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):

  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingBlockBoxInformationIfNeeded):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider):
(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForAncestors):
(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForBoxAndAncestors):
(WebCore::Layout::BlockFormattingContext::verticalPositionWithMargin const):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):

  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):
(WebCore::Layout::initialContainingBlock): Deleted.

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginsCollapseThrough const):

  • layout/blockformatting/PrecomputedBlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedPositiveNegativeValues const):

  • layout/displaytree/DisplayPainter.cpp:

(WebCore::Display::absoluteDisplayBox):

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
(WebCore::Layout::FloatingContext::absoluteDisplayBoxCoordinates const):
(WebCore::Layout::FloatingContext::mapToFloatingStateRoot const):
(WebCore::Layout::FloatingContext::mapTopToFloatingStateRoot const):
(WebCore::Layout::FloatingContext::mapPointFromFormattingContextRootToFloatingStateRoot const):

  • layout/floats/FloatingState.cpp:

(WebCore::Layout::FloatingState::bottom const):
(WebCore::Layout::FloatingState::top const):

  • layout/floats/FloatingState.h:

(WebCore::Layout::FloatingState::FloatItem::isInFormattingContextOf const):
(WebCore::Layout::FloatingState::FloatItem::isDescendantOfFormattingRoot const): Deleted.

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::containingBlock const):
(WebCore::Layout::Box::formattingContextRoot const):
(WebCore::Layout::Box::isInFormattingContextOf const):
(WebCore::Layout::Box::isDescendantOf const): Deleted.
(WebCore::Layout::Box::isContainingBlockDescendantOf const): Deleted.

  • layout/layouttree/LayoutBox.h:
12:42 AM Changeset in webkit [258818] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception: Right side of assignment cannot be destructured (at QuickConsole.js:358:30)
https://bugs.webkit.org/show_bug.cgi?id=209388

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/QuickConsole.js:

(WI.QuickConsole.prototype._handleFramePageExecutionContextChanged):

Note: See TracTimeline for information about the timeline view.