Timeline



Sep 18, 2019:

10:58 PM Changeset in webkit [250087] by Devin Rousso
  • 20 edits
    5 adds in trunk

Web Inspector: Better handling for large arrays and collections in Object Trees
https://bugs.webkit.org/show_bug.cgi?id=143589
<rdar://problem/16135388>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Adds two buttons before the "Prototype" item in expanded object/collection previews:

  • Show %d More
  • Show All (%d More)

The default fetchCount increment is 100. The first button will only be shown if there
are more than 100 items remaining (haven't been shown).

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype.getProperties):
(InjectedScript.prototype.getDisplayableProperties):
(InjectedScript.prototype.getCollectionEntries):
(InjectedScript.prototype._getProperties):
(InjectedScript.prototype._internalPropertyDescriptors):
(InjectedScript.prototype._propertyDescriptors):
(InjectedScript.prototype._propertyDescriptors.createFakeValueDescriptor):
(InjectedScript.prototype._propertyDescriptors.processProperties):
(InjectedScript.prototype._getSetEntries):
(InjectedScript.prototype._getMapEntries):
(InjectedScript.prototype._getWeakMapEntries):
(InjectedScript.prototype._getWeakSetEntries):
(InjectedScript.prototype._getIteratorEntries):
(InjectedScript.prototype._entries):
(RemoteObject.prototype._generatePreview):
(InjectedScript.prototype._propertyDescriptors.arrayIndexPropertyNames): Deleted.
Don't include boolean property descriptor values if they are `false.

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::weakMapEntries):
(Inspector::JSInjectedScriptHost::weakSetEntries):

  • inspector/InjectedScript.h:
  • inspector/InjectedScript.cpp:

(Inspector::InjectedScript::getProperties):
(Inspector::InjectedScript::getDisplayableProperties):
(Inspector::InjectedScript::getCollectionEntries):

  • inspector/agents/InspectorRuntimeAgent.h:
  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::asInt): Added.
(Inspector::InspectorRuntimeAgent::getProperties):
(Inspector::InspectorRuntimeAgent::getDisplayableProperties):
(Inspector::InspectorRuntimeAgent::getCollectionEntries):

  • inspector/protocol/Runtime.json:

Add fetchStart/fetchCount to getProperties/getDisplayableProperties/getCollectionEntries.
Mark boolean properties as optional so they can be omitted if false.

Source/WebInspectorUI:

Adds two buttons before the "Prototype" item in expanded object/collection previews:

  • Show %d More
  • Show All (%d More)

The default fetchCount increment is 100. The first button will only be shown if there
are more than 100 items remaining (haven't been shown).

  • UserInterface/Protocol/RemoteObject.js:

(WI.RemoteObject.prototype.getPropertyDescriptors):
(WI.RemoteObject.prototype.getDisplayablePropertyDescriptors):
(WI.RemoteObject.prototype.getCollectionEntries):
(WI.RemoteObject.prototype.getOwnPropertyDescriptor.wrappedCallback):
(WI.RemoteObject.prototype._getProperties): Added.
(WI.RemoteObject.prototype._getDisplayableProperties): Added.

  • UserInterface/Views/ObjectTreeView.js:

(WI.ObjectTreeView):
(WI.ObjectTreeView.showMoreFetchCount): Added.
(WI.ObjectTreeView.addShowMoreIfNeeded): Added.
(WI.ObjectTreeView.prototype.update):
(WI.ObjectTreeView.prototype._updateChildren):
(WI.ObjectTreeView.prototype._updateEntries):
(WI.ObjectTreeView.prototype._updateProperties):

  • UserInterface/Views/ObjectTreeView.css:

(.tree-outline.object li > button[disabled] + .indeterminate-progress-spinner): Added.
Avoid duplicating the button creation logic in WI.ObjectTreePropertyTreeElement by using a
static function. This expects the existence of and requires access to "private" values.

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WI.ObjectTreePropertyTreeElement):
(WI.ObjectTreePropertyTreeElement.prototype.onpopulate):
(WI.ObjectTreePropertyTreeElement.prototype._updateChildren):
(WI.ObjectTreePropertyTreeElement.prototype._updateEntries):
(WI.ObjectTreePropertyTreeElement.prototype._updateProperties):
(WI.ObjectTreePropertyTreeElement.prototype._updateChildrenInternal): Deleted.

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.evaluated):
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedArrayPropertyNames): Deleted.

  • UserInterface/Controllers/RuntimeManager.js:

(WI.RuntimeManager.prototype.getPropertiesForRemoteObject): Deleted.
Remove unused function.

  • Localizations/en.lproj/localizedStrings.js:

LayoutTests:

  • inspector/runtime/getCollectionEntries.html: Added.
  • inspector/runtime/getCollectionEntries-expected.txt: Added.
  • inspector/runtime/getDisplayableProperties.html: Added.
  • inspector/runtime/getDisplayableProperties-expected.txt: Added.
  • inspector/runtime/getProperties.html:
  • inspector/runtime/getProperties-expected.txt:
  • inspector/runtime/resources/property-descriptor-utilities.js: Added.

(makeArray):
(makeObject):
(makeMap):
(makeSet):
(makeWeakMap):
(makeWeakSet):
(TestPage.registerInitializer.ProtocolTest.PropertyDescriptorUtilities.logForEach):
(TestPage.registerInitializer.ProtocolTest.PropertyDescriptorUtilities.stringifyRemoteObject):

  • inspector/model/remote-object-weak-collection.html:
10:45 PM Changeset in webkit [250086] by jh718.park@samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Remove build warning since r249976.

No new tests, no behavioral changes.

This patch removes the build warning below.
warning: control reaches end of non-void function [-Wreturn-type]

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::alreadyChecked const):

9:53 PM Changeset in webkit [250085] by Brent Fulgham
  • 6 edits in trunk/Source/WebCore

[FTW] Correct ImageBufferData and clear operations
https://bugs.webkit.org/show_bug.cgi?id=201862

Reviewed by Fujii Hironori.

This patch corrects several problems in the canvas implementation:

  1. The implementation of ImageBufferDataDirect2D did not properly handle the case of a 'getData' request for less than the size of the full bitmap.
  2. The implementation of 'Clear' was not correct when the size of the region to be cleared is less than the size of the render target.
  3. 'endDraw' fails if any clip regions are active at the end of the operation. The stack needs to be unwound when endDraw is called.

This patch corrects all three problems.

Tested by canvas LayoutTests.

  • platform/graphics/win/Direct2DOperations.cpp:

(WebCore::Direct2D::clearRect): Correct partial render target case.

  • platform/graphics/win/ImageBufferDataDirect2D.cpp:

(WebCore::ImageBufferData::getData const): Correct partial buffer case.
(WebCore::ImageBufferData::putData): Ditto.
(WebCore::ImageBufferData::readDataFromBitmapIfNeeded): Added.
(WebCore::copyRectFromSourceToDest): Added.
(WebCore::ImageBufferData::copyRectFromSourceToData): Added.

  • platform/graphics/win/PlatformContextDirect2D.cpp:

(WebCore::PlatformContextDirect2D::endDraw): Correct failures caused by
dangling clip regions when 'endDraw' is called.
(WebCore::PlatformContextDirect2D::flush): Don't call post-draw observer;
this is already handled in the draw operations, and endDraw.
(WebCore::PlatformContextDirect2D::restore): Recognize that the clip
and transparency stack might be empty when restore is called.

9:36 PM Changeset in webkit [250084] by Chris Dumez
  • 8 edits in trunk/Source/WebKit

AddPlugInAutoStartOriginHash / PlugInDidReceiveUserInteraction IPC should not need to pass a SessionID
https://bugs.webkit.org/show_bug.cgi?id=201962

Reviewed by Geoffrey Garen.

AddPlugInAutoStartOriginHash / PlugInDidReceiveUserInteraction IPC from the WebProcess to the UIProcess
should not need to pass a SessionID, since the UIProcess already knows the SessionID of a given WebProcess.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::addPlugInAutoStartOriginHash): Deleted.
(WebKit::WebProcessPool::plugInDidReceiveUserInteraction): Deleted.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessPool.messages.in:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::addPlugInAutoStartOriginHash):
(WebKit::WebProcessProxy::plugInDidReceiveUserInteraction):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::plugInDidStartFromOrigin):
(WebKit::WebProcess::plugInDidReceiveUserInteraction):

9:18 PM Changeset in webkit [250083] by Chris Dumez
  • 5 edits in trunk/Source/WebKit

WebStorageNamespaceProvider / StorageNamespaceImpl no longer need SessionIDs
https://bugs.webkit.org/show_bug.cgi?id=201922

Reviewed by Geoffrey Garen.

WebStorageNamespaceProvider / StorageNamespaceImpl no longer need SessionIDs, now that
we have a single session per WebProcess.

  • WebProcess/WebStorage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::connect):

  • WebProcess/WebStorage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::createSessionStorageNamespace):
(WebKit::StorageNamespaceImpl::createLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::createTransientLocalStorageNamespace):
(WebKit::StorageNamespaceImpl::StorageNamespaceImpl):
(WebKit::StorageNamespaceImpl::sessionID const):
(WebKit::StorageNamespaceImpl::copy):

  • WebProcess/WebStorage/StorageNamespaceImpl.h:

(): Deleted.

  • WebProcess/WebStorage/WebStorageNamespaceProvider.cpp:

(WebKit::WebStorageNamespaceProvider::createSessionStorageNamespace):
(WebKit::WebStorageNamespaceProvider::createLocalStorageNamespace):
(WebKit::WebStorageNamespaceProvider::createTransientLocalStorageNamespace):

9:13 PM Changeset in webkit [250082] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview/Safari Technology Preview 92

Added a tag for Safari Technology Preview release 92.

9:02 PM Changeset in webkit [250081] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Decrease use of sessionID in WebLoaderStrategy
https://bugs.webkit.org/show_bug.cgi?id=201961

Reviewed by Geoffrey Garen.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResource):
(WebKit::WebLoaderStrategy::scheduleLoad):
(WebKit::WebLoaderStrategy::tryLoadingUsingURLSchemeHandler):
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):

  • WebProcess/Network/WebLoaderStrategy.h:
8:51 PM Changeset in webkit [250080] by aestes@apple.com
  • 3 edits in trunk/Source/WebCore

Unreviewed, fixed a crash in ssl/applepay/ApplePayCancelEvent.https.html

After r250060 (which landed very shortly after the patch that introduced ApplePayCancelEvent),
all Events must be IsoHeap-ed. ApplePayCancelEvent was not IsoHeap-ed, and so this caused
assertion failures in ssl/applepay/ApplePayCancelEvent.https.html.

Added the WTF_MAKE_ISO_ALLOCATED macros to ApplePayCancelEvent without a review to stop the
test from failing in EWS.

  • Modules/applepay/ApplePayCancelEvent.cpp:
  • Modules/applepay/ApplePayCancelEvent.h:
8:45 PM Changeset in webkit [250079] by Chris Dumez
  • 7 edits in trunk/Source

WebSocketStream does not need a SessionID
https://bugs.webkit.org/show_bug.cgi?id=201960

Reviewed by Geoffrey Garen.

WebSocketStream does not need a SessionID, now that we have a single session per WebProcess.

Source/WebCore:

  • platform/network/cf/SocketStreamHandleImpl.h:
  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::SocketStreamHandleImpl::SocketStreamHandleImpl):

Source/WebKit:

  • WebProcess/Network/WebSocketProvider.cpp:

(WebKit::WebSocketProvider::createSocketStreamHandle):

  • WebProcess/Network/WebSocketStream.cpp:

(WebKit::WebSocketStream::create):
(WebKit::WebSocketStream::WebSocketStream):

  • WebProcess/Network/WebSocketStream.h:
8:27 PM Changeset in webkit [250078] by Chris Dumez
  • 7 edits in trunk/Source

LibWebRTCProvider does not need sessionIDs anymore
https://bugs.webkit.org/show_bug.cgi?id=201959

Reviewed by Geoffrey Garen.

LibWebRTCProvider does not need sessionIDs anymore, now that we have a single session per WebProcess.

Source/WebCore:

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::PeerConnectionBackend::registerMDNSName):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::setConfiguration):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:

Source/WebKit:

  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::registerMDNSName):
(WebKit::LibWebRTCProvider::createSocketFactory):

  • WebProcess/Network/webrtc/LibWebRTCProvider.h:
7:34 PM Changeset in webkit [250077] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK] Compilation errors when GL is disabled
https://bugs.webkit.org/show_bug.cgi?id=200223

Fix following compilation error when building with ENABLE_OPENGL=OFF
../../Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp:123:51: error: use of undeclared identifier 'WaylandCompositor'
parameters.waylandCompositorDisplayName = WaylandCompositor::singleton().displayName();


Patch by Yury Semikhatsky <yurys@chromium.org> on 2019-09-18
Reviewed by Philippe Normand.

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess): only make a call when using EGL, this matches
guards in WaylandCompositor.h. The condition was changed in r245807.

6:45 PM Changeset in webkit [250076] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: console assertion when pressing up/down in empty console log view
https://bugs.webkit.org/show_bug.cgi?id=201948

Reviewed by Devin Rousso.

  • UserInterface/Views/LogContentView.js:

(WI.LogContentView.prototype._upArrowWasPressed):
(WI.LogContentView.prototype._downArrowWasPressed):
Ensure that a message exists before calling _updateMessagesSelection, which
would assert if given a bad message. Additionally, only perform preventDefault
when selecting a message. This allows us to fall back to a system beep if
this key event does nothing.

6:30 PM Changeset in webkit [250075] by Alan Coon
  • 1 copy in tags/Safari-608.2.11.1.7

Tag Safari-608.2.11.1.7.

6:29 PM Changeset in webkit [250074] by Alan Coon
  • 1 delete in tags/Safari-608.2.11.1.7

Delete tag.

6:24 PM Changeset in webkit [250073] by Alan Coon
  • 7 edits in branches/safari-608.2.11.1-branch/Source

Versioning.

5:37 PM Changeset in webkit [250072] by Alan Coon
  • 1 copy in tags/Safari-608.2.11.1.7

Tag Safari-608.2.11.1.7.

5:23 PM Changeset in webkit [250071] by zhifei_fang@apple.com
  • 2 edits in trunk/Tools

[results.webkit.org] fix missing col classes
https://bugs.webkit.org/show_bug.cgi?id=201949

Reviewed by Jonathan Bedard.

  • resultsdbpy/resultsdbpy/view/static/library/css/webkit.css:

(@media screen and (min-width: 768px)):
(.row):
(.col-1):
(.col-2):
(.col-3):
(.col-4):
(.col-5):
(.col-6):
(.col-7):
(.col-8):
(.col-9):
(.col-10):
(.col-11):
(.col-12):
(@media screen and (min-width: 600px)):

5:07 PM Changeset in webkit [250070] by Alan Coon
  • 2 edits in tags/Safari-609.1.4.2/Source/JavaScriptCore

Cherry-pick r250062. rdar://problem/55484663

Stop calling WTF::initializeMainThread() in JSGlobalContextCreate*()
https://bugs.webkit.org/show_bug.cgi?id=201947
<rdar://problem/55453612>

Reviewed by Mark Lam.

Stop calling WTF::initializeMainThread() in JSGlobalContextCreate*(). I started doing so in <https://trac.webkit.org/changeset/248533>
but it is causing crashes for apps using this JS API on background threads. It is also no longer necessary as of
<https://trac.webkit.org/changeset/249064>.

  • API/JSContextRef.cpp: (JSContextGroupCreate): (JSGlobalContextCreate): (JSGlobalContextCreateInGroup):

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

5:07 PM Changeset in webkit [250069] by timothy@apple.com
  • 2 edits in trunk/Source/WebKit

Eagerly create and add the m_layerHostingView to WKWebView.
https://bugs.webkit.org/show_bug.cgi?id=201942

Reviewed by Tim Horton.

Some apps will add subviews to WKWebView, and by the time we add our m_layerHostingView view we might be
adding it behind a view that should have been added behind our layer hosting view subview. This affected
the Spark email app, due to changes in order of loading delegate calls and when compositing is enabled.
Instead of delayed creation of m_layerHostingView, always create it and add it to to the WKWebView.
This ensures proper ordering of subviews when clients add a view behind all existing subviews.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::WebViewImpl): Create and add m_layerHostingView here.
(WebKit::WebViewImpl::setAcceleratedCompositingRootLayer): Remove creation and removal of m_layerHostingView.
Just set the sublayers of m_layerHostingView's layer here.

5:05 PM Changeset in webkit [250068] by Alan Coon
  • 7 edits in tags/Safari-609.1.4.2/Source

Versioning.

5:02 PM Changeset in webkit [250067] by Alan Coon
  • 1 copy in tags/Safari-609.1.4.2

New tag.

4:49 PM Changeset in webkit [250066] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebKitLegacy/mac

Add -suspend and -resumeAllMediaPlayback to WebView
https://bugs.webkit.org/show_bug.cgi?id=201951

Reviewed by Eric Carlson.

  • WebView/WebView.mm:

(-[WebView suspendAllMediaPlayback]):
(-[WebView resumeAllMediaPlayback]):

  • WebView/WebViewPrivate.h:
4:43 PM Changeset in webkit [250065] by sbarati@apple.com
  • 3 edits
    1 add in trunk

TOCTOU bug in havingABadTime related assertion in DFGSpeculativeJIT
https://bugs.webkit.org/show_bug.cgi?id=201953
<rdar://problem/53803524>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/toctou-having-a-bad-time-new-array.js: Added.

(let.code):

Source/JavaScriptCore:

We had code in DFGSpeculativeJIT like:

if (!globalObject->isHavingABadTime()) {

<-- here -->
Structure* s = globalObject->arrayStructureForIndexingTypeDuringAllocation(node->indexingType()));
assert 's' has expected indexing type

}

The problem is, we may have a bad time before we actually load the structure
inside the if. We may have a bad time while we're at the "<-- here -->" in the
above program. The fix is to first load the structure, then check if we're
having a bad time. If we're still not having a bad time, it's valid to assert
things about the structure.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNewArray):

4:33 PM Changeset in webkit [250064] by Alan Bujtas
  • 10 edits in trunk/Source/WebCore

[LFC] FormattingContext::Geometry/MarginCollapse/Quirk classes should not need to access non-const Display::Box
https://bugs.webkit.org/show_bug.cgi?id=201944
<rdar://problem/55493279>

Reviewed by Antti Koivisto.

This patch improves const correctness so that the Geometry/MarginCollapse/Quirk objects could not access non-const Display::Boxes (to mutate the display tree).
(The MarginCollapse::Update* functions are about updating the margin values on previously processed boxes so strictly speaking they are not margin collapsing related, but they somewhat belong to the MarginCollapse class -since they deal with margins.)

  • layout/FormattingContext.h:

(WebCore::Layout::FormattingContext::formattingState const):
(WebCore::Layout::FormattingContext::formattingState):

  • layout/FormattingState.cpp:

(WebCore::Layout::FormattingState::displayBox):
(WebCore::Layout::FormattingState::displayBox const): Deleted.

  • layout/FormattingState.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:

(WebCore::Layout::BlockFormattingContext::formattingState const):
(WebCore::Layout::BlockFormattingContext::formattingState):

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::updateMarginAfterForPreviousSibling):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updatePositiveNegativeMarginValues):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updateMarginAfterForPreviousSibling const): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginBefore): Deleted.
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginAfter): Deleted.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::collectInlineContent):
(WebCore::Layout::InlineFormattingContext::collectInlineContent const): Deleted.

  • layout/inlineformatting/InlineFormattingContext.h:

(WebCore::Layout::InlineFormattingContext::formattingState const):
(WebCore::Layout::InlineFormattingContext::formattingState):

  • layout/tableformatting/TableFormattingContext.h:

(WebCore::Layout::TableFormattingContext::formattingState const):
(WebCore::Layout::TableFormattingContext::formattingState):

4:16 PM Changeset in webkit [250063] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebKit

Web Inspector: Can't drag undocked Inspector window by its title text
https://bugs.webkit.org/show_bug.cgi?id=190886
<rdar://problem/44574547>

Reviewed by Tim Horton.

  • UIProcess/mac/WKInspectorWKWebView.mm:

(-[WKInspectorWKWebView _opaqueRectForWindowMoveWhenInTitlebar]):
Legendary.

3:56 PM Changeset in webkit [250062] by Chris Dumez
  • 2 edits in trunk/Source/JavaScriptCore

Stop calling WTF::initializeMainThread() in JSGlobalContextCreate*()
https://bugs.webkit.org/show_bug.cgi?id=201947
<rdar://problem/55453612>

Reviewed by Mark Lam.

Stop calling WTF::initializeMainThread() in JSGlobalContextCreate*(). I started doing so in <https://trac.webkit.org/changeset/248533>
but it is causing crashes for apps using this JS API on background threads. It is also no longer necessary as of
<https://trac.webkit.org/changeset/249064>.

  • API/JSContextRef.cpp:

(JSContextGroupCreate):
(JSGlobalContextCreate):
(JSGlobalContextCreateInGroup):

3:30 PM Changeset in webkit [250061] by Chris Dumez
  • 65 edits in trunk/Source

BlobRegistry no longer needs SessionIDs
https://bugs.webkit.org/show_bug.cgi?id=201936

Reviewed by Geoffrey Garen.

BlobRegistry no longer needs SessionIDs, now that we have a single session per WebProcess.

Source/WebCore:

  • Modules/entriesapi/DOMFileSystem.cpp:

(WebCore::DOMFileSystem::getFile):

  • Modules/entriesapi/DOMFileSystem.h:
  • Modules/entriesapi/FileSystemFileEntry.cpp:

(WebCore::FileSystemFileEntry::file):

  • Modules/entriesapi/FileSystemFileEntry.h:
  • Modules/entriesapi/FileSystemFileEntry.idl:
  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::fromFormData):

  • Modules/fetch/FetchBody.h:
  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::blobFromData):
(WebCore::resolveWithTypeAndData):
(WebCore::FetchBodyConsumer::resolve):
(WebCore::FetchBodyConsumer::takeAsBlob):

  • Modules/fetch/FetchBodyConsumer.h:
  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::blob):

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::~FetchLoader):
(WebCore::FetchLoader::startLoadingBlobURL):

  • Modules/fetch/FetchLoader.h:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::putOrAddOnServer):

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::createRecordingDataBlob):

  • Modules/mediasource/MediaSourceRegistry.cpp:

(WebCore::MediaSourceRegistry::unregisterURL):

  • Modules/mediasource/MediaSourceRegistry.h:
  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::didReceiveRawData):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::didReceiveBinaryData):

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Bridge::send):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readFile):
(WebCore::CloneDeserializer::readTerminal):
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDB):
(WebCore::SerializedScriptValue::writeBlobsToDiskForIndexedDBSynchronously):

  • bindings/js/SerializedScriptValue.h:
  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::DataTransfer):
(WebCore::DataTransfer::createForCopyAndPaste):
(WebCore::DataTransfer::filesFromPasteboardAndItemList const):
(WebCore::DataTransfer::createForInputEvent):
(WebCore::DataTransfer::createForDrag):
(WebCore::DataTransfer::createForDragStartEvent):
(WebCore::DataTransfer::createForDrop):
(WebCore::DataTransfer::createForUpdatingDropTarget):

  • dom/DataTransfer.h:
  • editing/ReplaceRangeWithTextCommand.cpp:

(WebCore::ReplaceRangeWithTextCommand::inputEventDataTransfer const):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::inputEventDataTransfer const):

  • editing/SpellingCorrectionCommand.cpp:

(WebCore::SpellingCorrectionCommand::inputEventDataTransfer const):

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::inputEventDataTransfer const):

  • editing/WebCorePasteboardFileReader.cpp:

(WebCore::WebCorePasteboardFileReader::readFilename):
(WebCore::WebCorePasteboardFileReader::readBuffer):

  • editing/WebCorePasteboardFileReader.h:
  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::createFragmentForImageAttachment):
(WebCore::replaceRichContentWithAttachments):
(WebCore::createFragmentAndAddResources):
(WebCore::sanitizeMarkupWithArchive):
(WebCore::WebContentReader::readImage):
(WebCore::attachmentForFilePath):
(WebCore::attachmentForData):

  • editing/markup.cpp:

(WebCore::restoreAttachmentElementsInFragment):

  • fileapi/Blob.cpp:

(WebCore::BlobURLRegistry::registerURL):
(WebCore::BlobURLRegistry::unregisterURL):
(WebCore::Blob::Blob):
(WebCore::Blob::~Blob):

  • fileapi/Blob.h:

(WebCore::Blob::create):
(WebCore::Blob::deserialize):
(WebCore::Blob::slice const):

  • fileapi/Blob.idl:
  • fileapi/File.cpp:

(WebCore::File::createWithRelativePath):
(WebCore::File::create):
(WebCore::File::File):

  • fileapi/File.h:
  • fileapi/File.idl:
  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::~FileReaderLoader):
(WebCore::FileReaderLoader::start):

  • fileapi/FileReaderLoader.h:
  • fileapi/ThreadableBlobRegistry.cpp:

(WebCore::ThreadableBlobRegistry::registerFileBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURLOptionallyFileBacked):
(WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):
(WebCore::ThreadableBlobRegistry::unregisterBlobURL):

  • fileapi/ThreadableBlobRegistry.h:
  • html/FileInputType.cpp:

(WebCore::FileInputType::appendFormData const):
(WebCore::FileInputType::filesChosen):

  • html/FileListCreator.cpp:

(WebCore::appendDirectoryFiles):
(WebCore::FileListCreator::FileListCreator):
(WebCore::FileListCreator::createFileList):

  • html/FileListCreator.h:

(WebCore::FileListCreator::create):

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::updateEnclosingImageWithData):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::toBlob):

  • html/PublicURLManager.cpp:

(WebCore::PublicURLManager::revoke):
(WebCore::PublicURLManager::stop):

  • html/URLRegistry.h:
  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::extendBlobURLLifetimeIfNecessary const):

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleDrag):

  • platform/network/BlobRegistry.h:
  • testing/Internals.cpp:

(WebCore::Internals::createFile):

  • testing/ServiceWorkerInternals.cpp:

(WebCore::ServiceWorkerInternals::createOpaqueWithBlobBodyResponse):

  • workers/service/context/ServiceWorkerFetch.cpp:

(WebCore::ServiceWorkerFetch::dispatchFetchEvent):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createResponseBlob):

Source/WebKit:

  • NetworkProcess/NetworkProcessPlatformStrategies.cpp:

(WebKit::NetworkProcessPlatformStrategies::createBlobRegistry):

  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerFileBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURLOptionallyFileBacked):
(WebKit::BlobRegistryProxy::unregisterBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURLForSlice):
(WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles):

  • WebProcess/FileAPI/BlobRegistryProxy.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebPlatformStrategies.mm:

Source/WebKitLegacy/win:

  • WebCoreSupport/WebPlatformStrategies.cpp:
3:10 PM Changeset in webkit [250060] by ysuzuki@apple.com
  • 154 edits
    7 copies in trunk/Source/WebCore

Make all ScriptWrappable IsoHeap-ed
https://bugs.webkit.org/show_bug.cgi?id=201846
<rdar://problem/55407535>

Reviewed by Mark Lam.

This patch puts Event and derived classes under IsoHeap to make all ScriptWrappable classes IsoHeap-ed.

  • Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.cpp:
  • Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.h:

(WebCore::WebKitPlaybackTargetAvailabilityEvent::create): Deleted.
(WebCore::WebKitPlaybackTargetAvailabilityEvent::availability const): Deleted.

  • Modules/applepay/ApplePayPaymentAuthorizedEvent.cpp:
  • Modules/applepay/ApplePayPaymentAuthorizedEvent.h:
  • Modules/applepay/ApplePayPaymentMethodSelectedEvent.cpp:
  • Modules/applepay/ApplePayPaymentMethodSelectedEvent.h:

(WebCore::ApplePayPaymentMethodSelectedEvent::create): Deleted.
(WebCore::ApplePayPaymentMethodSelectedEvent::paymentMethod): Deleted.

  • Modules/applepay/ApplePayShippingContactSelectedEvent.cpp:
  • Modules/applepay/ApplePayShippingContactSelectedEvent.h:
  • Modules/applepay/ApplePayShippingMethodSelectedEvent.cpp:
  • Modules/applepay/ApplePayShippingMethodSelectedEvent.h:
  • Modules/applepay/ApplePayValidateMerchantEvent.cpp:
  • Modules/applepay/ApplePayValidateMerchantEvent.h:

(WebCore::ApplePayValidateMerchantEvent::create): Deleted.
(WebCore::ApplePayValidateMerchantEvent::validationURL const): Deleted.

  • Modules/encryptedmedia/MediaKeyMessageEvent.cpp:
  • Modules/encryptedmedia/MediaKeyMessageEvent.h:
  • Modules/encryptedmedia/legacy/WebKitMediaKeyMessageEvent.cpp:
  • Modules/encryptedmedia/legacy/WebKitMediaKeyMessageEvent.h:

(WebCore::WebKitMediaKeyMessageEvent::create): Deleted.
(WebCore::WebKitMediaKeyMessageEvent::message const): Deleted.
(WebCore::WebKitMediaKeyMessageEvent::destinationURL const): Deleted.

  • Modules/encryptedmedia/legacy/WebKitMediaKeyNeededEvent.cpp:
  • Modules/encryptedmedia/legacy/WebKitMediaKeyNeededEvent.h:

(WebCore::WebKitMediaKeyNeededEvent::create): Deleted.
(WebCore::WebKitMediaKeyNeededEvent::initData const): Deleted.

  • Modules/gamepad/GamepadEvent.cpp:
  • Modules/gamepad/GamepadEvent.h:

(WebCore::GamepadEvent::create): Deleted.
(WebCore::GamepadEvent::gamepad const): Deleted.

  • Modules/indexeddb/IDBRequestCompletionEvent.cpp:
  • Modules/indexeddb/IDBRequestCompletionEvent.h:

(WebCore::IDBRequestCompletionEvent::create): Deleted.

  • Modules/indexeddb/IDBVersionChangeEvent.cpp:
  • Modules/indexeddb/IDBVersionChangeEvent.h:
  • Modules/mediarecorder/BlobEvent.cpp:
  • Modules/mediarecorder/BlobEvent.h:
  • Modules/mediarecorder/MediaRecorderErrorEvent.cpp:
  • Modules/mediarecorder/MediaRecorderErrorEvent.h:
  • Modules/mediastream/MediaStreamTrackEvent.cpp:
  • Modules/mediastream/MediaStreamTrackEvent.h:
  • Modules/mediastream/OverconstrainedErrorEvent.cpp: Copied from Source/WebCore/Modules/mediarecorder/BlobEvent.h.
  • Modules/mediastream/OverconstrainedErrorEvent.h:

(WebCore::OverconstrainedErrorEvent::create): Deleted.
(WebCore::OverconstrainedErrorEvent::error const): Deleted.
(WebCore::OverconstrainedErrorEvent::OverconstrainedErrorEvent): Deleted.

  • Modules/mediastream/RTCDTMFToneChangeEvent.cpp:
  • Modules/mediastream/RTCDTMFToneChangeEvent.h:
  • Modules/mediastream/RTCDataChannelEvent.cpp:
  • Modules/mediastream/RTCDataChannelEvent.h:
  • Modules/mediastream/RTCPeerConnectionIceEvent.cpp:
  • Modules/mediastream/RTCPeerConnectionIceEvent.h:

(WebCore::RTCPeerConnectionIceEvent::url const): Deleted.

  • Modules/mediastream/RTCTrackEvent.cpp:
  • Modules/mediastream/RTCTrackEvent.h:

(WebCore::RTCTrackEvent::receiver const): Deleted.
(WebCore::RTCTrackEvent::track const): Deleted.
(WebCore::RTCTrackEvent::streams const): Deleted.
(WebCore::RTCTrackEvent::transceiver const): Deleted.
(WebCore::RTCTrackEvent::eventInterface const): Deleted.

  • Modules/paymentrequest/MerchantValidationEvent.cpp:
  • Modules/paymentrequest/MerchantValidationEvent.h:
  • Modules/paymentrequest/PaymentMethodChangeEvent.cpp:
  • Modules/paymentrequest/PaymentMethodChangeEvent.h:
  • Modules/paymentrequest/PaymentRequestUpdateEvent.cpp:
  • Modules/paymentrequest/PaymentRequestUpdateEvent.h:
  • Modules/speech/SpeechSynthesisEvent.cpp:
  • Modules/speech/SpeechSynthesisEvent.h:

(WebCore::SpeechSynthesisEvent::charIndex const): Deleted.
(WebCore::SpeechSynthesisEvent::elapsedTime const): Deleted.
(WebCore::SpeechSynthesisEvent::name const): Deleted.
(WebCore::SpeechSynthesisEvent::eventInterface const): Deleted.

  • Modules/webaudio/AudioProcessingEvent.cpp:
  • Modules/webaudio/AudioProcessingEvent.h:
  • Modules/webaudio/OfflineAudioCompletionEvent.cpp:
  • Modules/webaudio/OfflineAudioCompletionEvent.h:
  • Modules/webgpu/GPUUncapturedErrorEvent.cpp:
  • Modules/webgpu/GPUUncapturedErrorEvent.h:
  • Modules/websockets/CloseEvent.cpp: Copied from Source/WebCore/dom/BeforeTextInsertedEvent.cpp.
  • Modules/websockets/CloseEvent.h:

(WebCore::CloseEvent::create): Deleted.
(WebCore::CloseEvent::wasClean const): Deleted.
(WebCore::CloseEvent::code const): Deleted.
(WebCore::CloseEvent::reason const): Deleted.
(WebCore::CloseEvent::CloseEvent): Deleted.

  • Modules/webvr/VRDisplayEvent.cpp:
  • Modules/webvr/VRDisplayEvent.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AccessibleSetValueEvent.cpp:
  • accessibility/AccessibleSetValueEvent.h:

(WebCore::AccessibleSetValueEvent::create): Deleted.
(WebCore::AccessibleSetValueEvent::value const): Deleted.

  • animation/AnimationPlaybackEvent.cpp:
  • animation/AnimationPlaybackEvent.h:
  • bindings/js/ScriptWrappable.cpp: Copied from Source/WebCore/html/canvas/WebGLContextEvent.cpp.
  • bindings/js/ScriptWrappable.h:
  • dom/AnimationEvent.cpp:
  • dom/AnimationEvent.h:
  • dom/BeforeLoadEvent.cpp: Copied from Source/WebCore/dom/BeforeTextInsertedEvent.cpp.
  • dom/BeforeLoadEvent.h:
  • dom/BeforeTextInsertedEvent.cpp:
  • dom/BeforeTextInsertedEvent.h:
  • dom/BeforeUnloadEvent.cpp:
  • dom/BeforeUnloadEvent.h:
  • dom/ClipboardEvent.cpp:
  • dom/ClipboardEvent.h:
  • dom/CompositionEvent.cpp:
  • dom/CompositionEvent.h:
  • dom/CustomEvent.cpp:
  • dom/CustomEvent.h:
  • dom/DeviceMotionEvent.cpp:
  • dom/DeviceMotionEvent.h:
  • dom/DeviceOrientationEvent.cpp:
  • dom/DeviceOrientationEvent.h:
  • dom/ErrorEvent.cpp:
  • dom/ErrorEvent.h:
  • dom/Event.cpp:
  • dom/Event.h:
  • dom/FocusEvent.cpp:
  • dom/FocusEvent.h:
  • dom/HashChangeEvent.cpp: Copied from Source/WebCore/dom/BeforeTextInsertedEvent.cpp.
  • dom/HashChangeEvent.h:
  • dom/InputEvent.cpp:
  • dom/InputEvent.h:
  • dom/KeyboardEvent.cpp:
  • dom/KeyboardEvent.h:
  • dom/MessageEvent.cpp:
  • dom/MessageEvent.h:
  • dom/MouseEvent.cpp:
  • dom/MouseEvent.h:
  • dom/MouseRelatedEvent.cpp:
  • dom/MouseRelatedEvent.h:
  • dom/MutationEvent.cpp:
  • dom/MutationEvent.h:
  • dom/OverflowEvent.cpp:
  • dom/OverflowEvent.h:
  • dom/PageTransitionEvent.cpp:
  • dom/PageTransitionEvent.h:
  • dom/PointerEvent.cpp:
  • dom/PointerEvent.h:
  • dom/PopStateEvent.cpp:
  • dom/PopStateEvent.h:
  • dom/ProgressEvent.cpp:
  • dom/ProgressEvent.h:
  • dom/PromiseRejectionEvent.cpp:
  • dom/PromiseRejectionEvent.h:
  • dom/SecurityPolicyViolationEvent.cpp: Copied from Source/WebCore/dom/BeforeTextInsertedEvent.cpp.
  • dom/SecurityPolicyViolationEvent.h:
  • dom/TextEvent.cpp:
  • dom/TextEvent.h:
  • dom/TouchEvent.cpp:
  • dom/TouchEvent.h:
  • dom/TransitionEvent.cpp:
  • dom/TransitionEvent.h:
  • dom/UIEvent.cpp:
  • dom/UIEvent.h:
  • dom/UIEventWithKeyState.cpp:
  • dom/UIEventWithKeyState.h:
  • dom/WebKitAnimationEvent.cpp:
  • dom/WebKitAnimationEvent.h:
  • dom/WebKitTransitionEvent.cpp:
  • dom/WebKitTransitionEvent.h:
  • dom/WheelEvent.cpp:
  • dom/WheelEvent.h:
  • html/MediaEncryptedEvent.cpp:
  • html/MediaEncryptedEvent.h:
  • html/canvas/WebGLContextEvent.cpp:
  • html/canvas/WebGLContextEvent.h:
  • html/shadow/ProgressShadowElement.h:
  • html/track/TrackEvent.cpp:
  • html/track/TrackEvent.h:
  • storage/StorageEvent.cpp:
  • storage/StorageEvent.h:

(WebCore::StorageEvent::key const): Deleted.
(WebCore::StorageEvent::oldValue const): Deleted.
(WebCore::StorageEvent::newValue const): Deleted.
(WebCore::StorageEvent::url const): Deleted.
(WebCore::StorageEvent::storageArea const): Deleted.

  • svg/SVGFEDistantLightElement.h:
  • svg/SVGFEFuncAElement.h:
  • svg/SVGFEFuncBElement.h:
  • svg/SVGFEFuncGElement.h:
  • svg/SVGFEFuncRElement.h:
  • svg/SVGFEPointLightElement.h:
  • svg/SVGFESpotLightElement.h:
  • svg/SVGZoomEvent.cpp:
  • svg/SVGZoomEvent.h:
  • workers/service/ExtendableEvent.cpp:
  • workers/service/ExtendableEvent.h:
  • workers/service/ExtendableMessageEvent.cpp:
  • workers/service/ExtendableMessageEvent.h:
  • workers/service/FetchEvent.cpp:
  • workers/service/FetchEvent.h:
  • xml/XMLHttpRequestProgressEvent.cpp: Copied from Source/WebCore/Modules/encryptedmedia/MediaKeyMessageEvent.cpp.
  • xml/XMLHttpRequestProgressEvent.h:

(WebCore::XMLHttpRequestProgressEvent::create): Deleted.
(WebCore::XMLHttpRequestProgressEvent::position const): Deleted.
(WebCore::XMLHttpRequestProgressEvent::totalSize const): Deleted.
(WebCore::XMLHttpRequestProgressEvent::XMLHttpRequestProgressEvent): Deleted.

3:08 PM Changeset in webkit [250059] by Ryan Haddad
  • 2 edits in trunk/Tools

Update flakiness dashboard configuration for iOS 13 queues
https://bugs.webkit.org/show_bug.cgi?id=201711

Reviewed by Jonathan Bedard.

  • TestResultServer/static-dashboards/builders.jsonp:
3:03 PM Changeset in webkit [250058] by sbarati@apple.com
  • 3 edits
    1 add in trunk

Phantom insertion phase may disagree with arguments forwarding about live ranges
https://bugs.webkit.org/show_bug.cgi?id=200715
<rdar://problem/54301717>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/phantom-insertion-live-range-should-agree-with-arguments-forwarding.js: Added.

(main.v23):
(main.try.v43):
(main.):
(main):

Source/JavaScriptCore:

The issue is that Phantom insertion phase was disagreeing about live ranges
from the arguments forwarding phase. The effect is that Phantom insertion
would insert a Phantom creating a longer live range than what arguments
forwarding was analyzing. Arguments forwarding will look for the last DFG
use or the last bytecode use of a variable it wants to eliminate. It then
does an interference analysis to ensure that nothing clobbers other variables
it needs to recover the sunken allocation during OSR exit.

Phantom insertion works by ordering the program into OSR exit epochs. If a value was used
in the current epoch, there is no need to insert a phantom for it. We
determine where we might need a Phantom by looking at bytecode kills. In this
analysis, we have a mapping from bytecode local to DFG node. However, we
sometimes forgot to remove the entry when a local is killed. So, if the first
kill of a variable is in the same OSR exit epoch, we won't insert a Phantom by design.
However, if the variable gets killed again, we might errantly insert a Phantom
for the prior variable which should've already been killed. The solution is to
clear the entry in our mapping when a variable is killed.

The program in question was like this:

1: DirectArguments
...
2: MovHint(@1, loc1) arguments forwarding treats this as the final kill for @1
...
clobber things needed for recovery
...

Arguments elimination would transform the program since between @1 and
@2, nothing clobbers values needed for exit and nothing escapes @1. The
program becomes:

1: PhantomDirectArguments
...
2: MovHint(@1, loc1)
arguments forwarding treats this as the final kill for @1
...
clobber things needed for recovery of @1
...


Phantom insertion would then transform the program into:

1: PhantomDirectArguments
...
2: MovHint(@1, loc1) arguments forwarding treats this as the final kill for @1
...
clobber things needed for recovery of @1
...
3: Phantom(@1)
...

This is wrong because Phantom insertion and arguments forwarding must agree on live
ranges, otherwise the interference analysis performed by arguments forwarding will
not correctly analyze up until where the value might be recovered.

  • dfg/DFGPhantomInsertionPhase.cpp:
3:02 PM Changeset in webkit [250057] by aestes@apple.com
  • 1 edit in trunk/Source/WebCore/PAL/pal/spi/cocoa/PassKitSPI.h

Try to fix the macOS High Sierra build after r250048.

  • pal/spi/cocoa/PassKitSPI.h:
2:48 PM Changeset in webkit [250056] by Alan Bujtas
  • 12 edits in trunk/Source/WebCore

[LFC] Introduce UsedVerticalValues::Constraints
https://bugs.webkit.org/show_bug.cgi?id=201933
<rdar://problem/55487485>

Reviewed by Antti Koivisto.

UsedVerticalValues::Constraints holds the constraint values ((optional)containing block height and contentbox top) for a particular box geometry computation.
This is in preparation for using constraint values instead of querying the display tree for containing block geometry information.
See webkit.org/b/201795

  • layout/FormattingContext.cpp:

(WebCore::Layout::outOfFlowHorizontalConstraints):
(WebCore::Layout::outOfFlowVerticalConstraints):
(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::outOfFlowConstraints): Deleted.

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

(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):

  • layout/LayoutUnits.cpp:

(WebCore::Layout::UsedVerticalValues::Constraints::Constraints):

  • layout/LayoutUnits.h:

(WebCore::Layout::UsedVerticalValues::Constraints::Constraints):
(WebCore::Layout::UsedVerticalValues::UsedVerticalValues):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::staticVerticalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticPosition const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const):

2:35 PM Changeset in webkit [250055] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening for iOS.

  • platform/ios/TestExpectations: Mark quicklook/numbers-09.html as failing.
2:33 PM Changeset in webkit [250054] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, WinCairo build fix after r250045.

  • platform/network/curl/CurlFormDataStream.cpp:

(WebCore::CurlFormDataStream::computeContentLength):

2:31 PM Changeset in webkit [250053] by commit-queue@webkit.org
  • 18 edits in trunk/Source/WebKit

NetworkLoadParameters shouldn't store sessionID
https://bugs.webkit.org/show_bug.cgi?id=201921

Patch by Benjamin Nham <Ben Nham> on 2019-09-18
Reviewed by Chris Dumez.

Now that there's a single session id per WebProcess, we don't need to
store the session id in NetworkLoadParameters anymore. Clients can just
directly ask NetworkConnectionToWebProcess for the WebProcess's session
ID instead.

  • NetworkProcess/AdClickAttributionManager.cpp:

(WebKit::AdClickAttributionManager::fireConversionRequest):

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::startDownload):

  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::startPreflight):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::preconnectTo):

  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkResourceLoadMap.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::m_shouldCaptureExtraNetworkLoadMetrics):
(WebKit::NetworkResourceLoader::startNetworkLoad):
(WebKit::NetworkResourceLoader::convertToDownload):

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

(WebKit::NetworkSession::NetworkSession):

  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::PingLoad):
(WebKit::PingLoad::loadRequest):
(WebKit::PingLoad::didReceiveChallenge):

  • NetworkProcess/PingLoad.h:
  • NetworkProcess/PreconnectTask.cpp:

(WebKit::PreconnectTask::PreconnectTask):

  • NetworkProcess/PreconnectTask.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::startPingLoad):
(WebKit::WebLoaderStrategy::preconnectTo):

2:13 PM Changeset in webkit [250052] by commit-queue@webkit.org
  • 30 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r250002.
https://bugs.webkit.org/show_bug.cgi?id=201943

Patching of the callee and call is not atomic (Requested by
tadeuzagallo on #webkit).

Reverted changeset:

"Change WebAssembly calling conventions"
https://bugs.webkit.org/show_bug.cgi?id=201799
https://trac.webkit.org/changeset/250002

2:12 PM Changeset in webkit [250051] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LFC] Add contentbox left constraint to UsedHorizontalValues::Constraints
https://bugs.webkit.org/show_bug.cgi?id=201923
<rdar://problem/55485796>

Reviewed by Antti Koivisto.

Pass in the contentbox left constraint value to the FormattingContext::compute*() functions so that they don't need to read the containg block's geometry.
This is in preparation for using constraint values instead of querying the display tree for containing block geometry information.
See webkit.org/b/201795

  • layout/FormattingContext.cpp:

(WebCore::Layout::outOfFlowConstraints):
(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):

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

(WebCore::Layout::FormattingContext::Geometry::staticHorizontalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):

  • layout/LayoutUnits.cpp:

(WebCore::Layout::UsedHorizontalValues::Constraints::Constraints):

  • layout/LayoutUnits.h:

(WebCore::Layout::UsedHorizontalValues::Constraints::Constraints):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::staticHorizontalPosition const):
(WebCore::Layout::BlockFormattingContext::Geometry::staticPosition const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns):

1:38 PM WikiStart edited by Jon Davis
Added a link to the 2019 WebKit Contributors Meeting (diff)
1:37 PM November 2019 Meeting created by Jon Davis
12:56 PM Changeset in webkit [250050] by Alan Bujtas
  • 16 edits
    1 add in trunk/Source/WebCore

[LFC] Introduce UsedHorizontalValues::Constraints
https://bugs.webkit.org/show_bug.cgi?id=201919
<rdar://problem/55481927>

Reviewed by Antti Koivisto.

UsedHorizontalValues::Constraints holds the constraint values for a particular box geometry computation (currently it only has the horizontal width constraint)

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::computeBorderAndPadding):

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inFlowPositionedPositionOffset const):
(WebCore::Layout::FormattingContext::Geometry::computedPadding const):
(WebCore::Layout::FormattingContext::Geometry::computedHorizontalMargin const):
(WebCore::Layout::FormattingContext::Geometry::computedVerticalMargin const):

  • layout/FormattingContextQuirks.cpp:

(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):

  • layout/LayoutUnits.h:

(WebCore::Layout::UsedHorizontalValues::Constraints::Constraints):
(WebCore::Layout::UsedHorizontalValues::UsedHorizontalValues):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin):

  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues):

  • layout/floats/FloatingContext.h:
  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):

  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:

(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns):

12:39 PM Changeset in webkit [250049] by Keith Rollin
  • 2 edits in trunk/Source/WebCore/PAL

Remove alternate declaration of CCECCryptorImportKey
https://bugs.webkit.org/show_bug.cgi?id=201903
<rdar://problem/55466589>

Reviewed by Chris Dumez.

In macOS 10.15 and iOS 13.0 SDKs, the keyPackage parameter of
CCECCryptorImportKey() was changed from "void*" to "const void*". This
change was accounted for in Bug 195754 by making the same change to
the parallel declarations in CommonCryptoSPI.h. But since this header
also needed to be used in macOS 10.14 contexts, the old declaration
was also kept.

But since this function is a "C" function, the types of parameters are
not included in the function signature, and it doesn't really matter
what parameter types are, so long as the right values are sent to the
called function. This means that we don't need two versions of the
function, one with a "const" parameter and one without. We only really
need one. In this case, it makes sense to keep the more-restrictive
one -- the with a "const void*" parameter. Therefore, remove the one
taking just "void*".

  • pal/spi/cocoa/CommonCryptoSPI.h:
12:13 PM Changeset in webkit [250048] by aestes@apple.com
  • 35 edits
    7 copies
    2 adds in trunk

[Apple Pay] Tell websites why a session was cancelled
https://bugs.webkit.org/show_bug.cgi?id=201912
Source/WebCore:

Reviewed by Brady Eidson.

Added ApplePayCancelEvent as the interface for ApplePaySession's cancel event. This event
object includes a sessionError attribute that exposes a Web-safe version of the PassKit
domain error we received from PKPaymentAuthorization(View)Controller. Currently, we report
all errors with code "unknown", but more codes will be added in future patches.

Test: http/tests/ssl/applepay/ApplePayCancelEvent.https.html

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/applepay/ApplePayCancelEvent.cpp: Copied from Source/WebCore/Modules/applepay/PaymentHeaders.h.

(WebCore::ApplePayCancelEvent::ApplePayCancelEvent):
(WebCore::ApplePayCancelEvent::sessionError const):
(WebCore::ApplePayCancelEvent::eventInterface const):

  • Modules/applepay/ApplePayCancelEvent.h: Copied from Source/WebCore/Modules/applepay/PaymentHeaders.h.

(WebCore::ApplePayCancelEvent::create):

  • Modules/applepay/ApplePayCancelEvent.idl: Copied from Source/WebCore/Modules/applepay/PaymentHeaders.h.
  • Modules/applepay/ApplePaySession.cpp:

(WebCore::ApplePaySession::didCancelPaymentSession):

  • Modules/applepay/ApplePaySession.h:
  • Modules/applepay/ApplePaySessionError.h: Copied from Source/WebCore/Modules/applepay/PaymentHeaders.h.
  • Modules/applepay/ApplePaySessionError.idl: Copied from Source/WebCore/Modules/applepay/PaymentHeaders.h.
  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::didCancelPaymentSession):

  • Modules/applepay/PaymentCoordinator.h:
  • Modules/applepay/PaymentHeaders.h:
  • Modules/applepay/PaymentSession.cpp:
  • Modules/applepay/PaymentSession.h:
  • Modules/applepay/PaymentSessionError.h: Copied from Source/WebCore/Modules/applepay/PaymentHeaders.h.
  • Modules/applepay/cocoa/PaymentSessionErrorCocoa.mm: Copied from Source/WebCore/Modules/applepay/PaymentSession.h.

(WebCore::additionalError):
(WebCore::PaymentSessionError::PaymentSessionError):
(WebCore::PaymentSessionError::sessionError const):
(WebCore::PaymentSessionError::platformError const):
(WebCore::PaymentSessionError::unknownError const):

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::ApplePayPaymentHandler::didCancelPaymentSession):

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
  • Modules/webgpu/WHLSL/WHLSLCheckTextureReferences.cpp:
  • Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/EventNames.in:
  • testing/MockPaymentCoordinator.cpp:

(WebCore::MockPaymentCoordinator::cancelPayment):

Source/WebCore/PAL:

<rdar://problem/55469706>

Reviewed by Brady Eidson.

Soft-linked PKPassKitErrorDomain and included PassKit headers more judiciously.

  • pal/cocoa/PassKitSoftLink.h:
  • pal/cocoa/PassKitSoftLink.mm:
  • pal/spi/cocoa/PassKitSPI.h:

Source/WebKit:

<rdar://problem/55469706>

Reviewed by Brady Eidson.

Remembered the error passed to -[WKPaymentAuthorizationDelegate _willFinishWithError:] and
sent it to the WebContent process in Messages::WebPaymentCoordinator::DidCancelPaymentSession.

  • Platform/cocoa/PaymentAuthorizationPresenter.h:
  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:

(-[WKPaymentAuthorizationDelegate _didFinish]):
(-[WKPaymentAuthorizationDelegate _willFinishWithError:]):

  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::didCancelPaymentSession):
(WebKit::WebPaymentCoordinatorProxy::presenterDidFinish):

  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:

(WebKit::WebPaymentCoordinatorProxy::didCancelPaymentSession):

  • Shared/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:
  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<WebCore::PaymentSessionError>::encode):
(IPC::ArgumentCoder<WebCore::PaymentSessionError>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::networkProcessConnectionClosed):
(WebKit::WebPaymentCoordinator::didCancelPaymentSession):

  • WebProcess/ApplePay/WebPaymentCoordinator.h:
  • WebProcess/ApplePay/WebPaymentCoordinator.messages.in:

LayoutTests:

Reviewed by Brady Eidson.

  • http/tests/ssl/applepay/ApplePayCancelEvent.https-expected.txt: Added.
  • http/tests/ssl/applepay/ApplePayCancelEvent.https.html: Added.
11:47 AM Changeset in webkit [250047] by Chris Dumez
  • 10 edits in trunk/Source

WebSWContextManagerConnection::installServiceWorker IPC no longer need a sessionID
https://bugs.webkit.org/show_bug.cgi?id=201882

Reviewed by Geoffrey Garen.

WebSWContextManagerConnection::installServiceWorker IPC no longer need a sessionID now that we have a single
sessionID per WebProcess.

Source/WebCore:

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::installContextData):
(WebCore::SWServer::runServiceWorker):

  • workers/service/server/SWServerToContextConnection.h:

Source/WebKit:

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::installServiceWorkerContext):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::ServiceWorkerFrameLoaderClient::ServiceWorkerFrameLoaderClient):
(WebKit::ServiceWorkerFrameLoaderClient::sessionID const):
(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):
(WebKit::WebSWContextManagerConnection::installServiceWorker):

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

(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):

11:38 AM Changeset in webkit [250046] by Chris Dumez
  • 7 edits in trunk/Source/WebKit

Stop passing sessionIDs to NetworkProcessConnection methods
https://bugs.webkit.org/show_bug.cgi?id=201886

Reviewed by Geoffrey Garen.

Stop passing sessionIDs to NetworkProcessConnection methods. This is no longer
necessary now that we have a single session per WebProcess.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):

  • WebProcess/Databases/WebDatabaseProvider.cpp:

(WebKit::WebDatabaseProvider::idbConnectionToServerForSession):

  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles):

  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles):
(WebKit::NetworkProcessConnection::didCacheResource):
(WebKit::NetworkProcessConnection::idbConnectionToServer):
(WebKit::NetworkProcessConnection::idbConnectionToServerForSession): Deleted.

  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Network/NetworkProcessConnection.messages.in:
11:37 AM Changeset in webkit [250045] by Chris Dumez
  • 30 edits in trunk/Source

CacheStorageProvider::createCacheStorageConnection() does not need to take in a SessionID
https://bugs.webkit.org/show_bug.cgi?id=201920

Reviewed by Geoffrey Garen.

CacheStorageProvider::createCacheStorageConnection() does not need to take in a SessionID.
This sessionID is no longer used now that we have a session per WebProcess.

Source/WebCore:

  • Modules/cache/CacheStorageConnection.cpp:

(WebCore::formDataSize):
(WebCore::CacheStorageConnection::computeRealBodySize):

  • Modules/cache/CacheStorageConnection.h:
  • Modules/cache/DOMWindowCaches.cpp:

(WebCore::DOMWindowCaches::caches const):

  • Modules/cache/WorkerCacheStorageConnection.cpp:

(WebCore::WorkerCacheStorageConnection::sessionID const): Deleted.

  • Modules/cache/WorkerCacheStorageConnection.h:
  • fileapi/Blob.cpp:

(WebCore::Blob::size const):

  • fileapi/ThreadableBlobRegistry.cpp:

(WebCore::ThreadableBlobRegistry::blobSize):

  • fileapi/ThreadableBlobRegistry.h:
  • loader/cache/KeepaliveRequestTracker.cpp:

(WebCore::KeepaliveRequestTracker::tryRegisterRequest):
(WebCore::KeepaliveRequestTracker::registerRequest):
(WebCore::KeepaliveRequestTracker::unregisterRequest):

  • page/CacheStorageProvider.h:

(WebCore::CacheStorageProvider::createCacheStorageConnection):

  • platform/network/BlobRegistry.h:
  • platform/network/FormData.cpp:

(WebCore::FormDataElement::lengthInBytes const):
(WebCore::FormData::lengthInBytes const):

  • platform/network/FormData.h:
  • testing/Internals.cpp:

(WebCore::Internals::clearCacheStorageMemoryRepresentation):
(WebCore::Internals::cacheStorageEngineRepresentation):
(WebCore::Internals::updateQuotaBasedOnSpaceUsage):

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::createCacheStorageConnection):

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
(WebCore::ServiceWorkerThreadProxy::createCacheStorageConnection):

  • workers/service/context/ServiceWorkerThreadProxy.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):

Source/WebKit:

  • NetworkProcess/NetworkProcessPlatformStrategies.cpp:

(WebKit::NetworkProcessPlatformStrategies::createBlobRegistry):

  • WebProcess/Cache/WebCacheStorageConnection.cpp:

(WebKit::WebCacheStorageConnection::sessionID const): Deleted.

  • WebProcess/Cache/WebCacheStorageConnection.h:
  • WebProcess/Cache/WebCacheStorageProvider.cpp:

(WebKit::WebCacheStorageProvider::createCacheStorageConnection):

  • WebProcess/Cache/WebCacheStorageProvider.h:
  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::blobSize):

  • WebProcess/FileAPI/BlobRegistryProxy.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebPlatformStrategies.mm:
11:05 AM Changeset in webkit [250044] by russell_e@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION: (Catalina) fast/images/async-image-multiple-clients-repaint.html is a flakey failure.
rdar://55484256

Unreviewed Test Gardening.

  • platform/mac/TestExpectations:
10:14 AM Changeset in webkit [250043] by Chris Dumez
  • 16 edits in trunk/Source

Drop FrameLoaderClient::sessionID()
https://bugs.webkit.org/show_bug.cgi?id=201916

Reviewed by Geoffrey Garen.

Drop FrameLoaderClient::sessionID(). The Frame can get the sessionID from its page (Which is
what the FrameLoaderClient::sessionID() ended up doing) and other call sites at WebKit2 layer
can get the sessionID from the WebProcess singleton.

Source/WebCore:

  • loader/EmptyClients.cpp:
  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoaderClient.h:
  • page/Frame.cpp:

(WebCore::Frame::sessionID const):

Source/WebKit:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

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

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:
10:13 AM Changeset in webkit [250042] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

WebServiceWorkerProvider::handleFetch() does not need to take in a sessionID
https://bugs.webkit.org/show_bug.cgi?id=201917

Reviewed by Geoffrey Garen.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):

  • WebProcess/Storage/WebServiceWorkerProvider.cpp:

(WebKit::WebServiceWorkerProvider::handleFetch):

  • WebProcess/Storage/WebServiceWorkerProvider.h:
10:12 AM Changeset in webkit [250041] by Chris Dumez
  • 12 edits in trunk/Source

WebSWServerToContextConnection::PostMessageToServiceWorkerClient IPC no longer needs to take a sessionID
https://bugs.webkit.org/show_bug.cgi?id=201883

Reviewed by Geoffrey Garen.

WebSWServerToContextConnection::PostMessageToServiceWorkerClient IPC no longer needs to take a sessionID,
now that we have a single session per WebProcess.

Source/WebCore:

  • workers/service/ServiceWorkerClient.cpp:

(WebCore::ServiceWorkerClient::postMessage):

  • workers/service/context/SWContextManager.h:

Source/WebKit:

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

(WebKit::WebSWServerToContextConnection::postMessageToServiceWorkerClient):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerClient):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
9:51 AM Changeset in webkit [250040] by russell_e@apple.com
  • 154 edits
    7 deletes in trunk/Source/WebCore

Unreviewed, rolling out r250030.

Cause of Recent Build Failures.

Reverted changeset:

"Make all ScriptWrappable IsoHeap-ed"
https://bugs.webkit.org/show_bug.cgi?id=201846
https://trac.webkit.org/changeset/250030

9:27 AM Changeset in webkit [250039] by Adrian Perez de Castro
  • 4 edits in trunk/Tools

[WPE][GTK] Update build environments to use libwpe+WPEBackend-fdo 1.4.0
https://bugs.webkit.org/show_bug.cgi?id=201915

Reviewed by Michael Catanzaro.

  • flatpak/org.webkit.WPEModules.yaml: Bump versions of libwpe and WPEBackend-fdo to 1.4.0
  • gtk/jhbuild.modules: Ditto.
  • wpe/jhbuild.modules: Ditto.
9:11 AM Changeset in webkit [250038] by russell_e@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (macOS): Many webgpu/whlsl* tests are flaky failures.
https://bugs.webkit.org/show_bug.cgi?id=201877

Unreviewed Test Gardening.

Two additional tests are flaky, marking as such.

  • platform/mac/TestExpectations:
8:59 AM WebKitGTK/2.26.x edited by clopez@igalia.com
(diff)
8:55 AM Changeset in webkit [250037] by Truitt Savell
  • 1 edit in trunk/LayoutTests/platform/ios-wk2/TestExpectations

Followup iOS 13 test gardening for r250023

Unreviewed test gardening

  • platform/ios-wk2/TestExpectations:
8:53 AM Changeset in webkit [250036] by clopez@igalia.com
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] bubblewrap sandbox should be disabled when running inside docker
https://bugs.webkit.org/show_bug.cgi?id=201914

Reviewed by Michael Catanzaro.

Detect if running inside Docker by checking the file /.dockerenv
In that case, disable the sandbox.

  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::isInsideDocker):
(WebKit::ProcessLauncher::launchProcess):

8:53 AM Changeset in webkit [250035] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] FormattingContext::Geometry::computedHeight* functions need containingBlockHeight only.
https://bugs.webkit.org/show_bug.cgi?id=201880
<rdar://problem/55449623>

Reviewed by Antti Koivisto.

Let's tighten the incoming vertical parameter.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):

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

(WebCore::Layout::FormattingContext::Geometry::computedHeightValue const):
(WebCore::Layout::FormattingContext::Geometry::computedMaxHeight const):
(WebCore::Layout::FormattingContext::Geometry::computedMinHeight const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):

8:41 AM Changeset in webkit [250034] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

DocumentMarkerController should not invoke ensureLineBoxes during TextIterator traversal
https://bugs.webkit.org/show_bug.cgi?id=201911
<rdar://problem/55455458>

Reviewed by Zalan Bujtas.

DocumentMarkerController::addMarker may call ensureLineBoxes but TextIterator doesn't expect mutations during traversal.
Fix by doing range collection as a separate step.

  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::collectTextRanges):
(WebCore::DocumentMarkerController::addMarker):
(WebCore::DocumentMarkerController::addTextMatchMarker):
(WebCore::DocumentMarkerController::addDictationPhraseWithAlternativesMarker):
(WebCore::DocumentMarkerController::addDictationResultMarker):
(WebCore::DocumentMarkerController::addDraggedContentMarker):
(WebCore::DocumentMarkerController::addPlatformTextCheckingMarker):
(WebCore::DocumentMarkerController::removeMarkers):
(WebCore::DocumentMarkerController::filterMarkers):

  • dom/DocumentMarkerController.h:
8:38 AM Changeset in webkit [250033] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC] Shrink-to-fit-width needs the available width constraint value only
https://bugs.webkit.org/show_bug.cgi?id=201896
<rdar://problem/55465382>

Reviewed by Antti Koivisto.

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

(WebCore::Layout::FormattingContext::Geometry::shrinkToFitWidth):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):

7:31 AM Changeset in webkit [250032] by mmaxfield@apple.com
  • 11 edits in trunk/Websites

[WebGPU] Update demos to work on STP 92
https://bugs.webkit.org/show_bug.cgi?id=201872

Reviewed by Dean Jackson.

Websites/browserbench.org:

GPUShaderStageBit => GPUShaderStage

  • MotionMark1.1/tests/3d/resources/webgpu.js:

(Stage.call.initialize):

Websites/webkit.org:

Updating for new WSL buffer layouts.
Updating for new WSL compiler struct validation rules.
GPUShaderStageBit => GPUShaderStage
GPUColorWriteBits => GPUColorWrite
GPUBufferUsage.TRANSFER_DST => GPUBufferUsage.COPY_DST
GPUBufferUsage.TRANSFER_SRC => GPUBufferUsage.COPY_SRC

  • demos/webgpu/babylon/babylonWebGpu.max.js:
  • demos/webgpu/babylon/oneHelmetWebGPUWSLShaders.js:

(sampler.bumpSamplerSampler.register):
(sampler.reflectionSamplerSampler.register):
(float2.uv.attribute): Deleted.
(float3.normal.attribute): Deleted.

  • demos/webgpu/compute-boids.html:
  • demos/webgpu/hello-cube.html:
  • demos/webgpu/scripts/compute-blur.js:

(setUpCompute):
(createShaderCode):

  • demos/webgpu/scripts/compute-boids-compile.js:
  • demos/webgpu/scripts/hello-triangle.js:

(async.helloTriangle):

  • demos/webgpu/textured-cube.html:
4:30 AM Changeset in webkit [250031] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION (r247566): Leak of UICTFontDescriptor in WebCore::FontDatabase::InstalledFont::InstalledFont()
<https://webkit.org/b/201893>
<rdar://problem/55464115>

Reviewed by Brent Fulgham.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontDatabase::InstalledFont::InstalledFont): Use
adoptCF() to fix the leak.

3:33 AM Changeset in webkit [250030] by ysuzuki@apple.com
  • 154 edits
    7 copies in trunk/Source/WebCore

Make all ScriptWrappable IsoHeap-ed
https://bugs.webkit.org/show_bug.cgi?id=201846
<rdar://problem/55407535>

Reviewed by Mark Lam.

This patch puts Event and derived classes under IsoHeap to make all ScriptWrappable classes IsoHeap-ed.

  • Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.cpp:
  • Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.h:

(WebCore::WebKitPlaybackTargetAvailabilityEvent::create): Deleted.
(WebCore::WebKitPlaybackTargetAvailabilityEvent::availability const): Deleted.

  • Modules/applepay/ApplePayPaymentAuthorizedEvent.cpp:
  • Modules/applepay/ApplePayPaymentAuthorizedEvent.h:
  • Modules/applepay/ApplePayPaymentMethodSelectedEvent.cpp:
  • Modules/applepay/ApplePayPaymentMethodSelectedEvent.h:

(WebCore::ApplePayPaymentMethodSelectedEvent::create): Deleted.
(WebCore::ApplePayPaymentMethodSelectedEvent::paymentMethod): Deleted.

  • Modules/applepay/ApplePayShippingContactSelectedEvent.cpp:
  • Modules/applepay/ApplePayShippingContactSelectedEvent.h:
  • Modules/applepay/ApplePayShippingMethodSelectedEvent.cpp:
  • Modules/applepay/ApplePayShippingMethodSelectedEvent.h:
  • Modules/applepay/ApplePayValidateMerchantEvent.cpp:
  • Modules/applepay/ApplePayValidateMerchantEvent.h:

(WebCore::ApplePayValidateMerchantEvent::create): Deleted.
(WebCore::ApplePayValidateMerchantEvent::validationURL const): Deleted.

  • Modules/encryptedmedia/MediaKeyMessageEvent.cpp:
  • Modules/encryptedmedia/MediaKeyMessageEvent.h:
  • Modules/encryptedmedia/legacy/WebKitMediaKeyMessageEvent.cpp:
  • Modules/encryptedmedia/legacy/WebKitMediaKeyMessageEvent.h:

(WebCore::WebKitMediaKeyMessageEvent::create): Deleted.
(WebCore::WebKitMediaKeyMessageEvent::message const): Deleted.
(WebCore::WebKitMediaKeyMessageEvent::destinationURL const): Deleted.

  • Modules/encryptedmedia/legacy/WebKitMediaKeyNeededEvent.cpp:
  • Modules/encryptedmedia/legacy/WebKitMediaKeyNeededEvent.h:

(WebCore::WebKitMediaKeyNeededEvent::create): Deleted.
(WebCore::WebKitMediaKeyNeededEvent::initData const): Deleted.

  • Modules/gamepad/GamepadEvent.cpp:
  • Modules/gamepad/GamepadEvent.h:

(WebCore::GamepadEvent::create): Deleted.
(WebCore::GamepadEvent::gamepad const): Deleted.

  • Modules/indexeddb/IDBRequestCompletionEvent.cpp:
  • Modules/indexeddb/IDBRequestCompletionEvent.h:

(WebCore::IDBRequestCompletionEvent::create): Deleted.

  • Modules/indexeddb/IDBVersionChangeEvent.cpp:
  • Modules/indexeddb/IDBVersionChangeEvent.h:
  • Modules/mediarecorder/BlobEvent.cpp:
  • Modules/mediarecorder/BlobEvent.h:
  • Modules/mediarecorder/MediaRecorderErrorEvent.cpp:
  • Modules/mediarecorder/MediaRecorderErrorEvent.h:
  • Modules/mediastream/MediaStreamTrackEvent.cpp:
  • Modules/mediastream/MediaStreamTrackEvent.h:
  • Modules/mediastream/OverconstrainedErrorEvent.cpp: Copied from Source/WebCore/Modules/mediastream/RTCDataChannelEvent.h.
  • Modules/mediastream/OverconstrainedErrorEvent.h:

(WebCore::OverconstrainedErrorEvent::create): Deleted.
(WebCore::OverconstrainedErrorEvent::error const): Deleted.
(WebCore::OverconstrainedErrorEvent::OverconstrainedErrorEvent): Deleted.

  • Modules/mediastream/RTCDTMFToneChangeEvent.cpp:
  • Modules/mediastream/RTCDTMFToneChangeEvent.h:
  • Modules/mediastream/RTCDataChannelEvent.cpp:
  • Modules/mediastream/RTCDataChannelEvent.h:
  • Modules/mediastream/RTCPeerConnectionIceEvent.cpp:
  • Modules/mediastream/RTCPeerConnectionIceEvent.h:

(WebCore::RTCPeerConnectionIceEvent::url const): Deleted.

  • Modules/mediastream/RTCTrackEvent.cpp:
  • Modules/mediastream/RTCTrackEvent.h:

(WebCore::RTCTrackEvent::receiver const): Deleted.
(WebCore::RTCTrackEvent::track const): Deleted.
(WebCore::RTCTrackEvent::streams const): Deleted.
(WebCore::RTCTrackEvent::transceiver const): Deleted.
(WebCore::RTCTrackEvent::eventInterface const): Deleted.

  • Modules/paymentrequest/MerchantValidationEvent.cpp:
  • Modules/paymentrequest/MerchantValidationEvent.h:
  • Modules/paymentrequest/PaymentMethodChangeEvent.cpp:
  • Modules/paymentrequest/PaymentMethodChangeEvent.h:
  • Modules/paymentrequest/PaymentRequestUpdateEvent.cpp:
  • Modules/paymentrequest/PaymentRequestUpdateEvent.h:
  • Modules/speech/SpeechSynthesisEvent.cpp:
  • Modules/speech/SpeechSynthesisEvent.h:

(WebCore::SpeechSynthesisEvent::charIndex const): Deleted.
(WebCore::SpeechSynthesisEvent::elapsedTime const): Deleted.
(WebCore::SpeechSynthesisEvent::name const): Deleted.
(WebCore::SpeechSynthesisEvent::eventInterface const): Deleted.

  • Modules/webaudio/AudioProcessingEvent.cpp:
  • Modules/webaudio/AudioProcessingEvent.h:
  • Modules/webaudio/OfflineAudioCompletionEvent.cpp:
  • Modules/webaudio/OfflineAudioCompletionEvent.h:
  • Modules/webgpu/GPUUncapturedErrorEvent.cpp:
  • Modules/webgpu/GPUUncapturedErrorEvent.h:
  • Modules/websockets/CloseEvent.cpp: Copied from Source/WebCore/dom/BeforeTextInsertedEvent.cpp.
  • Modules/websockets/CloseEvent.h:

(WebCore::CloseEvent::create): Deleted.
(WebCore::CloseEvent::wasClean const): Deleted.
(WebCore::CloseEvent::code const): Deleted.
(WebCore::CloseEvent::reason const): Deleted.
(WebCore::CloseEvent::CloseEvent): Deleted.

  • Modules/webvr/VRDisplayEvent.cpp:
  • Modules/webvr/VRDisplayEvent.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AccessibleSetValueEvent.cpp:
  • accessibility/AccessibleSetValueEvent.h:

(WebCore::AccessibleSetValueEvent::create): Deleted.
(WebCore::AccessibleSetValueEvent::value const): Deleted.

  • animation/AnimationPlaybackEvent.cpp:
  • animation/AnimationPlaybackEvent.h:
  • bindings/js/ScriptWrappable.cpp: Copied from Source/WebCore/html/canvas/WebGLContextEvent.cpp.
  • bindings/js/ScriptWrappable.h:
  • dom/AnimationEvent.cpp:
  • dom/AnimationEvent.h:
  • dom/BeforeLoadEvent.cpp: Copied from Source/WebCore/dom/BeforeTextInsertedEvent.cpp.
  • dom/BeforeLoadEvent.h:
  • dom/BeforeTextInsertedEvent.cpp:
  • dom/BeforeTextInsertedEvent.h:
  • dom/BeforeUnloadEvent.cpp:
  • dom/BeforeUnloadEvent.h:
  • dom/ClipboardEvent.cpp:
  • dom/ClipboardEvent.h:
  • dom/CompositionEvent.cpp:
  • dom/CompositionEvent.h:
  • dom/CustomEvent.cpp:
  • dom/CustomEvent.h:
  • dom/DeviceMotionEvent.cpp:
  • dom/DeviceMotionEvent.h:
  • dom/DeviceOrientationEvent.cpp:
  • dom/DeviceOrientationEvent.h:
  • dom/ErrorEvent.cpp:
  • dom/ErrorEvent.h:
  • dom/Event.cpp:
  • dom/Event.h:
  • dom/FocusEvent.cpp:
  • dom/FocusEvent.h:
  • dom/HashChangeEvent.cpp: Copied from Source/WebCore/dom/BeforeTextInsertedEvent.cpp.
  • dom/HashChangeEvent.h:
  • dom/InputEvent.cpp:
  • dom/InputEvent.h:
  • dom/KeyboardEvent.cpp:
  • dom/KeyboardEvent.h:
  • dom/MessageEvent.cpp:
  • dom/MessageEvent.h:
  • dom/MouseEvent.cpp:
  • dom/MouseEvent.h:
  • dom/MouseRelatedEvent.cpp:
  • dom/MouseRelatedEvent.h:
  • dom/MutationEvent.cpp:
  • dom/MutationEvent.h:
  • dom/OverflowEvent.cpp:
  • dom/OverflowEvent.h:
  • dom/PageTransitionEvent.cpp:
  • dom/PageTransitionEvent.h:
  • dom/PointerEvent.cpp:
  • dom/PointerEvent.h:
  • dom/PopStateEvent.cpp:
  • dom/PopStateEvent.h:
  • dom/ProgressEvent.cpp:
  • dom/ProgressEvent.h:
  • dom/PromiseRejectionEvent.cpp:
  • dom/PromiseRejectionEvent.h:
  • dom/SecurityPolicyViolationEvent.cpp: Copied from Source/WebCore/dom/BeforeTextInsertedEvent.cpp.
  • dom/SecurityPolicyViolationEvent.h:
  • dom/TextEvent.cpp:
  • dom/TextEvent.h:
  • dom/TouchEvent.cpp:
  • dom/TouchEvent.h:
  • dom/TransitionEvent.cpp:
  • dom/TransitionEvent.h:
  • dom/UIEvent.cpp:
  • dom/UIEvent.h:
  • dom/UIEventWithKeyState.cpp:
  • dom/UIEventWithKeyState.h:
  • dom/WebKitAnimationEvent.cpp:
  • dom/WebKitAnimationEvent.h:
  • dom/WebKitTransitionEvent.cpp:
  • dom/WebKitTransitionEvent.h:
  • dom/WheelEvent.cpp:
  • dom/WheelEvent.h:
  • html/MediaEncryptedEvent.cpp:
  • html/MediaEncryptedEvent.h:
  • html/canvas/WebGLContextEvent.cpp:
  • html/canvas/WebGLContextEvent.h:
  • html/shadow/ProgressShadowElement.h:
  • html/track/TrackEvent.cpp:
  • html/track/TrackEvent.h:
  • storage/StorageEvent.cpp:
  • storage/StorageEvent.h:

(WebCore::StorageEvent::key const): Deleted.
(WebCore::StorageEvent::oldValue const): Deleted.
(WebCore::StorageEvent::newValue const): Deleted.
(WebCore::StorageEvent::url const): Deleted.
(WebCore::StorageEvent::storageArea const): Deleted.

  • svg/SVGFEDistantLightElement.h:
  • svg/SVGFEFuncAElement.h:
  • svg/SVGFEFuncBElement.h:
  • svg/SVGFEFuncGElement.h:
  • svg/SVGFEFuncRElement.h:
  • svg/SVGFEPointLightElement.h:
  • svg/SVGFESpotLightElement.h:
  • svg/SVGZoomEvent.cpp:
  • svg/SVGZoomEvent.h:
  • workers/service/ExtendableEvent.cpp:
  • workers/service/ExtendableEvent.h:
  • workers/service/ExtendableMessageEvent.cpp:
  • workers/service/ExtendableMessageEvent.h:
  • workers/service/FetchEvent.cpp:
  • workers/service/FetchEvent.h:
  • xml/XMLHttpRequestProgressEvent.cpp: Copied from Source/WebCore/Modules/encryptedmedia/MediaKeyMessageEvent.cpp.
  • xml/XMLHttpRequestProgressEvent.h:

(WebCore::XMLHttpRequestProgressEvent::create): Deleted.
(WebCore::XMLHttpRequestProgressEvent::position const): Deleted.
(WebCore::XMLHttpRequestProgressEvent::totalSize const): Deleted.
(WebCore::XMLHttpRequestProgressEvent::XMLHttpRequestProgressEvent): Deleted.

3:03 AM Changeset in webkit [250029] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

JPEGImageDecoder: use libjpeg-turbo RGBA output path even for Adobe transform=0 JPEGs
https://bugs.webkit.org/show_bug.cgi?id=200163

Reviewed by Carlos Garcia Campos.

Remove the workaround for old libjpeg-turbo which doesn't support
BGRA output for Adobe transform=0 images. The bug was fixed in
libjpeg-turbo 1.2.1.

No new tests, no behavior change.

  • platform/image-decoders/jpeg/JPEGImageDecoder.cpp:

(WebCore::JPEGImageReader::decode): Removed code in #if defined(TURBO_JPEG_RGB_SWIZZLE).
(colorSpaceHasAlpha): Removed an unused inline function.

2:19 AM Changeset in webkit [250028] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Remove build warning since r248998.

This patch removes build warning below.
warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

No new tests, no behavioral change.

Patch by Joonghun Park <jh718.park@samsung.com> on 2019-09-18

  • platform/image-decoders/png/PNGImageDecoder.cpp:

(WebCore::PNGImageDecoder::rowAvailable):

12:55 AM Changeset in webkit [250027] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[cairo] Incorrect targetRect in BackingStoreBackendCairoImpl::scroll
https://bugs.webkit.org/show_bug.cgi?id=201895

Reviewed by Carlos Garcia Campos.

In BackingStoreBackendCairoImpl::scroll, targetRect is calculated
wrongly by shifting maxX and maxY. Bug 59655 fixed the issue by
removing the shifting, but only for BackingStoreBackendCairoX11::scroll.

No new tests, no behavior change.

  • platform/graphics/cairo/BackingStoreBackendCairoImpl.cpp:

(WebCore::BackingStoreBackendCairoImpl::scroll): Take intersection of targetRect and scrollRect.

12:16 AM Changeset in webkit [250026] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Add a WKA extension point
https://bugs.webkit.org/show_bug.cgi?id=201801
<rdar://problem/55372507>

Reviewed by Alexey Proskuryakov.

  • Modules/applepay/ApplePayRequestBase.cpp:

(WebCore::requiresSupportedNetworks):
(WebCore::convertAndValidate):

Sep 17, 2019:

10:02 PM Changeset in webkit [250025] by ysuzuki@apple.com
  • 54 edits
    1 copy
    5 adds in trunk

[JSC] Generator should have internal fields
https://bugs.webkit.org/show_bug.cgi?id=201159

Reviewed by Keith Miller.

JSTests:

  • stress/create-generator.js: Added.

(shouldBe):
(test.generator):
(test):

  • stress/generator-construct-failure.js: Added.

(shouldThrow):
(TypeError):

  • stress/generator-prototype-change.js: Added.

(shouldBe):
(gen):

  • stress/generator-prototype-closure.js: Added.

(shouldBe):
(test.gen):
(test):

  • stress/object-assign-fast-path.js:

Source/JavaScriptCore:

This patch makes generator's internal states InternalField instead of private properties.
Each generator function produces a generator with different Prototype, which makes generators have different Structures.
As a result, Generator.prototype.next etc.'s implementation becomes megamorphic even if it is not necessary.

If we make these structures adaptively poly-proto, some generators get poly-proto structures while others are not, resulting
in megamorphic lookup in Generator.prototype.next. If we make all the generator's structure poly-proto, it makes Generator.prototype.next
lookup suboptimal for now.

In this patch, we start with a relatively simple solution. This patch introduces JSGenerator class, and it has internal fields for generator's internal
states. We extend promise-internal-field access bytecodes to access to these fields from bytecode so that Generator.prototype.next can access
these fields without using megamorphic get_by_id_direct.

And we attach JSGeneratorType to JSGenerator so that we can efficiently implement @isGenerator() check in bytecode.

We reserve the offset = 0 slot for the future poly-proto extension for JSGenerator. By reserving this slot, non-poly-proto JSGenerator and poly-proto
JSGenerator still can offer the way to access to the same Generator internal fields with the same offset while poly-proto JSGenerator can get offset = 0
inline-storage slot for PolyProto implementation.

This patch adds op_create_generator since it is distinct from op_create_promise once we add PolyProto support.
In the future when we introduce some kind of op_create_async_generator we will probably share only one bytecode for both generator and async generator.

This patch offers around 10% improvement in JetStream2/Basic. And this patch is the basis of optimization of JetStream2/async-fs which leverages async generators significantly.

This patch includes several design decisions.

  1. We add a new JSGenerator instead of leveraging JSFinalObject. The main reason is that we would like to have JSGeneratorType to quickly query @isGenerator.
  2. This patch currently does not include object-allocation-sinking support for JSGenerator, but it is trivial, and will be added. And this patch also does not include poly-proto support for JSGenerator. The main reason is simply because this patch is already large enough, and I do not want to make this patch larger and larger.
  3. We can support arbitrary sized inline-storage: Reserving 0-5 offsets for internal fields, and start putting all the other things to the subsequent internal fields. But for now, we are not taking this approach just because I'm not sure this is necessary. If we found such a pattern, we can easily extend the current one but for now, I would like to keep this patch simple.
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • builtins/AsyncFunctionPrototype.js:

(globalPrivate.asyncFunctionResume):

  • builtins/GeneratorPrototype.js:

(globalPrivate.generatorResume):
(next):
(return):
(throw):

  • bytecode/BytecodeGeneratorification.cpp:

(JSC::BytecodeGeneratorification::run):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecode/BytecodeList.rb:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::finalizeLLIntInlineCaches):

  • bytecode/SpeculatedType.cpp:

(JSC::speculationFromJSType):

  • bytecode/SpeculatedType.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitPutGeneratorFields):
(JSC::BytecodeGenerator::emitCreateGenerator):
(JSC::BytecodeGenerator::emitNewGenerator):
(JSC::BytecodeGenerator::emitYield):
(JSC::BytecodeGenerator::emitDelegateYield):
(JSC::BytecodeGenerator::emitGeneratorStateChange):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitIsGenerator):
(JSC::BytecodeGenerator::generatorStateRegister):
(JSC::BytecodeGenerator::generatorValueRegister):
(JSC::BytecodeGenerator::generatorResumeModeRegister):
(JSC::BytecodeGenerator::generatorFrameRegister):

  • bytecompiler/NodesCodegen.cpp:

(JSC::generatorInternalFieldIndex):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_getGeneratorInternalField):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_putGeneratorInternalField):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_isGenerator):
(JSC::FunctionNode::emitBytecode):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGClobbersExitState.cpp:

(JSC::DFG::clobbersExitState):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupIsCellWithType):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToNewGenerator):
(JSC::DFG::Node::speculatedTypeForQuery):
(JSC::DFG::Node::hasStructure):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCreatePromise):
(JSC::DFG::SpeculativeJIT::compileCreateGenerator):
(JSC::DFG::SpeculativeJIT::compileNewGenerator):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileNewGenerator):
(JSC::FTL::DFG::LowerDFGToB3::compileCreatePromise):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateGenerator):
(JSC::FTL::DFG::LowerDFGToB3::isCellWithType):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_internal_field):
(JSC::JIT::emit_op_put_internal_field):

  • llint/LowLevelInterpreter.asm:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::createSubclassStructureSlow):

  • runtime/InternalFunction.h:

(JSC::InternalFunction::createSubclassStructure):

  • runtime/JSGenerator.cpp: Added.

(JSC::JSGenerator::create):
(JSC::JSGenerator::createStructure):
(JSC::JSGenerator::JSGenerator):
(JSC::JSGenerator::finishCreation):
(JSC::JSGenerator::visitChildren):

  • runtime/JSGenerator.h: Copied from Source/JavaScriptCore/runtime/JSGeneratorFunction.h.
  • runtime/JSGeneratorFunction.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::generatorStructure const):

  • runtime/JSType.cpp:

(WTF::printInternal):

  • runtime/JSType.h:
9:33 PM Changeset in webkit [250024] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed iOS 13 test gardening, update test expectations.

  • platform/ios/TestExpectations:
9:22 PM Changeset in webkit [250023] by Ryan Haddad
  • 3 edits
    1 add in trunk/LayoutTests

Unreviewed iOS 13 test gardening, udpate test expectations and baselines.

  • platform/ios/TestExpectations:
  • platform/ios/js/dom/navigator-maxtouchpoints-expected.txt: Added.
  • platform/ios/platform/ios/ios/fast/text/opticalFont-expected.txt:
8:58 PM Changeset in webkit [250022] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening, rebaseline a test after r249963.

  • media/track/track-cue-rendering-rtl-expected.txt:
8:23 PM Changeset in webkit [250021] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Move comment explaining our Options to OptionsList.h
https://bugs.webkit.org/show_bug.cgi?id=201891

Rubber-stamped by Mark Lam.

We moved the list so we should move the comment.

  • runtime/Options.h:
  • runtime/OptionsList.h:
7:48 PM Changeset in webkit [250020] by Jonathan Bedard
  • 1 edit
    4 adds in trunk/WebKitLibraries

Follow-up: [iOS 13] Enable WebKit build
https://bugs.webkit.org/show_bug.cgi?id=199481
<rdar://problem/52619048>

Unreviewed build-fix.

  • WebKitPrivateFrameworkStubs/iOS/13/DeviceIdentity.framework: Added.
  • WebKitPrivateFrameworkStubs/iOS/13/DeviceIdentity.framework/DeviceIdentity.tbd: Added.
  • WebKitPrivateFrameworkStubs/iOS/13/IOSurfaceAccelerator.framework: Added.
  • WebKitPrivateFrameworkStubs/iOS/13/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd: Added.
6:55 PM Changeset in webkit [250019] by Fujii Hironori
  • 3 edits
    2 deletes in trunk/Tools

[Win][MiniBrowser] Remove unused DOMDefaultImpl.cpp
https://bugs.webkit.org/show_bug.cgi?id=201867

Reviewed by Darin Adler.

  • MiniBrowser/win/CMakeLists.txt: Removed DOMDefaultImpl.cpp.
  • MiniBrowser/win/DOMDefaultImpl.cpp: Removed.
  • MiniBrowser/win/DOMDefaultImpl.h: Removed.
  • MiniBrowser/win/WebKitLegacyBrowserWindow.cpp:
6:43 PM Changeset in webkit [250018] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, revert change that Alex mistakenly committed at the same time as r250006 and broke the build.

  • page/PerformanceObserver.idl:
6:29 PM Changeset in webkit [250017] by Alan Coon
  • 1 edit in branches/safari-608-branch/Source/WebKit/WebProcess/WebPage/WebPage.cpp

Unreviewed build fix. rdar://problem/55240888

6:27 PM Changeset in webkit [250016] by Ross Kirsling
  • 2 edits in trunk/Source/WebKit

Unreviewed WinCairo build fix following r249985.

  • Shared/WebProcessDataStoreParameters.h:
6:20 PM Changeset in webkit [250015] by dino@apple.com
  • 6 edits in trunk

Remove the "Show Link Previews" and "Hide Link Previews" action menus in the preview platter
https://bugs.webkit.org/show_bug.cgi?id=201864
<rdar://55190038>

Reviewed by Simon Fraser.

Source/WebKit:

  • UIProcess/ios/WKActionSheetAssistant.mm: Remove the toggle action from the

default values.
(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):

  • UIProcess/ios/WKContentViewInteraction.mm: No longer try to add a toggle when

it isn't there.
(-[WKContentView assignLegacyDataForContextMenuInteraction]):
(menuWithShowLinkPreviewAction): Deleted.

Tools:

Test for the suggested actions.

  • TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm:

(-[TestContextMenuSuggestedActionsUIDelegate webView:contextMenuConfigurationForElement:completionHandler:]):
(-[TestContextMenuSuggestedActionsUIDelegate webView:contextMenuWillPresentForElement:]):
(TEST):

6:15 PM Changeset in webkit [250014] by Alan Coon
  • 3 edits
    2 adds in branches/safari-608-branch

Cherry-pick r249954. rdar://problem/55461404

[First-letter] Use WeakPtr for the first-letter insertion point.
https://bugs.webkit.org/show_bug.cgi?id=201842
<rdar://problem/51373788>

Reviewed by Antti Koivisto.

Source/WebCore:

The about-to-be-removed first letter renderer's sibling could potentially be destroyed too as the result of the anonymous subtree collapsing logic (when the next sibling is a generated anonymous block and it is not needed anymore.)

Test: fast/text/first-letter-with-columns-crash.html

  • rendering/updating/RenderTreeBuilderFirstLetter.cpp: (WebCore::RenderTreeBuilder::FirstLetter::updateStyle):

LayoutTests:

  • fast/text/first-letter-with-columns-crash-expected.txt: Added.
  • fast/text/first-letter-with-columns-crash.html: Added.

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

6:15 PM Changeset in webkit [250013] by Alan Coon
  • 3 edits in branches/safari-608-branch/Source

Cherry-pick r249936. rdar://problem/55461414

Provide a prototype for AR QuickLook to trigger processing in the originating page
https://bugs.webkit.org/show_bug.cgi?id=201371

Hopefully fix the public iOS 13 build.

Source/WebCore/PAL:

  • pal/spi/ios/SystemPreviewSPI.h:

Source/WebKit:

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:

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

6:15 PM Changeset in webkit [250012] by Alan Coon
  • 3 edits
    2 adds in branches/safari-608-branch

Cherry-pick r249911. rdar://problem/55461405

JSObject::putInlineSlow should not ignore "proto" for Proxy
https://bugs.webkit.org/show_bug.cgi?id=200386
<rdar://problem/53854946>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/proxy-proto-in-prototype-chain.js: Added.
  • stress/proxy-property-replace-structure-transition.js: Added.

Source/JavaScriptCore:

We used to ignore 'proto' in putInlineSlow when the object in question
was Proxy. There is no reason for this, and it goes against the spec. So
I've removed that condition. This also has the effect that it fixes an
assertion firing inside our inline caching code which dictates that for a
property replace that the base value's structure must be equal to the
structure when we grabbed the structure prior to the put operation.
The old code caused a weird edge case where we broke this invariant.

  • runtime/JSObject.cpp: (JSC::JSObject::putInlineSlow):

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

6:15 PM Changeset in webkit [250011] by Alan Coon
  • 4 edits
    6 adds in branches/safari-608-branch/Source/WebCore

Cherry-pick r249888. rdar://problem/55461403

[WebIDL] Derived dictionaries should inherit their inherited dictionaries' partials
https://bugs.webkit.org/show_bug.cgi?id=201802

Reviewed by Sam Weinig.

Prior to this change, a dictionary D that inherits from dictionary B would not inherit B's
partial dictionaries. Fixed this by moving supplemental dependencies processing from
generate-bindings.pl to CodeGenerator.pm and reusing it in GetDictionaryByType.

Added new bindings tests.

  • bindings/scripts/CodeGenerator.pm: (new): (ProcessDocument): (ProcessSupplementalDependencies): (shouldPropertyBeExposed): (GetDictionaryByType):
  • bindings/scripts/generate-bindings.pl: (generateBindings): (shouldPropertyBeExposed): Deleted.
  • bindings/scripts/test/JS/JSTestDerivedDictionary.cpp: Added. (WebCore::convertDictionary<TestDerivedDictionary>): (WebCore::convertDictionaryToJS):
  • bindings/scripts/test/JS/JSTestDerivedDictionary.h: Added.
  • bindings/scripts/test/JS/JSTestInheritedDictionary.cpp: Added. (WebCore::convertDictionary<TestInheritedDictionary>): (WebCore::convertDictionaryToJS):
  • bindings/scripts/test/JS/JSTestInheritedDictionary.h: Added.
  • bindings/scripts/test/TestDerivedDictionary.idl: Added.
  • bindings/scripts/test/TestInheritedDictionary.idl: Added.
  • bindings/scripts/test/TestSupplemental.idl:

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

6:15 PM Changeset in webkit [250010] by Alan Coon
  • 3 edits
    4 adds in branches/safari-608-branch

Cherry-pick r247573. rdar://problem/55461395

[Pointer Events] The button and buttons properties are incorrect on iOS
https://bugs.webkit.org/show_bug.cgi?id=199910
<rdar://problem/52778374>

Reviewed by Dean Jackson.

Source/WebCore:

The button and buttons properties were always set to 0 on iOS. We now use the correct values such that
button is always 0 except for "pointermove" where it's -1, and "buttons" is 1 as long as the pointer is
in contact with the touch surface.

Tests: pointerevents/ios/pointer-event-button-and-buttons-pointer-cancel.html

pointerevents/ios/pointer-event-button-and-buttons.html

  • dom/ios/PointerEventIOS.cpp: (WebCore::buttonForType): (WebCore::buttonsForType): (WebCore::PointerEvent::PointerEvent):

LayoutTests:

  • pointerevents/ios/pointer-event-button-and-buttons-expected.txt: Added.
  • pointerevents/ios/pointer-event-button-and-buttons-pointer-cancel-expected.txt: Added.
  • pointerevents/ios/pointer-event-button-and-buttons-pointer-cancel.html: Added.
  • pointerevents/ios/pointer-event-button-and-buttons.html: Added.

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

6:06 PM Changeset in webkit [250009] by keith_miller@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

Elide unnecessary moves in Air O0
https://bugs.webkit.org/show_bug.cgi?id=201703

Reviewed by Saam Barati.

This patch also removes the code that would try to reuse temps in
WasmAirIRGenerator. That code makes it hard to accurately
determine where a temp dies as it could be reused again
later. Thus every temp, may appear to live for a long time in the
global ordering.

This appears to be a minor progression on the overall score of
wasm subtests in JS2 and a 10% wasm-JIT memory usage reduction.

This patch also fixes an issue where we didn't ask Patchpoints
for early clobber registers when determining what callee saves
were used by the program.

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:

(JSC::B3::Air::GenerateAndAllocateRegisters::generate):

  • b3/air/AirBasicBlock.h:
  • b3/air/AirCode.h:
  • b3/air/AirHandleCalleeSaves.cpp:

(JSC::B3::Air::handleCalleeSaves):

  • b3/air/testair.cpp:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::didKill): Deleted.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::didKill): Deleted.

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseBody):
(JSC::Wasm::FunctionParser<Context>::parseExpression):

  • wasm/WasmValidate.cpp:

(JSC::Wasm::Validate::didKill): Deleted.

5:42 PM Changeset in webkit [250008] by Alan Coon
  • 10 edits in branches/safari-608-branch/Source

Apply patch. rdar://problem/55240888

5:42 PM Changeset in webkit [250007] by Alan Coon
  • 10 edits in branches/safari-608-branch/Source

Revert r249748. rdar://problem/55240888

5:38 PM Changeset in webkit [250006] by achristensen@apple.com
  • 18 edits in trunk/Source

Stop calling Page::setSessionID() from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=201888

Patch by Chris Dumez <Chris Dumez> on 2019-09-17
Reviewed by Alex Christensen.

Stop calling Page::setSessionID() from WebKit2 since Page's sessionID can never change when
using WebKit2 (We process-swap and create a new Page in a new process when changing data
store). Instead, we now pass the sessionID ID when constructing the Page, as part of the
PageConfiguration structure.

Source/WebCore:

  • editing/markup.cpp:

(WebCore::createPageForSanitizingWebContent):

  • loader/EmptyClients.cpp:

(WebCore::pageConfigurationWithEmptyClients):

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

(WebCore::Page::Page):
(WebCore::Page::setSessionID):

  • page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration):

  • page/PageConfiguration.h:
  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::createPageForServiceWorker):
(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):

Source/WebKit:

  • Shared/WebsitePoliciesData.cpp:

(WebKit::WebsitePoliciesData::applyToDocumentLoader):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_textAutoSizingAdjustmentTimer):
(WebKit::WebPage::setSessionID): Deleted.

  • WebProcess/WebPage/WebPage.h:

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

5:36 PM Changeset in webkit [250005] by mark.lam@apple.com
  • 455 edits in trunk/Source

Use constexpr instead of const in symbol definitions that are obviously constexpr.
https://bugs.webkit.org/show_bug.cgi?id=201879

Rubber-stamped by Joseph Pecoraro.

Source/bmalloc:

  • bmalloc/AvailableMemory.cpp:
  • bmalloc/IsoTLS.h:
  • bmalloc/Map.h:
  • bmalloc/Mutex.cpp:

(bmalloc::Mutex::lockSlowCase):

  • bmalloc/PerThread.h:
  • bmalloc/Vector.h:
  • bmalloc/Zone.h:

Source/JavaScriptCore:

const may require external storage (at the compiler's whim) though these
currently do not. constexpr makes it clear that the value is a literal constant
that can be inlined. In most cases in the code, when we say static const, we
actually mean static constexpr. I'm changing the code to reflect this.

  • API/JSAPIValueWrapper.h:
  • API/JSCallbackConstructor.h:
  • API/JSCallbackObject.h:
  • API/JSContextRef.cpp:
  • API/JSWrapperMap.mm:
  • API/tests/CompareAndSwapTest.cpp:
  • API/tests/TypedArrayCTest.cpp:
  • API/tests/testapi.mm:

(testObjectiveCAPIMain):

  • KeywordLookupGenerator.py:

(Trie.printAsC):

  • assembler/ARMv7Assembler.h:
  • assembler/AssemblerBuffer.h:
  • assembler/AssemblerCommon.h:
  • assembler/MacroAssembler.h:
  • assembler/MacroAssemblerARM64.h:
  • assembler/MacroAssemblerARM64E.h:
  • assembler/MacroAssemblerARMv7.h:
  • assembler/MacroAssemblerCodeRef.h:
  • assembler/MacroAssemblerMIPS.h:
  • assembler/MacroAssemblerX86.h:
  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::absDouble):
(JSC::MacroAssemblerX86Common::negateDouble):

  • assembler/MacroAssemblerX86_64.h:
  • assembler/X86Assembler.h:
  • b3/B3Bank.h:
  • b3/B3CheckSpecial.h:
  • b3/B3DuplicateTails.cpp:
  • b3/B3EliminateCommonSubexpressions.cpp:
  • b3/B3FixSSA.cpp:
  • b3/B3FoldPathConstants.cpp:
  • b3/B3InferSwitches.cpp:
  • b3/B3Kind.h:
  • b3/B3LowerToAir.cpp:
  • b3/B3NativeTraits.h:
  • b3/B3ReduceDoubleToFloat.cpp:
  • b3/B3ReduceLoopStrength.cpp:
  • b3/B3ReduceStrength.cpp:
  • b3/B3ValueKey.h:
  • b3/air/AirAllocateRegistersByGraphColoring.cpp:
  • b3/air/AirAllocateStackByGraphColoring.cpp:
  • b3/air/AirArg.h:
  • b3/air/AirCCallSpecial.h:
  • b3/air/AirEmitShuffle.cpp:
  • b3/air/AirFixObviousSpills.cpp:
  • b3/air/AirFormTable.h:
  • b3/air/AirLowerAfterRegAlloc.cpp:
  • b3/air/AirPrintSpecial.h:
  • b3/air/AirStackAllocation.cpp:
  • b3/air/AirTmp.h:
  • b3/testb3_6.cpp:

(testInterpreter):

  • bytecode/AccessCase.cpp:
  • bytecode/CallLinkStatus.cpp:
  • bytecode/CallVariant.h:
  • bytecode/CodeBlock.h:
  • bytecode/CodeOrigin.h:
  • bytecode/DFGExitProfile.h:
  • bytecode/DirectEvalCodeCache.h:
  • bytecode/ExecutableToCodeBlockEdge.h:
  • bytecode/GetterSetterAccessCase.cpp:
  • bytecode/LazyOperandValueProfile.h:
  • bytecode/ObjectPropertyCondition.h:
  • bytecode/ObjectPropertyConditionSet.cpp:
  • bytecode/PolymorphicAccess.cpp:
  • bytecode/PropertyCondition.h:
  • bytecode/SpeculatedType.h:
  • bytecode/StructureStubInfo.cpp:
  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::typeProfilerExpressionInfoForBytecodeOffset):

  • bytecode/UnlinkedCodeBlock.h:
  • bytecode/UnlinkedEvalCodeBlock.h:
  • bytecode/UnlinkedFunctionCodeBlock.h:
  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecode/UnlinkedModuleProgramCodeBlock.h:
  • bytecode/UnlinkedProgramCodeBlock.h:
  • bytecode/ValueProfile.h:
  • bytecode/VirtualRegister.h:
  • bytecode/Watchpoint.h:
  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/Label.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::ThisNode::emitBytecode):

  • bytecompiler/RegisterID.h:
  • debugger/Breakpoint.h:
  • debugger/DebuggerParseData.cpp:
  • debugger/DebuggerPrimitives.h:
  • debugger/DebuggerScope.h:
  • dfg/DFGAbstractHeap.h:
  • dfg/DFGAbstractValue.h:
  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGByteCodeParser.cpp:
  • dfg/DFGCSEPhase.cpp:
  • dfg/DFGCommon.h:
  • dfg/DFGCompilationKey.h:
  • dfg/DFGDesiredGlobalProperty.h:
  • dfg/DFGEdgeDominates.h:
  • dfg/DFGEpoch.h:
  • dfg/DFGForAllKills.h:

(JSC::DFG::forAllKilledNodesAtNodeIndex):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::isLiveInBytecode):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGInPlaceAbstractState.cpp:
  • dfg/DFGIntegerCheckCombiningPhase.cpp:
  • dfg/DFGIntegerRangeOptimizationPhase.cpp:
  • dfg/DFGInvalidationPointInjectionPhase.cpp:
  • dfg/DFGLICMPhase.cpp:
  • dfg/DFGLazyNode.h:
  • dfg/DFGMinifiedID.h:
  • dfg/DFGMovHintRemovalPhase.cpp:
  • dfg/DFGNodeFlowProjection.h:
  • dfg/DFGNodeType.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGPhantomInsertionPhase.cpp:
  • dfg/DFGPromotedHeapLocation.h:
  • dfg/DFGPropertyTypeKey.h:
  • dfg/DFGPureValue.h:
  • dfg/DFGPutStackSinkingPhase.cpp:
  • dfg/DFGRegisterBank.h:
  • dfg/DFGSSAConversionPhase.cpp:
  • dfg/DFGSSALoweringPhase.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::compileClampDoubleToByte):
(JSC::DFG::SpeculativeJIT::compileArithRounding):
(JSC::DFG::compileArithPowIntegerFastPath):
(JSC::DFG::SpeculativeJIT::compileArithPow):
(JSC::DFG::SpeculativeJIT::emitBinarySwitchStringRecurse):

  • dfg/DFGStackLayoutPhase.cpp:
  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • dfg/DFGStrengthReductionPhase.cpp:
  • dfg/DFGStructureAbstractValue.h:
  • dfg/DFGVarargsForwardingPhase.cpp:
  • dfg/DFGVariableEventStream.cpp:

(JSC::DFG::VariableEventStream::reconstruct const):

  • dfg/DFGWatchpointCollectionPhase.cpp:
  • disassembler/ARM64/A64DOpcode.h:
  • ftl/FTLLocation.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileArithRandom):

  • ftl/FTLSlowPathCall.cpp:
  • ftl/FTLSlowPathCallKey.h:
  • heap/CellContainer.h:
  • heap/CellState.h:
  • heap/ConservativeRoots.h:
  • heap/GCSegmentedArray.h:
  • heap/HandleBlock.h:
  • heap/Heap.cpp:

(JSC::Heap::updateAllocationLimits):

  • heap/Heap.h:
  • heap/HeapSnapshot.h:
  • heap/HeapUtil.h:

(JSC::HeapUtil::findGCObjectPointersForMarking):

  • heap/IncrementalSweeper.cpp:
  • heap/LargeAllocation.h:
  • heap/MarkedBlock.cpp:
  • heap/Strong.h:
  • heap/VisitRaceKey.h:
  • heap/Weak.h:
  • heap/WeakBlock.h:
  • inspector/JSInjectedScriptHost.h:
  • inspector/JSInjectedScriptHostPrototype.h:
  • inspector/JSJavaScriptCallFrame.h:
  • inspector/JSJavaScriptCallFramePrototype.h:
  • inspector/agents/InspectorConsoleAgent.cpp:
  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets):

  • inspector/scripts/codegen/generate_cpp_protocol_types_header.py:

(CppProtocolTypesHeaderGenerator._generate_versions):

  • inspector/scripts/tests/generic/expected/version.json-result:
  • interpreter/Interpreter.h:
  • interpreter/ShadowChicken.cpp:
  • jit/BinarySwitch.cpp:
  • jit/CallFrameShuffler.h:
  • jit/ExecutableAllocator.h:
  • jit/FPRInfo.h:
  • jit/GPRInfo.h:
  • jit/ICStats.h:
  • jit/JITThunks.h:
  • jit/Reg.h:
  • jit/RegisterSet.h:
  • jit/TempRegisterSet.h:
  • jsc.cpp:
  • parser/ASTBuilder.h:
  • parser/Nodes.h:
  • parser/SourceCodeKey.h:
  • parser/SyntaxChecker.h:
  • parser/VariableEnvironment.h:
  • profiler/ProfilerOrigin.h:
  • profiler/ProfilerOriginStack.h:
  • profiler/ProfilerUID.h:
  • runtime/AbstractModuleRecord.cpp:
  • runtime/ArrayBufferNeuteringWatchpointSet.h:
  • runtime/ArrayConstructor.h:
  • runtime/ArrayConventions.h:
  • runtime/ArrayIteratorPrototype.h:
  • runtime/ArrayPrototype.cpp:

(JSC::setLength):

  • runtime/AsyncFromSyncIteratorPrototype.h:
  • runtime/AsyncGeneratorFunctionPrototype.h:
  • runtime/AsyncGeneratorPrototype.h:
  • runtime/AsyncIteratorPrototype.h:
  • runtime/AtomicsObject.cpp:
  • runtime/BigIntConstructor.h:
  • runtime/BigIntPrototype.h:
  • runtime/BooleanPrototype.h:
  • runtime/ClonedArguments.h:
  • runtime/CodeCache.h:
  • runtime/ControlFlowProfiler.h:
  • runtime/CustomGetterSetter.h:
  • runtime/DateConstructor.h:
  • runtime/DatePrototype.h:
  • runtime/DefinePropertyAttributes.h:
  • runtime/ErrorPrototype.h:
  • runtime/EvalExecutable.h:
  • runtime/Exception.h:
  • runtime/ExceptionHelpers.cpp:

(JSC::invalidParameterInSourceAppender):
(JSC::invalidParameterInstanceofSourceAppender):

  • runtime/ExceptionHelpers.h:
  • runtime/ExecutableBase.h:
  • runtime/FunctionExecutable.h:
  • runtime/FunctionRareData.h:
  • runtime/GeneratorPrototype.h:
  • runtime/GenericArguments.h:
  • runtime/GenericOffset.h:
  • runtime/GetPutInfo.h:
  • runtime/GetterSetter.h:
  • runtime/GlobalExecutable.h:
  • runtime/Identifier.h:
  • runtime/InspectorInstrumentationObject.h:
  • runtime/InternalFunction.h:
  • runtime/IntlCollatorConstructor.h:
  • runtime/IntlCollatorPrototype.h:
  • runtime/IntlDateTimeFormatConstructor.h:
  • runtime/IntlDateTimeFormatPrototype.h:
  • runtime/IntlNumberFormatConstructor.h:
  • runtime/IntlNumberFormatPrototype.h:
  • runtime/IntlObject.h:
  • runtime/IntlPluralRulesConstructor.h:
  • runtime/IntlPluralRulesPrototype.h:
  • runtime/IteratorPrototype.h:
  • runtime/JSArray.cpp:

(JSC::JSArray::tryCreateUninitializedRestricted):

  • runtime/JSArray.h:
  • runtime/JSArrayBuffer.h:
  • runtime/JSArrayBufferView.h:
  • runtime/JSBigInt.h:
  • runtime/JSCJSValue.h:
  • runtime/JSCell.h:
  • runtime/JSCustomGetterSetterFunction.h:
  • runtime/JSDataView.h:
  • runtime/JSDataViewPrototype.h:
  • runtime/JSDestructibleObject.h:
  • runtime/JSFixedArray.h:
  • runtime/JSGenericTypedArrayView.h:
  • runtime/JSGlobalLexicalEnvironment.h:
  • runtime/JSGlobalObject.h:
  • runtime/JSImmutableButterfly.h:
  • runtime/JSInternalPromiseConstructor.h:
  • runtime/JSInternalPromiseDeferred.h:
  • runtime/JSInternalPromisePrototype.h:
  • runtime/JSLexicalEnvironment.h:
  • runtime/JSModuleEnvironment.h:
  • runtime/JSModuleLoader.h:
  • runtime/JSModuleNamespaceObject.h:
  • runtime/JSNonDestructibleProxy.h:
  • runtime/JSONObject.cpp:
  • runtime/JSONObject.h:
  • runtime/JSObject.h:
  • runtime/JSPromiseConstructor.h:
  • runtime/JSPromiseDeferred.h:
  • runtime/JSPromisePrototype.h:
  • runtime/JSPropertyNameEnumerator.h:
  • runtime/JSProxy.h:
  • runtime/JSScope.h:
  • runtime/JSScriptFetchParameters.h:
  • runtime/JSScriptFetcher.h:
  • runtime/JSSegmentedVariableObject.h:
  • runtime/JSSourceCode.h:
  • runtime/JSString.cpp:
  • runtime/JSString.h:
  • runtime/JSSymbolTableObject.h:
  • runtime/JSTemplateObjectDescriptor.h:
  • runtime/JSTypeInfo.h:
  • runtime/MapPrototype.h:
  • runtime/MinimumReservedZoneSize.h:
  • runtime/ModuleProgramExecutable.h:
  • runtime/NativeExecutable.h:
  • runtime/NativeFunction.h:
  • runtime/NativeStdFunctionCell.h:
  • runtime/NumberConstructor.h:
  • runtime/NumberPrototype.h:
  • runtime/ObjectConstructor.h:
  • runtime/ObjectPrototype.h:
  • runtime/ProgramExecutable.h:
  • runtime/PromiseDeferredTimer.cpp:
  • runtime/PropertyMapHashTable.h:
  • runtime/PropertyNameArray.h:

(JSC::PropertyNameArray::add):

  • runtime/PrototypeKey.h:
  • runtime/ProxyConstructor.h:
  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::performGetOwnPropertyNames):

  • runtime/ProxyRevoke.h:
  • runtime/ReflectObject.h:
  • runtime/RegExp.h:
  • runtime/RegExpCache.h:
  • runtime/RegExpConstructor.h:
  • runtime/RegExpKey.h:
  • runtime/RegExpObject.h:
  • runtime/RegExpPrototype.h:
  • runtime/RegExpStringIteratorPrototype.h:
  • runtime/SamplingProfiler.cpp:
  • runtime/ScopedArgumentsTable.h:
  • runtime/ScriptExecutable.h:
  • runtime/SetPrototype.h:
  • runtime/SmallStrings.h:
  • runtime/SparseArrayValueMap.h:
  • runtime/StringConstructor.h:
  • runtime/StringIteratorPrototype.h:
  • runtime/StringObject.h:
  • runtime/StringPrototype.h:
  • runtime/Structure.h:
  • runtime/StructureChain.h:
  • runtime/StructureRareData.h:
  • runtime/StructureTransitionTable.h:
  • runtime/Symbol.h:
  • runtime/SymbolConstructor.h:
  • runtime/SymbolPrototype.h:
  • runtime/SymbolTable.h:
  • runtime/TemplateObjectDescriptor.h:
  • runtime/TypeProfiler.cpp:
  • runtime/TypeProfiler.h:
  • runtime/TypeProfilerLog.cpp:
  • runtime/VarOffset.h:
  • testRegExp.cpp:
  • tools/HeapVerifier.cpp:

(JSC::HeapVerifier::checkIfRecorded):

  • tools/JSDollarVM.cpp:
  • wasm/WasmB3IRGenerator.cpp:
  • wasm/WasmBBQPlan.cpp:
  • wasm/WasmFaultSignalHandler.cpp:
  • wasm/WasmFunctionParser.h:
  • wasm/WasmOMGForOSREntryPlan.cpp:
  • wasm/WasmOMGPlan.cpp:
  • wasm/WasmPlan.cpp:
  • wasm/WasmSignature.cpp:
  • wasm/WasmSignature.h:
  • wasm/WasmWorklist.cpp:
  • wasm/js/JSWebAssembly.h:
  • wasm/js/JSWebAssemblyCodeBlock.h:
  • wasm/js/WebAssemblyCompileErrorConstructor.h:
  • wasm/js/WebAssemblyCompileErrorPrototype.h:
  • wasm/js/WebAssemblyFunction.h:
  • wasm/js/WebAssemblyInstanceConstructor.h:
  • wasm/js/WebAssemblyInstancePrototype.h:
  • wasm/js/WebAssemblyLinkErrorConstructor.h:
  • wasm/js/WebAssemblyLinkErrorPrototype.h:
  • wasm/js/WebAssemblyMemoryConstructor.h:
  • wasm/js/WebAssemblyMemoryPrototype.h:
  • wasm/js/WebAssemblyModuleConstructor.h:
  • wasm/js/WebAssemblyModulePrototype.h:
  • wasm/js/WebAssemblyRuntimeErrorConstructor.h:
  • wasm/js/WebAssemblyRuntimeErrorPrototype.h:
  • wasm/js/WebAssemblyTableConstructor.h:
  • wasm/js/WebAssemblyTablePrototype.h:
  • wasm/js/WebAssemblyToJSCallee.h:
  • yarr/Yarr.h:
  • yarr/YarrParser.h:
  • yarr/generateYarrCanonicalizeUnicode:

Source/WebCore:

No new tests. Covered by existing tests.

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

(GenerateHeader):
(GeneratePrototypeDeclaration):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.h:
  • bindings/scripts/test/JS/JSTestEnabledBySetting.h:
  • bindings/scripts/test/JS/JSTestEnabledForContext.h:
  • bindings/scripts/test/JS/JSTestEventTarget.h:
  • bindings/scripts/test/JS/JSTestGlobalObject.h:
  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h:
  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h:
  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.h:
  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.h:
  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.h:
  • bindings/scripts/test/JS/JSTestPluginInterface.h:
  • bindings/scripts/test/JS/JSTestTypedefs.h:
  • bridge/objc/objc_runtime.h:
  • bridge/runtime_array.h:
  • bridge/runtime_method.h:
  • bridge/runtime_object.h:

Source/WebKit:

  • WebProcess/Plugins/Netscape/JSNPObject.h:

Source/WTF:

  • wtf/Assertions.cpp:
  • wtf/AutomaticThread.cpp:
  • wtf/BitVector.h:
  • wtf/Bitmap.h:
  • wtf/BloomFilter.h:
  • wtf/Brigand.h:
  • wtf/CheckedArithmetic.h:
  • wtf/CrossThreadCopier.h:
  • wtf/CurrentTime.cpp:
  • wtf/DataLog.cpp:
  • wtf/DateMath.cpp:

(WTF::daysFrom1970ToYear):

  • wtf/DeferrableRefCounted.h:
  • wtf/GetPtr.h:
  • wtf/HashFunctions.h:
  • wtf/HashMap.h:
  • wtf/HashTable.h:
  • wtf/HashTraits.h:
  • wtf/JSONValues.cpp:
  • wtf/JSONValues.h:
  • wtf/ListHashSet.h:
  • wtf/Lock.h:
  • wtf/LockAlgorithm.h:
  • wtf/LockAlgorithmInlines.h:

(WTF::Hooks>::lockSlow):

  • wtf/Logger.h:
  • wtf/LoggerHelper.h:

(WTF::LoggerHelper::childLogIdentifier const):

  • wtf/MainThread.cpp:
  • wtf/MetaAllocatorPtr.h:
  • wtf/MonotonicTime.h:
  • wtf/NaturalLoops.h:

(WTF::NaturalLoops::NaturalLoops):

  • wtf/ObjectIdentifier.h:
  • wtf/RAMSize.cpp:
  • wtf/Ref.h:
  • wtf/RefPtr.h:
  • wtf/RetainPtr.h:
  • wtf/SchedulePair.h:
  • wtf/StackShot.h:
  • wtf/StdLibExtras.h:
  • wtf/TinyPtrSet.h:
  • wtf/URL.cpp:
  • wtf/URLHash.h:
  • wtf/URLParser.cpp:

(WTF::URLParser::defaultPortForProtocol):

  • wtf/Vector.h:
  • wtf/VectorTraits.h:
  • wtf/WallTime.h:
  • wtf/WeakHashSet.h:
  • wtf/WordLock.h:
  • wtf/cocoa/CPUTimeCocoa.cpp:
  • wtf/cocoa/MemoryPressureHandlerCocoa.mm:
  • wtf/persistence/PersistentDecoder.h:
  • wtf/persistence/PersistentEncoder.h:
  • wtf/text/AtomStringHash.h:
  • wtf/text/CString.h:
  • wtf/text/StringBuilder.cpp:

(WTF::expandedCapacity):

  • wtf/text/StringHash.h:
  • wtf/text/StringImpl.h:
  • wtf/text/StringToIntegerConversion.h:

(WTF::toIntegralType):

  • wtf/text/SymbolRegistry.h:
  • wtf/text/TextStream.cpp:

(WTF::hasFractions):

  • wtf/text/WTFString.h:
  • wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
5:31 PM Changeset in webkit [250004] by ysuzuki@apple.com
  • 3 edits
    3 adds in trunk

Follow-up after String.codePointAt optimization
https://bugs.webkit.org/show_bug.cgi?id=201889

Reviewed by Saam Barati.

JSTests:

  • stress/string-char-at-bad-type.js: Added.

(shouldBe):
(object.toString):
(test):

  • stress/string-char-code-at-bad-type.js: Added.

(shouldBe):
(object.toString):
(test):

  • stress/string-code-point-at-bad-type.js: Added.

(shouldBe):
(object.toString):
(test):

Source/JavaScriptCore:

Follow-up after string.codePointAt DFG / FTL optimizations,

  1. Gracefully accept arguments more than expected for intrinsics
  2. Check BadType in String.codePointAt, String.charAt, and String.charCodeAt.
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

4:55 PM Changeset in webkit [250003] by Ross Kirsling
  • 13 edits in trunk/Source

Unreviewed restabilization of non-unified build.

Source/WebCore:

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::resolveContext const):

  • platform/win/BString.h:
  • svg/PatternAttributes.h:
  • svg/SVGLengthValue.cpp:
  • svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:
  • workers/service/ServiceWorkerJob.cpp:
  • workers/service/WorkerSWClientConnection.cpp:
  • workers/service/server/SWServerRegistration.cpp:

Source/WebKit:

  • UIProcess/WebProcessProxy.cpp:
  • WebProcess/Network/WebLoaderStrategy.cpp:
  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:
4:52 PM Changeset in webkit [250002] by Tadeu Zagallo
  • 30 edits in trunk/Source/JavaScriptCore

Change WebAssembly calling conventions
https://bugs.webkit.org/show_bug.cgi?id=201799

Reviewed by Saam Barati.

Currently, the Wasm::Callee writes itself to CallFrameSlot::callee. However, this won't work when
we have the Wasm interpreter, since we need the callee in order to know which function are we executing.
This patch changes the calling conventions in preparation for the interpreter, so that the caller
becomes responsible for writing the callee into the call frame.
However, there are exceptions to this rule: stubs can still write to the callee slot, since they are individually
generated and will still be present in the interpreter. We keep this design to avoid emitting unnecessary
code when we know statically who is the callee:

  • Caller writes to call frame: intra-module direct wasm calls, indirect wasm calls, JS-to-wasm stub (new frame), JS-to-wasm IC.
  • Callee writes to call frame: inter-module wasm-to-wasm stub, JS-to-wasm stub (callee frame), wasm-to-JS stub, OMG osr entry

Additionally, this patch also changes it so that the callee keeps track of its callers, instead of having a global mapping
of calls in the Wasm::CodeBlock. This makes it easier to repatch all callers of a given Callee when it tiers up.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::addCall):
(JSC::Wasm::AirIRGenerator::addCallIndirect):
(JSC::Wasm::parseAndCompileAir):

  • wasm/WasmAirIRGenerator.h:
  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::addCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):
(JSC::Wasm::parseAndCompile):

  • wasm/WasmB3IRGenerator.h:
  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::BBQPlan):
(JSC::Wasm::BBQPlan::prepare):
(JSC::Wasm::BBQPlan::compileFunctions):
(JSC::Wasm::BBQPlan::complete):

  • wasm/WasmBBQPlan.h:
  • wasm/WasmBBQPlanInlines.h:

(JSC::Wasm::BBQPlan::initializeCallees):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

  • wasm/WasmCallee.cpp:

(JSC::Wasm::Callee::Callee):
(JSC::Wasm::repatchMove):
(JSC::Wasm::repatchCall):
(JSC::Wasm::BBQCallee::addCaller):
(JSC::Wasm::BBQCallee::addAndLinkCaller):
(JSC::Wasm::BBQCallee::repatchCallers):

  • wasm/WasmCallee.h:

(JSC::Wasm::Callee::entrypoint):
(JSC::Wasm::Callee::code const):
(JSC::Wasm::Callee::calleeSaveRegisters):

  • wasm/WasmCallingConvention.h:

(JSC::Wasm::CallingConvention::setupFrameInPrologue const):

  • wasm/WasmCodeBlock.cpp:

(JSC::Wasm::CodeBlock::CodeBlock):

  • wasm/WasmCodeBlock.h:

(JSC::Wasm::CodeBlock::embedderEntrypointCalleeFromFunctionIndexSpace):
(JSC::Wasm::CodeBlock::wasmBBQCalleeFromFunctionIndexSpace):
(JSC::Wasm::CodeBlock::entrypointLoadLocationFromFunctionIndexSpace):
(JSC::Wasm::CodeBlock::boxedCalleeLoadLocationFromFunctionIndexSpace):

  • wasm/WasmEmbedder.h:
  • wasm/WasmFormat.h:

(JSC::Wasm::WasmToWasmImportableFunction::offsetOfBoxedCalleeLoadLocation):

  • wasm/WasmInstance.h:

(JSC::Wasm::Instance::offsetOfBoxedCalleeLoadLocation):

  • wasm/WasmOMGForOSREntryPlan.cpp:

(JSC::Wasm::OMGForOSREntryPlan::OMGForOSREntryPlan):
(JSC::Wasm::OMGForOSREntryPlan::work):

  • wasm/WasmOMGForOSREntryPlan.h:
  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::OMGPlan):
(JSC::Wasm::OMGPlan::work):

  • wasm/WasmOMGPlan.h:
  • wasm/WasmOperations.cpp:

(JSC::Wasm::triggerOMGReplacementCompile):
(JSC::Wasm::doOSREntry):
(JSC::Wasm::triggerOSREntryNow):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/JSToWasm.h:
  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):
(JSC::WebAssemblyFunction::create):
(JSC::WebAssemblyFunction::WebAssemblyFunction):

  • wasm/js/WebAssemblyFunction.h:
  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):
(JSC::WebAssemblyModuleRecord::evaluate):

  • wasm/js/WebAssemblyWrapperFunction.cpp:

(JSC::WebAssemblyWrapperFunction::create):

4:48 PM Changeset in webkit [250001] by Jonathan Bedard
  • 3 edits in trunk/Tools

results.webkit.org results bubbles' tooltips should include SDK information
https://bugs.webkit.org/show_bug.cgi?id=201823

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/static/js/configuration.js:

(Configuration.prototype.compare): Like the Python instance of this class,
support using null as a wildcard.
(Configuration.prototype.compareSDKs): Ditto.

  • resultsdbpy/resultsdbpy/view/static/js/timeline.js:

(TimelineFromEndpoint.prototype.render.onDotEnterFactory): Construct a configuration
object from all bits of data used to construct a given bubble.
(TimelineFromEndpoint.prototype.render):

3:57 PM Changeset in webkit [250000] by Alan Coon
  • 1 copy in tags/Safari-608.2.11.0.2

Tag Safari-608.2.11.0.2.

3:29 PM Changeset in webkit [249999] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Cherry-pick r249815. rdar://problem/55427483

REGRESSION (iOS 13): Top fixed element on apple.com flickers in size while pinching in
https://bugs.webkit.org/show_bug.cgi?id=201668
rdar://problem/51934041

Reviewed by Frédéric Wang.

Source/WebCore:

When computing the new layout viewport rect in ScrollingTreeFrameScrollingNode, use
"StickToDocumentBounds" mode, not "StickToViewportBounds", because otherwise we'll compute
a layout viewport that has negative top/left offsets which causes fixed elements to jump outside
the viewport. The only code that should be moving things outside the viewport (a temporary effect
that happens when pinching) is the 'isBelowMinimumScale' path in WebPageProxy::computeCustomFixedPositionRect().

With this change ScrollingTreeFrameScrollingNode no longer needs m_behaviorForFixed; it can be removed later.

Not currently testable, since it involves pinching in past minimum zoom and transients state.

  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp: (WebCore::ScrollingTreeFrameScrollingNode::layoutViewportForScrollPosition const):

Source/WebKit:

The UI process can have transient state that pushes scrolling-tree-managed layers into custom
locations while pinch-zooming. We have to apply this state both when the visible rects
in the UI process change (existing code in -[WKContentView didUpdateVisibleRect:...]) and when
we get new layers from the web process (added in RemoteLayerTreeDrawingAreaProxy::commitLayerTree()
in this patch).

Move some code into WebPageProxy to create functions that we can call from both places.

For manual testing, visit a page with fixed banners, pinch in slightly, then pinch out and,
while keeping your fingers down, move the contents around.

  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentView.mm: (-[WKContentView didUpdateVisibleRect:unobscuredRect:contentInsets:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::unconstrainedLayoutViewportRect const): (WebKit::WebPageProxy::adjustLayersForLayoutViewport):

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

3:29 PM Changeset in webkit [249998] by Alan Coon
  • 3 edits
    2 adds in branches/safari-608-branch

Cherry-pick r249813. rdar://problem/55427490

[Cocoa] Text indicator for an image link on the front page of apple.com looks wrong
https://bugs.webkit.org/show_bug.cgi?id=201724
<rdar://problem/54622894>

Reviewed by Tim Horton.

Source/WebCore:

When computing the bounds of the range (<a>, 0) to (<a>, 1) for a text indicator snapshot where <a> is a link
with a single non-breaking whitespace character, we currently use the text rect of the single space. This leads
to a confusing text indicator, as the resulting snapshot is a tiny blank square in the top left corner of the
link. This problem manifests when starting a drag or showing the system context menu on iOS, or force clicking
or three-finger tapping to show a preview on macOS.

To address this scenario, tweak the heuristic in the case where the text indicator option
TextIndicatorOptionUseBoundingRectAndPaintAllContentForComplexRanges is specified, such that we consider a range
containing only text with whitespaces to be "complex"; additionally, instead of falling back to the range's
bounding rect (which in this case is still tiny), fall back to the common ancestor container's bounding rect,
which encompasses not only the text inside the range but also the element containing the range (in this case,
the anchor element).

Test: fast/text-indicator/text-indicator-empty-link.html

  • page/TextIndicator.cpp: (WebCore::containsOnlyWhiteSpaceText):

Add a helper to determine whether a Range is comprised only of rendered text that only contains whitespace
characters.

(WebCore::initializeIndicator):

See ChangeLog entry above for more detail.

LayoutTests:

Add a new layout test to exercise this scenario.

  • fast/text-indicator/text-indicator-empty-link-expected.txt: Added.
  • fast/text-indicator/text-indicator-empty-link.html: Added.

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

3:29 PM Changeset in webkit [249997] by Alan Coon
  • 6 edits in branches/safari-608-branch/Source

Cherry-pick r249770. rdar://problem/55427487

REGRESSION (245006): can't scroll in "read more" view in Eventbrite app
https://bugs.webkit.org/show_bug.cgi?id=201683
<rdar://problem/54582602>

Reviewed by Simon Fraser.

Source/WebCore:

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm: (WebCore::IOSApplication::isEventbrite):

Source/WebKit:

Content <body> has 'overflow:hidden'.

  • UIProcess/Cocoa/VersionChecks.h:
  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: (WebKit::RemoteScrollingCoordinatorProxy::hasScrollableMainFrame const):

Fix by adding an app specific LinkedOnOrAfter quirk that always allows main frame scrolling.

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

3:29 PM Changeset in webkit [249996] by Alan Coon
  • 4 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r249762. rdar://problem/55427465

Prevent reentrancy FrameLoader::dispatchUnloadEvents()
https://bugs.webkit.org/show_bug.cgi?id=200738

Reviewed by Brady Eidson.

Reentrancy causes m_pageDismissalEventBeingDispatched to be incorrectly
updated, so don't allow reentrancy.

Since this prevents m_pageDismissalEventBeingDispatched from being reset
inside a reentrant call, it can have the unintended effect of causing
FrameLoader::stopAllLoaders to early-out when called from
FrameLoader::detachFromParent while a frame's unload event handler
calls document.open() on a parent frame and causes itself to become
detached. Allowing a load to continue in a detached frame will lead to
a crash. To prevent this, add a new argument to FrameLoader::stopAllLoaders
that FrameLoader::detachFromParent can use to prevent an early-out.

  • loader/FrameLoader.cpp: (WebCore::FrameLoader::stopAllLoaders): (WebCore::FrameLoader::detachFromParent): (WebCore::FrameLoader::dispatchUnloadEvents): (WebCore::FrameLoader::dispatchBeforeUnloadEvent): Ensure that m_pageDismissalEventBeingDispatched is reset to its previous value, even if this is not None.
  • loader/FrameLoader.h:
  • loader/FrameLoaderTypes.h: Add a StopLoadingPolicy enum.

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

3:29 PM Changeset in webkit [249995] by Alan Coon
  • 2 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r249757. rdar://problem/55427273

REGRESSION: Scrubbing on ted.com does not work well
https://bugs.webkit.org/show_bug.cgi?id=201635
<rdar://problem/51463649>

Patch by Antoine Quint <Antoine Quint> on 2019-09-11
Reviewed by Dean Jackson.

This website uses custom media controls that simply don't work well on iOS when the User-Agent string is the desktop one, so we default to the mobile UA.

  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::desktopClassBrowsingRecommendedForRequest):

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

3:29 PM Changeset in webkit [249994] by Alan Coon
  • 2 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r249754. rdar://problem/55427271

REGRESSION (r233780): After swiping to navigate back, pinching to zoom in on webcontent snaps back to zoomed out when letting go
https://bugs.webkit.org/show_bug.cgi?id=201671
<rdar://problem/50488372>

Reviewed by Simon Fraser.

  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didCommitLoad): Reset m_lastTransactionIDWithScaleChange, since it is not guaranteed to only march forward. Otherwise, we can get stuck with a very large m_lastTransactionIDWithScaleChange, and will not allow stable-state user-driven zooms until the current transactionID exceeds it.

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

3:29 PM Changeset in webkit [249993] by Alan Coon
  • 10 edits in branches/safari-608-branch/Source

Cherry-pick r249748. rdar://problem/55240888

Nullptr crash in Page::sessionID() via WebKit::WebFrameLoaderClient::detachedFromParent2()
https://bugs.webkit.org/show_bug.cgi?id=201625

Reviewed by Ryosuke Niwa.

This is based on a patch from Ryosuke Niwa.

Source/WebCore:

Drop setHasFrameSpecificStorageAccess() in WebCore and call it from the WebKit layer instead.

  • dom/DocumentStorageAccess.cpp: (WebCore::DocumentStorageAccess::requestStorageAccess): (WebCore::DocumentStorageAccess::setHasFrameSpecificStorageAccess): Deleted.
  • dom/DocumentStorageAccess.h:
  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoaderClient.h:

Source/WebKit:

The crash was caused by WebFrameLoaderClient::sessionID() calling WebPage::sessionID() without
checking the nullity of WebPage::m_page which can be null. Added a null check.

Because passing a wrong session to RemoveStorageAccessForFrame could result in a leak, this patch
also replaces m_hasFrameSpecificStorageAccess boolean with an optioanl struct which stores
session ID, frame ID, and page ID even after WebCore::Frame or WebCore::Page had been cleared
or before WebFrameLoaderClient::m_frame is set.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::sessionID const): (WebKit::WebFrameLoaderClient::setHasFrameSpecificStorageAccess): (WebKit::WebFrameLoaderClient::detachedFromParent2): (WebKit::WebFrameLoaderClient::dispatchWillChangeDocument):
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebFrame.h: (WebKit::WebFrame::frameLoaderClient const):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::requestStorageAccess):

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

3:29 PM Changeset in webkit [249992] by Alan Coon
  • 2 edits in branches/safari-608-branch/LayoutTests

Cherry-pick r249734. rdar://problem/55291693

Attempt to make this test not flakey.
https://bugs.webkit.org/show_bug.cgi?id=201482

  • legacy-animation-engine/compositing/transitions/add-remove-transition.html:

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

3:29 PM Changeset in webkit [249991] by Alan Coon
  • 2 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r249723. rdar://problem/55291687

Hangs on Swiss.com due to the web process being blocked on StorageAreaMap::LoadValuesIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=201644
<rdar://problem/54942761>

Reviewed by Geoffrey Garen.

Mark the StorageManagerSet::GetValues sync IPC from the WebContent process to the Network
process with a UnboundedSynchronousIPCScope so that it will process critical sync IPC
from the UIProcess (such as WebPage::GetPositionInformation) while waiting for a reply.

  • WebProcess/WebStorage/StorageAreaMap.cpp: (WebKit::StorageAreaMap::loadValuesIfNeeded):

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

3:29 PM Changeset in webkit [249990] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source/WebKit

Cherry-pick r249703. rdar://problem/55291692

[iOS] We sometimes attempt to use a terminated prewarmed WebContent process
https://bugs.webkit.org/show_bug.cgi?id=201614
<rdar://problem/54714507>

Reviewed by Geoffrey Garen.

On iOS, it is possible for our processes to get terminated (e.g. jetsammed) while the UIProcess
is suspended. Upon resuming, it takes a little while for the UIProcess to get the notification
that the mac connection to its child process has been severed and the UIProcess may try to use
it for a load. This is especially problematic for prewarmed process because the client will end
up showing a crash banner and reloading when we could have used a new process rather the prewarmed
one if we had known it was dead.

This patch makes 2 improvements:

  1. It makes AuxiliaryProcessProxy::state() return Terminated if we still have a connection but the PID is not the PID of a running process. I also added a check in tryTakePrewarmedProcess() to not use the prewarmed process if it state() is Terminated.
  2. When the UIProcess is about to get suspended, have the process pools terminate their non-critical processes (i.e. prewarmed + the ones used for PageCache). This makes WebKit friendlier with other apps on the system when suspended with regards to memory. Also, it makes it less likely useful WebContent processes will get jetsammed.
  • UIProcess/AuxiliaryProcessProxy.cpp: (WebKit::AuxiliaryProcessProxy::state const): (WebKit::AuxiliaryProcessProxy::isRunningProcessPID):
  • UIProcess/AuxiliaryProcessProxy.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::applicationIsAboutToSuspend):
  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::tryTakePrewarmedProcess):
  • UIProcess/WebProcessPool.h:
  • UIProcess/ios/ProcessAssertionIOS.mm: (-[WKProcessAssertionBackgroundTaskManager init]): (-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]):

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

3:29 PM Changeset in webkit [249989] by Alan Coon
  • 4 edits
    1 add in branches/safari-608-branch

Cherry-pick r249701. rdar://problem/55291696

Tap and hold on Facebook sometimes creates a tall empty selection.
https://bugs.webkit.org/show_bug.cgi?id=201618
rdar://53630145

Reviewed by Megan Gardner.

Source/WebCore:

API Test: SelectionTests.ByWordAtEndOfDocument

  • editing/VisibleUnits.cpp: (WebCore::wordRangeFromPosition): Remove special case code for the possibility of an empty paragraph and at the end of the document. This is no longer needed and was causing a large selection to be created on Facebook due to large areas of non-selectable content on the page.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/SelectionByWord.mm: Added.

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

3:29 PM Changeset in webkit [249988] by Alan Coon
  • 12 edits in branches/safari-608-branch/Source/bmalloc

Cherry-pick r249670. rdar://problem/55225975

Revert to pre-r243144 scavenging behavior for macOS
https://bugs.webkit.org/show_bug.cgi?id=201555

Reviewed by Saam Barati.

The change in r243144 regressed internal power metrics for some Mac models.

  • bmalloc/Heap.cpp: (bmalloc::Heap::scavenge): (bmalloc::Heap::scavengeToHighWatermark): (bmalloc::Heap::allocateSmallChunk): (bmalloc::Heap::allocateSmallPage): (bmalloc::Heap::allocateLarge):
  • bmalloc/Heap.h:
  • bmalloc/IsoDirectory.h:
  • bmalloc/IsoDirectoryInlines.h: (bmalloc::passedNumPages>::takeFirstEligible): (bmalloc::passedNumPages>::scavenge): (bmalloc::passedNumPages>::scavengeToHighWatermark):
  • bmalloc/IsoHeapImpl.h:
  • bmalloc/IsoHeapImplInlines.h: (bmalloc::IsoHeapImpl<Config>::scavengeToHighWatermark):
  • bmalloc/LargeMap.cpp: (bmalloc::LargeMap::add):
  • bmalloc/LargeRange.h: (bmalloc::LargeRange::LargeRange): (bmalloc::merge):
  • bmalloc/Scavenger.cpp: (bmalloc::Scavenger::Scavenger): (bmalloc::Scavenger::timeSinceLastPartialScavenge): (bmalloc::Scavenger::scavenge): (bmalloc::Scavenger::partialScavenge): (bmalloc::Scavenger::threadRunLoop):
  • bmalloc/Scavenger.h:
  • bmalloc/SmallPage.h:

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

3:29 PM Changeset in webkit [249987] by Alan Coon
  • 7 edits
    2 adds in branches/safari-608-branch

Cherry-pick r249511. rdar://problem/55291693

Cancelled transitions on Google image search leave content with opacity 0 sometimes
https://bugs.webkit.org/show_bug.cgi?id=201482
rdar://problem/54921036

Reviewed by Tim Horton.
Source/WebCore:

If, in a single rendering update, we started an accelerated opacity transition, and then removed
it, we'd still push the transition onto the CALayer with fillForwards and never remove it, so its
effects would last forever.

Fix by making GraphicsLayerCA::removeAnimation() remove animations from the uncomittedAnimations
list as well.

Also fix layer names in debug; if a layer's primaryLayerID changed, we'd fail to rename the
CALayer, causing confusion when logging at layer dumps. Fix by adding the layer ID just
before pushing the name to the platform layer.

Some drive-by logging cleanup.

Test: legacy-animation-engine/compositing/transitions/add-remove-transition.html

  • platform/graphics/GraphicsLayer.cpp: (WebCore::GraphicsLayer::debugName const):
  • platform/graphics/GraphicsLayer.h:
  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::setName): (WebCore::GraphicsLayerCA::debugName const): (WebCore::GraphicsLayerCA::addAnimation): (WebCore::GraphicsLayerCA::pauseAnimation): (WebCore::GraphicsLayerCA::seekAnimation): (WebCore::GraphicsLayerCA::removeAnimation): (WebCore::GraphicsLayerCA::platformCALayerAnimationStarted): (WebCore::GraphicsLayerCA::platformCALayerAnimationEnded): (WebCore::GraphicsLayerCA::updateNames): (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
  • platform/graphics/ca/GraphicsLayerCA.h:
  • rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::logLayerInfo):

LayoutTests:

  • legacy-animation-engine/compositing/transitions/add-remove-transition-expected.html: Added.
  • legacy-animation-engine/compositing/transitions/add-remove-transition.html: Added.

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

3:29 PM Changeset in webkit [249986] by Alan Coon
  • 3 edits
    2 adds in branches/safari-608-branch

Cherry-pick r249507. rdar://problem/55427491

Line artifacts in note body after viewing note with <attachment>s
https://bugs.webkit.org/show_bug.cgi?id=201474
<rdar://problem/51306108>

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/attachment/attachment-border-should-stay-inside-attachment.html

  • rendering/RenderThemeIOS.mm: (WebCore::attachmentBorderPath): (WebCore::paintAttachmentBorder): Inset the border rect by half the width, so that <attachment> doesn't paint out-of-bounds.

LayoutTests:

  • fast/attachment/attachment-border-should-stay-inside-attachment-expected.html: Added.
  • fast/attachment/attachment-border-should-stay-inside-attachment.html: Added. Add a test that ensures that <attachment> stays inside its bounds.

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

2:57 PM Changeset in webkit [249985] by Chris Dumez
  • 15 edits in trunk/Source/WebKit

WebProcess class methods should not need to take a sessionID
https://bugs.webkit.org/show_bug.cgi?id=201881

Reviewed by Geoffrey Garen.

WebProcess class methods should not need to take a sessionID given that we have a single
session per WebProcess now.

  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
  • Shared/WebProcessDataStoreParameters.h:

(WebKit::WebProcessDataStoreParameters::encode const):
(WebKit::WebProcessDataStoreParameters::decode):

  • UIProcess/Plugins/PlugInAutoStartProvider.cpp:

(WebKit::PlugInAutoStartProvider::addAutoStartOriginHash):
(WebKit::PlugInAutoStartProvider::autoStartOriginHashesCopy const):
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsTableWithItemsPassingTest):
(WebKit::PlugInAutoStartProvider::didReceiveUserInteraction):

  • UIProcess/Plugins/PlugInAutoStartProvider.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::webProcessDataStoreParameters):
(WebKit::WebProcessPool::initializeNewWebProcess):

  • UIProcess/WebProcessPool.h:

(WebKit::WebProcessPool::sendToAllProcesses):
(WebKit::WebProcessPool::sendToAllProcessesForSession):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::fetchWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::WebProcessProxy::establishServiceWorkerContext):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::pluginDidReceiveUserInteraction):

  • WebProcess/WebCoreSupport/WebPlugInClient.cpp:

(WebKit::WebPlugInClient::didStartFromOrigin):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::close):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setWebsiteDataStoreParameters):
(WebKit::WebProcess::removeWebPage):
(WebKit::WebProcess::isPlugInAutoStartOriginHash):
(WebKit::WebProcess::shouldPlugInAutoStartFromOrigin):
(WebKit::WebProcess::plugInDidStartFromOrigin):
(WebKit::WebProcess::didAddPlugInAutoStartOriginHash):
(WebKit::WebProcess::resetPlugInAutoStartOriginHashes):
(WebKit::WebProcess::plugInDidReceiveUserInteraction):
(WebKit::WebProcess::fetchWebsiteData):
(WebKit::WebProcess::deleteWebsiteData):
(WebKit::WebProcess::deleteWebsiteDataForOrigins):
(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
2:49 PM Changeset in webkit [249984] by Chris Dumez
  • 4 edits in trunk/LayoutTests

Unreviewed, address flakiness of imported/w3c/web-platform-tests/html/browsers/offline/application-cache-api/api_update_error.https.html.

Stop logging console messages.

LayoutTests/imported/w3c:

  • web-platform-tests/html/browsers/offline/application-cache-api/api_update_error.https-expected.txt:

LayoutTests:

2:43 PM Changeset in webkit [249983] by Chris Dumez
  • 2 edits in trunk/LayoutTests/imported/w3c

Unreviewed, revert r249850 as the flakiness should be gone as of the testharness.js update in r249977.
https://bugs.webkit.org/show_bug.cgi?id=201661

  • web-platform-tests/service-workers/service-worker/getregistrations.https.html:
2:36 PM Changeset in webkit [249982] by Alan Coon
  • 7 edits in branches/safari-608.2.11.0-branch/Source

Versioning.

1:56 PM Changeset in webkit [249981] by russell_e@apple.com
  • 3 edits
    2 copies
    2 adds in trunk/LayoutTests

Rebaseline imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window.html for Catalina and iOS 13.
https://bugs.webkit.org/show_bug.cgi?id=172357

Unreviewed Test Gardening.

  • platform/ios/imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window-expected.txt:
  • platform/mac-mojave/imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window-expected.txt: Copied from LayoutTests/platform/ios/imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window-expected.txt.
  • platform/mac/imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window-expected.txt:
1:49 PM Changeset in webkit [249980] by Chris Dumez
  • 12 edits in trunk/Source/WebKit

WebMDNSRegister no longer needs to be provided sessionIDs
https://bugs.webkit.org/show_bug.cgi?id=201876

Reviewed by Geoffrey Garen.

WebMDNSRegister no longer needs to be provided sessionIDs, now that we
have one session per WebProcess.

  • NetworkProcess/webrtc/NetworkMDNSRegister.cpp:

(WebKit::NetworkMDNSRegister::registerMDNSName):
(WebKit::NetworkMDNSRegister::sessionID const):

  • NetworkProcess/webrtc/NetworkMDNSRegister.h:
  • NetworkProcess/webrtc/NetworkMDNSRegister.messages.in:
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::registerMDNSName):
(WebKit::LibWebRTCProvider::createSocketFactory):

  • WebProcess/Network/webrtc/WebMDNSRegister.cpp:

(WebKit::WebMDNSRegister::registerMDNSName):

  • WebProcess/Network/webrtc/WebMDNSRegister.h:
1:48 PM Changeset in webkit [249979] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

WebSWServerConnection does not need to store a sessionID
https://bugs.webkit.org/show_bug.cgi?id=201878

Reviewed by Geoffrey Garen.

WebSWServerConnection does not need to store a sessionID, it can simply get it from its SWServer.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::establishSWServerConnection):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::WebSWServerConnection):
(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::sessionID const):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
1:20 PM Changeset in webkit [249978] by Keith Rollin
  • 6 edits in trunk

Remove some support for < iOS 12
https://bugs.webkit.org/show_bug.cgi?id=201851
<rdar://problem/55422044>

Reviewed by Jiewen Tan and Alexey Proskuryakov.

Remove some support for iOS versions less than 12.0.

Update conditionals that reference IPHONE_OS_VERSION_MIN_REQUIRED
and
IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
values >= 120000. This means that expressions like
"IPHONE_OS_VERSION_MIN_REQUIRED < 101200" are always False and
"
IPHONE_OS_VERSION_MIN_REQUIRED >= 101200" are always True.

This removal is part of a series of patches effecting such removal.

Source/WebCore:

No new tests -- no new or changed functionality.

  • crypto/mac/CryptoKeyRSAMac.cpp:

(WebCore::CryptoKeyRSA::create):
(WebCore::castDataArgumentToCCRSACryptorCreateFromDataIfNeeded): Deleted.

Source/WebCore/PAL:

  • pal/spi/cocoa/IOSurfaceSPI.h:

Tools:

  • WebKitTestRunner/InjectedBundle/cocoa/ActivateFontsCocoa.mm:

(WTR::installFakeHelvetica):

1:17 PM Changeset in webkit [249977] by Chris Dumez
  • 166 edits in trunk/LayoutTests

Update testharness.js from upstream for web-platform-tests
https://bugs.webkit.org/show_bug.cgi?id=201843

Reviewed by Jiewen Tan.

LayoutTests/imported/w3c:

Update testharness.js from upstream 6fd5e1e086ce590a4780a30d129 for web-platform-tests and
rebaseline tests accordingly.

  • web-platform-tests/FileAPI/FileReader/workers-expected.txt:
  • web-platform-tests/FileAPI/url/url-format.any.worker-expected.txt:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker-expected.txt:
  • web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constants.any-expected.txt:
  • web-platform-tests/WebIDL/ecmascript-binding/es-exceptions/DOMException-constants.any.worker-expected.txt:
  • web-platform-tests/content-security-policy/inside-worker/shared-inheritance-expected.txt:
  • web-platform-tests/content-security-policy/inside-worker/shared-script-expected.txt:
  • web-platform-tests/content-security-policy/nonce-hiding/svgscript-nonces-hidden-meta.tentative.sub-expected.txt:
  • web-platform-tests/content-security-policy/nonce-hiding/svgscript-nonces-hidden.tentative-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-001-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-002-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-003-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-004-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-005-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-006-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-007-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-008-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-009-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-010-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-011-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-012-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-013-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-014-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-015-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-016-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-017-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-018-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-019-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-020-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-021-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-022-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-023-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-024-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-025-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-026-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-027-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-028-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-029-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-030-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-031-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-032-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-033-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-034-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-035-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-implies-size-change-036-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-001-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-002-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-003-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-004-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-005-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-006-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-007-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-alignment-style-changes-008-expected.txt:
  • web-platform-tests/css/css-grid/grid-definition/grid-change-fit-content-argument-001-expected.txt:
  • web-platform-tests/css/css-properties-values-api/unit-cycles-expected.txt:
  • web-platform-tests/css/css-properties-values-api/url-resolution-expected.txt:
  • web-platform-tests/custom-elements/parser/parser-fallsback-to-unknown-element-expected.txt:
  • web-platform-tests/dom/events/Event-dispatch-listener-order.window-expected.txt:
  • web-platform-tests/dom/events/Event-isTrusted.any-expected.txt:
  • web-platform-tests/dom/events/Event-isTrusted.any.worker-expected.txt:
  • web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess-expected.txt:
  • web-platform-tests/eventsource/eventsource-prototype-expected.txt:
  • web-platform-tests/fetch/api/basic/stream-safe-creation.any.worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-cache.any-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-cache.any.worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-redirect.any-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-redirect.any.worker-expected.txt:
  • web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-service-worker.https-expected.txt:
  • web-platform-tests/fetch/api/request/request-consume-empty-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume-empty-expected.txt:
  • web-platform-tests/fetch/cross-origin-resource-policy/scheme-restriction.https.window-expected.txt:
  • web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/javascript-url-global-scope-expected.txt:
  • web-platform-tests/html/browsers/history/joint-session-history/joint-session-history-iframe-state-expected.txt:
  • web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-expected.txt:
  • web-platform-tests/html/browsers/origin/origin-of-data-document-expected.txt:
  • web-platform-tests/html/browsers/origin/relaxing-the-same-origin-restriction/document_domain_setter-expected.txt:
  • web-platform-tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/no_window_open_when_term_nesting_level_nonzero.window-expected.txt:
  • web-platform-tests/html/browsers/the-window-object/focus.window-expected.txt:
  • web-platform-tests/html/browsers/windows/document-access/document_access_parent_access.tentative-expected.txt:
  • web-platform-tests/html/browsers/windows/targeting-cross-origin-nested-browsing-contexts-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-01-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-02-expected.txt:
  • web-platform-tests/html/rendering/non-replaced-elements/flow-content-0/dialog-display-expected.txt:
  • web-platform-tests/html/rendering/non-replaced-elements/tables/table-vspace-hspace-expected.txt:
  • web-platform-tests/html/rendering/non-replaced-elements/tables/table-vspace-hspace-s-expected.txt:
  • web-platform-tests/html/rendering/non-replaced-elements/the-page/iframe-marginwidth-marginheight-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_iframe_src_navigation-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_target_does_not_affect_location_assignment-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-meta-element/pragma-directives/attr-meta-http-equiv-refresh/not-in-shadow-tree-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/srclang-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/language-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-frame-element/document-getters-return-null-for-cross-origin-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/document-getters-return-null-for-cross-origin-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_allow_downloads_without_user_activation.sub.tentative-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads_without_user_activation.sub.tentative-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/sandbox_030-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-object-element/document-getters-return-null-for-cross-origin-expected.txt:
  • web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/execution-timing/084-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/charset-02-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/crossorigin-expected.txt:
  • web-platform-tests/html/syntax/parsing/quotes-in-meta-expected.txt:
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/document-open-cancels-javascript-url-navigation-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-parse-error-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-expected.txt:
  • web-platform-tests/html/webappapis/scripting/processing-model-2/window-onerror-runtime-error-throw-expected.txt:
  • web-platform-tests/html/webappapis/timers/negative-settimeout-expected.txt:
  • web-platform-tests/infrastructure/server/context.any-expected.txt:
  • web-platform-tests/infrastructure/server/context.any.serviceworker-expected.txt:
  • web-platform-tests/infrastructure/server/context.any.worker-expected.txt:
  • web-platform-tests/infrastructure/server/title.any.worker-expected.txt:
  • web-platform-tests/mediacapture-streams/MediaStreamTrack-end-manual.https-expected.txt:
  • web-platform-tests/pointerevents/pointerevent_root_computed_style-expected.txt:
  • web-platform-tests/pointerevents/pointerevent_root_hit_test-expected.txt:
  • web-platform-tests/preload/link-header-preload-nonce-expected.txt:
  • web-platform-tests/resource-timing/resource_TAO_match_origin-expected.txt:
  • web-platform-tests/resource-timing/resource_TAO_match_wildcard-expected.txt:
  • web-platform-tests/resource-timing/resource_TAO_multi-expected.txt:
  • web-platform-tests/resource-timing/resource_TAO_multi_wildcard-expected.txt:
  • web-platform-tests/resource-timing/resource_TAO_null-expected.txt:
  • web-platform-tests/resource-timing/resource_TAO_origin_uppercase-expected.txt:
  • web-platform-tests/resource-timing/resource_TAO_space-expected.txt:
  • web-platform-tests/resource-timing/resource_TAO_wildcard-expected.txt:
  • web-platform-tests/resources/testharness.css.headers:
  • web-platform-tests/resources/testharness.js:

(WindowTestEnvironment.prototype._forEach_windows):
(WindowTestEnvironment.prototype.next_default_test_name):
(WorkerTestEnvironment.prototype.next_default_test_name):
(ShellTestEnvironment):
(ShellTestEnvironment.prototype.next_default_test_name):
(ShellTestEnvironment.prototype.on_new_harness_properties):
(ShellTestEnvironment.prototype.on_tests_ready):
(ShellTestEnvironment.prototype.add_on_loaded_callback):
(ShellTestEnvironment.prototype.test_timeout):
(create_test_environment):
(is_shared_worker):
(is_service_worker):
(test):
(promise_test):
(this.wait_for):
(EventWatcher):
(done):

  • web-platform-tests/resources/testharness.js.headers:
  • web-platform-tests/server-timing/resource_timing_idl-expected.txt:
  • web-platform-tests/server-timing/resource_timing_idl.https-expected.txt:
  • web-platform-tests/server-timing/service_worker_idl-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-get-resultingClientId.https-expected.txt:
  • web-platform-tests/streams/piping/general-expected.txt:
  • web-platform-tests/visual-viewport/viewport-read-size-causes-layout-expected.txt:
  • web-platform-tests/visual-viewport/viewport-read-size-in-iframe-causes-layout-expected.txt:
  • web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.worker-expected.txt:
  • web-platform-tests/wasm/jsapi/instance/constructor-bad-imports.any.worker-expected.txt:
  • web-platform-tests/web-animations/timing-model/animations/canceling-an-animation-expected.txt:
  • web-platform-tests/webrtc/RTCRtpTransceiver-setCodecPreferences-expected.txt:
  • web-platform-tests/websockets/Close-undefined.any.worker-expected.txt:
  • web-platform-tests/websockets/opening-handshake/003-expected.txt:
  • web-platform-tests/websockets/unload-a-document/001-expected.txt:
  • web-platform-tests/websockets/unload-a-document/002-expected.txt:
  • web-platform-tests/websockets/unload-a-document/003-expected.txt:
  • web-platform-tests/websockets/unload-a-document/004-expected.txt:
  • web-platform-tests/workers/WorkerGlobalScope_requestAnimationFrame.tentative.worker-expected.txt:
  • web-platform-tests/workers/Worker_ErrorEvent_error-expected.txt:
  • web-platform-tests/workers/baseurl/alpha/importScripts-in-worker-expected.txt:
  • web-platform-tests/workers/baseurl/alpha/xhr-in-worker-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/001.worker-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/002.worker-expected.txt:
  • web-platform-tests/xhr/overridemimetype-done-state.any-expected.txt:
  • web-platform-tests/xhr/overridemimetype-done-state.any.worker-expected.txt:
  • web-platform-tests/xhr/responsetype.any-expected.txt:
  • web-platform-tests/xhr/timeout-sync-expected.txt:

LayoutTests:

  • http/wpt/resource-timing/rt-initiatorType-other-expected.txt:
  • http/wpt/webauthn/resources/util.js:
12:52 PM Changeset in webkit [249976] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] CheckArray+NonArray is not filtering out Array in AI
https://bugs.webkit.org/show_bug.cgi?id=201857
<rdar://problem/54194820>

Reviewed by Keith Miller.

JSTests:

  • stress/check-array-with-non-array-does-not-filter-arrays.js: Added.

(foo):

Source/JavaScriptCore:

The code of DFG::ArrayMode::alreadyChecked is different from SpeculativeJIT's CheckArray / CheckStructure.
While we assume CheckArray+NonArray ensures it only passes non-array inputs, DFG::ArrayMode::alreadyChecked
accepts arrays too. So CheckArray+NonArray is removed in AI if the input is proven that it is an array.
This patch aligns DFG::ArrayMode::alreadyChecked to the checks done at runtime.

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::alreadyChecked const):

12:30 PM Changeset in webkit [249975] by Chris Dumez
  • 8 edits in trunk/Source/WebKit

WebPaymentCoordinatorProxy does not need sessionIDs
https://bugs.webkit.org/show_bug.cgi?id=201875

Reviewed by Geoffrey Garen.

WebPaymentCoordinatorProxy does not need sessionIDs so let's stop passing them around.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::canMakePaymentsWithActiveCard):
(WebKit::WebPaymentCoordinatorProxy::showPaymentUI):

  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in:
  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard):
(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest):

  • Shared/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:

(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):

  • Shared/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):

  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::canMakePaymentsWithActiveCard):
(WebKit::WebPaymentCoordinator::showPaymentUI):

12:23 PM Changeset in webkit [249974] by Nikolas Zimmermann
  • 3 edits
    5 adds in trunk

SVG <animateMotion> does not reset the element to its first animation frame if its fill is "remove"
https://bugs.webkit.org/show_bug.cgi?id=201565

Reviewed by Said Abou-Hallawa.

Source/WebCore:

Fix fill="remove" support for <animateMotion>: properly trigger visual updates.
Motion animations are implemented by provding an additional transformation on
SVGGraphicsElements: the supplementalTransform().

When an <animateMotion> element specifies fill="remove" the supplemental transform is
correctly reset, when the animation is finished. However, nobody is notified about the
change of transformation matrix. Fix by marking the target elements renderer as
setNeedsTransformUpdate() and call markForLayoutAndParentResourceInvalidation().

<animate> elements are not affected by the bug:
SVGAnimateElementBase::clearAnimatedType()

-> invokes SVGAttributeAnimator::stop()

-> invokes applyAnimatedPropertyChange() [via SVGAnimatedPropertyAnimator]
-> invokes SVGXXXElement::svgAttributeChanged().

When animating e.g. the 'transform' attribute SVGGraphicsElement::svgAttributeChanged()
will use exactly the same mechanism to trigger visul updates: first call
setNeedsTransformUpdate() on the associated renderer, followd by a call to
markForLayoutAndParentResourceInvalidation().

--> Both code paths are now consistent.
Also fixes http://web-platform-tests.live/svg/animations/animateMotion-fill-remove.html.

Tests: svg/animations/fill-remove-support.html

svg/animations/animateMotion-remove-freeze-use.svg

  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::clearAnimatedType): Call applyResultsToTarget().
(WebCore::SVGAnimateMotionElement::calculateAnimatedValue): Stop calling
setNeedsTransformUpdate() on the target elements renderer, since applyResultsToTarget()
is responsible for modifications of the renderer state.
(WebCore::SVGAnimateMotionElement::applyResultsToTarget): Always mark the renderer
as setNeedsTransformUpdate() when applying the results, before the call to
RenderSVGResource::markForLayoutAndParentResourceInvalidation(). This is more consistent
with respect to the code path that updates the SVGElements instances (<use> support).

LayoutTests:

Add a layout test covering fill="remove" support <animate> and <animateMotion>.
Add another layout test covering both fill="remove" and fill="freeze" for
<animateMotion> on SVG elements and their instances (<use>).

  • svg/animations/animateMotion-remove-freeze-use-expected.svg: Added.
  • svg/animations/animateMotion-remove-freeze-use.svg: Added.
  • svg/animations/fill-remove-support-expected.txt: Added.
  • svg/animations/fill-remove-support.html: Added.
  • svg/animations/resources/fill-remove-support.svg: Added.
12:22 PM Changeset in webkit [249973] by Chris Dumez
  • 8 edits in trunk/Source/WebKit

There should be a single CacheStorageConnection per WebProcess
https://bugs.webkit.org/show_bug.cgi?id=201874

Reviewed by Geoffrey Garen.

There should be a single CacheStorageConnection per WebProcess now that we have a single session
per WebProcess. This invariant allows us to simplify the code.

  • NetworkProcess/cache/CacheStorageEngineConnection.cpp:

(WebKit::CacheStorageEngineConnection::~CacheStorageEngineConnection):
(WebKit::CacheStorageEngineConnection::open):
(WebKit::CacheStorageEngineConnection::remove):
(WebKit::CacheStorageEngineConnection::caches):
(WebKit::CacheStorageEngineConnection::retrieveRecords):
(WebKit::CacheStorageEngineConnection::deleteMatchingRecords):
(WebKit::CacheStorageEngineConnection::putRecords):
(WebKit::CacheStorageEngineConnection::reference):
(WebKit::CacheStorageEngineConnection::dereference):
(WebKit::CacheStorageEngineConnection::clearMemoryRepresentation):
(WebKit::CacheStorageEngineConnection::engineRepresentation):
(WebKit::CacheStorageEngineConnection::sessionID const):

  • NetworkProcess/cache/CacheStorageEngineConnection.h:
  • NetworkProcess/cache/CacheStorageEngineConnection.messages.in:
  • WebProcess/Cache/WebCacheStorageConnection.cpp:

(WebKit::WebCacheStorageConnection::WebCacheStorageConnection):
(WebKit::WebCacheStorageConnection::open):
(WebKit::WebCacheStorageConnection::remove):
(WebKit::WebCacheStorageConnection::retrieveCaches):
(WebKit::WebCacheStorageConnection::retrieveRecords):
(WebKit::WebCacheStorageConnection::batchDeleteOperation):
(WebKit::WebCacheStorageConnection::batchPutOperation):
(WebKit::WebCacheStorageConnection::reference):
(WebKit::WebCacheStorageConnection::dereference):
(WebKit::WebCacheStorageConnection::clearMemoryRepresentation):
(WebKit::WebCacheStorageConnection::engineRepresentation):
(WebKit::WebCacheStorageConnection::updateQuotaBasedOnSpaceUsage):
(WebKit::WebCacheStorageConnection::sessionID const):

  • WebProcess/Cache/WebCacheStorageConnection.h:
  • WebProcess/Cache/WebCacheStorageProvider.cpp:

(WebKit::WebCacheStorageProvider::createCacheStorageConnection):

  • WebProcess/Cache/WebCacheStorageProvider.h:
12:01 PM Changeset in webkit [249972] by russell_e@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (macOS): Many webgpu/whlsl* tests are flaky failures.
https://bugs.webkit.org/show_bug.cgi?id=201877.

Unreviewed Test Gardening.

Incorrectly marked tests as Failures. Changed to ImageOnlyFailures as

intended.

  • platform/mac/TestExpectations:
11:55 AM Changeset in webkit [249971] by russell_e@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (macOS): Many webgpu/whlsl* tests are flaky failures.
https://bugs.webkit.org/show_bug.cgi?id=201877

Unreviewed Test Gardening.

  • platform/mac/TestExpectations:
11:42 AM Changeset in webkit [249970] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed attempt to fix internal build after r249962.

  • UIProcess/API/C/WKPreferencesRef.h:
11:37 AM Changeset in webkit [249969] by Joseph Pecoraro
  • 14 edits
    2 moves
    10 adds in trunk

Web Inspector: HTML Formatter - better handling for HTML specific tag cases (<p>/<li>)
https://bugs.webkit.org/show_bug.cgi?id=201757
<rdar://problem/55409987>

Reviewed by Devin Rousso.

Source/WebInspectorUI:

  • UserInterface/Workers/Formatter/HTMLFormatter.js:

(HTMLFormatter.prototype._after):
Handle a closing tag with different text than the opening tag.

  • UserInterface/Workers/Formatter/HTMLTreeBuilderFormatter.js:

(HTMLTreeBuilderFormatter.prototype._pushParserNodeTopLevel):
(HTMLTreeBuilderFormatter.prototype._pushParserNodeStack):
(HTMLTreeBuilderFormatter.prototype._implicitlyCloseHTMLNodesForOpenTag):
(HTMLTreeBuilderFormatter.prototype._implicitlyCloseTagNamesInsideParentTagNames):
(HTMLTreeBuilderFormatter.prototype._indexOfStackNodeMatchingTagNames):
Generalize the implicit closing a bit. Allow open tags to implicitly
close certain other open tags in the stack.

LayoutTests:

  • inspector/formatting/formatting-html-expected.txt:
  • inspector/formatting/formatting-html.html:
  • inspector/formatting/resources/html-tests/auto-close-normal-expected.html: Renamed from LayoutTests/inspector/formatting/resources/html-tests/auto-close-expected.html.
  • inspector/formatting/resources/html-tests/auto-close-normal.html: Renamed from LayoutTests/inspector/formatting/resources/html-tests/auto-close.html.
  • inspector/formatting/resources/html-tests/auto-close-special-expected.html: Added.
  • inspector/formatting/resources/html-tests/auto-close-special.html: Added.
  • inspector/formatting/resources/html-tests/list-expected.html:
  • inspector/formatting/resources/html-tests/list.html:
  • inspector/formatting/resources/html-tests/not-well-formed-1-expected.html:
  • inspector/formatting/resources/html-tests/not-well-formed-1.html:
  • inspector/formatting/resources/html-tests/p-expected.html: Added.
  • inspector/formatting/resources/html-tests/p.html: Added.
  • inspector/formatting/resources/html-tests/table-expected.html: Added.
  • inspector/formatting/resources/html-tests/table.html: Added.
  • inspector/formatting/resources/html-tests/tag-case-expected.html: Added.
  • inspector/formatting/resources/html-tests/tag-case.html: Added.

Tests for HTML specialties.

  • inspector/formatting/formatting-xml-expected.txt:
  • inspector/formatting/formatting-xml.html:
  • inspector/formatting/resources/xml-tests/tag-case-expected.xml: Added.
  • inspector/formatting/resources/xml-tests/tag-case.xml: Added.
  • inspector/formatting/resources/xml-tests/valid-html-invalid-xml-expected.xml:
  • inspector/formatting/resources/xml-tests/valid-html-invalid-xml.xml:

XML is case-sensitive. Ensure XML doesn't get more of the HTML specialties.

11:17 AM Changeset in webkit [249968] by Alan Coon
  • 2 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r249854. rdar://problem/55427477

Crash under WebCore::firstPositionInNode()
https://bugs.webkit.org/show_bug.cgi?id=201764
<rdar://problem/54823754>

Reviewed by Wenson Hsieh and Geoff Garen.

Make sure to keep a Ref<> to the textNode when we call insertNodeAtTabSpanPosition()
or insertNodeAt().

Test: editing/firstPositionInNode-crash.html

  • editing/InsertTextCommand.cpp: (WebCore::InsertTextCommand::positionInsideTextNode):

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

11:11 AM Changeset in webkit [249967] by aestes@apple.com
  • 1 edit in trunk/Source/WebCore/Modules/applepay/ApplePayRequestBase.cpp

Rolled out r249964 because it broke the build.

11:11 AM Changeset in webkit [249966] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

10:50 AM Changeset in webkit [249965] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

run-webkit-tests: Driver.do_post_tests_work() is never called when stop_when_done is true in Driver.run_test()
<https://webkit.org/b/201873>

Reviewed by Jonathan Bedard.

  • Scripts/webkitpy/port/driver.py:

(Driver.run_test): Call self.do_post_tests_work() when a test
shard has completed, but didn't crash or time out.

10:46 AM Changeset in webkit [249964] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Add a WKA extension point
https://bugs.webkit.org/show_bug.cgi?id=201801
<rdar://problem/55372507>

Reviewed by Alexey Proskuryakov.

  • Modules/applepay/ApplePayRequestBase.cpp:

(WebCore::requiresSupportedNetworks):
(WebCore::convertAndValidate):

10:31 AM Changeset in webkit [249963] by Antti Koivisto
  • 10 edits
    1 delete in trunk

TextIterator should convert tabs to spaces
https://bugs.webkit.org/show_bug.cgi?id=201863

Reviewed by Zalan Bujtas.

LayoutTests/imported/w3c:

  • web-platform-tests/html/dom/elements/the-innertext-idl-attribute/getter-expected.txt:
  • web-platform-tests/innerText/getter-expected.txt:

Source/WebCore:

As seen in tests

imported/w3c/web-platform-tests/innerText/getter.html
imported/w3c/web-platform-tests/html/dom/elements/the-innertext-idl-attribute/getter.html

The old simple line layout path in TextIterator used to do this.

  • editing/TextIterator.cpp:

(WebCore::TextIterator::handleTextBox):

LayoutTests:

  • editing/pasteboard/5761530-1.html:

Set body to 'whitespace:pre' so tabs don't get lost in test output.

  • fast/tokenizer/script_extra_close-expected.txt:
  • imported/blink/fast/text/font-linux-normalize-expected.txt:
  • platform/mac/editing/pasteboard/5761530-1-expected.txt: Removed.

No need for platform specific result.

  • editing/pasteboard/5761530-1-expected.txt:
10:12 AM Changeset in webkit [249962] by Chris Dumez
  • 15 edits in trunk

REGRESSION (r249923): ASSERTION FAILED: sessionID == WebProcess::singleton().sessionID() in WebCore::SWClientConnection *WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession(PAL::SessionID)
https://bugs.webkit.org/show_bug.cgi?id=201859
<rdar://problem/55426742>

Reviewed by Alex Christensen.

Source/WebKit:

Drop support for the WKPreferencesSetPrivateBrowsingEnabled() C API (Mark as deprecated and make it a no-op) as it
was changing a WebContent process's sessionID, which is no longer supported. This was also using the legacy private
browsing session, which we're trying to get rid of. There is suitable C API to do private browsing (WKWebsiteDataStoreRef).

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetPrivateBrowsingEnabled):
(WKPreferencesGetPrivateBrowsingEnabled):

  • UIProcess/API/C/WKPreferencesRef.h:
  • UIProcess/API/C/mac/WKPagePrivateMac.mm:

(WKPageIsURLKnownHSTSHost):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::isURLKnownHSTSHost const):

  • UIProcess/WebPreferences.cpp:

(WebKit::WebPreferences::addPage):
(WebKit::WebPreferences::removePage):
(WebKit::WebPreferences::updateBoolValueForKey):

  • UIProcess/WebPreferences.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

Update API test to use WKWebsiteDataStoreRef C API to do private browsing instead of using
the legacy WKPreferencesSetPrivateBrowsingEnabled() C API.

  • TestWebKitAPI/Tests/WebKit/PrivateBrowsingPushStateNoHistoryCallback.cpp:

(TestWebKitAPI::TEST):

10:09 AM Changeset in webkit [249961] by Chris Dumez
  • 10 edits
    2 adds in trunk

REGRESSION (iOS 13): rAF stops firing when navigating away cross-origin and then back
https://bugs.webkit.org/show_bug.cgi?id=201767
<rdar://problem/55350854>

Reviewed by Geoffrey Garen.

Source/WebKit:

When navigating back and restoring a SuspendedPage, WebPage::reinitializeWebPage() ends up
reconstructing a new DrawingArea to match the identifier of the DrawingAreaProxy that the
UIProcess created. The issue is that when reconstructing the DrawingArea, we were losing
the DisplayRefreshMonitors that had been registered on the previous drawing area. To
address the issue, we now make sure to transfer the DisplayRefreshMonitors over from the
old to the new drawing area. This patch is kept as small as possible to faciliate cherry
picking to a branch. However, I think we should consider refactoring the code so that
we no longer need to re-create the DrawingArea in the WebProcess in this case.

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::adoptDisplayRefreshMonitorsFromDrawingArea):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::adoptDisplayRefreshMonitorsFromDrawingArea):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::reinitializeWebPage):

LayoutTests:

Add layout test coverage.

  • http/tests/navigation/page-cache-requestAnimationFrame-expected.txt: Added.
  • http/tests/navigation/page-cache-requestAnimationFrame.html: Added.
9:49 AM Changeset in webkit [249960] by Ryan Haddad
  • 9 edits in trunk/Tools

Bring up queues for iOS 13
https://bugs.webkit.org/show_bug.cgi?id=201710

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/config.json: Move iOS 12 queues to iOS 13.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js: Ditto.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:

(table.queue-grid tr.platform.ios-simulator-12 img.logo): Deleted.
(table.queue-grid tr.platform.ios-12 img.logo): Deleted.

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py: Update unit tests.
  • BuildSlaveSupport/build.webkit.org-config/wkbuild.py:

(_should_file_trigger_build):

  • BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:

(ShouldBuildTest):
(ShouldBuildTest.test_should_build):

  • BuildSlaveSupport/ews-build/config.json: Move iOS 12 queues to iOS 13.
9:32 AM Changeset in webkit [249959] by sbarati@apple.com
  • 3 edits
    1 add in trunk

CheckArray on DirectArguments/ScopedArguments does not filter out slow put array storage
https://bugs.webkit.org/show_bug.cgi?id=201853
<rdar://problem/53805461>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/direct-arguments-check-array-filter-type.js: Added.

(foo):

Source/JavaScriptCore:

We were claiming CheckArray for ScopedArguments/DirectArguments was filtering
out SlowPutArrayStorage. It does no such thing. We just check that the object
is either ScopedArguments/DirectArguments.

  • dfg/DFGArrayMode.h:

(JSC::DFG::ArrayMode::arrayModesThatPassFiltering const):
(JSC::DFG::ArrayMode::arrayModesWithIndexingShapes const):
(JSC::DFG::ArrayMode::arrayModesWithIndexingShape const): Deleted.

9:25 AM Changeset in webkit [249958] by Jonathan Bedard
  • 2 edits in trunk/Source/WebCore/PAL

Follow-up: Provide a prototype for AR QuickLook to trigger processing in the originating page
https://bugs.webkit.org/show_bug.cgi?id=201371

Unreviewed follow-up fix.

  • pal/spi/ios/SystemPreviewSPI.h:
9:05 AM Changeset in webkit [249957] by Chris Dumez
  • 4 edits in trunk/LayoutTests

Unreviewed, address flakiness of imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception.html

Do not log console messages.

LayoutTests/imported/w3c:

  • web-platform-tests/IndexedDB/fire-error-event-exception-expected.txt:

LayoutTests:

9:03 AM Changeset in webkit [249956] by Truitt Savell
  • 6 edits in trunk

Unreviewed, rolling out r249950.

Broke the iOS build.

Reverted changeset:

"Remove the "Show Link Previews" and "Hide Link Previews"
action menus in the preview platter"
https://bugs.webkit.org/show_bug.cgi?id=201864
https://trac.webkit.org/changeset/249950

8:57 AM Changeset in webkit [249955] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC[MarginCollapsing] MarginCollapse::estimatedMarginBefore should take pre-computed non-collapsed margin values.
https://bugs.webkit.org/show_bug.cgi?id=201848
<rdar://problem/55419419>

Reviewed by Antti Koivisto.

This is in preparation for using constraint values instead of querying the display tree for containing block geometry information.
See webkit.org/b/201795

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginBefore):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginAfter):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::estimatedMarginBefore):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeIgnoringCollapsingThrough):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::collapsedVerticalValues):

8:01 AM Changeset in webkit [249954] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[First-letter] Use WeakPtr for the first-letter insertion point.
https://bugs.webkit.org/show_bug.cgi?id=201842
<rdar://problem/51373788>

Reviewed by Antti Koivisto.

Source/WebCore:

The about-to-be-removed first letter renderer's sibling could potentially be destroyed too as the result of the anonymous subtree collapsing logic (when the next sibling is a generated anonymous block and it is not needed anymore.)

Test: fast/text/first-letter-with-columns-crash.html

  • rendering/updating/RenderTreeBuilderFirstLetter.cpp:

(WebCore::RenderTreeBuilder::FirstLetter::updateStyle):

LayoutTests:

  • fast/text/first-letter-with-columns-crash-expected.txt: Added.
  • fast/text/first-letter-with-columns-crash.html: Added.
6:47 AM WebKitGTK/2.26.x edited by Michael Catanzaro
(diff)
4:05 AM Changeset in webkit [249953] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

[GTK] Initial view loading is slow
https://bugs.webkit.org/show_bug.cgi?id=201451

Reviewed by Sergio Villar Senin.

The problem is that now we are always calling DrawingAreaProxy::waitForBackingStoreUpdateOnNextPaint() after a
new process is launched and we used to do that only when launching a new process after a crash. This makes
m_hasReceivedFirstUpdate useless, because it's always set to true right after a process is launched. Then, we
wait up to half a second (which is usually the case for the initial load) until the first update. We only want
to do that when recovering from a crash or when swapping processes to avoid flashing effect.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::launchProcess): Add ProcessLaunchReason parameter and pass it to
finishAttachingToWebProcess instead of IsProcessSwap.
(WebKit::WebPageProxy::swapToWebProcess): Pass ProcessLaunchReason::ProcessSwap to
finishAttachingToWebProcess().
(WebKit::WebPageProxy::finishAttachingToWebProcess): Do not call
DrawingAreaProxy::waitForBackingStoreUpdateOnNextPaint() when process launch reason is ProcessLaunchReason::InitialProcess.
(WebKit::WebPageProxy::launchProcessForReload): Pass ProcessLaunchReason::Reload to launchProcess().

  • UIProcess/WebPageProxy.h: Remove IsProcessSwap and add ProcessLaunchReason instead that is passed to

launchProcess and finishAttachingToWebProcess.

4:04 AM Changeset in webkit [249952] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

REGRESSION(r249275): [GTK][WPE] WebPage injected bundle messages no longer work
https://bugs.webkit.org/show_bug.cgi?id=201865

Reviewed by Žan Doberšek.

We use them to implement the web resources API. This is another regression of r249275 because we are using the
page proxy identifier when we really want to the web page identifier.

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextGetWebViewForPage): Use WebPageProxy::webPageID() instead of WebPageProxy::identifier().

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

[GTK] Cannot create EGL window surface: EGL_BAD_ALLOC
https://bugs.webkit.org/show_bug.cgi?id=201505

Reviewed by Žan Doberšek.

This happens because eglCreateWindowSurface() is called twice for the same window when not using the WPE
renderer. New versions of Mesa fail the second time with a EGL_BAD_ALLOC.

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::createWindowContext): Check surface is nullptr before falling back to use
eglCreateWindowSurface().

2:03 AM Changeset in webkit [249950] by dino@apple.com
  • 6 edits in trunk

Remove the "Show Link Previews" and "Hide Link Previews" action menus in the preview platter
https://bugs.webkit.org/show_bug.cgi?id=201864
<rdar://55190038>

Reviewed by Simon Fraser.

Source/WebKit:

  • UIProcess/ios/WKActionSheetAssistant.mm: Remove the toggle action from the

default values.
(-[WKActionSheetAssistant defaultActionsForLinkSheet:]):

  • UIProcess/ios/WKContentViewInteraction.mm: No longer try to add a toggle when

it isn't there.
(-[WKContentView assignLegacyDataForContextMenuInteraction]):
(menuWithShowLinkPreviewAction): Deleted.

Tools:

Test for the suggested actions.

  • TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm:

(-[TestContextMenuSuggestedActionsUIDelegate webView:contextMenuConfigurationForElement:completionHandler:]):
(-[TestContextMenuSuggestedActionsUIDelegate webView:contextMenuWillPresentForElement:]):
(TEST):

1:17 AM Changeset in webkit [249949] by jiewen_tan@apple.com
  • 13 edits in trunk/Source

[WebAuthn] Use WebPreferences instead of RuntimeEnabledFeatures in UIProcess
https://bugs.webkit.org/show_bug.cgi?id=198176
<rdar://problem/55285709>

Reviewed by Youenn Fablet.

Source/WebCore:

No changes of behavior.

  • Modules/webauthn/PublicKeyCredential.cpp:

(WebCore::PublicKeyCredential::isUserVerifyingPlatformAuthenticatorAvailable):
Resolves the promise with false immediately when the feature flag is false.

Source/WebKit:

This patch does the following two things:
1) It merges WebAuthenticationRequestData::creationOptions and requestOptions into a variant, and therefore
merges code paths that involve WebAuthenticationRequestData.
2) It teaches WebAuthenticationRequestData to store a WebPreferences such that AuthenticatorManager could utilize
runtime feature flags to turn features on or off.

  • UIProcess/WebAuthentication/Authenticator.cpp:

(WebKit::Authenticator::handleRequest):

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::handleRequest):
(WebKit::AuthenticatorManager::clearState):
(WebKit::AuthenticatorManager::authenticatorAdded):
(WebKit::AuthenticatorManager::startDiscovery):
(WebKit::AuthenticatorManager::makeCredential): Deleted.
(WebKit::AuthenticatorManager::getAssertion): Deleted.

  • UIProcess/WebAuthentication/AuthenticatorManager.h:
  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserConsented):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented):

  • UIProcess/WebAuthentication/Cocoa/LocalService.mm:

(WebKit::LocalService::isAvailable):
Don't check RuntimeEnabledFeatures given it is for WebCore.

  • UIProcess/WebAuthentication/WebAuthenticationRequestData.h:

(): Deleted.

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:

(WebKit::WebAuthenticatorCoordinatorProxy::makeCredential):
(WebKit::WebAuthenticatorCoordinatorProxy::getAssertion):
(WebKit::WebAuthenticatorCoordinatorProxy::handleRequest):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
  • UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:

(WebKit::CtapAuthenticator::makeCredential):
(WebKit::CtapAuthenticator::continueMakeCredentialAfterResponseReceived const):
(WebKit::CtapAuthenticator::getAssertion):

  • UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp:

(WebKit::U2fAuthenticator::makeCredential):
(WebKit::U2fAuthenticator::checkExcludeList):
(WebKit::U2fAuthenticator::issueRegisterCommand):
(WebKit::U2fAuthenticator::getAssertion):
(WebKit::U2fAuthenticator::issueSignCommand):
(WebKit::U2fAuthenticator::continueRegisterCommandAfterResponseReceived):
(WebKit::U2fAuthenticator::continueSignCommandAfterResponseReceived):

1:17 AM WebKitGTK/2.26.x edited by Carlos Garcia Campos
(diff)
1:14 AM Changeset in webkit [249948] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Keeps running obsolete WebProcess-es for too long
https://bugs.webkit.org/show_bug.cgi?id=201492

Reviewed by Chris Dumez.

That's how the web process cache is expected to work, but it's true that it probably only makes sense to use it
when cache model is primary web browser.

  • UIProcess/WebProcessCache.cpp:

(WebKit::WebProcessCache::updateCapacity): Disable the web process cache when cache model is not primary web browser.

1:05 AM Changeset in webkit [249947] by Carlos Garcia Campos
  • 8 edits in trunk/Source/WebKit

[GTK] Crash closing web view while hardware acceleration is enabled
https://bugs.webkit.org/show_bug.cgi?id=200856

Reviewed by Michael Catanzaro.

The crash happens when destroying the WaylandCompositor::Surface because the web view GL context is used to
release the texture, but the GL context is no longer valid after web view
unrealize. AcceleratedBackingStoreWayland should handle the web view unrealize to destroy the GL context. It
will be created on demand again after the web view is realized.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseRealize): Notify AcceleratedBackingStore.
(webkitWebViewBaseUnrealize): Ditto.

  • UIProcess/gtk/AcceleratedBackingStore.h:

(WebKit::AcceleratedBackingStore::realize): Added.
(WebKit::AcceleratedBackingStore::unrealize): Added.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::realize): In case of using WaylandCompositor, call
WaylandCompositor::bindWebPage() to bind the WebPageProxy to the Wayland surface.
(WebKit::AcceleratedBackingStoreWayland::unrealize): Destroy GL resources and the GL context.
(WebKit::AcceleratedBackingStoreWayland::tryEnsureGLContext): Do not try to create the GL context if the web
view is not realized.
(WebKit::AcceleratedBackingStoreWayland::displayBuffer): Remove the code to initialize the texture.
(WebKit::AcceleratedBackingStoreWayland::paint): And add it here.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.h:
  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::Surface::setWebPage): Return early if given page is the current one already.
(WebKit::WaylandCompositor::bindWebPage): Set the surface WebPageProxy.
(WebKit::WaylandCompositor::unbindWebPage): Unset the surface WebPageProxy.

  • UIProcess/gtk/WaylandCompositor.h:
  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::enterAcceleratedCompositingMode): When restoring a previous layer tree
host, always call resumeRendering() to balance the suspendRendering() called in exitAcceleratedCompositingMode().

12:56 AM Changeset in webkit [249946] by commit-queue@webkit.org
  • 5 edits
    8 adds
    4 deletes in trunk

Access-Control-Expose-Headers parsed incorrectly
https://bugs.webkit.org/show_bug.cgi?id=172357

Patch by Rob Buis <rbuis@igalia.com> on 2019-09-17
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Import cors/access-control-expose-headers-parsing.window.js and adjust it
so it fetches a remote url, since subdomains do not work for localhost.

  • web-platform-tests/cors/access-control-expose-headers-parsing.window-expected.txt: Added.
  • web-platform-tests/cors/access-control-expose-headers-parsing.window.html: Added.
  • web-platform-tests/cors/access-control-expose-headers-parsing.window.js:

(runTests):
(exposeTest): Deleted.

  • web-platform-tests/cors/allow-headers-expected.txt: Removed.
  • web-platform-tests/cors/allow-headers.htm: Removed.
  • web-platform-tests/cors/resources/access-control-expose-headers-parsing-2.asis: Removed.
  • web-platform-tests/cors/resources/access-control-expose-headers-parsing.asis: Removed.
  • web-platform-tests/cors/resources/access-control-expose-headers.json: Added.
  • web-platform-tests/cors/resources/expose-headers.py: Added.

(main):

Source/WebCore:

When parsing the list, strip HTTP spaces and verify
that the list items are valid HTTP tokens.

Behavior matches Firefox and Chrome.

Test: imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window.html

  • platform/network/HTTPParsers.h:

(WebCore::addToAccessControlAllowList):
(WebCore::parseAccessControlAllowList):

LayoutTests:

Add Mac/iOS expectations.

  • platform/ios/imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window-expected.txt: Added.
  • platform/mac/imported/w3c/web-platform-tests/cors/access-control-expose-headers-parsing.window-expected.txt: Added.
12:39 AM Changeset in webkit [249945] by youenn@apple.com
  • 6 edits in trunk

Content-Type should be preserved on responses created from DOMCache
https://bugs.webkit.org/show_bug.cgi?id=201815

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Fixes one subtest.
Remaining failing test is failing consistently in other browsers.

  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-match.https-expected.txt:
  • web-platform-tests/service-workers/cache-storage/window/cache-match.https-expected.txt:
  • web-platform-tests/service-workers/cache-storage/worker/cache-match.https-expected.txt:

Source/WebCore:

Covered by updated test expectations

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::create):
Update content type when creating the response from DOMCache.

12:26 AM Changeset in webkit [249944] by Fujii Hironori
  • 2 edits in trunk

[WinCairo][curl] Define NOCRYPT to suppress libressl "Warning, overriding WinCrypt defines"
https://bugs.webkit.org/show_bug.cgi?id=201858

Reviewed by Alex Christensen.

LibreSSL headers are reporing a compilation warning for overriding
WinCrypt defines. Define NOCRYPT to let windows.h not to include
WinCrypt for WinCairo port.

  • Source/cmake/OptionsWinCairo.cmake: Added -DNOCRYPT.

Sep 16, 2019:

11:38 PM Changeset in webkit [249943] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

Move code for traversing reversed text boxes from TextIterator to TextBoxIterator
https://bugs.webkit.org/show_bug.cgi?id=201819

Reviewed by Zalan Bujtas.

Handle traversal order in TextBoxIterator.

  • editing/TextIterator.cpp:

(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::handleTextBox):
(WebCore::TextIterator::handleTextNodeFirstLetter):

  • editing/TextIterator.h:
  • rendering/line/LineLayoutInterfaceTextBoxes.cpp:

(WebCore::LineLayoutInterface::TextBox::rect const):
(WebCore::LineLayoutInterface::TextBox::logicalRect const):
(WebCore::LineLayoutInterface::TextBox::hasHyphen const):
(WebCore::LineLayoutInterface::TextBox::isLeftToRightDirection const):
(WebCore::LineLayoutInterface::TextBox::dirOverride const):
(WebCore::LineLayoutInterface::TextBox::text const):
(WebCore::LineLayoutInterface::TextBox::localStartOffset const):
(WebCore::LineLayoutInterface::TextBox::localEndOffset const):
(WebCore::LineLayoutInterface::TextBox::length const):
(WebCore::LineLayoutInterface::TextBoxIterator::TextBoxIterator):
(WebCore::LineLayoutInterface::TextBoxIterator::traverseNextInVisualOrder):
(WebCore::LineLayoutInterface::TextBoxIterator::traverseNextInTextOrder):
(WebCore::LineLayoutInterface::TextBoxIterator::operator== const):
(WebCore::LineLayoutInterface::TextBoxIterator::atEnd const):
(WebCore::LineLayoutInterface::Provider::firstTextBoxInVisualOrderFor):
(WebCore::LineLayoutInterface::Provider::firstTextBoxInTextOrderFor):
(WebCore::LineLayoutInterface::Provider::textBoxRangeFor):

  • rendering/line/LineLayoutInterfaceTextBoxes.h:

(WebCore::LineLayoutInterface::TextBoxIterator::TextBoxIterator):
(WebCore::LineLayoutInterface::TextBoxIterator::operator++):
(WebCore::LineLayoutInterface::Provider::firstTextBoxFor):

11:24 PM Changeset in webkit [249942] by Ryan Haddad
  • 10 edits in trunk/Source/WebKit

Unreviewed, rolling out r249910.

Caused layout test failures and timeouts on Catalina

Reverted changeset:

"REGRESSION(249649): Unable to open local files in MiniBrowser
on macOS"
https://bugs.webkit.org/show_bug.cgi?id=201798
https://trac.webkit.org/changeset/249910

10:39 PM Changeset in webkit [249941] by commit-queue@webkit.org
  • 23 edits in trunk

Remove "gopher" from list of special schemes in URLParser
https://bugs.webkit.org/show_bug.cgi?id=201852

Patch by Alex Christensen <achristensen@webkit.org> on 2019-09-16
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-origin-expected.txt:
  • web-platform-tests/url/a-element-origin-xhtml-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/url-constructor-expected.txt:
  • web-platform-tests/url/url-origin-expected.txt:
  • web-platform-tests/url/url-setters-expected.txt:

Source/WTF:

There is little meaningful content on gopher servers, and WebKit does not actually support gopher.
This makes WebKit match the behavior of Gecko and goes along with a change proposed at
https://github.com/whatwg/url/issues/342

  • wtf/URLParser.cpp:

(WTF::URLParser::defaultPortForProtocol):
(WTF::scheme):
(WTF::URLParser::copyURLPartsUntil):
(WTF::URLParser::parse):

Tools:

  • TestWebKitAPI/Tests/WTF/URLParser.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/URLParserTextEncoding.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:

LayoutTests:

  • fast/url/invalid-urls-utf8-expected.txt:
  • fast/url/invalid-urls-utf8.html:
  • fast/url/segments-expected.txt:
  • fast/url/segments.html:
  • fast/url/standard-url-expected.txt:
  • fast/url/standard-url.html:
  • fetch/fetch-urls.json:
  • http/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-async-delegate-expected.txt:
10:28 PM Changeset in webkit [249940] by Fujii Hironori
  • 6 edits in trunk/Source

[WinCairo][curl] Don't compile unused CertificateCFWin.cpp
https://bugs.webkit.org/show_bug.cgi?id=201860

Reviewed by Alex Christensen.

Source/WebCore:

Curl port is using ResourceHandle::setClientCertificateInfo
instead of ResourceHandle::setClientCertificate.

  • PlatformWin.cmake: Added CertificateCFWin.cpp to WebCore_SOURCES only if USE_CFURLCONNECTION.
  • platform/network/ResourceHandle.h: Removed an unused method setClientCertificate.
  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::setClientCertificate): Deleted.

Source/WebKitLegacy/win:

  • WebMutableURLRequest.cpp: Include <WebCore/CertificateCFWin.h> only if USE(CFURLCONNECTION).

(WebMutableURLRequest::setClientCertificate): Don't use PCCERT_CONTEXT for curl port which is defined in WinCrypt.

8:48 PM Changeset in webkit [249939] by Chris Dumez
  • 7 edits in trunk/Source/WebKit

Drop sessionID / websiteDataStoreID from WebPageCreationParameters
https://bugs.webkit.org/show_bug.cgi?id=201847

Reviewed by Youenn Fablet.

Drop sessionID / websiteDataStoreID from WebPageCreationParameters now that we have
one session per WebProcess.

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:

(WebKit::WebPageCreationParameters::WebPageCreationParameters): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_textAutoSizingAdjustmentTimer):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::createWebPage):

8:05 PM Changeset in webkit [249938] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

[AppleWin] Assertion failure in defaultSupportedImageTypes in UTIRegistry.cpp
https://bugs.webkit.org/show_bug.cgi?id=198286

Reviewed by Brent Fulgham.

Some image types aren't supported by CG for Windows.

No new tests, covered by existing tests.

  • platform/graphics/cg/ImageSourceCGWin.cpp:

(WebCore::MIMETypeForImageType): Return the correct MIME types for
com.microsoft.cur and com.microsoft.ico.

  • platform/graphics/cg/UTIRegistry.cpp:

(WebCore::defaultSupportedImageTypes): Excluded public.jpeg-2000 and public.mpo-image if PLATFORM(WIN).

7:56 PM Changeset in webkit [249937] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[Cairo] Image::drawTiled → Cairo::drawSurface → cairo_paint_with_alpha → segfault happens in pixman
https://bugs.webkit.org/show_bug.cgi?id=201755

Reviewed by Don Olmstead.

Segmentation faults happened in pixman while painting a image. In
Cairo::drawSurface, originalSrcRect can be slightly larger than
the surface size because of floating number calculations.
Cairo::drawSurface created a subsurface which is running over the
parent surface boundaries.

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawSurface): Calculated a intersection with
expandedSrcRect and the parent surface size for subsurface size.

7:29 PM Changeset in webkit [249936] by dino@apple.com
  • 4 edits in trunk/Source

Provide a prototype for AR QuickLook to trigger processing in the originating page
https://bugs.webkit.org/show_bug.cgi?id=201371

Hopefully fix the public iOS 13 build.

Source/WebCore/PAL:

  • pal/spi/ios/SystemPreviewSPI.h:

Source/WebKit:

  • UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
6:40 PM Changeset in webkit [249935] by Tadeu Zagallo
  • 3 edits
    1 add in trunk

Wasm StreamingParser should validate that number of functions matches number of declarations
https://bugs.webkit.org/show_bug.cgi?id=201850
<rdar://problem/55290186>

Reviewed by Yusuke Suzuki.

JSTests:

  • wasm/regress/validate-number-of-functions-match-declarations.js: Added.

(catch):

Source/JavaScriptCore:

Currently, when parsing the code section, we check that the number of functions matches the number
of declarations in the function section. However, that check is never performed if the module does
not have a code section. To fix that, we perform the check again in StreamingParser::finalize.

  • wasm/WasmStreamingParser.cpp:

(JSC::Wasm::StreamingParser::finalize):

6:25 PM Changeset in webkit [249934] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

[WebAuthn] Name instance variables consistently in WKMockNFTag
<https://webkit.org/b/201845>

Reviewed by Jiewen Tan.

  • UIProcess/WebAuthentication/Mock/MockNfcService.mm:

Make all @synthesize instance variables use a leading underscore
for their name.

5:37 PM Changeset in webkit [249933] by dino@apple.com
  • 4 edits in trunk/Source

REGRESSION: iPad: Safari becomes unresponsive after context menu on 1-800-MY-APPLE phone number, tapping 'Add to Contacts'
https://bugs.webkit.org/show_bug.cgi?id=201816
<rdar://55105827>

Reviewed by Darin Adler.

Source/WebCore/PAL:

Expose kDataDetectorsSourceRectKey (and sort things while there).

  • pal/spi/ios/DataDetectorsUISPI.h:

Source/WebKit:

When generating the DataDetectorsContext for a position, we should
also provide the source rectangle for the link in root view coordinates.
This allows DataDetectors to show any modal dialogs in the right
position.

  • UIProcess/ios/WKContentViewInteraction.mm: Use either the bounds of the positionInformation

or the text bounding rectangle.
(-[WKContentView dataDetectionContextForPositionInformation:]):

5:13 PM Changeset in webkit [249932] by Jonathan Bedard
  • 3 edits in trunk/Tools

results.webkit.org: Shard result archives
https://bugs.webkit.org/show_bug.cgi?id=201734

Reviewed by Dewei Zhu.

Cassandra advertises being able to store up to 2 GB in a single blob-storage row.
In practice, this usually doesn't work according to the Cassandra developers,
large blobs should be broken up into shards of, at most, 10 MB.

  • resultsdbpy/resultsdbpy/model/archive_context.py:

(ArchiveContext):
(ArchiveContext.ArchiveMetaDataByCommit): Point to the archive shards by hash.
(ArchiveContext.ArchiveMetaDataByCommit.unpack):
(ArchiveContext.ArchiveChunks): Store archive shards, indexed by hash.
(ArchiveContext.init):
(ArchiveContext.register): When saving archives, save a reference hash and then
shard the actual archive data before saving.
(ArchiveContext.find_archive): Search for archive by meta-data, then reconstruct
the archive. Raise an exception if we determine that memory usage is a problem.
(ArchiveContext.ArchivesByCommit): Deleted.
(ArchiveContext.ArchivesByCommit.unpack): Deleted.

  • resultsdbpy/resultsdbpy/model/archive_context_unittest.py:

(ArchiveContextTest.init_database): Allow configuration and archive to be specified.
(ArchiveContextTest):
(ArchiveContextTest.test_large_archive): Test archive sharding.

4:59 PM Changeset in webkit [249931] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, rebaseline test after testharness.js update in r249918.

  • webgpu/whlsl/test-harness-test-expected.txt:
4:58 PM Changeset in webkit [249930] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

AX: USER: VO: Messages > Message > Shift-VO-M doesn't reveal correct actions
https://bugs.webkit.org/show_bug.cgi?id=201840

Patch by Eric Liang <ericliang@apple.com> on 2019-09-16
Reviewed by Chris Fleizach.

menuForEvent: expects event-position in window's space, but we pass the position in Core's space. In this case, we need to convert core's space to window's space.
Tested that existing tests passed with WK1 and WK2

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):

4:53 PM Changeset in webkit [249929] by Chris Dumez
  • 11 edits in trunk/LayoutTests

Unreviewed, fix several css-dark-mode tests to run properly after testharness.js update in r249918.

  • css-dark-mode/color-scheme-css-expected.txt:
  • css-dark-mode/color-scheme-css.html:
  • css-dark-mode/color-scheme-meta-expected.txt:
  • css-dark-mode/color-scheme-meta.html:
  • css-dark-mode/color-scheme-scrollbar-expected.txt:
  • css-dark-mode/color-scheme-scrollbar.html:
  • css-dark-mode/older-syntax/supported-color-schemes-css-expected.txt:
  • css-dark-mode/older-syntax/supported-color-schemes-css.html:
  • css-dark-mode/older-syntax/supported-color-schemes-meta-expected.txt:
  • css-dark-mode/older-syntax/supported-color-schemes-meta.html:
4:43 PM Changeset in webkit [249928] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip imported/w3c/web-platform-tests/html/browsers/offline/application-cache-api/api_update.https.html.

This test is a flaky timeout since it was imported in r249886.

4:28 PM Changeset in webkit [249927] by jiewen_tan@apple.com
  • 5 edits in trunk

[WebAuthn] Support more than two FIDO protocol versions
https://bugs.webkit.org/show_bug.cgi?id=198408
<rdar://problem/51292176>

Reviewed by Chris Dumez.

Source/WebCore:

Covered by new API tests.

  • Modules/webauthn/fido/DeviceResponseConverter.cpp:

(fido::readCTAPGetInfoResponse):
Remove the check for the array size.

Tools:

Adds a new test case that includes a FIDO_2_1_PRE version string.

  • TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/FidoTestData.h:
4:10 PM Changeset in webkit [249926] by msaboff@apple.com
  • 5 edits
    1 add in trunk

[JSC] Perform check again when we found non-BMP characters
https://bugs.webkit.org/show_bug.cgi?id=201647

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/regexp-unicode-surrogate-pair-increment-should-involve-length-check.js: Added.
  • stress/regexp-unicode-within-string.js: Updated test to eliminate the bogus print().

(testRegExpInbounds):

Source/JavaScriptCore:

We need to check for end of input for non-BMP characters when matching a character class that contains
both BMP and non-BMP characters. In advanceIndexAfterCharacterClassTermMatch() we were checking for
end of input for both BMP and non-BMP characters. For BMP characters, this check is redundant.
After moving the check to after the "is BMP check", we need to decrement index after reaching the failure
label to back out the index++ for the first surrogate of the non-BMP character.

Added the same kind of check in generateCharacterClassOnce(). In that case, we have pre-checked the
first character (surrogate) for a non-BMP codepoint, so we just need to check for end of input before
we increment for the second surrogate.

While writing tests, I found an off by one error in backtrackCharacterClassGreedy() and changed the
loop to check the count at loop top instead of loop bottom.

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::advanceIndexAfterCharacterClassTermMatch):
(JSC::Yarr::YarrGenerator::generateCharacterClassOnce):
(JSC::Yarr::YarrGenerator::generateCharacterClassGreedy):
(JSC::Yarr::YarrGenerator::backtrackCharacterClassGreedy):
(JSC::Yarr::YarrGenerator::backtrackCharacterClassNonGreedy):

3:56 PM Changeset in webkit [249925] by Ross Kirsling
  • 6 edits in trunk

[JSC] Add missing syntax errors for await in function parameter default expressions
https://bugs.webkit.org/show_bug.cgi?id=201615

Reviewed by Darin Adler.

JSTests:

  • stress/async-await-reserved-word.js:
  • stress/async-await-syntax.js:

Add test cases.

  • test262/expectations.yaml:

Mark newly-passing test cases.

Source/JavaScriptCore:

This patch rectifies two oversights:

  1. We were prohibiting async function f(x = (await) => {}) {} but not async function f(x = await => {}) {} (and likewise for async arrow functions).
  2. We were not prohibiting (x = await => {}) => {} in an async context (regardless of parentheses, but note that this one *only* applies to arrow functions).
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::isArrowFunctionParameters): Fix case (1).
(JSC::Parser<LexerType>::parseFunctionInfo): Fix case (2).
(JSC::Parser<LexerType>::parseAwaitExpression): Convert unfailing check into an ASSERT.
(JSC::Parser<LexerType>::parsePrimaryExpression): Adjust error message for case (2).

3:40 PM Changeset in webkit [249924] by Jonathan Bedard
  • 8 edits in trunk/Tools

results.webkit.org: Configurations should be branch specific
https://bugs.webkit.org/show_bug.cgi?id=201561

Reviewed by Dewei Zhu.

Partition configurations by branch in both Redis and Cassandra.

  • resultsdbpy/resultsdbpy/controller/upload_controller.py:

(UploadController.suites): Allow the user to specify branches while listing suites.

  • resultsdbpy/resultsdbpy/model/archive_context.py:

(ArchiveContext.register): Register each configuration with a branch.

  • resultsdbpy/resultsdbpy/model/configuration_context.py:

(ConfigurationContext.ByPlatform): Index by branch.
(ConfigurationContext.ByPlatformAndVersion): Ditto.
(ConfigurationContext.ByArchitecture): Ditto.
(ConfigurationContext.ByModel): Ditto.
(ConfigurationContext.init): Populate Redis cache with branch.
(ConfigurationContext._convert_to_redis_key): Accept branch in Redis key.
(ConfigurationContext._register_in_redis): Register configuration with branch.
(ConfigurationContext.register_configuration): Ditto.
(ConfigurationContext.search_for_configuration): Search for configuration with branch.
(ConfigurationContext.search_for_recent_configuration): Ditto.
(ConfigurationContext.select_from_table_with_configurations): Ditto.

  • resultsdbpy/resultsdbpy/model/configuration_context_unittest.py:

(ConfigurationContextTest.register_configurations): Register with branch.
(ConfigurationContextTest.test_repopulate_recent): Construct ConfigurationContext with
CommitContext object.

  • resultsdbpy/resultsdbpy/model/upload_context.py:

(UploadContext.SuitesByConfiguration): Index by branch.
(UploadContext.upload_test_results): Register each configuration with a branch.
(UploadContext.find_suites): Pass branch to search for configurations.

  • resultsdbpy/resultsdbpy/view/static/js/drawer.js: Check for new configurations when the branch is changed.
  • resultsdbpy/resultsdbpy/view/templates/suite_results.html: Add branch to suites query.
2:52 PM Changeset in webkit [249923] by Chris Dumez
  • 10 edits in trunk/Source/WebKit

NetworkProcessConnection does not need HashMaps of sessionIDs for Service Workers and IDB
https://bugs.webkit.org/show_bug.cgi?id=201830

Reviewed by Geoffrey Garen.

NetworkProcessConnection does not need HashMaps of sessionIDs for Service Workers and IDB, since
we now have one sessionID per WebContent process.

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::create):
(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/WebDatabaseProvider.cpp:

(WebKit::WebDatabaseProvider::idbConnectionToServerForSession):

  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::idbConnectionToServerForSession):
(WebKit::NetworkProcessConnection::serviceWorkerConnectionForSession):

  • WebProcess/Network/NetworkProcessConnection.h:

(WebKit::NetworkProcessConnection::existingIDBConnectionToServer const):
(WebKit::NetworkProcessConnection::existingServiceWorkerConnectionForSession):

  • WebProcess/Storage/WebServiceWorkerProvider.cpp:

(WebKit::WebServiceWorkerProvider::serviceWorkerConnectionForSession):
(WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession):
(WebKit::WebServiceWorkerProvider::handleFetch):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::networkProcessConnectionClosed):

2:43 PM Changeset in webkit [249922] by Alan Coon
  • 1 copy in tags/Safari-608.2.11.1.6

Tag Safari-608.2.11.1.6.

2:39 PM Changeset in webkit [249921] by Brent Fulgham
  • 14 edits in trunk/Source

[FTW] Correct lifespan of other SharedBitmaps
https://bugs.webkit.org/show_bug.cgi?id=201800

Reviewed by Dean Jackson.

The pop-up menu code creates its own SharedBitmap in the WebContent process,
which needs to release its handle before destruction, otherwise the UIProcess
will be unable to access the GPU texture (since it will have been cleaned up).

Source/WebCore:

This patch also audits other uses of SharedBitmap to make sure a similar
problem doesn't exist elsewhere.

  • platform/graphics/win/Direct2DUtilities.cpp:

(WebCore::Direct2D::toDXGIDevice): Switch to IDXGIDevice1 (since that is our
minimum target DX).
(WebCore::Direct2D::factoryForDXGIDevice): Ditto.
(WebCore::Direct2D::swapChainOfSizeForWindowAndDevice): Added.

  • platform/graphics/win/Direct2DUtilities.h:
  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate): Correct
a very silly use-after-move in the implementation.

  • platform/graphics/win/PlatformContextDirect2D.h:

(WebCore::PlatformContextDirect2D::d3dDevice const): Added.
(WebCore::PlatformContextDirect2D::setD3DDevice):

Source/WebKit:

Since WebPopupMenuProxyWin has its own HWND and WinProc, it needs its own
swapChain to handle syncing of content to the screen.

This patch also audits other uses of SharedBitmap to make sure a similar
problem doesn't exist elsewhere.

  • Shared/ShareableBitmap.h:
  • Shared/win/ShareableBitmapDirect2D.cpp:

(WebKit::ShareableBitmap::paint):
(WebKit::ShareableBitmap::createDirect2DSurface):

  • UIProcess/win/WebPopupMenuProxyWin.cpp:

(WebKit::WebPopupMenuProxyWin::showPopupMenu): Add Direct2D code paths.
(WebKit::WebPopupMenuProxyWin::paint): Update for Direct2D.
(WebKit::WebPopupMenuProxyWin::setupSwapChain): Added.
(WebKit::WebPopupMenuProxyWin::configureBackingStore): Added.

  • UIProcess/win/WebPopupMenuProxyWin.h:
  • UIProcess/win/WebView.cpp:

(WebKit::WebView::setupSwapChain): Move some implementation code to the
Direct2DUtilities file.

  • UIProcess/win/WebView.h:

(WebKit::WebView::d3dDevice const):
(WebKit::WebView::d3dImmediateContext const):
(WebKit::WebView::d3dDevice): Deleted.

  • WebProcess/WebCoreSupport/WebPopupMenu.cpp:

(WebKit::WebPopupMenu::show):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::getImageForFindMatch): Prevent WebContent process from
destroying SharedBitmap before the UIProcess can receive it.

2:21 PM Changeset in webkit [249920] by Chris Dumez
  • 14 edits in trunk/Source

Simplify WebResourceLoadObserver now that we have one WebProcess per session
https://bugs.webkit.org/show_bug.cgi?id=201821

Reviewed by Brent Fulgham.

Source/WebCore:

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • loader/ResourceLoadObserver.h:

(WebCore::ResourceLoadObserver::logWebSocketLoading):
(WebCore::ResourceLoadObserver::statisticsForURL):

  • testing/Internals.cpp:

(WebCore::Internals::resourceLoadStatisticsForURL):

Source/WebKit:

Simplify WebResourceLoadObserver now that we have one WebProcess per session.
No need to pass sessionIDs around or store statistics per sessionID.
Also, only initialize the WebResourceLoadObserver if both ITP is enabled and
we're not in a WebContent process used for an ephemeral session.

  • NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):

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

(WebKit::NetworkConnectionToWebProcess::resourceLoadStatisticsUpdated):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

(WebKit::WebResourceLoadObserver::requestStorageAccessUnderOpener):
(WebKit::WebResourceLoadObserver::ensureResourceStatisticsForRegistrableDomain):
(WebKit::WebResourceLoadObserver::scheduleNotificationIfNeeded):
(WebKit::WebResourceLoadObserver::statisticsForURL):
(WebKit::WebResourceLoadObserver::takeStatistics):
(WebKit::WebResourceLoadObserver::clearState):
(WebKit::WebResourceLoadObserver::logFontLoad):
(WebKit::WebResourceLoadObserver::logCanvasRead):
(WebKit::WebResourceLoadObserver::logCanvasWriteOrMeasure):
(WebKit::WebResourceLoadObserver::logNavigatorAPIAccessed):
(WebKit::WebResourceLoadObserver::logScreenAPIAccessed):
(WebKit::WebResourceLoadObserver::logSubresourceLoading):
(WebKit::WebResourceLoadObserver::logWebSocketLoading):
(WebKit::WebResourceLoadObserver::logUserInteractionWithReducedTimeResolution):

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setWebsiteDataStoreParameters):

2:10 PM Changeset in webkit [249919] by Alan Coon
  • 7 edits in tags/Safari-609.1.4.1/Source

Versioning.

2:04 PM Changeset in webkit [249918] by Chris Dumez
  • 62 edits
    4 copies
    2 adds in trunk/LayoutTests

Update testharness.js from upstream
https://bugs.webkit.org/show_bug.cgi?id=201808

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update existing layout tests so that they are compatible with this new version
of testharness.js.

  • IndexedDB-private-browsing/idbdatabase_createObjectStore9-invalidparameters.html:
  • IndexedDB-private-browsing/idbobjectstore_deleted.html:
  • web-platform-tests/custom-elements/resources/custom-elements-helpers.js:

(create_window_in_test):

LayoutTests:

Update testharness.js from upstream 6fd5e1e086ce590a4780a30d12968.
Update existing layout tests so that they are compatible with this new version
of testharness.js.

  • TestExpectations:
  • css-custom-properties-api/length-expected.txt:
  • css-custom-properties-api/length.html:
  • css-custom-properties-api/registerProperty.html:
  • css-dark-mode/older-systems/color-scheme-css-expected.txt:
  • css-dark-mode/older-systems/color-scheme-css.html:
  • css-dark-mode/older-systems/color-scheme-meta-expected.txt:
  • css-dark-mode/older-systems/color-scheme-meta.html:
  • css3/flexbox/style-change-expected.txt:
  • fast/css/DOMQuad-serialization.html:
  • fast/css/Element-style.html:
  • fast/css/parse-justify-self-expected.txt:
  • fast/css/parse-justify-self.html:
  • fast/events/clipboard-event-constructor-expected.txt:
  • fast/events/clipboard-event-constructor.html:
  • fast/media/mq-js-update-media-expected.txt:
  • fast/media/mq-js-update-media.html:
  • fast/mediacapturefromelement/CanvasCaptureMediaStream-offscreencanvas-expected.txt:
  • fast/mediastream/captureStream/canvas2d-expected.txt:
  • fast/mediastream/captureStream/canvas2d-heavy-drawing.html:
  • fast/mediastream/captureStream/canvas2d.html:
  • fast/shadow-dom/event-path-with-window-expected.txt:
  • fast/shadow-dom/event-path-with-window.html:
  • fast/shadow-dom/offsetParent-across-shadow-boundaries-expected.txt:
  • fast/shadow-dom/offsetParent-across-shadow-boundaries.html:
  • fast/shadow-dom/slotchange-for-slot-mutation-expected.txt:
  • fast/shadow-dom/slotchange-for-slot-mutation.html:
  • fast/shadow-dom/stylesheet-title-in-shadow-tree-expected.txt:
  • fast/shadow-dom/stylesheet-title-in-shadow-tree.html:
  • http/tests/fetch/redirectmode-and-preload-expected.txt:
  • http/tests/fetch/redirectmode-and-preload.html:
  • imported/blink/editing/selection/selectstart-event-crash-expected.txt:
  • js/promises-tests/promises-in-workers-expected.txt:
  • js/promises-tests/promises-in-workers.js:
  • resources/check-layout-th.js:

(window.checkLayout):

  • resources/testharness.js:

(WindowTestEnvironment):
(WindowTestEnvironment.prototype._dispatch):
(WindowTestEnvironment.prototype._forEach_windows):
(WindowTestEnvironment.prototype.next_default_test_name):
(WorkerTestEnvironment.prototype.next_default_test_name):
(ServiceWorkerTestEnvironment.on_all_loaded):
(ServiceWorkerTestEnvironment):
(ShellTestEnvironment):
(ShellTestEnvironment.prototype.next_default_test_name):
(ShellTestEnvironment.prototype.on_new_harness_properties):
(ShellTestEnvironment.prototype.on_tests_ready):
(ShellTestEnvironment.prototype.add_on_loaded_callback):
(ShellTestEnvironment.prototype.test_timeout):
(create_test_environment):
(is_shared_worker):
(is_service_worker):
(test):
(promise_test):
(this.wait_for):
(EventWatcher):
(done):

  • streams/readable-byte-stream-controller-expected.txt:
  • streams/readable-byte-stream-controller-worker-expected.txt: Added.
  • streams/readable-byte-stream-controller-worker.html: Copied from LayoutTests/streams/readable-byte-stream-controller.html.
  • streams/readable-byte-stream-controller.html:
  • streams/readable-stream-byob-reader-expected.txt:
  • streams/readable-stream-byob-reader-worker-expected.txt: Added.
  • streams/readable-stream-byob-reader-worker.html: Copied from LayoutTests/streams/readable-stream-byob-reader.html.
  • streams/readable-stream-byob-reader.html:
  • streams/readable-stream-byob-request-expected.txt:
  • streams/readable-stream-byob-request-worker-expected.txt: Copied from LayoutTests/streams/readable-stream-byob-request-expected.txt.
  • streams/readable-stream-byob-request-worker.html: Copied from LayoutTests/streams/readable-stream-byob-request.html.
  • streams/readable-stream-byob-request.html:
  • streams/reference-implementation/readable-stream-templated-expected.txt:
  • streams/reference-implementation/readable-stream-templated.html:
  • streams/reference-implementation/writable-stream-abort-expected.txt:
  • streams/reference-implementation/writable-stream-expected.txt:
  • webrtc/datachannel/basic-expected.txt:
  • webrtc/datachannel/basic.html:
  • webrtc/datachannel/mdns-ice-candidates-expected.txt:
  • webrtc/datachannel/mdns-ice-candidates.html:
  • webrtc/pc-detached-document-expected.txt:
  • webrtc/pc-detached-document.html:
  • webrtc/video-mute-expected.txt:
  • webrtc/video-mute-vp8-expected.txt:
  • webrtc/video-mute-vp8.html:
  • webrtc/video-mute.html:
2:00 PM Changeset in webkit [249917] by Alan Coon
  • 1 copy in tags/Safari-609.1.4.1

New tag.

1:52 PM Changeset in webkit [249916] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Fix build failure in MockNfcService.mm
<https://webkit.org/b/201839>

Patch by David Kilzer <ddkilzer@apple.com> on 2019-09-16
Reviewed by Brady Eidson.

  • UIProcess/WebAuthentication/Mock/MockNfcService.mm:

Specify instance variable names for @synthesized variables that
need to be manually released in -dealloc under MRR.

1:48 PM Changeset in webkit [249915] by Tadeu Zagallo
  • 2 edits in trunk/Source/JavaScriptCore

SamplingProfiler should hold API lock before reporting results
https://bugs.webkit.org/show_bug.cgi?id=201829

Reviewed by Yusuke Suzuki.

Right now, the SamplingProfiler crashes in debug builds when trying
report results if it finds a JSFunction on the stack that doesn't have
RareData. It tries to allocate the function's rare data when we call
getOwnPropertySlot in order to get the function's name, but that fails
because we are not holding the VM's API lock. We fix it by just holding
the lock before reporting the results.

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::reportDataToOptionFile):

1:29 PM Changeset in webkit [249914] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] REGRESSION (r248938): Leak of uint32_t arrays in testFastForwardCopy32()
<https://webkit.org/b/201804>

Reviewed by Saam Barati.

  • b3/testb3_8.cpp:

(testFastForwardCopy32): Allocate arrays using
WTF::makeUniqueArray<uint32_t> to fix leaks caused by continue
statements.

1:24 PM Changeset in webkit [249913] by russell_e@apple.com
  • 2 edits in trunk/LayoutTests

[ macOS ] Layout tests webgpu/*-triangle-strip.html are flaky failures.
https://bugs.webkit.org/show_bug.cgi?id=201827

Unreviewed Test Gardening.

  • platform/mac/TestExpectations:
1:03 PM Changeset in webkit [249912] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark imported/w3c/web-platform-tests/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events-onerror.html as flaky on iOS.

This test was imported in r249886.

  • platform/ios-wk2/TestExpectations:
12:32 PM Changeset in webkit [249911] by sbarati@apple.com
  • 3 edits
    2 adds in trunk

JSObject::putInlineSlow should not ignore "proto" for Proxy
https://bugs.webkit.org/show_bug.cgi?id=200386
<rdar://problem/53854946>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/proxy-proto-in-prototype-chain.js: Added.
  • stress/proxy-property-replace-structure-transition.js: Added.

Source/JavaScriptCore:

We used to ignore 'proto' in putInlineSlow when the object in question
was Proxy. There is no reason for this, and it goes against the spec. So
I've removed that condition. This also has the effect that it fixes an
assertion firing inside our inline caching code which dictates that for a
property replace that the base value's structure must be equal to the
structure when we grabbed the structure prior to the put operation.
The old code caused a weird edge case where we broke this invariant.

  • runtime/JSObject.cpp:

(JSC::JSObject::putInlineSlow):

12:15 PM Changeset in webkit [249910] by pvollan@apple.com
  • 10 edits in trunk/Source/WebKit

REGRESSION(249649): Unable to open local files in MiniBrowser on macOS
https://bugs.webkit.org/show_bug.cgi?id=201798

Reviewed by Brent Fulgham.

The commit <https://trac.webkit.org/changeset/249649> introduced a MiniBrowser regression on macOS where
MiniBrowser is not able to open local files. The change set r249649 fixed a problem where the WebContent
process PID was not ready to be used when creating a sandbox extension. This happened in the cases where
the WebContent process had not finished launching when the load started. The WebContent process is also
creating sandbox extensions for the Networking process for the files being loaded, and also needs to be
passing the PID of the Networking process when creating these. This patch is addressing this by getting
the PID of the Networking process when the WebContent process is initially getting the connection to the
Networking process. The PID is then stored in the NetworkProcessConnection class, from where it is passed
to the NetworkLoadParameters, and used when creating the sandbox extension for the Networking process.

  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::~NetworkProcessProxy):
(WebKit::NetworkProcessProxy::openNetworkProcessConnection):
(WebKit::NetworkProcessProxy::networkProcessCrashed):
(WebKit::NetworkProcessProxy::didFinishLaunching):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadRequestWithNavigationShared):

  • UIProcess/WebProcessProxy.messages.in:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::NetworkProcessConnection):

  • WebProcess/Network/NetworkProcessConnection.h:

(WebKit::NetworkProcessConnection::create):
(WebKit::NetworkProcessConnection::networkProcessPID const):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::getNetworkProcessConnection):
(WebKit::WebProcess::ensureNetworkProcessConnection):

11:59 AM Changeset in webkit [249909] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

[GTK] Remove GraphicsContext3D dependency from the outside of WebGL
https://bugs.webkit.org/show_bug.cgi?id=201748

Patch by ChangSeok Oh <ChangSeok Oh> on 2019-09-16
Reviewed by Alex Christensen.

This is a preliminary change to bring ANGLE support for WebGL to GTK port.
GraphicsContext3DANGLE has its own egl context but we want to make ANGLE egl context
for WebGL and other GL contexts (i.e., glx, gles/egl) for TextureMapper live together.
Mixed uses of GraphicsContext3D outside of WebGL code could cause unintended behaviors.
We want to make sure that only WebGL code uses it.

No new tests since no functionality changed.

  • platform/graphics/GLContext.cpp:
  • platform/graphics/GLContext.h:
  • platform/graphics/glx/GLContextGLX.cpp:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::GstVideoFrameHolder::platformLayerBuffer):
(WebCore::MediaPlayerPrivateGStreamerBase::nativeImageForCurrentTime):

  • platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp:
11:44 AM Changeset in webkit [249908] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC] Make the nested Geometry/MarginCollapse/Quirks c'tors private.
https://bugs.webkit.org/show_bug.cgi?id=201825
<rdar://problem/55403474>

Reviewed by Antti Koivisto.

The Geometry/MarginCollapse/Quirks objects should be constructed through the corresponding accessor functions.
This is also a preparation for being able to pass the layout box in to these stack objects and call geometry(layoutBox)->outOfFlowVerticalGeometry() vs. geometry()->outOfFlowVerticalGeometry(layoutBox).

  • layout/FormattingContext.h:
  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):

  • layout/blockformatting/BlockFormattingContextQuirks.cpp:

(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/tableformatting/TableFormattingContext.h:
11:29 AM Changeset in webkit [249907] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

[WebAuthn] REGRESSION (r249059): Leak of WKMockNFTag objects and WKMockNFTag instance variables
<https://webkit.org/b/201813>

Reviewed by Darin Adler.

  • UIProcess/WebAuthentication/Mock/MockNfcService.mm:

(-[WKMockNFTag dealloc]): Add method and release instance
variables to fix leaks.
(WebKit::MockNfcService::detectTags const): Use adoptNS() to fix
leaks of WKMockNFTag objects.

10:44 AM Changeset in webkit [249906] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

check-webkit-style: Fix warning message for std::make_unique<typename[]>
<https://webkit.org/b/201818>

Reviewed by Darin Adler.

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

(check_wtf_make_unique): Emit different error message when using
std::make_unique<>() to create an array. Personalize the error
message by including the original type name, which also
demonstrates that WTF::makeUniqueArray<>() does not need square
brackets for its typename.

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

(WebKitStyleTest.test_wtf_make_unique): Add test.
(WebKitStyleTest.test_wtf_make_unique_array): Ditto.

10:30 AM Changeset in webkit [249905] by Jon Davis
  • 2 edits in trunk/Source/WebCore

Update feature status for Battery Status API, WebGL 2, and Dialog Element
https://bugs.webkit.org/show_bug.cgi?id=201469

Reviewed by Joseph Pecoraro.

  • features.json:
10:15 AM Changeset in webkit [249904] by commit-queue@webkit.org
  • 8 edits in trunk

Rename [WebAccessibilityObjectWrapper _accessibilityInsertText] to accessibilityInsertText to match accessibility client.
https://bugs.webkit.org/show_bug.cgi?id=201820

Patch by Andres Gonzalez <Andres Gonzalez> on 2019-09-16
Reviewed by Chris Fleizach.

Source/WebCore:

No new tests necessary since this is a method rename.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityInsertText:]):
(-[WebAccessibilityObjectWrapper _accessibilityInsertText:]): Deleted.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityInsertText:]):
(-[WebAccessibilityObjectWrapper _accessibilityInsertText:]): Deleted.

Tools:

  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::insertText):

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::insertText):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::insertText):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::insertText):

9:56 AM Changeset in webkit [249903] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC] Always provide a containing block width value to compute* functions.
https://bugs.webkit.org/show_bug.cgi?id=201809
<rdar://problem/55383153>

Reviewed by Antti Koivisto.

The caller can always make a more informative decision about the default value when the containing block width is not available.
(Currently the only case is when computing the preferred width.)

  • layout/FormattingContext.cpp:

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

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::shrinkToFitWidth):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inFlowPositionedPositionOffset const):
(WebCore::Layout::FormattingContext::Geometry::computedPadding const):
(WebCore::Layout::FormattingContext::Geometry::computedHorizontalMargin const):
(WebCore::Layout::FormattingContext::Geometry::computedVerticalMargin const):

  • layout/LayoutUnits.h:

(WebCore::Layout::UsedHorizontalValues::UsedHorizontalValues):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::InlineFormattingContext::computeWidthAndHeightForReplacedInlineBox):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):

9:41 AM Changeset in webkit [249902] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r243113): Leak of multiple instance variable blocks when deallocating _WKAttributedStringNavigationDelegate
<https://webkit.org/b/201812>

Reviewed by Timothy Hatcher.

  • UIProcess/API/Cocoa/NSAttributedString.mm:

(-[_WKAttributedStringNavigationDelegate dealloc]): Add method
to release instance variable blocks to fix potential leaks.

9:26 AM Changeset in webkit [249901] by ddkilzer@apple.com
  • 6 edits in trunk/Tools

Fix leaks in DumpRenderTree and WebKitTestRunner
<https://webkit.org/b/201814>

Reviewed by Darin Adler.

  • DumpRenderTree/TestNetscapePlugIn/PluginObject.h:

(createCoreAnimationLayer): Fix signature to return CFTypeRef.
Add CF_RETURNS_RETAINED to document behavior.

  • DumpRenderTree/TestNetscapePlugIn/PluginObjectMac.mm:

(createCoreAnimationLayer): Fix signature to return CFTypeRef.

  • DumpRenderTree/mac/PixelDumpSupportMac.mm:

(takeWindowSnapshot): Add CF_RETURNS_RETAINED to document
behavior.
(createBitmapContextFromWebView): Fix leak of CGImageRef when
generating a replacement image.

  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm: Add @dynamic

declaration for _stableStateOverride so compiler wouldn't try to
create another instance variable for it.

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(-[EventSenderSyntheticEvent initPressureEventAtLocation:globalLocation:stage:pressure:stageTransition:phase:time:eventNumber:window:]):
Release cgEvent to fix leak.

9:11 AM Changeset in webkit [249900] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][BFC] BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin should not read containing block's width
https://bugs.webkit.org/show_bug.cgi?id=201807
<rdar://problem/55381342>

Reviewed by Antti Koivisto.

This is in preparation for using constraint values instead of querying the display tree for containing block geometry information.
See webkit.org/b/201795

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):

9:04 AM Changeset in webkit [249899] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip a couple of new WPT tests that are timing out on the bots.

These tests were imported in r249886.

8:58 AM Changeset in webkit [249898] by Chris Dumez
  • 4 edits in trunk/LayoutTests

Unreviewed, land expectations for imported/w3c/web-platform-tests/html/browsers/offline/application-cache-api/api_swapcache_error.https.html.

This test was imported in r249886.

LayoutTests/imported/w3c:

  • web-platform-tests/html/browsers/offline/application-cache-api/api_swapcache_error.https-expected.txt:

LayoutTests:

8:53 AM Changeset in webkit [249897] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark imported/w3c/web-platform-tests/html/rendering/replaced-elements/embedded-content/video-controls-vertical-writing-mode.html as failing

This test was imported from upstream in r249886.

8:48 AM Changeset in webkit [249896] by Chris Dumez
  • 4 edits in trunk/LayoutTests

Unreviewed, address flakiness of imported/w3c/web-platform-tests/html/browsers/offline/application-cache-api/api_update.https.html

Flaky since r249886.

LayoutTests/imported/w3c:

  • web-platform-tests/html/browsers/offline/application-cache-api/api_update.https-expected.txt:

LayoutTests:

7:31 AM Changeset in webkit [249895] by Antti Koivisto
  • 31 edits in trunk

LayoutTests/imported/w3c:

Eliminate separate simple line layout path from TextIterator
https://bugs.webkit.org/show_bug.cgi?id=201760

Reviewed by Zalan Bujtas.

  • web-platform-tests/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-015-expected.txt:
  • web-platform-tests/css/css-grid/alignment/grid-row-axis-alignment-positioned-items-016-expected.txt:
  • web-platform-tests/innerText/getter-expected.txt:

Two '\t' subtests flip to FAIL because this was only supported on TextIterator simple line layout path.
This can now be fixed correctly for both paths.

Source/WebCore:
Eliminate separate simple line layout path from TextIterator
https://bugs.webkit.org/show_bug.cgi?id=201760

Reviewed by Zalan Bujtas.

Use the new line layout iterator to implement linebox traversal in TextIterator.

  • WebCore.xcodeproj/project.pbxproj:
  • editing/TextIterator.cpp:

(WebCore::TextIterator::advance):
(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::handleTextBox):

InlineTextBox* -> LineLayoutInterface::TextBoxIterator
Delete the seperate simple line layout path.

(WebCore::TextIterator::handleTextNodeFirstLetter):
(WebCore::TextIterator::emitCharacter):
(WebCore::TextIterator::emitText):

  • editing/TextIterator.h:
  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject):
(WebCore::write):

  • rendering/SimpleLineLayoutResolver.cpp:

(WebCore::SimpleLineLayout::RunResolver::Iterator::Iterator):
(WebCore::SimpleLineLayout::RunResolver::Iterator::advanceLines):

  • rendering/SimpleLineLayoutResolver.h:

(WebCore::SimpleLineLayout::RunResolver::Iterator::resolver const):
(WebCore::SimpleLineLayout::RunResolver::Iterator::inQuirksMode const):
(WebCore::SimpleLineLayout::RunResolver::Iterator::operator== const):
(WebCore::SimpleLineLayout::RunResolver::Iterator::simpleRun const):

Make RunResolver::Iterator copyable (so TextBoxIterator becomes copyable too).

  • rendering/SimpleLineLayoutTextFragmentIterator.cpp:

(WebCore::SimpleLineLayout::TextFragmentIterator::findNextTextFragment):

  • rendering/line/LineLayoutInterfaceTextBoxes.cpp:

(WebCore::LineLayoutInterface::TextBox::rect const):
(WebCore::LineLayoutInterface::TextBox::logicalRect const):
(WebCore::LineLayoutInterface::TextBox::hasHyphen const):
(WebCore::LineLayoutInterface::TextBox::isLeftToRightDirection const):
(WebCore::LineLayoutInterface::TextBox::dirOverride const):
(WebCore::LineLayoutInterface::TextBox::text const):
(WebCore::LineLayoutInterface::TextBox::localStartOffset const):
(WebCore::LineLayoutInterface::TextBox::localEndOffset const):
(WebCore::LineLayoutInterface::TextBox::length const):

Add offset and length functions.

(WebCore::LineLayoutInterface::TextBox::iterator const):
(WebCore::LineLayoutInterface::TextBoxIterator::TextBoxIterator):
(WebCore::LineLayoutInterface::TextBoxIterator::traverseNext):
(WebCore::LineLayoutInterface::TextBoxIterator::operator== const):
(WebCore::LineLayoutInterface::TextBoxIterator::atEnd const):
(WebCore::LineLayoutInterface::Provider::firstTextBoxFor):
(WebCore::LineLayoutInterface::Provider::textBoxRangeFor):
(WebCore::LineLayoutInterface::Provider::iteratorForInlineTextBox):

Add Provider class for making iterators. It constructs and keeps SimpleLineLayout::Resolvers alive during traversal as needed.

  • rendering/line/LineLayoutInterfaceTextBoxes.h:

(WebCore::LineLayoutInterface::TextBoxIterator::TextBoxIterator):
(WebCore::LineLayoutInterface::TextBoxIterator::operator bool const):
(WebCore::LineLayoutInterface::TextBoxIterator::operator== const):
(WebCore::LineLayoutInterface::TextBoxIterator::operator!= const):
(WebCore::LineLayoutInterface::TextBoxIterator::operator* const):
(WebCore::LineLayoutInterface::TextBoxIterator::operator-> const):

Make TextBoxIterator privately inherit TextBox. This way we don't need to construct temporaries and can easily implement operator->.

(WebCore::LineLayoutInterface::TextBoxRange::TextBoxRange):
(WebCore::LineLayoutInterface::TextBoxRange::begin const):
(WebCore::LineLayoutInterface::TextBoxRange::end const):

Use separate end() type of C++17 ranges.

LayoutTests:
Eliminate separate simple line layout path from TextIterator
https://bugs.webkit.org/show_bug.cgi?id=201760

Reviewed by Zalan Bujtas.

This patch makes simple and complex line layout path results from TextIterator match, causing some whitespace changes.

  • animations/lineheight-animation-expected.txt:
  • animations/simultaneous-start-transform-expected.txt:
  • animations/width-using-ems-expected.txt:
  • compositing/shared-backing/overflow-scroll/absolute-in-stacking-relative-in-scroller-expected.txt:
  • css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute-expected.txt:
  • fast/events/window-events-bubble-expected.txt:
  • fast/events/window-events-bubble2-expected.txt:
  • fast/tokenizer/script_extra_close-expected.txt:
  • legacy-animation-engine/animations/lineheight-animation-expected.txt:
  • legacy-animation-engine/animations/simultaneous-start-transform-expected.txt:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-overflow-expected.txt:
5:56 AM WebKitGTK/2.26.x edited by Michael Catanzaro
(diff)
4:37 AM Changeset in webkit [249894] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix.

  • NetworkProcess/NetworkConnectionToWebProcess.h: Add missing forward

declaration of the NetworkSession class.

2:04 AM Changeset in webkit [249893] by commit-queue@webkit.org
  • 18 edits
    2 adds in trunk

Expose misspelling ranges for editable content to accessibility clients.
https://bugs.webkit.org/show_bug.cgi?id=201752
<rdar://problem/49556828>

Patch by Andres Gonzalez <Andres Gonzalez> on 2019-09-16
Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/misspelling-range.html

Added [WebAccessibilityObjectWrapper misspellingTextMarkerRange] and
underlying AccessibilityObject implementation to expose misspellings to
accessibility clients that provide an alternative user interface to
spell checking.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::getMisspellingRange const):

  • accessibility/AccessibilityObject.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper misspellingTextMarkerRange:direction:]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(accessibilityMisspellingSearchCriteriaForParameterizedAttribute):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

Tools:

Test code needed for LayoutTests/accessibility/misspelling-range.html.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::misspellingTextMarkerRange):
(WTR::AccessibilityUIElement::indexForTextMarker):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::misspellingSearchParameterizedAttributeForCriteria):
(WTR::AccessibilityUIElement::misspellingTextMarkerRange):

LayoutTests:

  • accessibility/misspelling-range-expected.txt: Added.
  • accessibility/misspelling-range.html: Added.
  • platform/ios-simulator/TestExpectations:
1:46 AM Changeset in webkit [249892] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk/Source/ThirdParty/ANGLE

Remove commit.h copying build steps
https://bugs.webkit.org/show_bug.cgi?id=201785

Patch by James Darpinian <James Darpinian> on 2019-09-16
Reviewed by Alex Christensen.

  • ANGLE.xcodeproj/project.pbxproj: Remove leftover build step
  • CMakeLists.txt: Remove commit.h copying
  • src/common/version.h: Restore to upstream version
  • src/id/commit.h: Added.
  • update-angle.sh: Copy commit.h to id/commit.h at import time
1:01 AM Changeset in webkit [249891] by Chris Dumez
  • 33 edits in trunk/Source/WebKit

Store sessionID on the NetworkConnectionToWebProcess now that there is one session per WebProcess
https://bugs.webkit.org/show_bug.cgi?id=201789

Reviewed by Alex Christensen.

Store sessionID on the NetworkConnectionToWebProcess now that there is one session per WebProcess.
As a result, we no longer need to pass the sessionID in each IPC from the WebProcess to the
NetworkProcess.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::create):
(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::~NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::createSocketStream):
(WebKit::NetworkConnectionToWebProcess::createSocketChannel):
(WebKit::NetworkConnectionToWebProcess::networkSession):
(WebKit::NetworkConnectionToWebProcess::resolveBlobReferences):
(WebKit::NetworkConnectionToWebProcess::storageSession):
(WebKit::NetworkConnectionToWebProcess::startDownload):
(WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):
(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
(WebKit::NetworkConnectionToWebProcess::cookiesEnabled):
(WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
(WebKit::NetworkConnectionToWebProcess::getRawCookies):
(WebKit::NetworkConnectionToWebProcess::deleteCookie):
(WebKit::NetworkConnectionToWebProcess::registerFileBlobURL):
(WebKit::NetworkConnectionToWebProcess::registerBlobURL):
(WebKit::NetworkConnectionToWebProcess::registerBlobURLFromURL):
(WebKit::NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked):
(WebKit::NetworkConnectionToWebProcess::registerBlobURLForSlice):
(WebKit::NetworkConnectionToWebProcess::unregisterBlobURL):
(WebKit::NetworkConnectionToWebProcess::blobSize):
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):
(WebKit::NetworkConnectionToWebProcess::removeStorageAccessForFrame):
(WebKit::NetworkConnectionToWebProcess::clearPageSpecificDataForResourceLoadStatistics):
(WebKit::NetworkConnectionToWebProcess::logUserInteraction):
(WebKit::NetworkConnectionToWebProcess::hasStorageAccess):
(WebKit::NetworkConnectionToWebProcess::requestStorageAccess):
(WebKit::NetworkConnectionToWebProcess::requestStorageAccessUnderOpener):
(WebKit::NetworkConnectionToWebProcess::startTrackingResourceLoad):
(WebKit::NetworkConnectionToWebProcess::establishIDBConnectionToServer):
(WebKit::NetworkConnectionToWebProcess::unregisterSWConnection):
(WebKit::NetworkConnectionToWebProcess::establishSWServerConnection):
(WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):

  • NetworkProcess/NetworkConnectionToWebProcess.h:

(WebKit::NetworkConnectionToWebProcess::sessionID const):
(WebKit::NetworkConnectionToWebProcess::startDownload):

  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::start):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::openNetworkProcessConnection):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::sessionID const):

  • UIProcess/WebProcessProxy.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):

  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerFileBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURLOptionallyFileBacked):
(WebKit::BlobRegistryProxy::unregisterBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURLForSlice):
(WebKit::BlobRegistryProxy::blobSize):

  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles):

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::connect):

  • WebProcess/Network/WebSocketStream.cpp:

(WebKit::WebSocketStream::WebSocketStream):

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::WebSWClientConnection):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::m_userAgent):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::detachedFromParent2):
(WebKit::WebFrameLoaderClient::dispatchWillChangeDocument):

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

(WebKit::WebResourceLoadObserver::requestStorageAccessUnderOpener):
(WebKit::WebResourceLoadObserver::logUserInteractionWithReducedTimeResolution):

  • WebProcess/WebPage/WebCookieJar.cpp:

(WebKit::WebCookieJar::cookies const):
(WebKit::WebCookieJar::setCookies):
(WebKit::WebCookieJar::cookiesEnabled const):
(WebKit::WebCookieJar::cookieRequestHeaderFieldValue const):
(WebKit::WebCookieJar::getRawCookies const):
(WebKit::WebCookieJar::deleteCookie):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::startDownload):
(WebKit::WebFrame::convertMainResourceLoadToDownload):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::close):
(WebKit::WebPage::hasStorageAccess):
(WebKit::WebPage::requestStorageAccess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::createWebPage):
(WebKit::WebProcess::removeWebPage):

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::sessionID const):

12:49 AM Changeset in webkit [249890] by Carlos Garcia Campos
  • 6 edits in trunk

REGRESSION(r249142): [GTK] Epiphany delayed page loads continue indefinitely
https://bugs.webkit.org/show_bug.cgi?id=201544

Reviewed by Michael Catanzaro.

Source/WebKit:

WebPageProxy::loadAlternateHTML() is an exception, because it's an API request but always sets the navigationID
to 0. We always want to reset the pending API request URL when alternate HTML load starts.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared): Check also that it's an API alternate HTML load
to reset the pending API request URL.

Tools:

Add new test cases.

  • TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp:

(testWebViewActiveURI):
(testWebViewIsLoading):

  • TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.cpp:

(loadChangedCallback):
(LoadTrackingTest::loadAlternateHTML):
(LoadTrackingTest::reset):

  • TestWebKitAPI/glib/WebKitGLib/LoadTrackingTest.h:

Sep 15, 2019:

10:51 PM Changeset in webkit [249889] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r248592): Leak of CFDictionaryRef in WebKit::NetworkRTCProvider::proxyInfoFromSession()
<https://webkit.org/b/201811>

Reviewed by Youenn Fablet.

  • NetworkProcess/webrtc/NetworkRTCProvider.mm:

(WebKit::NetworkRTCProvider::proxyInfoFromSession): Use
RetainPtr<> to fix the leak.

5:41 PM Changeset in webkit [249888] by aestes@apple.com
  • 4 edits
    6 adds in trunk/Source/WebCore

[WebIDL] Derived dictionaries should inherit their inherited dictionaries' partials
https://bugs.webkit.org/show_bug.cgi?id=201802

Reviewed by Sam Weinig.

Prior to this change, a dictionary D that inherits from dictionary B would not inherit B's
partial dictionaries. Fixed this by moving supplemental dependencies processing from
generate-bindings.pl to CodeGenerator.pm and reusing it in GetDictionaryByType.

Added new bindings tests.

  • bindings/scripts/CodeGenerator.pm:

(new):
(ProcessDocument):
(ProcessSupplementalDependencies):
(shouldPropertyBeExposed):
(GetDictionaryByType):

  • bindings/scripts/generate-bindings.pl:

(generateBindings):
(shouldPropertyBeExposed): Deleted.

  • bindings/scripts/test/JS/JSTestDerivedDictionary.cpp: Added.

(WebCore::convertDictionary<TestDerivedDictionary>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/JS/JSTestDerivedDictionary.h: Added.
  • bindings/scripts/test/JS/JSTestInheritedDictionary.cpp: Added.

(WebCore::convertDictionary<TestInheritedDictionary>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/JS/JSTestInheritedDictionary.h: Added.
  • bindings/scripts/test/TestDerivedDictionary.idl: Added.
  • bindings/scripts/test/TestInheritedDictionary.idl: Added.
  • bindings/scripts/test/TestSupplemental.idl:
2:43 PM Changeset in webkit [249887] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

Missing call to [self init] in -[WebScrollbarPartAnimation initWithScrollbar:featureToAnimate:animateFrom:animateTo:duration:]
<https://webkit.org/b/201806>

Reviewed by Simon Fraser.

  • platform/mac/ScrollAnimatorMac.mm:

(-[WebScrollbarPartAnimation initWithScrollbar:featureToAnimate:animateFrom:animateTo:duration:]):
Call [self init] and return early if the result is nil.

12:25 PM Changeset in webkit [249886] by Chris Dumez
  • 442 edits
    13 moves
    2115 adds
    71 deletes in trunk/LayoutTests

Re-sync HTML web-platform-tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=201753

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Re-sync HTML web-platform-tests from upstream 8893b1bcfc2ca0675f4e81.

  • web-platform-tests/html/*: Updated.

LayoutTests:

  • TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
  • platform/mac/TestExpectations:
  • platform/mac/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash-expected.txt:
  • platform/win/TestExpectations:
  • tests-options.json:
10:17 AM Changeset in webkit [249885] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Leak of NSMapTable in -[JSVirtualMachine addManagedReference:withOwner:]
<https://webkit.org/b/201803>

Reviewed by Dan Bernstein.

  • API/JSVirtualMachine.mm:

(-[JSVirtualMachine addManagedReference:withOwner:]): Use
RetainPtr<> to fix the leak.

7:14 AM Changeset in webkit [249884] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

block-spammers should obtain credentials the same way as webkit-patch
<https://webkit.org/b/201733>

Reviewed by Lucas Forschler.

  • Scripts/block-spammers: Import Credentials from webkitpy.

Remove unused imports. Enable logging at info level to match
webkit-patch.
(get_bugzilla_token): Use Credentials module to get
bugs.webkit.org credentials.

  • Scripts/webkitpy/common/net/credentials.py:

(Credentials._run_security_tool): Change logging level from
error to info since multiple attempts are made at reading the
keychain. Fix typos in comment.
(Credentials._credentials_from_security_command): Extract common
logic from Credentials._credentials_from_keychain into new
method.
(Credentials._credentials_from_keychain): Make fallback logic
for checking for credentials in the keychain more consistent and
easier to read. Add error logging if no credentials are found.

6:30 AM Changeset in webkit [249883] by Adrian Perez de Castro
  • 2 edits in trunk

[GTK][WPE] Do not run the Bubblewrap executable when configuring for cross-compilation
https://bugs.webkit.org/show_bug.cgi?id=201340

Reviewed by Konstantin Tokarev.

  • Source/cmake/BubblewrapSandboxChecks.cmake: Do not run the

Bubblewrap executable when cross-compiling to guess its version.
Emit a warning instead and trust that valid run-time paths will
be set using the BWRAP_EXECUTABLE and DBUS_PROXY_EXECUTABLE
variables. While at it, fix the regular expression used to match
the version string in the Bubblewrap output when not cross-compiling.

Sep 14, 2019:

3:45 PM Changeset in webkit [249882] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] Check for a Snap sandbox a bit harder
https://bugs.webkit.org/show_bug.cgi?id=201793

Reviewed by Michael Catanzaro.

  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::isInsideSnap): Check whether the SNAP_NAME and SNAP_REVISION
environment variables are defined as well.

3:31 PM Changeset in webkit [249881] by Justin Fan
  • 11 edits in trunk/Source/WebCore

[WebGPU] Make WebGPURenderPipeline and WebGPUComputePipeline inherit from GPUObjectBase
https://bugs.webkit.org/show_bug.cgi?id=201207

Reviewed by Dean Jackson.

Make remaining WebGPU "client" classes manage their error scopes, instead of the internal classes.
Matches Web/GPUBuffer, and allows "invalid" WebGPU objects to create errors.

Covered by existing tests.

  • Modules/webgpu/WebGPUComputePipeline.cpp:

(WebCore::WebGPUComputePipeline::create):
(WebCore::WebGPUComputePipeline::WebGPUComputePipeline):

  • Modules/webgpu/WebGPUComputePipeline.h:
  • Modules/webgpu/WebGPUDevice.cpp:

(WebCore::WebGPUDevice::createRenderPipeline const):
(WebCore::WebGPUDevice::createComputePipeline const):

  • Modules/webgpu/WebGPURenderPipeline.cpp:

(WebCore::WebGPURenderPipeline::create):
(WebCore::WebGPURenderPipeline::WebGPURenderPipeline):

  • Modules/webgpu/WebGPURenderPipeline.h:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/gpu/GPUComputePipeline.h:
  • platform/graphics/gpu/GPURenderPipeline.h:
  • platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm:

(WebCore::GPUComputePipeline::tryCreate):
(WebCore::GPUComputePipeline::GPUComputePipeline):

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

(WebCore::GPURenderPipeline::tryCreate):
(WebCore::GPURenderPipeline::GPURenderPipeline):

12:36 PM Changeset in webkit [249880] by ysuzuki@apple.com
  • 26 edits in trunk/Source

Retire x86 32bit JIT support
https://bugs.webkit.org/show_bug.cgi?id=201790

Reviewed by Mark Lam.

Source/JavaScriptCore:

Now, Xcode no longer has ability to build 32bit binary, so we cannot even test it on macOS.
Fedora stops shipping x86 32bit kernel. Our x86/x86_64 JIT requires SSE2, and so such relatively modern CPUs
can use JIT by switching x86 to x86_64. And these CPUs are modern enough to run CLoop at high speed.
WebKit already disabled x86 JIT by default while the implementation exists. So literary, it is not tested.

While x86 32bit becomes less useful, x86 32bit JIT backend is very complicated and is being a major maintenance burden.
This is due to very few # of registers. Which scatters a lot of isX86 / CPU(X86) in Baseline, DFG, and Yarr.

This patch retires x86 JIT support from JavaScriptCore and CSS JIT. We still keep MacroAssembler and GPRInfo / FPRInfo,
MachineContext information since they are useful even though JIT is not supported.

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::refine const):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compileExceptionHandlers):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::osrWriteBarrier):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithDiv):
(JSC::DFG::SpeculativeJIT::compileArithMod):
(JSC::DFG::SpeculativeJIT::compileCreateRest):
(JSC::DFG::SpeculativeJIT::compileGetDirectPname):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitGenerationThunkGenerator):

  • ftl/FTLThunks.cpp:

(JSC::FTL::slowPathCallThunkGenerator):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::callExceptionFuzz):
(JSC::AssemblyHelpers::debugCall):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitComputeButterflyIndexingMask):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsImpl):
(JSC::CCallHelpers::prepareForTailCallSlow):

  • jit/CallFrameShuffler.cpp:

(JSC::CallFrameShuffler::prepareForTailCall):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileExceptionHandlers):

  • jit/JITArithmetic32_64.cpp:

(JSC::JIT::emit_op_mod):
(JSC::JIT::emitSlow_op_mod):

  • jit/SlowPathCall.h:

(JSC::JITSlowPathCall::call):

  • jit/ThunkGenerators.cpp:

(JSC::nativeForGenerator):
(JSC::arityFixupGenerator):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::emitModOrDiv):

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::generateDotStarEnclosure):
(JSC::Yarr::YarrGenerator::generateEnter):
(JSC::Yarr::YarrGenerator::generateReturn):
(JSC::Yarr::YarrGenerator::compile):

  • yarr/YarrJIT.h:

Source/WebCore:

  • cssjit/FunctionCall.h:

(WebCore::FunctionCall::callAndBranchOnBooleanReturnValue):
(WebCore::FunctionCall::swapArguments):

Source/WTF:

  • wtf/Platform.h:
11:52 AM Changeset in webkit [249879] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC] FormattingContext::Geometry::inFlowPositionedPositionOffset should not read containing block's width
https://bugs.webkit.org/show_bug.cgi?id=201797
<rdar://problem/55366244>

Reviewed by Antti Koivisto.

This is in preparation for using constraint values instead of querying the display tree for containing block geometry information.
See webkit.org/b/201795

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

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

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):

  • layout/inlineformatting/InlineFormattingContextLineLayout.cpp:

(WebCore::Layout::InlineFormattingContext::InlineLayout::createDisplayRuns const):

11:05 AM Changeset in webkit [249878] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[LFC] FormattingContext::Geometry::inlineReplacedHeightAndMargin should not read containing block's width
https://bugs.webkit.org/show_bug.cgi?id=201796
<rdar://problem/55366109>

Reviewed by Antti Koivisto.

This is in preparation for using constraint values instead of querying the display tree for containing block geometry information.
See webkit.org/b/201795

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

(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const):

10:23 AM Changeset in webkit [249877] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry should not read containing block's width.
https://bugs.webkit.org/show_bug.cgi?id=201794
<rdar://problem/55365669>

Reviewed by Antti Koivisto.

This is in preparation for using constraint values instead of querying the display tree for containing block geometry information.
See webkit.org/b/201795

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):

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

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):

9:00 AM Changeset in webkit [249876] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

newController may be moved several times under SWClientConnection::notifyClientsOfControllerChange()
https://bugs.webkit.org/show_bug.cgi?id=201792
<rdar://problem/55351284>

Reviewed by Youenn Fablet.

Stop WTFMove()'ing inside the for loop.

  • workers/service/SWClientConnection.cpp:

(WebCore::SWClientConnection::notifyClientsOfControllerChange):

8:41 AM Changeset in webkit [249875] by mark.lam@apple.com
  • 2 edits in branches/safari-608.2.11.1-branch/Source/JavaScriptCore

Cherry-pick r249345. rdar://problem/55362909

2019-08-30 Mark Lam <mark.lam@apple.com>

Fix a bug in SlotVisitor::reportZappedCellAndCrash() and also capture more information.
https://bugs.webkit.org/show_bug.cgi?id=201345

Reviewed by Yusuke Suzuki.

This patch fixes a bug where SlotVisitor::reportZappedCellAndCrash() was using
the wrong pointer for capture the cell headerWord and zapReason. As a result,
we get junk for those 2 values.

Previously, we were only capturing the upper 32-bits of the cell header slot,
and the lower 32-bit of the next slot in the zapped cell. We now capture the
full 64-bits of both slots. If the second slot did not contain a zapReason as we
expect, the upper 32-bits might give us a clue as to what type of value the slot
contains.

This patch also adds capturing of the found MarkedBlock address for the zapped
cell, as well as some state bit values.

  • heap/SlotVisitor.cpp: (JSC::SlotVisitor::reportZappedCellAndCrash):
8:16 AM Changeset in webkit [249874] by mark.lam@apple.com
  • 22 edits in branches/safari-608.2.11.1-branch

Source/JavaScriptCore:
Cherry-pick r248143, r248162. rdar://problem/55362908

Also deleted an unused function. This is needed to resolve a merge conflict for
this patch.

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::Handle::zap): Deleted.

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::Handle::zap): Deleted.

2019-08-01 Mark Lam <mark.lam@apple.com>

Add crash diagnostics for debugging unexpected zapped cells.
https://bugs.webkit.org/show_bug.cgi?id=200149
<rdar://problem/53570112>

Reviewed by Yusuke Suzuki.

Add a check for zapped cells in SlotVisitor::appendToMarkStack() and
SlotVisitor::visitChildren(). If a zapped cell is detected, we will crash with
some diagnostic info.

To facilitate this, we've made the following changes:

  1. Changed FreeCell to preserve the 1st 8 bytes. This is fine to do because all cells are at least 16 bytes long.
  2. Changed HeapCell::zap() to only zap the structureID. Leave the rest of the cell header info intact (including the cell JSType).
  3. Changed HeapCell::zap() to record the reason for zapping the cell. We stash the reason immediately after the first 8 bytes. This is the same location as FreeCell::scrambledNext. However, since a cell is not expected to be zapped and on the free list at the same time, it is also fine to do this.
  4. Added a few utility functions to MarkedBlock for checking if a cell points into the block.
  5. Added VMInspector and JSDollarVM utilities to dump in-use subspace hashes.
  6. Added some comments to document the hashes of known subspaces.
  7. Added Options::dumpZappedCellCrashData() to make this check conditional. We use this option to disable this check for slower machines so that their PLT5 performance is not impacted.
  • assembler/CPU.cpp: (JSC::hwL3CacheSize): (JSC::hwPhysicalCPUMax):
  • assembler/CPU.h: (JSC::hwL3CacheSize): (JSC::hwPhysicalCPUMax):
  • heap/FreeList.h: (JSC::FreeCell::offsetOfScrambledNext):
  • heap/HeapCell.h: (JSC::HeapCell::zap): (JSC::HeapCell::isZapped const):
  • heap/MarkedBlock.cpp: (JSC::MarkedBlock::Handle::stopAllocating):
  • heap/MarkedBlock.h: (JSC::MarkedBlock::Handle::start const): (JSC::MarkedBlock::Handle::end const): (JSC::MarkedBlock::Handle::contains const):
  • heap/MarkedBlockInlines.h: (JSC::MarkedBlock::Handle::specializedSweep):
  • heap/MarkedSpace.h: (JSC::MarkedSpace::forEachSubspace):
  • heap/SlotVisitor.cpp: (JSC::SlotVisitor::appendToMarkStack): (JSC::SlotVisitor::visitChildren): (JSC::SlotVisitor::reportZappedCellAndCrash):
  • heap/SlotVisitor.h:
  • jit/AssemblyHelpers.cpp: (JSC::AssemblyHelpers::emitAllocateWithNonNullAllocator):
  • runtime/Options.cpp: (JSC::Options::initialize):
  • runtime/Options.h:
  • runtime/VM.cpp: (JSC::VM::VM):
  • tools/JSDollarVM.cpp: (JSC::functionDumpSubspaceHashes): (JSC::JSDollarVM::finishCreation):
  • tools/VMInspector.cpp: (JSC::VMInspector::dumpSubspaceHashes):
  • tools/VMInspector.h:

2019-08-02 Mark Lam <mark.lam@apple.com>

Gardening: build fix.
https://bugs.webkit.org/show_bug.cgi?id=200149
<rdar://problem/53570112>

Not reviewed.

  • assembler/CPU.cpp: (JSC::hwPhysicalCPUMax):

Source/WebCore:
Cherry-pick r248143. rdar://problem/55362908

2019-08-01 Mark Lam <mark.lam@apple.com>

Add crash diagnostics for debugging unexpected zapped cells.
https://bugs.webkit.org/show_bug.cgi?id=200149
<rdar://problem/53570112>

Reviewed by Yusuke Suzuki.

No new tests because this is a feature for debugging crashes. It has been tested
manually by modifying the code to force a crash at the point of interest.

Added some comments to document the hashes of known subspaces.

  • bindings/js/WebCoreJSClientData.cpp: (WebCore::JSVMClientData::JSVMClientData):
6:55 AM Changeset in webkit [249873] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC] FormattingContext::Geometry::computedHeightValue should not read containing block's height.
https://bugs.webkit.org/show_bug.cgi?id=201791
<rdar://problem/55361695>

Reviewed by Antti Koivisto.

While sizing/positioning a particular box, we oftentimes need some containing block geometry information.
The idea here is that instead of calling formattingContext().geometry(containingBlock), these constraint values
would be pushed in to those compute* functions. It helps controlling the access to the display box tree and
prevents formatting context escaping.

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):

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

(WebCore::Layout::FormattingContext::Geometry::computedHeightValue const):
(WebCore::Layout::FormattingContext::Geometry::computedMaxHeight const):
(WebCore::Layout::FormattingContext::Geometry::computedMinHeight const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):

  • layout/LayoutUnits.h:
  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):

3:11 AM Changeset in webkit [249872] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Add release logging in WebLoaderStrategy to check that a load is going through service worker
https://bugs.webkit.org/show_bug.cgi?id=201761

Reviewed by Chris Dumez.

This allows identifying whether a load remains pending on the service worker fetch path.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):

1:52 AM Changeset in webkit [249871] by Antti Koivisto
  • 2 edits in trunk/LayoutTests

ASSERTION FAILED: !renderer() in WebCore::Text::~Text
https://bugs.webkit.org/show_bug.cgi?id=172514
<rdar://problem/32470509>

Unreviewed, this assert should be fixed now.

Unskipping imported/w3c/web-platform-tests/innerText/getter.html on debug

Note: See TracTimeline for information about the timeline view.