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

Timeline



Apr 2, 2020:

10:57 PM Changeset in webkit [259444] by Alexey Shvayka
  • 5 edits in trunk

TypedArray's DefineOwnProperty is incorrect with partial descriptors
https://bugs.webkit.org/show_bug.cgi?id=188875

Reviewed by Ross Kirsling.

JSTests:

  • stress/typedarray-configure-index.js:
  • test262/expectations.yaml: Mark 10 test cases as passing.

Source/JavaScriptCore:

This change implements steps 3.b.iv-v of TypedArray's DefineOwnProperty method [1],
preventing type errors from being thrown if descriptor lacks Enumerable or Writable
field and aligning JSC with V8 and SpiderMonkey.

[1]: https://tc39.es/ecma262/#sec-integer-indexed-exotic-objects-defineownproperty-p-desc

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):

10:46 PM Changeset in webkit [259443] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Rename widgetDidHandleWheelEvent back to passWheelEventToWidget and make some functions private
https://bugs.webkit.org/show_bug.cgi?id=209951

Reviewed by Zalan Bujtas.

Revert the rename from r199331, and make private wheel-event related functions that
are internal to EventHandler.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::passWheelEventToWidget):
(WebCore::EventHandler::widgetDidHandleWheelEvent): Deleted.

  • page/EventHandler.h:
  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::passWheelEventToWidget):
(WebCore::EventHandler::widgetDidHandleWheelEvent): Deleted.

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::passWheelEventToWidget):
(WebCore::EventHandler::widgetDidHandleWheelEvent): Deleted.

9:56 PM Changeset in webkit [259442] by James Savage
  • 2 edits in trunk/Tools

Add myself, as a committer, to contributors.json.
https://bugs.webkit.org/show_bug.cgi?id=209952.

  • Scripts/webkitpy/common/config/contributors.json:
9:51 PM Changeset in webkit [259441] by James Savage
  • 2 edits in trunk/Tools

Add myself to contributors.json.
https://bugs.webkit.org/show_bug.cgi?id=209952.

  • Scripts/webkitpy/common/config/contributors.json:
8:56 PM Changeset in webkit [259440] by wilander@apple.com
  • 20 edits
    4 adds in trunk

Add SPI to configure WebsiteDataStores with a URL for standalone web applications and use it to disable first-party website data removal in ITP
https://bugs.webkit.org/show_bug.cgi?id=209634
<rdar://problem/60943970>

Reviewed by Alex Christensen.

Source/WebKit:

This change adds a new property to _WKWebsiteDataStoreConfiguration.h called
standaloneApplicationURL with which the hosting application can inform the
website data store that it's running as a standalone web application.

This change also forwards an existing standaloneApplicationURL as a
WebCore::RegistrableDomain into ITP so that explicit exemptions can be made
to first parties of standalone web applications. The exemptions made here
all for all of ITP's website data removal. This part of the change is
covered by the new layout tests.

Tests: http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database.html

http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion.html

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

(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):

  • NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:

(WebKit::ResourceLoadStatisticsStore::setStandaloneApplicationDomain):
(WebKit::ResourceLoadStatisticsStore::standaloneApplicationDomain const):

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::setStandaloneApplicationDomain):

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

(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::forwardResourceLoadStatisticsSettings):

  • NetworkProcess/NetworkSession.h:
  • Shared/ResourceLoadStatisticsParameters.h:

(WebKit::ResourceLoadStatisticsParameters::encode const):
(WebKit::ResourceLoadStatisticsParameters::decode):

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

(-[_WKWebsiteDataStoreConfiguration standaloneApplicationURL]):
(-[_WKWebsiteDataStoreConfiguration setStandaloneApplication:]):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy const):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::standaloneApplicationURL const):
(WebKit::WebsiteDataStoreConfiguration::setStandaloneApplicationURL):

Tools:

Added a new test option called standaloneWebApplicationURL so that layout tests can
configure the website data store accordingly. Picking it up and using it requires
creating a new website data store with a configuration that has the standalone web
application URL.

  • WebKitTestRunner/TestController.cpp:

(WTR::parseStringTestHeaderValueAsURL):
(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestOptions.h:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformCreateWebView):

LayoutTests:

  • http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database-expected.txt: Added.
  • http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-database.html: Added.
  • http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion-expected.txt: Added.
  • http/tests/resourceLoadStatistics/standalone-web-application-exempt-from-website-data-deletion.html: Added.
7:49 PM Changeset in webkit [259439] by wilander@apple.com
  • 3 edits in trunk/LayoutTests

Rebase expectation files for anchor tag tests with line number output
https://bugs.webkit.org/show_bug.cgi?id=209945
<rdar://problem/61237662>

Unreviewed test gardening.

  • http/tests/adClickAttribution/anchor-tag-attributes-validation-expected.txt:

Rebased since the lines of the console output have changed.

  • http/tests/security/anchor-download-block-crossorigin-expected.txt:

Rebased since the lines of the console output have changed.

6:51 PM Changeset in webkit [259438] by Andres Gonzalez
  • 6 edits
    1 add in trunk

Crash in RenderMenuList::didUpdateActiveOption.
https://bugs.webkit.org/show_bug.cgi?id=208867
<rdar://problem/60035390>

Reviewed by Chris Fleizach.

Source/WebCore:

Enabled test accessibility/menu-list-sends-change-notification.html.

  • Check the type of the AccessibilityObject before downcasting in RenderMenuList.
  • Fixed handling of the AXMenuListValueChanged notification on the Mac.

This notification was previously ignored and hence the LayoutTest was failing.

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postPlatformNotification):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::didUpdateActiveOption):

LayoutTests:

Enabled accessibility/menu-list-sends-change-notification.html test
and added the expected.txt file for it.

  • accessibility/menu-list-sends-change-notification-expected.txt: Added.
  • accessibility/menu-list-sends-change-notification.html:
6:24 PM Changeset in webkit [259437] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Context menu for local storage puts quotes around key and value
https://bugs.webkit.org/show_bug.cgi?id=209868

Reviewed by Joseph Pecoraro.

There are only two WI.DataGrid that support editing right now. Both of them use obvious
names for their columns (e.g. "Key", "Name", "Value", etc.), so rather than quote the column
name in the context menu, just display it as is.

  • UserInterface/Views/DataGrid.js:

(WI.DataGrid.prototype._contextMenuInDataTable):

  • Localizations/en.lproj/localizedStrings.js:
5:37 PM Changeset in webkit [259436] by commit-queue@webkit.org
  • 9 edits
    2 deletes in trunk

Unreviewed, reverting r259390.
https://bugs.webkit.org/show_bug.cgi?id=209944

It broke WinCairo builds (Requested by fujihiro on #webkit).

Reverted changeset:

"Enable offlineasm debug annotations for GCC"
https://bugs.webkit.org/show_bug.cgi?id=207119
https://trac.webkit.org/changeset/259390

5:37 PM Changeset in webkit [259435] by eric.carlson@apple.com
  • 21 edits
    2 adds
    10 deletes in trunk/Source/WebCore

Remove unused media controls code
https://bugs.webkit.org/show_bug.cgi?id=209875
<rdar://problem/61172738>

Remove code for the, now unused, C++ based media controls.

Reviewed by Daniel Bates.

No new tests, no functional change.

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::textTrackContainer):

  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/plugins/QuickTimePluginReplacement.mm:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AXObjectCache.cpp:

(WebCore::createFromRenderer):

  • accessibility/AccessibilityMediaControls.cpp: Removed.
  • accessibility/AccessibilityMediaControls.h: Removed.
  • dom/Node.h:

(WebCore::Node::isMediaControlElement const): Deleted.
(WebCore::Node::isMediaControls const): Deleted.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::childShouldCreateRenderer const):
(WebCore::HTMLMediaElement::pauseAfterDetachedTask):
(WebCore::HTMLMediaElement::updateRenderer):
(WebCore::HTMLMediaElement::selectMediaResource):
(WebCore::HTMLMediaElement::mediaLoadingFailed):
(WebCore::HTMLMediaElement::setNetworkState):
(WebCore::HTMLMediaElement::changeNetworkStateFromLoadingToIdle):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::progressEventTimerFired):
(WebCore::HTMLMediaElement::setMuted):
(WebCore::HTMLMediaElement::playbackProgressTimerFired):
(WebCore::HTMLMediaElement::addTextTrack):
(WebCore::HTMLMediaElement::removeTextTrack):
(WebCore::HTMLMediaElement::didAddTextTrack):
(WebCore::HTMLMediaElement::ensureMediaControlsShadowRoot):
(WebCore::HTMLMediaElement::updateCaptionContainer):
(WebCore::HTMLMediaElement::layoutSizeChanged):
(WebCore::HTMLMediaElement::configureTextTracks):
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged):
(WebCore::HTMLMediaElement::updateVolume):
(WebCore::HTMLMediaElement::updatePlayState):
(WebCore::HTMLMediaElement::enterFullscreen):
(WebCore::HTMLMediaElement::exitFullscreen):
(WebCore::HTMLMediaElement::didBecomeFullscreenElement):
(WebCore::HTMLMediaElement::willStopBeingFullscreenElement):
(WebCore::HTMLMediaElement::textTrackReadyStateChanged):
(WebCore::HTMLMediaElement::configureTextTrackDisplay):
(WebCore::HTMLMediaElement::updateTextTrackDisplay):
(WebCore::HTMLMediaElement::updateTextTrackRepresentationImageIfNeeded):
(WebCore::HTMLMediaElement::setClosedCaptionsVisible):
(WebCore::HTMLMediaElement::configureMediaControls):
(WebCore::HTMLMediaElement::captionPreferencesChanged):
(WebCore::HTMLMediaElement::setController):
(WebCore::HTMLMediaElement::getCurrentMediaControlsStatus):
(WebCore::HTMLMediaElement::closeCaptionTracksChanged): Deleted.
(WebCore::HTMLMediaElement::mediaControls const): Deleted.
(WebCore::HTMLMediaElement::hasMediaControls const): Deleted.
(WebCore::HTMLMediaElement::createMediaControls): Deleted.

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::mediaControlsHost):

  • html/shadow/MediaControlElementTypes.cpp: Removed.
  • html/shadow/MediaControlElementTypes.h: Removed.
  • html/shadow/MediaControlElements.cpp: Removed.
  • html/shadow/MediaControlElements.h: Removed.
  • html/shadow/MediaControlTextTrackContainerElement.cpp: Added.

(WebCore::MediaControlTextTrackContainerElement::create):
(WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):
(WebCore::MediaControlTextTrackContainerElement::createElementRenderer):
(WebCore::compareCueIntervalForDisplay):
(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
(WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentationImageIfNeeded):
(WebCore::MediaControlTextTrackContainerElement::processActiveVTTCue):
(WebCore::MediaControlTextTrackContainerElement::updateActiveCuesFontSize):
(WebCore::MediaControlTextTrackContainerElement::updateTextStrokeStyle):
(WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentationIfNeeded):
(WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation):
(WebCore::MediaControlTextTrackContainerElement::updateTextTrackStyle):
(WebCore::MediaControlTextTrackContainerElement::enteredFullscreen):
(WebCore::MediaControlTextTrackContainerElement::exitedFullscreen):
(WebCore::MediaControlTextTrackContainerElement::updateVideoDisplaySize):
(WebCore::MediaControlTextTrackContainerElement::updateSizes):
(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
(WebCore::MediaControlTextTrackContainerElement::textTrackRepresentationBoundsChanged):
(WebCore::MediaControlTextTrackContainerElement::hide):
(WebCore::MediaControlTextTrackContainerElement::show):
(WebCore::MediaControlTextTrackContainerElement::isShowing const):
(WebCore::MediaControlTextTrackContainerElement::logger const):
(WebCore::MediaControlTextTrackContainerElement::logIdentifier const):
(WebCore::MediaControlTextTrackContainerElement::logChannel const):

  • html/shadow/MediaControlTextTrackContainerElement.h: Added.
  • html/shadow/MediaControls.cpp: Removed.
  • html/shadow/MediaControls.h: Removed.
  • page/CaptionUserPreferencesMediaAF.cpp:
  • page/Page.cpp:

(WebCore::Page::setPageScaleFactor):
(WebCore::Page::setUserInterfaceLayoutDirection):

  • rendering/RenderMediaControls.cpp: Removed.
  • rendering/RenderMediaControls.h: Removed.
  • rendering/RenderSlider.cpp:
  • rendering/RenderTheme.cpp:
  • rendering/RenderThemeAdwaita.cpp:
  • rendering/RenderThemeCocoa.h:
  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::mediaControlsFormattedStringForDuration):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::mediaControlsStyleSheet):
(WebCore::RenderThemeIOS::modernMediaControlsStyleSheet):
(WebCore::RenderThemeIOS::mediaControlsScript):
(WebCore::RenderThemeIOS::mediaControlsBase64StringForIconNameAndType):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::mediaControlsStyleSheet):
(WebCore::RenderThemeMac::modernMediaControlsStyleSheet):
(WebCore::RenderThemeMac::mediaControlsScript):
(WebCore::RenderThemeMac::mediaControlsBase64StringForIconNameAndType):

  • testing/Internals.cpp:

(WebCore::Internals::getCurrentMediaControlsStatusForElement):

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

[ iOS wk2 ] fast/images/exif-orientation-background-image-repeat.html is flaky failing.
<rdar://problem/60921187>

Unreviewed test gardening.

Add "image-rendering: pixelated;" to the elements which render images to avoid unintended anti-aliasing.

  • fast/images/exif-orientation-background-image-repeat-expected.html:
  • fast/images/exif-orientation-background-image-repeat.html:
5:18 PM Changeset in webkit [259433] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

5:16 PM Changeset in webkit [259432] by Russell Epstein
  • 8 edits in branches/safari-610.1.7-branch/Source

Versioning.

5:16 PM Changeset in webkit [259431] by Alan Coon
  • 8 edits in branches/safari-609.2.1.2-branch/Source

Versioning.

5:13 PM Changeset in webkit [259430] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

Don't call -[AVCapture startRunning] when interruption ends
https://bugs.webkit.org/show_bug.cgi?id=209919
<rdar://problem/61090625>

Calling -[AVCaptureSession startRunning] after a VideoNotAllowedInSideBySide interruption
ends triggers a bug in AVCapture that hangs the app for several seconds, but restarting the
capture session isn't necessary because it will restart automatically in that case.

Reviewed by Youenn Fablet.

Tested manually.

  • platform/mediastream/mac/AVVideoCaptureSource.h: Remove InterruptionReason enum, convert

m_interruption to m_interrupted bool

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::AVVideoCaptureSource): Remove InterruptionReason enum checking.
(WebCore::AVVideoCaptureSource::stopProducingData): m_interruption -> m_interrupted.
(WebCore::AVVideoCaptureSource::interrupted const): Ditto.
(WebCore::AVVideoCaptureSource::captureSessionBeginInterruption): Ditto.
(WebCore::AVVideoCaptureSource::captureSessionEndInterruption): Ditto. Don't restart the session.
(-[WebCoreAVVideoCaptureSourceObserver observeValueForKeyPath:ofObject:change:context:]):
Drive-by fix: always log notifications to help with debugging.

5:05 PM Changeset in webkit [259429] by Alan Coon
  • 1 copy in tags/Safari-609.2.1.2.11

Tag Safari-609.2.1.2.11.

4:52 PM Changeset in webkit [259428] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r258525): Leak of NSMutableAttributedString in -[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:spellCheck:]
<https://webkit.org/b/209932>
<rdar://problem/61228565>

Reviewed by Chris Fleizach.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:spellCheck:]):
Move early return to avoid leaking NSMutableAttributedString.

4:41 PM Changeset in webkit [259427] by Alan Coon
  • 1 copy in tags/Safari-609.2.3

Tag Safari-609.2.3.

4:36 PM Changeset in webkit [259426] by Russell Epstein
  • 1 copy in tags/Safari-610.1.7.7

Tag Safari-610.1.7.7.

4:25 PM Changeset in webkit [259425] by pvollan@apple.com
  • 4 edits in trunk/Source

Unreviewed build fix after r259396.

Source/WebCore/PAL:

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

  • Shared/mac/AuxiliaryProcessMac.mm:
4:22 PM Changeset in webkit [259424] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] RecordedStatuses's assignment should be guarded by CodeBlock's lock
https://bugs.webkit.org/show_bug.cgi?id=209935
<rdar://problem/59443383>

Reviewed by Mark Lam.

Previously RecordedStatuses are not touched by GC. But now, GC visits RecordedStatuses.
This means that modifying RecordedStatuses should be guarded by CodeBlock's lock if
it is reachable from CodeBlock.
In DFG::Plan::reallyAdd, we already installed DFG::JITCode into the CodeBlock so that
RecordedStatuses is reachable from CodeBlock. We should lock CodeBlock's lock while
performing WTFMove(RecordedStatuses).

We do not need to emit write-barrier here because (1) DFG::Plan::reallyAdd is executed
while GC is deferred and (2) we emit write-barrier to CodeBlock before deferred GC is executed.

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::reallyAdd):

4:18 PM Changeset in webkit [259423] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Network tab summary bar jiggles
https://bugs.webkit.org/show_bug.cgi?id=209927

Reviewed by Timothy Hatcher.

  • UserInterface/Views/NetworkTableContentView.css:

(.network-table > .statistics > .statistic > .text):

3:52 PM Changeset in webkit [259422] by Keith Rollin
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Sort libwebrtc Xcode project file

  • libwebrtc.xcodeproj/project.pbxproj:
2:58 PM Changeset in webkit [259421] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

WebPageProxy attachment methods should return early if attachment element is not enabled
<https://webkit.org/b/209451>
<rdar://problem/60253260>

Reviewed by Chris Dumez.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::registerAttachmentIdentifierFromData):
(WebKit::WebPageProxy::registerAttachmentIdentifierFromFilePath):
(WebKit::WebPageProxy::registerAttachmentIdentifier):
(WebKit::WebPageProxy::registerAttachmentsFromSerializedData):
(WebKit::WebPageProxy::cloneAttachmentData):
(WebKit::WebPageProxy::serializedAttachmentDataForIdentifiers):
(WebKit::WebPageProxy::didInsertAttachmentWithIdentifier):

  • Add a message check for the attachment element being enabled.

(WebKit::WebPageProxy::didRemoveAttachmentWithIdentifier): Ditto.

  • Also add a missing message check to validate identifier.
2:51 PM Changeset in webkit [259420] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

[iOS wk2 Debug] imported/w3c/web-platform-tests/mathml/presentation-markup/scripts/cramped-001.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207077

Remove the flaky failing expectation since the test appears to be passing now.

  • platform/ios-wk2/TestExpectations:
2:49 PM Changeset in webkit [259419] by Chris Dumez
  • 16 edits in trunk/Source/WebCore

ActiveDOMObject::hasPendingActivity() should stop preventing wrapper collection after ActiveDOMObject::stop() has been called
https://bugs.webkit.org/show_bug.cgi?id=209886

Reviewed by Ryosuke Niwa.

ActiveDOMObject::stop() gets called when the script execution context is about to be destroyed.
ActiveDOMObject objects should no longer run script after that and there is therefore no point
in keeping the JS wrapper alive once stop() has been called. Worse, depending on the
implementation of virtualHasPendingActivity(), keeping the wrapper alive past this point may
actually cause JS wrapper leaks. Some of the virtualHasPendingActivity() were properly checking
if the context was stopped but not all of them. To address the issue, we now check
ActiveDOMObject::isContextStopped() in the JS bindings, in addition to
ActiveDOMObject::hasPendingActivity(), so that it is no longer possible to keep a JS wrapper
alive past the point where the script execution context has been stopped. This new approach
is a lot less leak/error prone.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::virtualHasPendingActivity const):

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::requestCompleted):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::virtualHasPendingActivity const):
(WebCore::IDBRequest::stop):
(WebCore::IDBRequest::enqueueEvent):
(WebCore::IDBRequest::dispatchEvent):

  • Modules/indexeddb/IDBRequest.h:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::virtualHasPendingActivity const):
(WebCore::IDBTransaction::stop):
(WebCore::IDBTransaction::notifyDidAbort):
(WebCore::IDBTransaction::enqueueEvent):
(WebCore::IDBTransaction::dispatchEvent):

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::virtualHasPendingActivity const):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

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

(WebCore::JSTestInterfaceOwner::isReachableFromOpaqueRoots):

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

(WebCore::JSTestNamedConstructorOwner::isReachableFromOpaqueRoots):

  • css/FontFace.cpp:

(WebCore::FontFace::virtualHasPendingActivity const):

  • dom/ActiveDOMObject.h:
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::virtualHasPendingActivity const):

  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::getOrCreate):
(WebCore::ServiceWorkerRegistration::update):
(WebCore::ServiceWorkerRegistration::unregister):
(WebCore::ServiceWorkerRegistration::queueTaskToFireUpdateFoundEvent):
(WebCore::ServiceWorkerRegistration::stop):
(WebCore::ServiceWorkerRegistration::virtualHasPendingActivity const):

  • workers/service/ServiceWorkerRegistration.h:
2:48 PM Changeset in webkit [259418] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

HeapSnapshotBuilder::analyzeNode() should filter out duplicate cells.
https://bugs.webkit.org/show_bug.cgi?id=209929
<rdar://problem/60974478>

Reviewed by Keith Miller.

HeapSnapshot::finalize() assumes that its list of cells contain no duplicate cells.
HeapSnapshot::appendNode() expects to only be called once for a cell. It doesn't
check for duplicates.

However, with the concurrent GC marker, there’s a racy chance that the same cell
is visited more than once by SlotVisitor, and therefore, SlotVisitor may call
HeapSnapshotBuilder::analyzeNode() (and HeapSnapshot::appendNode()) more than once
for the same cell.

The easiest and cleanest fix for this is to simply keep a HashSet of appended
cells in HeapSnapshotBuilder while it is building the snapshot. We can then use
the hash set to filter out already appended cells, and avoid adding duplicates to
the HeapSnapshot.

  • heap/HeapSnapshotBuilder.cpp:

(JSC::HeapSnapshotBuilder::buildSnapshot):
(JSC::HeapSnapshotBuilder::analyzeNode):

  • heap/HeapSnapshotBuilder.h:
2:35 PM Changeset in webkit [259417] by Simon Fraser
  • 2 edits
    10 adds in trunk/LayoutTests

Add some more scroll-latching tests
https://bugs.webkit.org/show_bug.cgi?id=209924

Reviewed by Zalan Bujtas.

Add three scroll latching tests.

iframe-latch-small-deltas.html tests that starting a second scroll where the dominant
direction can't be determined re-uses the previous latching. This test currently fails.

overflow-in-iframe-latching.html tests a wheel over a scrolled-to-top overflow inside
a not-scrolled-to-top iframe; the iframe should scroll. This test currently fails.

latching-and-wheel-events.html tests that wheel events always go to the innermost target,
even if not latched, and don't propagate across frame boundaries. This test passes
the event propagation part, but fails in a similar way to overflow-in-iframe-latching.html .

  • fast/scrolling/latching/iframe-latch-small-deltas-expected.txt: Added.
  • fast/scrolling/latching/iframe-latch-small-deltas.html: Added.
  • fast/scrolling/latching/latching-and-wheel-events-expected.txt: Added.
  • fast/scrolling/latching/latching-and-wheel-events.html: Added.
  • fast/scrolling/latching/overflow-in-iframe-latching-expected.txt: Added.
  • fast/scrolling/latching/overflow-in-iframe-latching.html: Added.
  • platform/mac-wk1/fast/scrolling/latching/iframe-latch-small-deltas-expected.txt: Added.
  • platform/mac-wk1/fast/scrolling/latching/latching-and-wheel-events-expected.txt: Added.
  • platform/mac-wk1/fast/scrolling/latching/overflow-in-iframe-latching-expected.txt: Added.
  • resources/ui-helper.js:

(window.UIHelper.async mouseWheelScrollAt):
(window.UIHelper.async waitForScrollCompletion):

2:35 PM Changeset in webkit [259416] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Rename some wheel-event related functions
https://bugs.webkit.org/show_bug.cgi?id=209918

Reviewed by Zalan Bujtas.

Rename some functions to describe what they do, rather than being generic "platform" things, to make
the code easier to read.

Similarly, rename m_clearLatchingStateTimer for what it does.

  • page/EventHandler.cpp:

(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::clearLatchedStateTimerFired):
(WebCore::EventHandler::determineWheelEventTarget):
(WebCore::EventHandler::recordWheelEventForDeltaFilter):
(WebCore::EventHandler::processWheelEventForScrolling):
(WebCore::EventHandler::processWheelEventForScrollSnap):
(WebCore::EventHandler::completeWidgetWheelEvent):
(WebCore::EventHandler::handleWheelEvent):
(WebCore::EventHandler::platformPrepareForWheelEvents): Deleted.
(WebCore::EventHandler::platformRecordWheelEvent): Deleted.
(WebCore::EventHandler::platformCompleteWheelEvent): Deleted.
(WebCore::EventHandler::platformNotifyIfEndGesture): Deleted.

  • page/EventHandler.h:
  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::clearOrScheduleClearingLatchedStateIfNeeded):
(WebCore::EventHandler::determineWheelEventTarget):
(WebCore::EventHandler::recordWheelEventForDeltaFilter):
(WebCore::EventHandler::processWheelEventForScrolling):
(WebCore::EventHandler::processWheelEventForScrollSnap):
(WebCore::EventHandler::platformPrepareForWheelEvents): Deleted.
(WebCore::EventHandler::platformRecordWheelEvent): Deleted.
(WebCore::EventHandler::platformCompleteWheelEvent): Deleted.
(WebCore::EventHandler::platformNotifyIfEndGesture): Deleted.

1:52 PM Changeset in webkit [259415] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Unreviewed build fix after r259396.

  • pal/spi/cocoa/LaunchServicesSPI.h:
1:49 PM Changeset in webkit [259414] by Chris Dumez
  • 5 edits in trunk/Source

[iOS] Replace UIKit background task with a RunningBoard FinishTaskInterruptable assertion
https://bugs.webkit.org/show_bug.cgi?id=209825
<rdar://problem/61118503>

Reviewed by Geoffrey Garen.

Source/WebKit:

Replace UIKit background task with a RunningBoard FinishTaskInterruptable assertion on iOS.
Our UIProcess gets terminated too frequently when the UIKit background task expires when
the UIProcess holds it for longer than 30 seconds in the background. The RunningBoard
FinishTaskInterruptable assertion is supposed to be equivalent but would cause suspension
of our UIProcess on expiration, instead of termination.

  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager init]):
(-[WKProcessAssertionBackgroundTaskManager _scheduleReleaseTask]):
(-[WKProcessAssertionBackgroundTaskManager _cancelPendingReleaseTask]):
(-[WKProcessAssertionBackgroundTaskManager _hasBackgroundTask]):
(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):
(-[WKProcessAssertionBackgroundTaskManager assertionWillInvalidate:]):
(-[WKProcessAssertionBackgroundTaskManager assertion:didInvalidateWithError:]):
(-[WKProcessAssertionBackgroundTaskManager _handleBackgroundTaskExpiration]):
(-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]):

Source/WTF:

Add build-time flag for WebKit-specific assertion in RunningBoard.

  • wtf/PlatformHave.h:
1:45 PM Changeset in webkit [259413] by Alan Coon
  • 1 copy in tags/Safari-610.1.8

Tag Safari-610.1.8.

1:44 PM Changeset in webkit [259412] by Alan Coon
  • 1 delete in tags/Safari-610.1.8

Delete tag.

1:41 PM Changeset in webkit [259411] by Alan Coon
  • 1 copy in branches/safari-610.1.8-branch

New branch.

1:41 PM Changeset in webkit [259410] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Allow use of syscall from the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=209920
<rdar://problem/58743778>

Reviewed by Darin Adler.

Add syscall to the WebContent sandbox on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
1:38 PM Changeset in webkit [259409] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

[iOS] Remove use of 'apple-signed-executable?' from Sandbox
https://bugs.webkit.org/show_bug.cgi?id=209914
<rdar://problem/45088481>

Reviewed by Per Arne Vollan.

Some of the rules imported from the system sandbox make decisions based on whether the software is
an apple-signed executable or not. This predicate is not relevant for the WebKit processes, and
should be removed (it is always apple-signed).

This patch makes the following changes:

  1. Removes all uses of 'apple-signed-executable?' (since it is always true for WebKit).
  2. Removed two iCloud preference reads that are not used in WebKit.
  3. Switches from the deprecated 'com.apple.ReportCrash.SimulateCrash' XPC service to its

correct name 'com.apple.osanalytics.osanalyticshelper'.

Covered by existing regression tests.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
1:33 PM Changeset in webkit [259408] by dbates@webkit.org
  • 3 edits
    4 adds in trunk

Traverse float descendants when computing event and touch-action regions
https://bugs.webkit.org/show_bug.cgi?id=209896
<rdar://problem/61196287>

Reviewed by Antti Koivisto.

Source/WebCore:

Consider floating objects when computing the event region and touch-action region.
For touch-action hit testing this means that CSS touch-action is honored on floating
objects.

Tests: fast/scrolling/ios/event-region-float.html

pointerevents/ios/touch-action-region-float.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintObject):

LayoutTests:

Add tests to ensure that floating objects are considered when computing the
event region and touch-action regions. Without this change, event-region-float.html
would not create an event region at all and touch-action-region-float.html
would not list the floating objects with "touch-action: none".

  • fast/scrolling/ios/event-region-float-expected.txt: Added.
  • fast/scrolling/ios/event-region-float.html: Added.
  • pointerevents/ios/touch-action-region-float-expected.txt: Added.
  • pointerevents/ios/touch-action-region-float.html: Added.
1:28 PM Changeset in webkit [259407] by Alan Coon
  • 1 copy in tags/Safari-610.1.8

Tag Safari-610.1.8.

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

[ Mac wk1 Debug ] inspector/css/add-css-property.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209921

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:05 PM Changeset in webkit [259405] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Mark http/tests/inspector/network/har/har-page-aggressive-gc.html

as slow for mac-wk1 debug.

12:58 PM Changeset in webkit [259404] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

Hulu.com gets stuck in a "loading" state when seeking
https://bugs.webkit.org/show_bug.cgi?id=209916
<rdar://problem/55041979>

Reviewed by Eric Carlson.

Hulu.com depends on the "canplay" event firing after a seek to hide their loading indicator.
The HTML spec says that "canplay" should only be fired when moving from the HAVE_CURRENT_DATA
to HAVE_FUTURE_DATA or greater, but when seeking within the buffered range, the readyState
never drops below HAVE_FUTURE_DATA. To work around this behavior, add a quirk for Hulu.com
that always fires "canplay" after a seek completes, so long as the readyState is HAVE_FUTURE_DATA
or higher.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::seekTask):
(WebCore::HTMLMediaElement::finishSeek):

  • page/Quirks.cpp:

(WebCore::Quirks::needsCanPlayAfterSeekedQuirk const):

  • page/Quirks.h:
12:16 PM Changeset in webkit [259403] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r234685): Leak of CALayer in createCoreAnimationLayer() in PluginObjectMac.mm
<https://webkit.org/b/209915>

Reviewed by Darin Adler.

  • DumpRenderTree/TestNetscapePlugIn/PluginObjectMac.mm:

(createCoreAnimationLayer): Use RetainPtr<> to fix leak.

12:06 PM Changeset in webkit [259402] by Wenson Hsieh
  • 10 edits
    2 adds in trunk

Avoid null deref after inserting a text field with a list attribute
https://bugs.webkit.org/show_bug.cgi?id=209909
<rdar://problem/60742229>

Reviewed by Ryosuke Niwa.

Source/WebCore:

On macOS, when painting a text field with an associated datalist (i.e. HTMLInputElement::list() is non-null),
we assume that the datalist suggestions dropdown button has a renderer (in other words, it does not have a style
of display: none).

Existing logic in TextFieldInputType is responsible for upholding this invariant -- when the list attribute
changes on an input field (e.g. when we parse the list attribute, or when it is set by JavaScript), we update
the inline display style of m_dataListDropdownIndicator, such that it is set to display: none only if there
is either no list attribute, or the list attribute is empty, or the list does not refer to a connected datalist
element. However, there is one scenario in which this invariant is violated. Consider the following:

  1. An input field is created, and its list attribute is set to "foo". Importantly, it is not connected yet.
  2. A datalist element with id "foo" is then created and then added to the document.
  3. The input field created in (1) is then added to the document.

In this scenario, listAttributeTargetChanged() is invoked after (1), but since it is not connected, it has no
datalist yet, and so m_dataListDropdownIndicator will remain non-rendered. When it is later added to the DOM,
nothing attempts to m_dataListDropdownIndicator even though its list attribute now refers to a datalist, so
it remains hidden. When we later go to paint the input's datalist dropdown button in
RenderThemeMac::paintListButtonForInput, we assume that the dropdown button must be rendered because the input
has a datalist and subsequently crash since buttonElement->renderer() remains null.

To fix this, we add logic to update the datalist dropdown button's inline display style when it is connected to
the document with an existing, non-empty list attribute.

Test: fast/forms/datalist/append-input-with-list-attribute.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::didFinishInsertingNode):

Notify the InputType subclass that the datalist element may have changed after an input element is connected
to the document with a non-empty list attribute.

(WebCore::HTMLInputElement::dataListMayHaveChanged):
(WebCore::ListAttributeTargetObserver::idTargetChanged):
(WebCore::HTMLInputElement::listAttributeTargetChanged): Deleted.

Rename listAttributeTargetChanged to dataListMayHaveChanged, since it is no longer called only when the list
attribute changes value, but rather when the input's datalist element may have changed.

  • html/HTMLInputElement.h:
  • html/InputType.cpp:

(WebCore::InputType::dataListMayHaveChanged):
(WebCore::InputType::listAttributeTargetChanged): Deleted.

  • html/InputType.h:
  • html/RangeInputType.cpp:

(WebCore::RangeInputType::dataListMayHaveChanged):
(WebCore::RangeInputType::listAttributeTargetChanged): Deleted.

  • html/RangeInputType.h:
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::dataListMayHaveChanged):
(WebCore::TextFieldInputType::listAttributeTargetChanged): Deleted.

  • html/TextFieldInputType.h:

LayoutTests:

Add a layout test to exercise the crashing scenario, and verify that the end result of programmatically
inserting the text field is identical to simply putting an input field with a datalist in the markup.

  • fast/forms/datalist/append-input-with-list-attribute-expected.html: Added.
  • fast/forms/datalist/append-input-with-list-attribute.html: Added.
11:57 AM Changeset in webkit [259401] by Darin Adler
  • 52 edits in trunk

Remove all uses of live ranges from TextIterator
https://bugs.webkit.org/show_bug.cgi?id=209723

Reviewed by Antti Koivisto.

Source/WebCore:

  • Replaced TextIterator::getLocationAndLengthFromRange with a function named characterRange that computes a CharacterRange given a scope and a range.
  • Removed the overload of plainText that takes a pointer to a live range.
  • Update the many callers of plainText that pass a pointer to a live range to pass a reference instead, adding null checks as needed to preserve behavior.
  • Rewrote some call sites to not use live ranges at all, or use them minimally.
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::nextSentenceEndPosition const): Streamlined
the logic in this function, using a smaller number of null checks since the
functions we are calling also do null checks, simpler variable names and
fewer local variables. Pass a reference to a live range rather than a
pointer to the plainText function.
(WebCore::AccessibilityObject::previousSentenceStartPosition const): Ditto.
(WebCore::AccessibilityObject::nextParagraphEndPosition const): Ditto.
(WebCore::AccessibilityObject::previousParagraphStartPosition const): Ditto.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::textUnderElement const): Ditto.
(WebCore::boundsForRects): Converted this to a file-local function and changed
it to take a SimpleRange instead of a live range.
(WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange const): Pass
a reference to a live range instead of a pointer.
(WebCore::AccessibilityRenderObject::boundsForRange const): Ditto.

  • accessibility/AccessibilityRenderObject.h: Removed boundsForRects.
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper _convertToNSRange:]): Rewrote to use
characterRange instead of TextIterator::getLocationAndLengthFromRange.

  • dom/BoundaryPoint.h:

(WebCore::makeBoundaryPointBeforeNodeContents): Added.

  • dom/Element.cpp:

(WebCore::Element::innerText): Pass a SimpleRange instead of a live range
to the plainText function.

  • dom/Range.cpp:

(WebCore::Range::text const): Pass a reference to a live range instead of a
pointer to the plainText function.

  • dom/SimpleRange.cpp:

(WebCore::makeBoundaryPointAfterNodeContents): Added.
(WebCore::makeRangeSelectingNodeContents): Use makeBoundaryPointBeforeNodeContents
and makeBoundaryPointAfterNodeContents

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::applyPendingCorrection): Pass a reference
to a live range to plainText.
(WebCore::AlternativeTextController::show): Ditto.
(WebCore::AlternativeTextController::timerFired): Ditto.
(WebCore::AlternativeTextController::handleAlternativeTextUIResult): Ditto.
(WebCore::AlternativeTextController::recordAutocorrectionResponse): Ditto. Also
take a SimpleRange argument.
(WebCore::AlternativeTextController::markPrecedingWhitespaceForDeletedAutocorrectionAfterCommand):
Ditto.
(WebCore::AlternativeTextController::respondToMarkerAtEndOfWord):Ditto.

  • editing/AlternativeTextController.h: Update for the above changes.
  • editing/Editor.cpp:

(WebCore::Editor::markMisspellingsAfterTypingToWord): Pass a reference
to a live range to plainText.
(WebCore::correctSpellcheckingPreservingTextCheckingParagraph): Ditto.
Also refactor for simplicity and clarity.
(WebCore::Editor::markAndReplaceFor): Ditto.
(WebCore::Editor::changeBackToReplacedString): Ditto.
(WebCore::Editor::transpose): Ditto.
(WebCore::Editor::addRangeToKillRing): Ditto.
(WebCore::Editor::stringForCandidateRequest const): Ditto.

  • editing/ReplaceRangeWithTextCommand.cpp:

(WebCore::ReplaceRangeWithTextCommand::doApply): Ditto.

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplacementFragment::ReplacementFragment): Ditto.

  • editing/SpellingCorrectionCommand.cpp:

(WebCore::SpellingCorrectionCommand::doApply): Ditto.

  • editing/TextCheckingHelper.cpp:

(WebCore::TextCheckingParagraph::text const): Ditto.
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar): Ditto.

  • editing/TextIterator.cpp: Use more constexpr.

(WebCore::characterSubrange): Deleted. Moved the logic from this function
into the one place using it, the rangeForMatch function.
(WebCore::resolveCharacterLocation): Deleted. Moved to the header file.
(WebCore::TextIterator::getLocationAndLengthFromRange): Deleted.
(WebCore::plainText): Deleted the overload that takes a live range pointer.
(WebCore::plainTextUsingBackwardsTextIteratorForTesting): Deleted. Moved
the implementation to Internals. There's nothing special about the algorithm,
it uses SimplifiedBackwardsTextIterator in a simple way.
(WebCore::collapsedToBoundary): Deleted. Moved the code to the one place
it's used, the rangeForMatch function.
(WebCore::forEachMatch): Renamed from findPlainTextMatches and changed to
work without any use of live ranges and to use CharacterRange.
(WebCore::rangeForMatch): Rewrote to include more of the logic, removing
the collapsedToBoundary and characterSubrange functions, and to not use
any live ranges.
(WebCore::findClosestPlainText): Rewrote to tighten up the algorithm a
bit, break ties based on the search direction, and have less repetitive code.
(WebCore::findPlainText): Rewrote for clarity.

  • editing/TextIterator.h: Removed the forward declaration of Range.

Removed the overload of plainText that takes a live range pointer. Moved
the functions that work with character ranges up to the top of the file,
grouped the other functions more logically. Deleted the
TextIterator::getLocationAndLengthFromRange function. Put some inline
function definitions here.

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::markMisspellingsAfterTyping): Pass a reference
to a live range to plainText.

  • editing/VisibleUnits.cpp:

(WebCore::charactersAroundPosition): Pass a SimpleRange to plainText
rather than a live range.

  • editing/cocoa/DataDetection.mm:

(WebCore::detectItemAtPositionWithRange): Pass a reference to a live
range to plainText.

  • editing/cocoa/DictionaryLookup.mm:

(WebCore::DictionaryLookup::rangeForSelection): Ditto.

  • editing/cocoa/HTMLConverter.h: Tweaked #if a bit.
  • editing/mac/DictionaryLookupLegacy.mm:

(WebCore::DictionaryLookup::rangeForSelection): Pass a reference to a
live range to plainText. Also rewrote logic to use mostly SimpleRange.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::renderedTextRespectingRange): Ditto.

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::handleBeforeTextInsertedEvent const): Ditto.

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected): Ditto.

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::toString): Ditto.

  • page/Page.cpp:

(WebCore::Page::replaceRangesWithText): Rewrote to replaces use of
TextIterator::getLocationAndLengthFromRange with characterRange.

  • page/ios/FrameIOS.mm:

(WebCore::Frame::interpretationsForCurrentRoot const): Pass a
reference to a live range to plainText.

  • testing/Internals.cpp:

(WebCore::Internals::locationFromRange): Use characterRange.
(WebCore::Internals::lengthFromRange): Ditto.
(WebCore::Internals::rangeAsTextUsingBackwardsTextIterator):
USe SimplifiedBackwardsTextIterator directly since we no longer have
the function plainTextUsingBackwardsTextIteratorForTesting.

Source/WebKit:

  • Shared/EditingRange.cpp:

(WebKit::EditingRange::fromRange): Use characterRange.

  • Shared/mac/AttributedString.h: Added a constructor that takes rvalue

references so we can initialize this slightly more efficiently.

  • Shared/mac/AttributedString.mm:

(IPC::ArgumentCoder<WebKit::AttributedString>::decode): Pass rvalue
references when creating an AttributedString.

  • UIProcess/mac/TextCheckerMac.mm:

(WebKit::TextChecker::updateSpellingUIWithGrammarString): Simplify the
code to remove some local variables that weren't helpful.

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.h: Made the

annotatedSubstringBetweenPositions a static member function. Also used
const& argument types to cut down on reference count churn a bit.

  • WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:

(WebKit::TextCheckingControllerProxy::rangeAndOffsetRelativeToSelection):
Streamlined and made this use characterCount instead of
TextIterator::getLocationAndLengthFromRange.
(WebKit::TextCheckingControllerProxy::replaceRelativeToSelection): Tweaked
the argument type.
(WebKit::TextCheckingControllerProxy::removeAnnotationRelativeToSelection):
Ditto. Also removed some unnecessary use of NSString.
(WebKit::TextCheckingControllerProxy::annotatedSubstringBetweenPositions):
Rewrote to no longer use live ranges.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::getContentsAsAttributedString): Use construction and
rvalue references to tigten things up a bit.

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::contentsAsString const): Use a SimpleRange instead of
a live range to pass to plainText.

  • WebProcess/WebPage/glib/WebPageGLib.cpp:

(WebKit::WebPage::getPlatformEditorState const): Pass references to
live ranges to plainText.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateSelectionWithDelta): Rewrote to minimize use of
live ranges.
(WebKit::WebPage::requestDocumentEditingContext): Ditto.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::getPlatformEditorState const): Pass reference to
a live range to plainText.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::updateSpellingUIWithGrammarString): Remove some unnecessary
use of local variabels for NSString.
(WebEditorClient::requestCandidatesForSelection): Pass a reference to a live
range to plainText.

  • WebView/WebFrame.mm:

(-[WebFrame _stringForRange:]): Ditto.
(-[WebFrame _convertToNSRange:]): Use characterRange instead of
TextIterator::getLocationAndLengthFromRange.

Source/WebKitLegacy/win:

  • WebFrame.cpp:

(WebFrame::string): Use a SimpleRange instead of a live range
to call plainText.

  • WebView.cpp:

(WebView::selectedRangeForTesting): Use a SimpleRange instead
of a live range to call characterRange instead of
TextIterator::getLocationAndLengthFromRange.

LayoutTests:

  • editing/text-iterator/find-string-on-flat-tree-expected.txt:
  • editing/text-iterator/find-string-on-flat-tree.html:

Updated test for a progress where we properly find strings across a shadow boundary.

11:44 AM Changeset in webkit [259400] by Keith Rollin
  • 2 edits in trunk/Source/WTF

Address static analysis warning in DataLog.cpp: Value stored to 'pathCharactersAvailable' is never read
https://bugs.webkit.org/show_bug.cgi?id=202153
<rdar://problem/55671845>

Reviewed by David Kilzer.

Bug 168914 introduced some code that will initialize a variable to
zero, but then never use that variable afterwards. Address this by
removing the assignment.

  • wtf/DataLog.cpp:

(WTF::setDataFile):

11:37 AM Changeset in webkit [259399] by ddkilzer@apple.com
  • 20 edits in trunk

API::PageConfiguration may have conflicting preference values between WebPreferences and WebPreferencesStore::ValueMap instance variables
<https://webkit.org/b/209678>
<rdar://problem/60981271>

Reviewed by Brent Fulgham.

Source/WebKit:

We fix this bug by removing
API::PageConfiguration::m_preferenceValues and
WebPageProxy::m_configurationPreferenceValues, and instead set
values directly on the WebPreferences object, which holds values
in its WebPreferencesStore instance variable. This change only
requires that the API::PageConfiguration object has
m_preferences set to a valid WebPreferences object before using
the settings APIs.

Covered by WKAttachment TestWebKitAPI tests and
editing/undo-manager layout tests, among others.

  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::copy const):

  • Remove use of m_preferenceValues instance variable.
  • UIProcess/API/APIPageConfiguration.h:
  • Update headers after removing WebPreferencesStore.h.

(API::PageConfiguration::preferenceValues): Delete.

  • Remove use of m_preferenceValues instance variable.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setupPageConfiguration:]):

  • Switch to use WebPreferences methods for settings.
  • UIProcess/API/mac/WKView.mm:

(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):

  • Create WebPreferences object for API::PageConfiguration object. This is what WebProcessPool::createWebPage() does when creating a WebPageProxy object.
  • Switch to use WebPreferences method to set SystemLayoutDirection.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):

  • Remove initialization of m_configurationPreferenceValues.
  • Switch to use WebPreferences method to set DisableScreenSizeOverride.

(WebKit::WebPageProxy::preferencesStore const):

  • Simplify this method after removing m_configurationPreferenceValues.
  • UIProcess/WebPageProxy.h:
  • Remove m_configurationPreferenceValues.

Tools:

  • TestWebKitAPI/Tests/WebKit/mac/GetBackingScaleFactor.mm:

(TestWebKitAPI::TEST):

  • Fix WKView constructor to pass a valid WKPageGroupRef.
  • WebKitTestRunner/TestController.cpp:

(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformCreateWebView):

  • Remove support for custom "enableUndoManagerAPI" setting since layout tests should use "internal:UndoManagerAPIEnabled" instead.

LayoutTests:

  • editing/undo-manager/undo-manager-add-item-exceptions.html:
  • editing/undo-manager/undo-manager-add-item.html:
  • editing/undo-manager/undo-manager-delete-stale-undo-items.html:
  • editing/undo-manager/undo-manager-interfaces.html:
  • editing/undo-manager/undo-manager-item-labels.html:
  • editing/undo-manager/undo-manager-keeps-wrapper-alive.html:
  • editing/undo-manager/undo-manager-undo-redo-after-garbage-collection.html:
  • Fix tests to use "internal:UndoManagerAPIEnabled=true" instead of custom "enableUndoManagerAPI=true" setting, which is being removed since it doesn't work after the changes to WebKit.
11:37 AM Changeset in webkit [259398] by pvollan@apple.com
  • 3 edits in trunk/Source/WebCore/PAL

Unreviewed build fix.

  • pal/spi/cocoa/CoreServicesSPI.h:
  • pal/spi/cocoa/LaunchServicesSPI.h:
11:27 AM Changeset in webkit [259397] by Simon Fraser
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Build fix after r259385.

Reviewed by David Kilzer, Youenn Fablet.

Convert isStandardFrameSize() into a lambda function since it only has one call site.

  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:

(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
(isStandardFrameSize): Deleted.

11:26 AM Changeset in webkit [259396] by pvollan@apple.com
  • 6 edits
    1 add in trunk/Source

[macOS] Remove redundant call to check in with Launch Services
https://bugs.webkit.org/show_bug.cgi?id=209911

Reviewed by Darin Adler.

Source/WebCore/PAL:

Move declarations to SPI header files.

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/CoreServicesSPI.h: Added.
  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

There is no need to explicitly check in with Launch Services or call RegisterApplication in the WebContent process,
since this is handled when calling [NSApplication _accessibilityInitialize].

No new tests, since this only removes a redundant call, and should be covered by existing tests.

  • Shared/mac/AuxiliaryProcessMac.mm:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::updateProcessName):
(WebKit::WebProcess::platformInitializeProcess):

11:12 AM Changeset in webkit [259395] by Chris Dumez
  • 3 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
<rdar://problem/60937276>

Reviewed by Jonathan Bedard.

Update empty-document-goes-back.html to schedule the history.back() call *after* the load
event has been fired, so that a HistoryItem has actually been created.

  • fast/loader/resources/empty-document-goes-back.html:
  • platform/mac-wk1/TestExpectations:
11:07 AM Changeset in webkit [259394] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove a superflous blank line added in the previous commit as pointed out during the code review.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::copyAssociatedElementsVector const):

11:04 AM Changeset in webkit [259393] by rniwa@webkit.org
  • 13 edits in trunk/Source

HTMLFormElement should use WeakPtr to keep track of its associated elements
https://bugs.webkit.org/show_bug.cgi?id=209894

Reviewed by Wenson Hsieh.

Source/WebCore:

Replaced the vector of raw pointers to FormAssociatedElement in HTMLFormElement by a vector
of WeakPtr to the equivalent HTMLElement. Most of code changes below are due to type of elements
in the vector changing from FormAssociatedElement to HTMLElement and needing conversion.

This patch also moves clearing of m_form from ~FormAssociatedElement to its subclasses'
destructors since we need to make a virtual function call to get HTMLElement* out of
FormAssociatedElement, which would be too late inside ~FormAssociatedElement.

No new tests since there should be no behavioral change.

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::~FormAssociatedElement): Assert that m_form had been cleared
instead of clearing it here.

  • html/FormAssociatedElement.h:

(WebCore::FormAssociatedElement::clearForm): Added.

  • html/FormController.cpp:

(WebCore::recordFormStructure):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::~HTMLFormControlElement): Now calls clearForm. Also removed
the redundant comment.

  • html/HTMLFormControlsCollection.cpp:

(WebCore::findFormAssociatedElement):
(WebCore::HTMLFormControlsCollection::unsafeFormControlElements const): Deleted.
(WebCore::HTMLFormControlsCollection::copyFormControlElementsVector const): Deleted.
(WebCore::HTMLFormControlsCollection::customElementAfter const):
(WebCore::HTMLFormControlsCollection::updateNamedElementCache const):

  • html/HTMLFormControlsCollection.h:
  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::~HTMLFormElement):
(WebCore::HTMLFormElement::removedFromAncestor):
(WebCore::HTMLFormElement::length const):
(WebCore::HTMLFormElement::textFieldValues const):
(WebCore::HTMLFormElement::resetAssociatedFormControlElements):
(WebCore::HTMLFormElement::formElementIndexWithFormAttribute):
(WebCore::HTMLFormElement::registerFormElement):
(WebCore::HTMLFormElement::removeFormElement):
(WebCore::HTMLFormElement::checkInvalidControlsAndCollectUnhandled):
(WebCore::HTMLFormElement::assertItemCanBeInPastNamesMap const):
(WebCore::HTMLFormElement::unsafeAssociatedElements const):
(WebCore::HTMLFormElement::copyAssociatedElementsVector const):

  • html/HTMLFormElement.h:
  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::~HTMLObjectElement): Added. Calls clearForm.

  • html/HTMLObjectElement.h:

Source/WebKitLegacy/mac:

  • WebView/WebHTMLRepresentation.mm:

(-[WebHTMLRepresentation elementWithName:inForm:]):
(-[WebHTMLRepresentation controlsInForm:]):

10:51 AM Changeset in webkit [259392] by commit-queue@webkit.org
  • 20 edits in trunk

Add SPI to restrict loading to main resources or non-network loads
https://bugs.webkit.org/show_bug.cgi?id=209893

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

Source/WebCore:

This will allow two projects that currently use the injected bundle SPI to use these instead.
Covered by API tests.

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::validateURL):

  • loader/ResourceLoadNotifier.cpp:

(WebCore::ResourceLoadNotifier::assignIdentifierToInitialRequest):
(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):

  • loader/ResourceLoadNotifier.h:
  • page/Page.cpp:

(WebCore::m_loadsFromNetwork):
(WebCore::m_deviceOrientationUpdateProvider): Deleted.

  • page/Page.h:

(WebCore::Page::loadsSubresources const):
(WebCore::Page::loadsFromNetwork const):

  • page/PageConfiguration.h:

Source/WebKit:

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::copy const):

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::loadsSubresources const):
(API::PageConfiguration::setLoadsSubresources):
(API::PageConfiguration::loadsFromNetwork const):
(API::PageConfiguration::setLoadsFromNetwork):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _setLoadsFromNetwork:]):
(-[WKWebViewConfiguration _loadsFromNetwork]):
(-[WKWebViewConfiguration _setLoadsSubresources:]):
(-[WKWebViewConfiguration _loadsSubresources]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/WebPageProxy.cpp:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_processDisplayName):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
  • TestWebKitAPI/cocoa/HTTPServer.h:

(TestWebKitAPI::HTTPServer::totalRequests const):

  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::respondToRequests):

10:36 AM Changeset in webkit [259391] by Jason_Lawrence
  • 4 edits in trunk/LayoutTests

[ Mac wk2 Debug ] webrtc/datachannel/multiple-connections.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209878

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
9:39 AM Changeset in webkit [259390] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk/Source

Enable offlineasm debug annotations for GCC
https://bugs.webkit.org/show_bug.cgi?id=207119

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2020-04-02
Reviewed by Darin Adler.

This simply reuses the existing code that generates debug
annotations, adding two workarounds for limitations in GCC and
GDB.

First, the .file directives that offlineasm inserts in inline asm
use file slots that conflict with those in the compilation unit
that includes LLIntAssembly.h (specifically,
LowLevelInterpreter.cpp). Clang's built-in assembler will
transparently fix that for us, but for GCC we need to
post-process the generated assembler.

Unfortunately, cmake doesn't allow us to introduce a compiler wrapper for a
single source file, so we need to create a separate target for it. This
wrapping only happens when building with GCC and the user has explicitly
requested debug information, either by selecting a Debug/RelWithDebInfo build
or setting GCC_OFFLINEASM_SOURCE_MAP.

Second, GDB will only look at the line table for a compilation unit if
it can first resolve the address to one of the known symbols in the
file. Introduce marker symbols to work around this bug.

  • CMakeLists.txt:
9:12 AM Changeset in webkit [259389] by Jason_Lawrence
  • 3 edits in trunk/LayoutTests

[ Mac and iOS ] svg/custom/animate-initial-pause-unpause.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209908

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac/TestExpectations:
8:59 AM Changeset in webkit [259388] by eric.carlson@apple.com
  • 5 edits in trunk/Source/WebCore

[iOS] Allow WebKit to use camera in multi-tasking mode
https://bugs.webkit.org/show_bug.cgi?id=209904

Reviewed by Youenn Fablet.

Source/WebCore:

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::setupSession):

Source/WebCore/PAL:

  • pal/cocoa/AVFoundationSoftLink.h:
  • pal/cocoa/AVFoundationSoftLink.mm:
8:58 AM Changeset in webkit [259387] by graouts@webkit.org
  • 4 edits in trunk/Source/WebCore

Video previews on shutterstock.com don't play when tapped on iPadOS
https://bugs.webkit.org/show_bug.cgi?id=209903
<rdar://problem/58844166>

Reviewed by Wenson Hsieh.

When tapping on a video preview after searching for a video on shutterstock.com, for instance on https://www.shutterstock.com/video/search/people,
we correctly enter the hover state thanks to our content observation heuristics, but the <video> preview inserted fails to play and show due to a
style rule setting a "display: none" style if the media-query "pointer: coarse" evaluates to true.

In order to improve this website's behavior on iPadOS, we add a new quirk that prevents the "pointer: coarse" media query from evaluating to true.
This new quirk, shouldPreventPointerMediaQueryFromEvaluatingToCoarse(), evaluates to true only for this this website.

  • css/MediaQueryEvaluator.cpp:

(WebCore::pointerEvaluate):

  • page/Quirks.cpp:

(WebCore::Quirks::shouldPreventPointerMediaQueryFromEvaluatingToCoarse const):

  • page/Quirks.h:
8:44 AM Changeset in webkit [259386] by Kate Cheney
  • 2 edits in trunk/Tools

Add additional WKAppBoundDomains to TestWebKitAPI's expectations after initializing eTLD+1 by default
https://bugs.webkit.org/show_bug.cgi?id=209889
<rdar://problem/61184539>

Reviewed by Brent Fulgham.

Additional domains will now be included in TestWebKitAPI's
WKAppBoundDomains list after
https://bugs.webkit.org/show_bug.cgi?id=209839 (Allow WKAppBoundDomains
to be initialized with eTLD+1 only (no protocol)).

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(TEST):

7:03 AM Changeset in webkit [259385] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Temporarily restrict kVTVideoEncoderSpecification_RequiredLowLatency use to iOS
https://bugs.webkit.org/show_bug.cgi?id=209902

Reviewed by Eric Carlson.

  • Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:

Our setup with this key does not work yet on MacOS, disable it for now on MacOS.

5:34 AM WebKitGTK/2.28.x edited by Adrian Perez de Castro
(diff)
5:07 AM Changeset in webkit [259384] by youenn@apple.com
  • 3 edits
    3 adds in trunk

Debug crash: ASSERTION FAILED: m_ongoingFetches.contains(task.fetchIdentifier())
https://bugs.webkit.org/show_bug.cgi?id=209743

Reviewed by Darin Adler.

Source/WebKit:

When context gets closed, we make ServiceWorkerFetchTask::m_serviceWorkerConnection null as it no longer
needs to send messages and does not need to unregister itself.

Test: http/wpt/service-workers/service-worker-crashing-while-fetching.https.html

  • NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::contextClosed):

LayoutTests:

  • http/wpt/service-workers/service-worker-crashing-while-fetching.https-expected.txt: Added.
  • http/wpt/service-workers/service-worker-crashing-while-fetching.https.html: Added.
  • http/wpt/service-workers/service-worker-lengthy-worker.js: Added.

(fetchTest):

4:00 AM Changeset in webkit [259383] by youenn@apple.com
  • 30 edits in trunk

Remove synchronous termination of service workers
https://bugs.webkit.org/show_bug.cgi?id=209666

Reviewed by Chris Dumez.

Source/WebCore:

Instead of supporting synchronous IPC to terminate a service worker, SWServerWorker will asynchronously ask for the service worker to terminate.
If it is not terminated after some time, SWServerWorker will then ask to terminate the process running the service worker.
Time is kept to 10 seconds.

We can then remove all synchronous related code related to termination.
We migrate the terminateServiceWorker internal API to be Promise based.

Covered by existing tests.

  • testing/Internals.cpp:

(WebCore::Internals::terminateServiceWorker):

  • testing/Internals.h:
  • testing/Internals.idl:
  • workers/service/ServiceWorkerProvider.h:
  • workers/service/SWClientConnection.h:
  • workers/service/WorkerSWClientConnection.cpp:
  • workers/service/WorkerSWClientConnection.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::~SWServer):
(WebCore::SWServer::unregisterServiceWorkerClient):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerToContextConnection.h:
  • workers/service/server/SWServerWorker.cpp:

(WebCore::m_terminationTimer):
(WebCore::SWServerWorker::~SWServerWorker):
(WebCore::SWServerWorker::terminate):
(WebCore::SWServerWorker::startTermination):
(WebCore::SWServerWorker::terminateCompleted):
(WebCore::SWServerWorker::callTerminationCallbacks):
(WebCore::SWServerWorker::terminationTimerFired):
(WebCore::SWServerWorker::setState):
(WebCore::SWServerWorker::didFailHeartBeatCheck):

  • workers/service/server/SWServerWorker.h:

(WebCore::SWServerWorker::terminate):

Source/WebKit:

Update IPC code according removal of synchronous termination of service worker.
Implement async-with-reply termination instead.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::terminateWorkerFromClient):
(WebKit::WebSWServerConnection::fetchTaskTimedOut):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::terminateDueToUnresponsiveness):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • WebProcess/Storage/WebServiceWorkerProvider.cpp:
  • WebProcess/Storage/WebServiceWorkerProvider.h:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::terminateWorkerForTesting):

  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:
  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:

LayoutTests:

  • http/tests/workers/service/resources/postmessage-after-sw-process-crash.js:

(async event):

  • http/tests/workers/service/resources/postmessage-after-terminate.js:

(async event):

  • http/tests/workers/service/resources/postmessage-after-terminating-hung-worker.js:

(async event):

3:26 AM Changeset in webkit [259382] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] Public API should not allow trying to register a special URI scheme
https://bugs.webkit.org/show_bug.cgi?id=209900

Reviewed by Carlos Garcia Campos.

No new tests needed.

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkit_web_context_register_uri_scheme): Use g_return_if_fail() to
check at the public API level whether the passed URI scheme is
special and bail out early.

3:09 AM Changeset in webkit [259381] by zandobersek@gmail.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Unreviewed, fix libwebrtc build with GCC 9 after the M82 bump.

GCC 9 fails to process the FrameGeneratorCapturerConfig::ImageSlides::Crop
class, throwing an error due to the default member initializer for the
scroll_duration member being required before the end of the
encapsulating FrameGeneratorCapturerConfig::ImageSlides class.

This can be avoided by default-initializing the
FrameGeneratorCapturerConfig::ImageSlides::Crop member variable instead
of specific members of that class.

Similar fix will be pushed to the upstream repository.

  • Source/webrtc/test/frame_generator_capturer.h:
2:12 AM WebKitGTK/2.28.x edited by berto@igalia.com
(diff)
1:45 AM Changeset in webkit [259380] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK] [2.28.0] The Yelp build crashes if DISPLAY is not set
https://bugs.webkit.org/show_bug.cgi?id=209431

Reviewed by Carlos Alberto Lopez Perez.

Remove the assert when display is not X11 nor Wayland, and simply return false to ensure acceleration is not used.

  • UIProcess/gtk/AcceleratedBackingStore.cpp:

(WebKit::AcceleratedBackingStore::checkRequirements):

12:43 AM Changeset in webkit [259379] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Remove FrameLoader::addExtraFieldsToMainResourceRequest
https://bugs.webkit.org/show_bug.cgi?id=209853

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

Remove FrameLoader::addExtraFieldsToMainResourceRequest since the call is
not needed in DocumentLoader and can be inlined in FrameLoader. The call
in DocumentLoader is no longer needed since adding the User-Agent header
is decoupled from addExtraFields functionality and the User-Agent header
will be added in CachedResourceLoader after any custom setting of the
user agent (setCustomUserAgent API).

Test: http/tests/navigation/useragent-reload.php

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::load):
(WebCore::FrameLoader::addExtraFieldsToMainResourceRequest): Deleted.

  • loader/FrameLoader.h:

Apr 1, 2020:

10:22 PM Changeset in webkit [259378] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash in WebCore::HTMLDocumentParser::insert
https://bugs.webkit.org/show_bug.cgi?id=209892

Reviewed by Darin Adler.

Speculative fix to check that the parser hasn't been detached before running preload scanner.

No new tests since there is no reproduction and I couldn't come up with one.

  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::pumpTokenizer):
(WebCore::HTMLDocumentParser::insert):

8:55 PM Changeset in webkit [259377] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[iOS] svg/as-background-image/tiled-background-image.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=209885

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark test as flaky.
7:31 PM Changeset in webkit [259376] by Jack Lee
  • 2 edits in trunk/Source/WebCore

Remove the unnecessary null check for document
https://bugs.webkit.org/show_bug.cgi?id=209819

Reviewed by Ryosuke Niwa.

No new tests, covered by existing test.

  • dom/Node.cpp:

(WebCore::Node::removedFromAncestor):

5:35 PM Changeset in webkit [259375] by Wenson Hsieh
  • 3 edits in trunk/Source/WebCore

Remove some PLATFORM(IOS_FAMILY) guards in TextFieldInputType
https://bugs.webkit.org/show_bug.cgi?id=209883

Reviewed by Darin Adler.

Refactor what is currently a compile-time IOS_FAMILY guard into a runtime check behind a private helper method
on TextFieldInputType. This makes the intention behind the iOS-specific logic more self-evident; no change in
behavior.

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::handleFocusEvent):
(WebCore::TextFieldInputType::handleBlurEvent):
(WebCore::TextFieldInputType::createDataListDropdownIndicator):
(WebCore::TextFieldInputType::shouldOnlyShowDataListDropdownButtonWhenFocusedOrEdited const):
(WebCore::TextFieldInputType::didSetValueByUserEdit):
(WebCore::TextFieldInputType::listAttributeTargetChanged):

  • html/TextFieldInputType.h:
5:19 PM Changeset in webkit [259374] by pvollan@apple.com
  • 14 edits
    1 delete in trunk

[Cocoa] UTI from MIME type cache can be removed after r258915
https://bugs.webkit.org/show_bug.cgi?id=209787

Unreviewed rollout of r257828.

Source/WebCore:

In r257828, a UTI from MIME type cache was added to avoid connecting to a launch services daemon in the
WebContent process, but after <https://trac.webkit.org/changeset/258915> this cache is not strictly needed
anymore, since r258915 solves the problem of avoiding to connect to the daemon in a general way.

  • platform/network/mac/UTIUtilities.h:
  • platform/network/mac/UTIUtilities.mm:

(WebCore::UTIFromMIMETypeCachePolicy::createValueForKey):
(WebCore::mapUTIFromMIMEType): Deleted.
(WebCore::additionalMIMETypes): Deleted.
(WebCore::createUTIFromMIMETypeMap): Deleted.
(WebCore::setUTIFromMIMETypeMap): Deleted.

  • testing/Internals.cpp:

(WebCore::Internals::getUTIFromMIMEType): Deleted.

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

(WebCore::Internals::getUTIFromMIMEType): Deleted.

Source/WebKit:

  • Shared/WebProcessCreationParameters.cpp:

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

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

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/UTIFromMIMEType.mm: Removed.
5:16 PM Changeset in webkit [259373] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Fix the build.

  • pal/spi/ios/ManagedConfigurationSPI.h:
5:13 PM Changeset in webkit [259372] by Jonathan Bedard
  • 2 edits in trunk/Tools

run-javascriptcore-tests: runJSCStressTests shouldn't exit the program
https://bugs.webkit.org/show_bug.cgi?id=209887

Reviewed by Darin Adler.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests): Exit the function, not the program.

4:47 PM Changeset in webkit [259371] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Removed the update nag from the old WebKit Nightly start page
https://bugs.webkit.org/show_bug.cgi?id=179214

Reviewed by Darin Adler.

  • wp-content/themes/webkit/nightly-start.php:
4:15 PM Changeset in webkit [259370] by Ross Kirsling
  • 8 edits in trunk

Intl.NumberFormat.prototype.format must preserve sign of -0
https://bugs.webkit.org/show_bug.cgi?id=209880

Reviewed by Keith Miller.

JSTests:

  • test262/config.yaml:

This test was skipped as ICU version-dependent, but it shouldn't be.

  • test262/expectations.yaml:

Mark four test cases as passing.

Source/JavaScriptCore:

The spec changed here two years ago:
https://github.com/tc39/ecma402/pull/232

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::formatNumber):
Do NOT throw away the sign of -0.

LayoutTests:

  • js/intl-numberformat-expected.txt:
  • js/script-tests/intl-numberformat.js:

Fix test accordingly.

4:03 PM Changeset in webkit [259369] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Use ManagedConfiguration umbrella instead of including specific headers
https://bugs.webkit.org/show_bug.cgi?id=209884
<rdar://problem/59244126>

Reviewed by Wenson Hsieh.

  • pal/spi/ios/ManagedConfigurationSPI.h:
3:50 PM Changeset in webkit [259368] by Nikita Vasilyev
  • 9 edits in trunk/Source/WebInspectorUI

Web Inspector: Use ECMAScript Numeric Separators for numbers with 5 or more digits
https://bugs.webkit.org/show_bug.cgi?id=209879

Reviewed by Joseph Pecoraro.

Instead of 1000000 write 1_000_000 so it's easier to read.

  • UserInterface/Base/Utilities.js:
  • UserInterface/Controllers/JavaScriptLogViewController.js:
  • UserInterface/Controllers/TimelineManager.js:
  • UserInterface/Models/Gradient.js:

(WI.Gradient.prototype.stringFromStops):

  • UserInterface/Models/HeapAllocationsInstrument.js:

(WI.HeapAllocationsInstrument.prototype.startInstrumentation):

  • UserInterface/Protocol/Connection.js:

(InspectorBackend.Connection.prototype._dispatchResponse):

  • UserInterface/Views/Layers3DContentView.js:

(WI.Layers3DContentView.prototype.initialLayout):

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._updateLoadTimeStatistic):

3:32 PM Changeset in webkit [259367] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

http/tests/navigation/page-cache-fontfaceset.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=209881
<rdar://problem/61114827>

Reviewed by Darin Adler.

Make sure CSSFontSelector::m_beginLoadingTimer uses a SuspendableTimer instead of a regular
timer so that it cannot fire while in the back/forward cache and start a load.

No new tests, covered by existing test.

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::CSSFontSelector):
(WebCore::CSSFontSelector::clearDocument):

  • css/CSSFontSelector.h:
3:29 PM Changeset in webkit [259366] by pvollan@apple.com
  • 8 edits in trunk

[macOS] Deny mach-lookup access to "com.apple.lsd.mapdb" in sandbox
https://bugs.webkit.org/show_bug.cgi?id=209814

Reviewed by Darin Adler.

Source/WebKit:

This was done for iOS in <https://trac.webkit.org/changeset/258915>, and in order to be able to do this
on macOS, checking in with Launch Services and updating the process name needs to be done after the
Launch Services database mapping has been done in WebProcess::platformInitializeWebProcess. Also, the
previous call to RegisterApplication has been replaced with a call to launchServicesCheckIn, since
RegisterApplication is an AppKit function, and should be avoided since the WebContent process is not
a NSApplication anymore.

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

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::AuxiliaryProcess::launchServicesCheckIn):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::initializeProcessName):
(WebKit::WebProcess::updateProcessName):
(WebKit::WebProcess::platformInitializeProcess):

  • WebProcess/com.apple.WebProcess.sb.in:

LayoutTests:

  • fast/sandbox/mac/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/mac/sandbox-mach-lookup.html:
2:52 PM Changeset in webkit [259365] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk1 Debug ] inspector/page/overrideSetting-ICECandidateFilteringEnabled.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209882

Unreviewed test gardening.

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

ASSERTION FAILED: m_wrapper on webgl/max-active-contexts-webglcontextlost-prevent-default.html
https://bugs.webkit.org/show_bug.cgi?id=209863
<rdar://problem/61164936>

Reviewed by Darin Adler.

The HTMLCanvasElement JS wrapper needs to stay alive as long as JS events may need to be fired.
When the canvas has a WebGL context, the WebGL context may cause contextlost / contextrestored
/ contextchanged events at any point, unless the context is unrecoverably lost. To fix the
issue, we now override virtualHasPendingActivity() in HTMLCanvasElement and return true if
it has a WebGL context that is not unrecoverably lost and if relevant WebGL event listeners
are registed.

No new tests, covered by existing test.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::~HTMLCanvasElement):
(WebCore::HTMLCanvasElement::virtualHasPendingActivity const):
(WebCore::HTMLCanvasElement::stop):
(WebCore::HTMLCanvasElement::eventListenersDidChange):

  • html/HTMLCanvasElement.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::isContextUnrecoverablyLost const):

  • html/canvas/WebGLRenderingContextBase.h:
2:15 PM Changeset in webkit [259363] by jer.noble@apple.com
  • 8 edits in trunk/Source/WebCore

CRASH in MediaPlayerPrivateMediaSourceAVFObjC::addAudioRenderer(), uncaught ObjC exception
https://bugs.webkit.org/show_bug.cgi?id=209827
<rdar://problem/61113080>

Reviewed by Eric Carlson.

-[AVSampleBufferAudioRenderer init] can, in exceptional conditions, return nil. Passing a
nil object, or another object that AVSampleBufferRenderSynchronizer considers "invalid", into
-[AVSampleBufferRenderSynchronizer addRenderer:] will throw an exception. Protect against this
scenario in two ways:

  • Check the return value of -[AVSampleBufferAudioRenderer init], and if nil, log an error, log to console, and set the network state to "DecodeError".
  • Wrap calls to -addRenderer: in @try/@catch blocks, which if caught, log an error, assert, and set the network state to "DecodeError".
  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::failedToCreateRenderer):

  • Modules/mediasource/MediaSource.h:
  • platform/graphics/MediaSourcePrivateClient.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):

  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:

(WebCore::MediaSourcePrivateAVFObjC::failedToCreateAudioRenderer):
(WebCore::MediaSourcePrivateAVFObjC::failedToCreateVideoRenderer):

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

(WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):

2:01 PM Changeset in webkit [259362] by Chris Dumez
  • 4 edits in trunk

Regression(r257963) didFailProvisionalNavigation delegate no longer gets called when cancelling a cross-site provisional navigation
https://bugs.webkit.org/show_bug.cgi?id=209873
<rdar://problem/61132068>

Reviewed by Alex Christensen.

Source/WebKit:

ProvisionalPageProxy::cancel() was calling didFailProvisionalLoadForFrame() was not passing a valid
FrameInfoData struct as parameter. As a result, FrameInfoData::isMainFrame ended up being false
instead of true. This was an issue because NavigationState::NavigationClient::didFailProvisionalNavigationWithError()
was relying on this flag to decide whether to call webViewDidFailProvisionalNavigationWithError or
webViewNavigationDidFailProvisionalLoadInSubframeWithError, since r257963.

Change is covered by new API tests.

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::cancel):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
1:59 PM Changeset in webkit [259361] by Jason_Lawrence
  • 3 edits in trunk/LayoutTests

[ Mac wk2 Debug ] webrtc/datachannel/multiple-connections.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209878

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
1:40 PM Changeset in webkit [259360] by don.olmstead@sony.com
  • 4 edits
    9 adds in trunk

[GPUP][PlayStation] Enable GPU Process
https://bugs.webkit.org/show_bug.cgi?id=209865

Reviewed by Eric Carlson.

.:

Enable GPU Process for development builds as an experimental feature.

  • Source/cmake/OptionsPlayStation.cmake:

Source/WebKit:

A generic LayerHostingContext is provided in this patch. It may make sense for
this to be platform specific but it may also be possible to have some shared
implementation with Cocoa ports. Once there are more implementations that
can be decided.

Add stubs for building out the GPU Process on the PlayStation port. No
implementation is provided at this time but the GPU Process will compile
and link with these changes.

  • GPUProcess/media/playstation/RemoteMediaPlayerProxyPlayStation.cpp: Added.

(WebKit::RemoteMediaPlayerProxy::prepareForPlayback):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingModeChanged):
(WebKit::RemoteMediaPlayerProxy::enterFullscreen):
(WebKit::RemoteMediaPlayerProxy::exitFullscreen):

  • GPUProcess/playstation/GPUProcessMainPlayStation.cpp: Added.

(WebKit::initializeAuxiliaryProcess<GPUProcess>):
(WebKit::GPUProcessMain):

  • GPUProcess/playstation/GPUProcessPlayStation.cpp: Added.

(WebKit::GPUProcess::initializeProcess):
(WebKit::GPUProcess::initializeProcessName):
(WebKit::GPUProcess::initializeSandbox):

  • Platform/generic/LayerHostingContext.h: Added.
  • PlatformPlayStation.cmake:
  • WebProcess/GPU/media/playstation/VideoLayerRemotePlayStation.cpp: Added.

(WebKit::createVideoLayerRemote):

12:30 PM Changeset in webkit [259359] by Chris Dumez
  • 4 edits in trunk

ASSERTION FAILED: m_wrapper on imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay.html
https://bugs.webkit.org/show_bug.cgi?id=209684
<rdar://problem/60987285>

Reviewed by Darin Adler.

Source/WebCore:

Make sure the JS wrapper does not get collected while the HTMLMediaElement is in a state where
is may still fire events (and there are JS event listeners registered). In particular, it used
to be possible for the wrapper to get collected because media playback had started and we would
crash trying to fire the very early 'canplay' JS event.

No new tests, covered by existing test.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::virtualHasPendingActivity const):

LayoutTests:

Unmark the test as crashing.

  • platform/mac/TestExpectations:
12:15 PM Changeset in webkit [259358] by don.olmstead@sony.com
  • 10 edits
    1 copy in trunk

[PlayStation] Use OBJECT libraries for WebCore and PAL
https://bugs.webkit.org/show_bug.cgi?id=209835

Reviewed by Ross Kirsling.

.:

When compiling WebCore in debug mode ranlib was having issues with the size of
libWebCore.a. This is similar to what happened with Visual Studio and WinCairo.

Additionally hidden visibility defaults are added for the port.

  • Source/cmake/OptionsPlayStation.cmake:

Source/WebCore:

After moving to object libraries MediaStrategy's constructor and destructor were
being reported as linker errors despite being set to default. Moving the definitions
to a source file stopped these issues.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/MediaStrategy.cpp: Copied from Source/WebCore/platform/MediaStrategy.h.
  • platform/MediaStrategy.h:

Source/WebKit:

Use the object libraries when building WebKit.

  • PlatformPlayStation.cmake:

Tools:

Use the object libraries when compiling TestWebCore.

  • TestWebKitAPI/PlatformPlayStation.cmake:
12:10 PM Changeset in webkit [259357] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

Delete IC incorrectly caches for proxies
https://bugs.webkit.org/show_bug.cgi?id=209777

Patch by Justin Michaud <justin@justinmichaud.com> on 2020-04-01
Reviewed by Mark Lam.

JSTests:

  • stress/delete-property-ic-proxy.js: Added.

(obj1.this.foo1):
(foo1.foo2):
(foo1):
(foo2.foo3):
(foo2):

  • stress/delete-property-inline-cache.js:

Source/JavaScriptCore:

Proxy's do not change their structure ID when properties are added, so we cannot cache deletes
for them.

  • jit/Repatch.cpp:

(JSC::tryCacheDeleteBy):

11:47 AM Changeset in webkit [259356] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ iOS wk2 ] crypto/subtle/rsa-indexeddb-non-exportable-private.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209869

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
11:42 AM Changeset in webkit [259355] by keith_miller@apple.com
  • 70 edits in trunk/Source

Bindings that override getOwnPropertySlotByIndex need to say they MayHaveIndexedAccessors
https://bugs.webkit.org/show_bug.cgi?id=209762

Reviewed by Darin Adler.

Source/JavaScriptCore:

Change indexingType to indexingModeIncludingHistory to more
clearly indicate the expected range of possible valid values.

  • runtime/StructureInlines.h:

(JSC::Structure::create):

Source/WebCore:

There may be places where we rely on this for semantic
correctness. I couldn't find any right now but we might as
well be conservative since this isn't a performance regression.

  • bindings/js/JSDOMWindowProperties.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

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

(WebCore::JSInterfaceName::createStructure):

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

(WebCore::JSMapLike::createStructure):

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

(WebCore::JSReadOnlyMapLike::createStructure):

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

(WebCore::JSReadOnlySetLike::createStructure):

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

(WebCore::JSSetLike::createStructure):

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

(WebCore::JSTestActiveDOMObject::createStructure):

  • bindings/scripts/test/JS/JSTestCEReactions.h:

(WebCore::JSTestCEReactions::createStructure):

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

(WebCore::JSTestCEReactionsStringifier::createStructure):

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

(WebCore::JSTestCallTracer::createStructure):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:

(WebCore::JSTestClassWithJSBuiltinConstructor::createStructure):

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

(WebCore::JSTestDOMJIT::createStructure):

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

(WebCore::JSTestEnabledBySetting::createStructure):

  • bindings/scripts/test/JS/JSTestEnabledForContext.h:

(WebCore::JSTestEnabledForContext::createStructure):

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

(WebCore::JSTestEventConstructor::createStructure):

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

(WebCore::JSTestEventTarget::createStructure):

  • bindings/scripts/test/JS/JSTestException.h:

(WebCore::JSTestException::createStructure):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.h:

(WebCore::JSTestGenerateIsReachable::createStructure):

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

(WebCore::JSTestGlobalObject::createStructure):

  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h:

(WebCore::JSTestIndexedSetterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h:

(WebCore::JSTestIndexedSetterThrowingException::createStructure):

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

(WebCore::JSTestIndexedSetterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:

(WebCore::JSTestInterfaceLeadingUnderscore::createStructure):

  • bindings/scripts/test/JS/JSTestIterable.h:

(WebCore::JSTestIterable::createStructure):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:

(WebCore::JSTestJSBuiltinConstructor::createStructure):

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

(WebCore::JSTestMediaQueryListListener::createStructure):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h:

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h:

(WebCore::JSTestNamedAndIndexedSetterThrowingException::createStructure):

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

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::createStructure):

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

(WebCore::JSTestNamedConstructor::createStructure):

  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h:

(WebCore::JSTestNamedDeleterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h:

(WebCore::JSTestNamedDeleterThrowingException::createStructure):

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

(WebCore::JSTestNamedDeleterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h:

(WebCore::JSTestNamedDeleterWithIndexedGetter::createStructure):

  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.h:

(WebCore::JSTestNamedGetterCallWith::createStructure):

  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.h:

(WebCore::JSTestNamedGetterNoIdentifier::createStructure):

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

(WebCore::JSTestNamedGetterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h:

(WebCore::JSTestNamedSetterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h:

(WebCore::JSTestNamedSetterThrowingException::createStructure):

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

(WebCore::JSTestNamedSetterWithIdentifier::createStructure):

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

(WebCore::JSTestNamedSetterWithIndexedGetter::createStructure):

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

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.h:

(WebCore::JSTestNamedSetterWithOverrideBuiltins::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.h:

(WebCore::JSTestNamedSetterWithUnforgableProperties::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.h:

(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins::createStructure):

  • bindings/scripts/test/JS/JSTestNode.h:
  • bindings/scripts/test/JS/JSTestObj.h:

(WebCore::JSTestObj::createStructure):

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

(WebCore::JSTestOverloadedConstructors::createStructure):

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

(WebCore::JSTestOverloadedConstructorsWithSequence::createStructure):

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

(WebCore::JSTestOverrideBuiltins::createStructure):

  • bindings/scripts/test/JS/JSTestPluginInterface.h:

(WebCore::JSTestPluginInterface::createStructure):

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

(WebCore::JSTestPromiseRejectionEvent::createStructure):

  • bindings/scripts/test/JS/JSTestSerialization.h:

(WebCore::JSTestSerialization::createStructure):

  • bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.h:

(WebCore::JSTestSerializationIndirectInheritance::createStructure):

  • bindings/scripts/test/JS/JSTestSerializationInherit.h:

(WebCore::JSTestSerializationInherit::createStructure):

  • bindings/scripts/test/JS/JSTestSerializationInheritFinal.h:

(WebCore::JSTestSerializationInheritFinal::createStructure):

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

(WebCore::JSTestSerializedScriptValueInterface::createStructure):

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

(WebCore::JSTestStringifier::createStructure):

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

(WebCore::JSTestStringifierAnonymousOperation::createStructure):

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

(WebCore::JSTestStringifierNamedOperation::createStructure):

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

(WebCore::JSTestStringifierOperationImplementedAs::createStructure):

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

(WebCore::JSTestStringifierOperationNamedToString::createStructure):

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

(WebCore::JSTestStringifierReadOnlyAttribute::createStructure):

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

(WebCore::JSTestStringifierReadWriteAttribute::createStructure):

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

(WebCore::JSTestTypedefs::createStructure):

11:22 AM Changeset in webkit [259354] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mojave wk1 Release ] platform/mac/media/media-source/videoplaybackquality-decompressionsession.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209866

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
10:02 AM Changeset in webkit [259353] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Don't use raw pointers in ShadowRoot.
https://bugs.webkit.org/show_bug.cgi?id=209843
<rdar://problem/61069603>

Reviewed by Brent Fulgham.

  • dom/Element.cpp:

(WebCore::Element::addShadowRoot):

  • dom/ShadowRoot.h:
9:48 AM Changeset in webkit [259352] by commit-queue@webkit.org
  • 8 edits in trunk

Unreviewed, reverting r259328.
https://bugs.webkit.org/show_bug.cgi?id=209861

Introduced API test failures (Requested by perarne on
#webkit).

Reverted changeset:

"[macOS] Deny mach-lookup access to "com.apple.lsd.mapdb" in
sandbox"
https://bugs.webkit.org/show_bug.cgi?id=209814
https://trac.webkit.org/changeset/259328

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

Convert app-bound domain categorization parameter to a method
https://bugs.webkit.org/show_bug.cgi?id=209842
<rdar://problem/61128744>

Reviewed by John Wilander.

SSIA.

Covered by existing TestWebKitAPI tests.

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
9:21 AM Changeset in webkit [259350] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Deprecate WKWebsiteDataStore._indexedDBDatabaseDirectory
https://bugs.webkit.org/show_bug.cgi?id=209243

Patch by Alex Christensen <achristensen@webkit.org> on 2020-04-01
Reviewed by David Kilzer.

Luckily it's read-only, but we have a way to get the configuration, so let's encourage that instead.

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
9:18 AM Changeset in webkit [259349] by Jack Lee
  • 2 edits in trunk/Tools

Unreviewed, add new committer to contributors.json

  • Scripts/webkitpy/common/config/contributors.json:
9:13 AM Changeset in webkit [259348] by Jack Lee
  • 2 edits in trunk/Source/WebCore

Notify accessibility when a node is removed from its ancestor.
https://bugs.webkit.org/show_bug.cgi?id=209819

Reviewed by Chris Fleizach.

Covered by existing tests in LayoutTests/accessibility.

  • dom/Node.cpp:

(WebCore::Node::removedFromAncestor):

9:04 AM Changeset in webkit [259347] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Unreviewed, reverting r259282.
https://bugs.webkit.org/show_bug.cgi?id=209860

Caused memory corruption (Requested by ap on #webkit).

Reverted changeset:

"Scroll latching state is not a stack"
https://bugs.webkit.org/show_bug.cgi?id=209790
https://trac.webkit.org/changeset/259282

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

Make WebPasteboardProxy::didModifyContentsOfPasteboard robust when pasteboardName is null
https://bugs.webkit.org/show_bug.cgi?id=209848
<rdar://problem/61121810>

Reviewed by Megan Gardner and David Kilzer.

Add more IPC message checks in WebPasteboardProxy; see below for more detail.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

Rename what is currently MESSAGE_CHECK to MESSAGE_CHECK_COMPLETION, and introduce two more message check macros:
MESSAGE_CHECK_WITH_RETURN_VALUE, which supports a return value, and MESSAGE_CHECK, which returns with no value.

(WebKit::WebPasteboardProxy::canAccessPasteboardData const):

Replace the early returns when pasteboardName is empty or when the web process for the given connection is null
with MESSAGE_CHECKs. When the web content process is well-behaved, these early returns should never be hit.

(WebKit::WebPasteboardProxy::didModifyContentsOfPasteboard):

Similarly, replace this early return with a message check, and additionally MESSAGE_CHECK when the pasteboard
name is empty. This addresses the main issue caught by this radar.

(WebKit::WebPasteboardProxy::setPasteboardBufferForType):

8:31 AM Changeset in webkit [259345] by commit-queue@webkit.org
  • 2024 edits
    453 adds
    1091 deletes in trunk

Bump libwebrtc to M82
https://bugs.webkit.org/show_bug.cgi?id=209542

Source/ThirdParty/libwebrtc:

Patch by youenn fablet <youenn@apple.com> and Victor M. Jaquez <vjaquez@igalia.com> on 2020-04-01
Reviewed by Eric Carlson.

  • CMakeLists.txt:
  • Source/webrtc: Updated.
  • Source/webrtc/audio/utility/channel_mixer.cc: Added cstring.h include.
  • Source/webrtc/modules/audio_processing/aec3/reverb_model_estimator.h: Added memoty.h include.
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Patch by youenn fablet <youenn@apple.com> on 2020-04-01
Reviewed by Eric Carlson.

Removed dtx/rtx support since this is no longer MTI and associatedStatId as obsolete.
Update mock connection according new virtual pure methods.

Covered by existing tests.

  • Modules/mediastream/RTCStatsReport.h:
  • Modules/mediastream/RTCStatsReport.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:

(WebCore::fillRTCRTPStreamStats):

  • Modules/mediastream/libwebrtc/LibWebRTCUtils.cpp:

(WebCore::toRTCEncodingParameters):
(WebCore::toRTCHeaderExtensionParameters):
(WebCore::fromRTCHeaderExtensionParameters):
(WebCore::toRTCRtpSendParameters):
(WebCore::toRTCRtpTransceiverDirection):

  • testing/MockLibWebRTCPeerConnection.h:

Source/WebKit:

Patch by Victor M. Jaquez <vjaquez@igalia.com> on 2020-04-01
Reviewed by Eric Carlson and Youenn Fablet.

Update include paths to latest libwebrtc paths.

  • WebProcess/Network/webrtc/LibWebRTCResolver.h:
  • WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:

LayoutTests:

Patch by youenn fablet <youenn@apple.com> on 2020-04-01
Reviewed by Eric Carlson.

This test is no longer feasible since TCP private IP address candidates are now no longer allowed.

  • webrtc/datachannel/basic-tcp-expected.txt: Removed.
  • webrtc/datachannel/basic-tcp.html: Removed.
8:28 AM Changeset in webkit [259344] by commit-queue@webkit.org
  • 2 edits in trunk/Source/bmalloc

Update check for aarch64
https://bugs.webkit.org/show_bug.cgi?id=209322
<rdar://problem/61135818>

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-04-01
Reviewed by Mark Lam.

Update BPlatform.h to follow the corresponding change in WTF's PlatformCPU.h.

  • bmalloc/BPlatform.h:
7:44 AM Changeset in webkit [259343] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, failures in EWS GTK-WK2
https://bugs.webkit.org/show_bug.cgi?id=209855

Unreviewed gardening.

Garden failures happening in EWS GTK-WK2 but not in GTK test bot.

  • platform/gtk/TestExpectations:
6:31 AM Changeset in webkit [259342] by commit-queue@webkit.org
  • 25 edits in trunk/JSTests

[JSC] Reenable non-cloop LLint, JIT and DFG on 32-bit platforms
https://bugs.webkit.org/show_bug.cgi?id=191163

Patch by Paulo Matos <Paulo Matos> on 2020-04-01
Reviewed by Adrian Perez de Castro.

Re-enable tests for 32bits.

  • stress/op_add.js:
  • stress/op_bitand.js:
  • stress/op_bitor.js:
  • stress/op_bitxor.js:
  • stress/op_lshift-ConstVar.js:
  • stress/op_lshift-VarConst.js:
  • stress/op_lshift-VarVar.js:
  • stress/op_mod-ConstVar.js:
  • stress/op_mod-VarConst.js:
  • stress/op_mod-VarVar.js:
  • stress/op_mul-ConstVar.js:
  • stress/op_mul-VarConst.js:
  • stress/op_mul-VarVar.js:
  • stress/op_rshift-ConstVar.js:
  • stress/op_rshift-VarConst.js:
  • stress/op_rshift-VarVar.js:
  • stress/op_sub-ConstVar.js:
  • stress/op_sub-VarConst.js:
  • stress/op_sub-VarVar.js:
  • stress/op_urshift-ConstVar.js:
  • stress/op_urshift-VarConst.js:
  • stress/op_urshift-VarVar.js:
  • stress/spread-forward-call-varargs-stack-overflow.js:
  • stress/value-to-boolean.js:
6:27 AM Changeset in webkit [259341] by Philippe Normand
  • 4 edits in trunk

[Flatpak SDK] Migration to version 0.2
https://bugs.webkit.org/show_bug.cgi?id=209850

Reviewed by Carlos Alberto Lopez Perez.

Tools:

Version 0.2 of the SDK is now built with Buildstream instead of
flatpak-builder. With this new version it will be easier to add
new dependencies and hack on dependencies shipped by the SDK.

Sadly I haven't found a nice way to upgrade smoothly without
removing the UserFlatpak directory. In theory this shouldn't be
needed but then old SDK branches would accumulate there, wasting
disk-space.

  • flatpak/flatpakutils.py:

(Console):
(Console.colored_message):
(Console.error_message):
(Console.warning_message):
(check_flatpak):
(FlatpakObject.flatpak):
(FlatpakRepo.init):
(FlatpakRepo):
(FlatpakRepo.is_app_installed):
(FlatpakPackage.init):
(FlatpakPackage.install):
(FlatpakPackage.update):
(WebkitFlatpak.init):
(WebkitFlatpak.clean_args):
(WebkitFlatpak._reset_repository):
(WebkitFlatpak.setup_gstbuild):
(WebkitFlatpak.main):
(WebkitFlatpak.run):
(WebkitFlatpak.setup_dev_env):
(WebkitFlatpak._get_packages):

LayoutTests:

  • http/conf/flatpak-httpd.conf: Switch back to /usr/lib/apache2

path for modules. The 0.1 version of the SDK installed those in
/usr/ but in retrospective, this was a mistake.

6:16 AM Changeset in webkit [259340] by Diego Pino Garcia
  • 5 edits in trunk/LayoutTests

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

Unreviewed gardening.

Update GTK baselines after r259296.

  • platform/gtk/css2.1/20110323/margin-applies-to-006-expected.txt:
  • platform/gtk/fast/forms/form-hides-table-expected.txt:
  • platform/gtk/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-012-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/dom/appendCol1-expected.txt:
5:15 AM Changeset in webkit [259339] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] MiniBrowser: valgrind claims 'Invalid write of size 8' on close
https://bugs.webkit.org/show_bug.cgi?id=209471

Reviewed by Adrian Perez de Castro.

This is because we need to remove the weak pointer added in child windows to their parent.

  • MiniBrowser/gtk/BrowserWindow.c:

(browserWindowDispose): Remove the parentWindow weak ref.
(browser_window_class_init): Add dispose.

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

Support resolution of IPv6 STUN/TURN addresses
https://bugs.webkit.org/show_bug.cgi?id=209808

Reviewed by Eric Carlson.

Source/WebCore:

Add family access to IPAddress to support both IPv4 and IPv6.
Store IPAddress internal value as IPv6 and cast them to IPv4 on demand.

  • platform/network/DNS.h:
  • platform/network/soup/DNSResolveQueueSoup.cpp:

(WebCore::resolvedWithObserverCallback):

Source/WebKit:

Update code to support IPv6 addresses when doing DNS resolution of TURN/STUN servers.
Refactor code to share more code between Cocoa ports and non Cocoa ports.
Manually tested with external IPv6 TURN servers.

  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::createResolver):

  • NetworkProcess/webrtc/NetworkRTCResolverCocoa.cpp:

(WebKit::resolvedName):

12:54 AM Changeset in webkit [259337] by youenn@apple.com
  • 3 edits in trunk/Source/ThirdParty/libwebrtc

Use kVTVideoEncoderSpecification_RequiredLowLatency instead of kVTVideoEncoderList_EncoderID
https://bugs.webkit.org/show_bug.cgi?id=209800

Reviewed by Eric Carlson.

For recent OS versions, disable use of VCP.
Instead, use VTB compression session with kVTVideoEncoderSpecification_RequiredLowLatency set to true.
We keep MacOS code path checking frame size for public builds running on devices without hardware encoders.

  • Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
  • Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:

(-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
(isStandardFrameSize): Deleted.

Note: See TracTimeline for information about the timeline view.