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

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.

Note: See TracTimeline for information about the timeline view.