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

Timeline



Aug 29, 2019:

11:56 PM Changeset in webkit [249315] by Devin Rousso
  • 18 edits in trunk

Web Inspector: Debugger: async event listener stack traces should be available in Workers
https://bugs.webkit.org/show_bug.cgi?id=200903

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/agents/InspectorDebuggerAgent.h:

(Inspector::InspectorDebuggerAgent::enabled): Added.

  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::willDestroyFrontendAndBackend):
(Inspector::InspectorDebuggerAgent::enable):
(Inspector::InspectorDebuggerAgent::disable):
Allow subclasses to extend what it means for the InspectorDebuggerAgent to be enabled.

Source/WebCore:

Tests: inspector/worker/dom-debugger-event-interval-breakpoints.html

inspector/worker/dom-debugger-event-listener-breakpoints.html
inspector/worker/dom-debugger-event-timeout-breakpoints.html
inspector/worker/dom-debugger-url-breakpoints.html

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

(WebCore::WebDebuggerAgent::enabled const): Added.
(WebCore::WebDebuggerAgent::enable):
(WebCore::WebDebuggerAgent::disable):
(WebCore::WebDebuggerAgent::didAddEventListener): Added.
(WebCore::WebDebuggerAgent::willRemoveEventListener): Added.
(WebCore::WebDebuggerAgent::willHandleEvent): Added.
(WebCore::WebDebuggerAgent::didPostMessage): Added.
(WebCore::WebDebuggerAgent::didFailPostMessage): Added.
(WebCore::WebDebuggerAgent::willDispatchPostMessage): Added.
(WebCore::WebDebuggerAgent::didDispatchPostMessage): Added.
(WebCore::WebDebuggerAgent::didClearAsyncStackTraceData): Added.

  • inspector/agents/page/PageDebuggerAgent.h:
  • inspector/agents/page/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::enabled const): Added.
(WebCore::PageDebuggerAgent::enable):
(WebCore::PageDebuggerAgent::disable):
(WebCore::PageDebuggerAgent::didClearAsyncStackTraceData): Deleted.
(WebCore::PageDebuggerAgent::didAddEventListener): Deleted.
(WebCore::PageDebuggerAgent::willRemoveEventListener): Deleted.
(WebCore::PageDebuggerAgent::willHandleEvent): Deleted.
(WebCore::PageDebuggerAgent::didPostMessage): Deleted.
(WebCore::PageDebuggerAgent::didFailPostMessage): Deleted.
(WebCore::PageDebuggerAgent::willDispatchPostMessage): Deleted.
(WebCore::PageDebuggerAgent::didDispatchPostMessage): Deleted.
Move various InspectorInstrumentation calls from PageDebuggerAgent to WebDebuggerAgent
so that WorkerDebuggerAgent also inherits them.

  • inspector/InstrumentingAgents.h:

(WebCore::InstrumentingAgents::webDebuggerAgent const): Added.
(WebCore::InstrumentingAgents::setWebDebuggerAgent): Added.
(WebCore::InstrumentingAgents::inspectorDebuggerAgent const): Deleted.
(WebCore::InstrumentingAgents::setInspectorDebuggerAgent): Deleted.

  • inspector/InstrumentingAgents.cpp:

(WebCore::InstrumentingAgents::reset):

  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::mainFrameStartedLoading):
(WebCore::InspectorTimelineAgent::startProgrammaticCapture):
(WebCore::InspectorTimelineAgent::stopProgrammaticCapture):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
(WebCore::InspectorInstrumentation::isDebuggerPausedImpl):
(WebCore::InspectorInstrumentation::didInstallTimerImpl):
(WebCore::InspectorInstrumentation::didRemoveTimerImpl):
(WebCore::InspectorInstrumentation::didAddEventListenerImpl):
(WebCore::InspectorInstrumentation::willRemoveEventListenerImpl):
(WebCore::InspectorInstrumentation::didPostMessageImpl):
(WebCore::InspectorInstrumentation::didFailPostMessageImpl):
(WebCore::InspectorInstrumentation::willDispatchPostMessageImpl):
(WebCore::InspectorInstrumentation::didDispatchPostMessageImpl):
(WebCore::InspectorInstrumentation::willHandleEventImpl):
(WebCore::InspectorInstrumentation::didHandleEventImpl):
(WebCore::InspectorInstrumentation::willFireTimerImpl):
(WebCore::InspectorInstrumentation::didFireTimerImpl):
(WebCore::InspectorInstrumentation::scriptExecutionBlockedByCSPImpl):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::frameStartedLoadingImpl):
(WebCore::InspectorInstrumentation::frameStoppedLoadingImpl):
(WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
(WebCore::InspectorInstrumentation::didRequestAnimationFrameImpl):
(WebCore::InspectorInstrumentation::didCancelAnimationFrameImpl):
(WebCore::InspectorInstrumentation::willFireAnimationFrameImpl):
(WebCore::InspectorInstrumentation::didFireAnimationFrameImpl):
Replace inspectorDebuggerAgent with webDebuggerAgent so the right instrumentation hooks
are available.

LayoutTests:

  • inspector/worker/dom-debugger-event-interval-breakpoints-expected.txt:
  • inspector/worker/dom-debugger-event-listener-breakpoints-expected.txt:
  • inspector/worker/dom-debugger-event-timeout-breakpoints-expected.txt:
  • inspector/worker/dom-debugger-url-breakpoints-expected.txt:
  • inspector/worker/resources/worker-dom-debugger.js:
10:00 PM Changeset in webkit [249314] by Keith Rollin
  • 11 edits in trunk/Source

Remove HAVE_PASSKIT_GRANULAR_ERRORS conditional
https://bugs.webkit.org/show_bug.cgi?id=201278
<rdar://problem/54821052>

Reviewed by Alex Christensen.

HAVE_PASSKIT_GRANULAR_ERRORS is always True, so remove the conditional
tests, keeping the True branches and removing the False branches.

Source/WebCore/PAL:

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

Source/WebKit:

  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::PaymentAuthorizationPresenter::completePaymentSession):
(WebKit::PaymentAuthorizationPresenter::completeShippingContactSelection):

  • Platform/cocoa/PaymentAuthorizationViewController.mm:

(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didAuthorizePayment:completion:]): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectShippingMethod:completion:]): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectShippingContact:completion:]): Deleted.
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewController:didSelectPaymentMethod:completion:]): Deleted.

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

(-[WKPaymentAuthorizationDelegate completePaymentMethodSelection:]):
(-[WKPaymentAuthorizationDelegate completePaymentSession:errors:didReachFinalState:]):
(-[WKPaymentAuthorizationDelegate completeShippingContactSelection:summaryItems:shippingMethods:errors:]):
(-[WKPaymentAuthorizationDelegate completeShippingMethodSelection:]):

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCanMakePaymentsWithActiveCard):
(WebKit::toPKContactFields):
(WebKit::toNSSet):
(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest):
(WebKit::toPKAddressField): Deleted.

Source/WTF:

  • wtf/FeatureDefines.h:
9:35 PM Changeset in webkit [249313] by Chris Dumez
  • 23 edits in trunk/Source

Add "IsolatedCopy" in the name of String getters that call isolatedCopy() on the string
https://bugs.webkit.org/show_bug.cgi?id=201318

Reviewed by Alex Christensen.

Add "IsolatedCopy" in the name of String getters that call isolatedCopy() on the string, for clarity.

Source/WebCore:

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::createBackingStore):
(WebCore::IDBServer::IDBServer::performGetAllDatabaseNames):
(WebCore::IDBServer::IDBServer::removeDatabasesModifiedSinceForVersion):
(WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesModifiedSince):
(WebCore::IDBServer::IDBServer::removeDatabasesWithOriginsForVersion):
(WebCore::IDBServer::IDBServer::performCloseAndDeleteDatabasesForOrigins):
(WebCore::IDBServer::IDBServer::computeSpaceUsedForOrigin):
(WebCore::IDBServer::IDBServer::upgradeFilesIfNecessary):

  • Modules/indexeddb/server/IDBServer.h:

(WebCore::IDBServer::IDBServer::databaseDirectoryPathIsolatedCopy const):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::fullDatabaseDirectoryWithUpgrade):
(WebCore::IDBServer::SQLiteIDBBackingStore::databasesSizeForOrigin const):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:

(WebCore::IDBServer::SQLiteIDBBackingStore::databaseRootDirectoryIsolatedCopy const):

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::markAsDeletedAndClose):
(WebCore::Database::stringIdentifierIsolatedCopy const):
(WebCore::Database::displayNameIsolatedCopy const):
(WebCore::Database::expectedVersionIsolatedCopy const):
(WebCore::Database::fileNameIsolatedCopy const):
(WebCore::Database::details const):
(WebCore::Database::didCommitWriteTransaction):
(WebCore::Database::didExceedQuota):

  • Modules/webdatabase/Database.h:
  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::maximumSize):
(WebCore::DatabaseTracker::doneCreatingDatabase):
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::DatabaseTracker::removeOpenDatabase):

  • Modules/webdatabase/SQLError.h:

(WebCore::SQLError::messageIsolatedCopy const):

  • Modules/webdatabase/SQLError.idl:
  • Modules/webdatabase/SQLTransaction.cpp:

(WebCore::SQLTransaction::openTransactionAndPreflight):

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::openSQLiteDatabase):
(WebCore::RegistrationDatabase::clearAll):

  • workers/service/server/RegistrationDatabase.h:

(WebCore::RegistrationDatabase::databaseDirectoryIsolatedCopy const):

Source/WebKit:

  • NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.cpp:

(WebKit::ResourceLoadStatisticsPersistentStorage::storageDirectoryPathIsolatedCopy const):
(WebKit::ResourceLoadStatisticsPersistentStorage::resourceLogFilePath const):
(WebKit::ResourceLoadStatisticsPersistentStorage::monitorDirectoryForNewStatistics):

  • NetworkProcess/Classifier/ResourceLoadStatisticsPersistentStorage.h:
  • NetworkProcess/cache/NetworkCacheBlobStorage.cpp:

(WebKit::NetworkCache::BlobStorage::blobDirectoryPathIsolatedCopy const):
(WebKit::NetworkCache::BlobStorage::synchronize):
(WebKit::NetworkCache::BlobStorage::blobPathForHash const):

  • NetworkProcess/cache/NetworkCacheBlobStorage.h:
  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::basePathIsolatedCopy const):
(WebKit::NetworkCache::Storage::versionPath const):
(WebKit::NetworkCache::Storage::recordsPathIsolatedCopy const):
(WebKit::NetworkCache::Storage::synchronize):
(WebKit::NetworkCache::Storage::recordDirectoryPathForKey const):
(WebKit::NetworkCache::Storage::traverse):
(WebKit::NetworkCache::Storage::clear):
(WebKit::NetworkCache::Storage::shrink):
(WebKit::NetworkCache::Storage::deleteOldVersions):

  • NetworkProcess/cache/NetworkCacheStorage.h:
9:18 PM Changeset in webkit [249312] by Keith Rollin
  • 60 edits in trunk

Update .xcconfig symbols to reflect the current set of past and future product versions.
https://bugs.webkit.org/show_bug.cgi?id=200720
<rdar://problem/54305032>

Reviewed by Alex Christensen.

Remove version symbols related to old OS's we no longer support,
ensure that version symbols are defined for OS's we do support.

PerformanceTests:

  • MediaTime/Configurations/Base.xcconfig:
  • MediaTime/Configurations/DebugRelease.xcconfig:

Source/bmalloc:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:

Source/ThirdParty:

  • gtest/xcode/Config/DebugProject.xcconfig:
  • gtest/xcode/Config/ReleaseProject.xcconfig:

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:

Source/WebCore:

No new tests -- no new or changed functionality.

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:

Source/WebCore/PAL:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:

Source/WebInspectorUI:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:

Source/WebKit:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
  • Configurations/Version.xcconfig:

Source/WTF:

  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:

Tools:

  • ContentExtensionTester/Configurations/Base.xcconfig:
  • ContentExtensionTester/Configurations/DebugRelease.xcconfig:
  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • DumpRenderTree/mac/Configurations/DebugRelease.xcconfig:
  • ImageDiff/cg/Configurations/Base.xcconfig:
  • ImageDiff/cg/Configurations/DebugRelease.xcconfig:
  • MiniBrowser/Configurations/Base.xcconfig:
  • MiniBrowser/Configurations/DebugRelease.xcconfig:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/DebugRelease.xcconfig:
  • WebEditingTester/Configurations/Base.xcconfig:
  • WebEditingTester/Configurations/DebugRelease.xcconfig:
  • WebKitTestRunner/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/DebugRelease.xcconfig:
  • lldb/lldbWebKitTester/Configurations/Base.xcconfig:
  • lldb/lldbWebKitTester/Configurations/DebugRelease.xcconfig:
9:16 PM Changeset in webkit [249311] by Keith Rollin
  • 2 edits
    1 delete in trunk/Tools

Remove empty FontCache.cpp file in TestWebKitAPI
https://bugs.webkit.org/show_bug.cgi?id=201277
<rdar://problem/54820726>

Reviewed by Alex Christensen.

Bug 200694 emptied out the contents of FontCache.cpp. This patch
removes the file from the project.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/FontCache.cpp: Removed.
8:28 PM Changeset in webkit [249310] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] Repatch should construct CallCases and CasesValue at the same time
https://bugs.webkit.org/show_bug.cgi?id=201325

Reviewed by Saam Barati.

JSTests:

  • stress/repatch-switch.js: Added.

(main.f2.f0):
(main.f2.f3):
(main.f2.f1):
(main.f2):
(main):

Source/JavaScriptCore:

In linkPolymorphicCall, we should create callCases and casesValue at the same time to assert callCases.size() == casesValue.size().
If the call variant is isClosureCall and InternalFunction, we skip adding it to casesValue. So we should not add this variant to callCases too.

  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall):

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

Avoid running the outline painting phase if no renderers have outlines
https://bugs.webkit.org/show_bug.cgi?id=201284

Reviewed by Said Abou-Hallawa.

The outline painting phase (paintOutlineForFragments()) can take up to 20% of the painting time
even when there are no outlines. Keep track of which renderers have outlines, and only run the phase
when printing (for hasOutlineAnnotation()) or if there are any renderers with outlines.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):
(WebCore::RenderElement::styleDidChange):
(WebCore::RenderElement::willBeDestroyed):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerContents):

  • rendering/RenderView.h:
6:57 PM Changeset in webkit [249308] by Keith Rollin
  • 2 edits in trunk/Source/WebKit

Invalid XPCServices symlinks are being created
https://bugs.webkit.org/show_bug.cgi?id=201320
<rdar://problem/54719612>

Reviewed by Dan Bernstein.

When performing incremental builds, errant XPCServices symlinks can be
created. For example, in the following, the second symlink is the
correct one. The first symlink gets created when the build process
tries to create the symlink and it already exists. When it already
exists, the command to create the symlink actually follows the
existing symlink and creates the (second) symlink at the location
where the first symlink points.

WebKit.framework/Versions/A/XPCServices/XPCServices@ -> Versions/Current/XPCServices
WebKit.framework/XPCServices@ -> Versions/Current/XPCServices

Address this by specifying -h to the ln command, which will cause it
to not follow symlinks if they already exist at the target.

Also, fix a benign issue where the Xcode build variable WRAPPER_NAME
was being referenced in a context where it wasn't defined.

  • WebKit.xcodeproj/project.pbxproj:
6:40 PM Changeset in webkit [249307] by timothy@apple.com
  • 5 edits in trunk

Copying and pasting two paragraphs with a newline between them results in stray paragraph with newline inside.
https://bugs.webkit.org/show_bug.cgi?id=201306

Reviewed by Wenson Hsieh.

Source/WebCore:

Test: editing/pasteboard/paste-without-nesting.html

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor): Consider the ancestor node safe to remove
if there is no rendered text inside, not just if there are any child nodes.

LayoutTests:

  • editing/pasteboard/paste-without-nesting-expected.txt: Updated results.
  • editing/pasteboard/paste-without-nesting.html: Added new test case.
6:30 PM Changeset in webkit [249306] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] ObjectAllocationSinkingPhase wrongly deals with always-taken branches during interpretation
https://bugs.webkit.org/show_bug.cgi?id=198650

Reviewed by Saam Barati.

JSTests:

  • stress/object-allocation-sinking-interpretation-can-interpret-edges-that-can-be-proven-unreachable-in-ai.js:

(main.v0):
(main):

Source/JavaScriptCore:

Object Allocation Sinking phase has a lightweight abstract interpreter which interprets DFG nodes related to allocations and properties.
This interpreter is lightweight since it does not track abstract values and conditions as deeply as AI does. It can happen that this
interpreter interpret the control-flow edge that AI proved that is never taken.
AI already knows some control-flow edges are never taken, and based on this information, AI can remove CheckStructure nodes. But
ObjectAllocationSinking phase can trace this never-taken edges and propagate structure information that contradicts to the analysis
done in ObjectAllocationSinking.

Let's see the example.

BB#0

35: NewObject([%AM:Object])
...
47: Branch(ConstantTrue, T:#1, F:#2)

BB#1 This basic block is never taken due to @47's jump.

...
71: PutByOffset(@35, @66, id2{a}, 0, W:NamedProperties(2))
72: PutStructure(@35, %AM:Object -> %Dx:Object, ID:60066)
...
XX: Jump(#2)

BB#2

...
92: CheckStructure(@35, [%Dx:Object])
93: PutByOffset(@35, @35, id2{a}, 0, W:NamedProperties(2))
...

AI removes @92 because AI knows BB#0 only takes BB#1 branch. @35's Structure is always %Dx so @92 is redundant.
AI proved that @71 and @72 are always executed while BB#0 -> BB#2 edge is never taken so that @35 object's structure is proven at @92.
After AI removes @92, ObjectAllocationSinking starts looking into this graph.

BB#0

35: NewObject([%AM:Object])
...
47: Branch(ConstantTrue, T:#1, F:#2)

BB#1 This basic block is never taken due to @47's jump.

...
71: PutByOffset(@35, @66, id2{a}, 0, W:NamedProperties(2))
72: PutStructure(@35, %AM:Object -> %Dx:Object, ID:60066)
...
XX: Jump(#2)

BB#2

...
93: PutByOffset(@35, @35, id2{a}, 0, W:NamedProperties(2))
...
YY: Jump(#3)

BB#3

...
ZZ: <HERE> want to materialize @35's sunk object.

Since AI does not change the @47 Branch to Jump (it is OK anyway), BB#0 -> BB#2 edge remains and ObjectAllocationSinking phase propagates information in
BB#0's %AM structure information to BB#2. ObjectAllocationSinking phase converts @35 to PhantomNewObject, removes PutByOffset and PutStructure, and
insert MaterializeNewObject in @ZZ. At this point, ObjectAllocationSinking lightweight interpreter gets two structures while AI gets one: @35's original
one (%AM) and @72's replaced one (%Dx). Since AI already proved @ZZ only gets %Dx, AI removed @92 CheckStructure. But this is not known to ObjectAllocationSinking
phase's interpretation. So when creating recovery data, MultiPutByOffset includes two structures, %AM and %Dx. This is OK since MultiPutByOffset takes
conservative set of structures and performs switching. But the problem here is that %AM's id2{a} offset is -1 since %AM does not have such a property.
So when creating MultiPutByOffset in ObjectAllocationSinking, we accidentally create MultiPutByOffset with -1 offset data, and lowering phase hits the debug
assertion.

187: MultiPutByOffset(@138, @138, id2{a}, <Replace: [%AM:Object], offset = -1, >, <Replace: [%Dx:Object], offset = 0, >)

This bug is harmless since %AM structure comparison never meets at runtime. But we are not considering the case including -1 offset property in MultiPutByOffset data.
In this patch, we just filter out apparently wrong structures when creating MultiPutByOffset in ObjectAllocationSinking. This is OK since it never comes at runtime.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
6:08 PM Changeset in webkit [249305] by Devin Rousso
  • 16 edits
    18 adds in trunk

Web Inspector: DOMDebugger: support event breakpoints in Worker contexts
https://bugs.webkit.org/show_bug.cgi?id=200651

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/protocol/DOMDebugger.json:

Make the domain available in "worker" contexts as well.

Source/WebCore:

Tests: inspector/worker/dom-debugger-dom-breakpoints.html

inspector/worker/dom-debugger-event-animation-frame-breakpoints.html
inspector/worker/dom-debugger-event-interval-breakpoints.html
inspector/worker/dom-debugger-event-listener-breakpoints.html
inspector/worker/dom-debugger-event-timeout-breakpoints.html
inspector/worker/dom-debugger-url-breakpoints.html

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

(WebCore::InspectorDOMDebuggerAgent::InspectorDOMDebuggerAgent):
(WebCore::InspectorDOMDebuggerAgent::enabled const):
(WebCore::InspectorDOMDebuggerAgent::enable):
(WebCore::InspectorDOMDebuggerAgent::disable):
(WebCore::InspectorDOMDebuggerAgent::debuggerWasEnabled):
(WebCore::InspectorDOMDebuggerAgent::debuggerWasDisabled):
(WebCore::InspectorDOMDebuggerAgent::setEventBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeEventBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::~InspectorDOMDebuggerAgent): Deleted.
(WebCore::InspectorDOMDebuggerAgent::frameDocumentUpdated): Deleted.
(WebCore::InspectorDOMDebuggerAgent::willInvalidateStyleAttr): Deleted.
(WebCore::InspectorDOMDebuggerAgent::didInsertDOMNode): Deleted.
(WebCore::InspectorDOMDebuggerAgent::didRemoveDOMNode): Deleted.
(WebCore::domTypeForName): Deleted.
(WebCore::domTypeName): Deleted.
(WebCore::InspectorDOMDebuggerAgent::setDOMBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::removeDOMBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::willInsertDOMNode): Deleted.
(WebCore::InspectorDOMDebuggerAgent::willRemoveDOMNode): Deleted.
(WebCore::InspectorDOMDebuggerAgent::willModifyDOMAttr): Deleted.
(WebCore::InspectorDOMDebuggerAgent::descriptionForDOMEvent): Deleted.
(WebCore::InspectorDOMDebuggerAgent::hasBreakpoint): Deleted.
(WebCore::InspectorDOMDebuggerAgent::updateSubtreeBreakpoints): Deleted.
(WebCore::InspectorDOMDebuggerAgent::willFireAnimationFrame): Deleted.

  • inspector/agents/page/PageDOMDebuggerAgent.h: Added.
  • inspector/agents/page/PageDOMDebuggerAgent.cpp: Added.

(WebCore::domTypeForName):
(WebCore::domTypeName):
(WebCore::PageDOMDebuggerAgent::PageDOMDebuggerAgent):
(WebCore::PageDOMDebuggerAgent::enabled const):
(WebCore::PageDOMDebuggerAgent::enable):
(WebCore::PageDOMDebuggerAgent::disable):
(WebCore::PageDOMDebuggerAgent::setDOMBreakpoint):
(WebCore::PageDOMDebuggerAgent::removeDOMBreakpoint):
(WebCore::PageDOMDebuggerAgent::frameDocumentUpdated):
(WebCore::PageDOMDebuggerAgent::willInsertDOMNode):
(WebCore::PageDOMDebuggerAgent::didInsertDOMNode):
(WebCore::PageDOMDebuggerAgent::willRemoveDOMNode):
(WebCore::PageDOMDebuggerAgent::didRemoveDOMNode):
(WebCore::PageDOMDebuggerAgent::willModifyDOMAttr):
(WebCore::PageDOMDebuggerAgent::willFireAnimationFrame):
(WebCore::PageDOMDebuggerAgent::willInvalidateStyleAttr):
(WebCore::PageDOMDebuggerAgent::setAnimationFrameBreakpoint):
(WebCore::PageDOMDebuggerAgent::descriptionForDOMEvent):
(WebCore::PageDOMDebuggerAgent::updateSubtreeBreakpoints):
(WebCore::PageDOMDebuggerAgent::hasBreakpoint):

  • inspector/agents/worker/WorkerDOMDebuggerAgent.h: Added.
  • inspector/agents/worker/WorkerDOMDebuggerAgent.cpp: Added.

(WebCore::WorkerDOMDebuggerAgent::WorkerDOMDebuggerAgent):
(WebCore::WorkerDOMDebuggerAgent::setDOMBreakpoint):
(WebCore::WorkerDOMDebuggerAgent::removeDOMBreakpoint):
(WebCore::WorkerDOMDebuggerAgent::setAnimationFrameBreakpoint):
Split the InspectorDOMDebuggerAgent into two subclasses depending on the inspected target
type, as certain DOMDebugger commands don't make sense for a Worker context:

  • DOM breakpoints, as there is no DOM in a Worker context
  • animation frame event breakpoints, as there is no requestAnimationFrame function
  • inspector/InspectorController.cpp:

(WebCore::InspectorController::createLazyAgents):

  • inspector/WorkerInspectorController.cpp:

(WebCore::WorkerInspectorController::createLazyAgents):

  • inspector/InstrumentingAgents.h:

(WebCore::InstrumentingAgents::pageDOMDebuggerAgent const): Added.
(WebCore::InstrumentingAgents::setPageDOMDebuggerAgent): Added.

  • inspector/InstrumentingAgents.cpp:

(WebCore::InstrumentingAgents::reset):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::willInsertDOMNodeImpl):
(WebCore::InspectorInstrumentation::didInsertDOMNodeImpl):
(WebCore::InspectorInstrumentation::willRemoveDOMNodeImpl):
(WebCore::InspectorInstrumentation::didRemoveDOMNodeImpl):
(WebCore::InspectorInstrumentation::willModifyDOMAttrImpl):
(WebCore::InspectorInstrumentation::willInvalidateStyleAttrImpl):
(WebCore::InspectorInstrumentation::frameDocumentUpdatedImpl):
(WebCore::InspectorInstrumentation::willFireAnimationFrameImpl):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebInspectorUI:

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager.prototype._updateDOMBreakpoint):
(WI.DOMDebuggerManager.prototype._updateEventBreakpoint):
Add assertions when adding/removing DOM breakpoints or animation frame event breakpoints if
the target is a WI.WorkerTarget, as neither are supported by Workers.

LayoutTests:

  • inspector/worker/dom-debugger-dom-breakpoints.html: Added.
  • inspector/worker/dom-debugger-dom-breakpoints-expected.txt: Added.
  • inspector/worker/dom-debugger-event-animation-frame-breakpoints.html: Added.
  • inspector/worker/dom-debugger-event-animation-frame-breakpoints-expected.txt: Added.
  • inspector/worker/dom-debugger-event-interval-breakpoints.html: Added.
  • inspector/worker/dom-debugger-event-interval-breakpoints-expected.txt: Added.
  • inspector/worker/dom-debugger-event-listener-breakpoints.html: Added.
  • inspector/worker/dom-debugger-event-listener-breakpoints-expected.txt: Added.
  • inspector/worker/dom-debugger-event-timeout-breakpoints.html: Added.
  • inspector/worker/dom-debugger-event-timeout-breakpoints-expected.txt: Added.
  • inspector/worker/dom-debugger-url-breakpoints.html: Added.
  • inspector/worker/dom-debugger-url-breakpoints-expected.txt: Added.
  • inspector/debugger/resources/log-active-stack-trace.js: Added.

(TestPage.registerInitializer.window.logStackTrace): Added.
(TestPage.registerInitializer.window.logActiveStackTrace):

  • inspector/worker/resources/dom-debugger-utilities.js: Added.

(TestPage.registerInitializer.InspectorTest.Worker.DOMDebugger.createWorkerTarget):

  • inspector/worker/resources/worker-dom-debugger.js: Added.
5:39 PM Changeset in webkit [249304] by Keith Rollin
  • 5 edits in trunk/Source

Remove 32-bit macOS support
https://bugs.webkit.org/show_bug.cgi?id=201282
<rdar://problem/54821667>

Reviewed by Anders Carlsson.

WebKit doesn’t support 32-bit Mac any more, so remove checks and code
for that platform.

Source/JavaScriptCore:

  • API/JSBase.h:
  • runtime/VM.h:

Source/WTF:

  • wtf/Platform.h:
5:17 PM Changeset in webkit [249303] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

Speculative loads should use the NetworkSession owning their Cache
https://bugs.webkit.org/show_bug.cgi?id=201314

Patch by Alex Christensen <achristensen@webkit.org> on 2019-08-29
Reviewed by Chris Dumez.

This provides a performance improvement when using non-default persistent WKWebsiteDataStores.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::NetworkSession):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::open):
(WebKit::NetworkCache::Cache::Cache):

  • NetworkProcess/cache/NetworkCache.h:

(WebKit::NetworkCache::Cache::sessionID const):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

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

5:02 PM Changeset in webkit [249302] by Keith Rollin
  • 6 edits in trunk/Source/WebCore

Remove CCBigNum fallback code
https://bugs.webkit.org/show_bug.cgi?id=201250
<rdar://problem/54814330>

Reviewed by Jiewen Tan.

Bug 184637 added support for CCRSAGetCRTComponents, falling back to
the older CCBigNum code if CCRSAGetCRTComponents was not available. We
now only support OS's that have CCRSAGetCRTComponents so remove the
fallback code.

Source/WebCore:

No new tests -- no new or changed functionality.

  • crypto/CommonCryptoUtilities.cpp:

(WebCore::CCBigNum::CCBigNum): Deleted.
(WebCore::CCBigNum::~CCBigNum): Deleted.
(WebCore::CCBigNum::operator=): Deleted.
(WebCore::CCBigNum::data const): Deleted.
(WebCore::CCBigNum::operator- const): Deleted.
(WebCore::CCBigNum::operator% const): Deleted.
(WebCore::CCBigNum::inverse const): Deleted.

  • crypto/CommonCryptoUtilities.h:
  • crypto/mac/CryptoKeyRSAMac.cpp:

(WebCore::getPrivateKeyComponents):

Source/WebCore/PAL:

  • pal/spi/cocoa/CommonCryptoSPI.h:
4:56 PM Changeset in webkit [249301] by Devin Rousso
  • 31 edits in trunk

Web Inspector: replace uses of Array.prototype.concat with Array.prototype.push
https://bugs.webkit.org/show_bug.cgi?id=201082

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

x = x.concat(y) is very slow, as x has to be fully copied in order to add y to it.
Introduce Array.prototype.pushIterable, which iterates the given iterable and adds each
item to the this array.

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager.prototype.get domBreakpoints):
(WI.DOMDebuggerManager.prototype.domBreakpointsInSubtree):

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

(WI.JavaScriptRuntimeCompletionProvider.completionControllerCompletionsNeeded.receivedPropertyNames):

  • UserInterface/Models/CSSCompletions.js:

(WI.CSSCompletions):

  • UserInterface/Models/CSSKeywordCompletions.js:

(WI.CSSKeywordCompletions.forProperty):
(WI.CSSKeywordCompletions.forProperty.addKeywordsForName):
(WI.CSSKeywordCompletions.forFunction):

  • UserInterface/Models/Canvas.js:

(WI.Canvas.prototype.recordingProgress):

  • UserInterface/Models/DOMNodeStyles.js:

(WI.DOMNodeStyles.prototype._updateStyleCascade):
(WI.DOMNodeStyles.prototype._collectStylesInCascadeOrder):

  • UserInterface/Models/TimelineRecording.js:

(WI.TimelineRecording.prototype.get sourceCodeTimelines):
(WI.TimelineRecording.prototype.initializeCallingContextTrees):

  • UserInterface/Protocol/RemoteObject.js:

(WI.RemoteObject.prototype._getPropertyDescriptorsResolver):

  • UserInterface/Views/ConsoleMessageView.js:

(WI.ConsoleMessageView.prototype._appendMessageTextAndArguments):

  • UserInterface/Views/ContentBrowser.js:

(WI.ContentBrowser.prototype.get currentRepresentedObjects):

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype._visibleChildren):

  • UserInterface/Views/DataGridNode.js:

(WI.DataGridNode.prototype.get filterableData):

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WI.HeapAllocationsTimelineView.prototype.get selectionPathComponents):

  • UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:

(WI.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData.processEntries):

  • UserInterface/Views/NavigationItem.js:

(WI.NavigationItem.prototype.get _classNames):

  • UserInterface/Views/ObjectTreeView.js:

(WI.ObjectTreeView.prototype._updateProperties):

  • UserInterface/Views/OpenResourceDialog.js:

(WI.OpenResourceDialog.prototype._addResourcesForFrame):

  • UserInterface/Views/OverviewTimelineView.js:

(WI.OverviewTimelineView.prototype._loadExistingRecords):

  • UserInterface/Views/ResourceCollectionContentView.js:

(WI.ResourceCollectionContentView.prototype.get navigationItems):

  • UserInterface/Views/ResourceHeadersContentView.js:

(WI.ResourceHeadersContentView.prototype._perfomSearchOnKeyValuePairs):

  • UserInterface/Views/ResourceSecurityContentView.js:

(WI.ResourceSecurityContentView.prototype._perfomSearchOnKeyValuePairs):

  • UserInterface/Views/ScriptClusterTimelineView.js:

(WI.ScriptClusterTimelineView.prototype.get selectionPathComponents):

  • UserInterface/Views/ScrubberNavigationItem.js:

(WI.ScrubberNavigationItem.prototype.get additionalClassNames):

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._addGradientTokens):
(WI.SpreadsheetStyleProperty.prototype._addColorTokens.pushPossibleColorToken):
(WI.SpreadsheetStyleProperty.prototype._addTimingFunctionTokens):
(WI.SpreadsheetStyleProperty.prototype._addVariableTokens):

  • UserInterface/Views/TreeOutline.js:

(WI.TreeOutline.prototype.selfOrDescendant):

  • UserInterface/Views/View.js:

(WI.View._visitViewTreeForLayout):

LayoutTests:

  • inspector/unit-tests/array-utilities.html:
  • inspector/unit-tests/array-utilities-expected.txt:

Add tests for added utility Array.prototype.pushIterable.

4:24 PM Changeset in webkit [249300] by Alan Coon
  • 1 copy in tags/Safari-608.2.11.0.1

Tag Safari-608.2.11.0.1.

4:23 PM Changeset in webkit [249299] by Alan Coon
  • 1 copy in tags/Safari-608.2.11.1.1

Tag Safari-608.2.11.1.1.

3:35 PM Changeset in webkit [249298] by aakash_jain@apple.com
  • 2 edits in trunk/Websites/bugs.webkit.org

[EWS] Increase status-bubble iframe width on bugzilla comment review page
https://bugs.webkit.org/show_bug.cgi?id=201304

Reviewed by Jonathan Bedard.

  • template/en/default/attachment/reviewform.html.tmpl: Increased the width from 400 to 700 pixels.
3:32 PM Changeset in webkit [249297] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][TFC] Initialize <tr> display boxes.
https://bugs.webkit.org/show_bug.cgi?id=201232
<rdar://problem/54806789>

Reviewed by Antti Koivisto.

Set them as blank for now.

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::initializeDisplayBoxToBlank const):
(WebCore::Layout::TableFormattingContext::layout const):

  • layout/tableformatting/TableFormattingContext.h:
  • layout/tableformatting/TableGrid.cpp:

(WebCore::Layout::TableGrid::Row::Row):
(WebCore::Layout::TableGrid::appendCell):

  • layout/tableformatting/TableGrid.h:

(WebCore::Layout::TableGrid::Row::box const):

3:17 PM Changeset in webkit [249296] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

[iOS 13] Caret does not appear in text field if the body element is translated completely out of the viewport
https://bugs.webkit.org/show_bug.cgi?id=201287
<rdar://problem/54780864>

Reviewed by Tim Horton.

Source/WebKit:

During EditorState computation, we use the hidden editable element heuristic to determine whether we should
begin suppressing selection gestures and UI. Currently, we use the editable root of the selection range to
determine where in the layer tree we should start our ascent, in search of a completely transparent or
completely clipped container.

However, in the case where the selection is inside a focused text field, this causes us to walk up the layer
tree starting at the RenderLayer corresponding to the text field's inner contenteditable div, which is different
than the text field's enclosing RenderLayer in the case where the containing block is transformed, such that no
part of it is within the visible viewport. This scenario is exercised by the below test case, in which the caret
after transforming the body horizontally by -100vw is hidden due to a false positive in the hidden editable area
heuristic.

Fix this by starting the layer tree ascent from the enclosing layer of the text form control if applicable,
instead of the inner editable area under the shadow root of the form control.

Test: editing/selection/ios/show-selection-in-transformed-container.html

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformEditorState const):

LayoutTests:

Add a new layout test that covers this scenario. See WebKit ChangeLog for additional detail.

  • editing/selection/ios/show-selection-in-transformed-container-expected.txt: Added.
  • editing/selection/ios/show-selection-in-transformed-container.html: Added.
3:01 PM Changeset in webkit [249295] by youenn@apple.com
  • 7 edits
    3 adds in trunk

document.fonts.ready is resolved too quickly
https://bugs.webkit.org/show_bug.cgi?id=174030
<rdar://problem/33083550>

Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

Test from https://github.com/web-platform-tests/wpt/pull/18489.

  • web-platform-tests/fonts/ahem.css: Added.

(@font-face):

  • web-platform-tests/infrastructure/assumptions/document-fonts-ready-expected.txt: Added.
  • web-platform-tests/infrastructure/assumptions/document-fonts-ready.html: Added.

Source/WebCore:

As described in https://drafts.csswg.org/css-font-loading/#font-face-set-ready, the ready promise
is only fulfilled after layout operations complete and no additional font loads are necessary.

This patch implements this by notifying the FontFaceSet created for the document when the document
is finished loading. At that time, the promise will be resolved as soon as fonts are finished loading if any.

Test: imported/w3c/web-platform-tests/infrastructure/assumptions/document-fonts-ready.html

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::optionalFontFaceSet):

  • css/CSSFontSelector.h:
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::FontFaceSet):
(WebCore::FontFaceSet::startedLoading):
(WebCore::FontFaceSet::didFirstLayout):
(WebCore::FontFaceSet::completedLoading):

  • css/FontFaceSet.h:
  • dom/Document.cpp:

(WebCore::Document::implicitClose):

2:55 PM Changeset in webkit [249294] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews-app] Status bubble should only display important messages in pop-over
https://bugs.webkit.org/show_bug.cgi?id=201308

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py: Added various build-steps which are of low interest

to end-users in STEPS_TO_HIDE. If any of these steps fail, it will not be hidden.

2:51 PM Changeset in webkit [249293] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

Flaky Test: svg/custom/tabindex-order.html
https://bugs.webkit.org/show_bug.cgi?id=201294

Reviewed by Chris Dumez.

Make the backward sequential navigation case more robust against platform differences.

  • svg/custom/tabindex-order.html:
2:26 PM Changeset in webkit [249292] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][BFC] BlockFormattingContext::usedAvailableWidthForFloatAvoider should only be called on float avoiders.
https://bugs.webkit.org/show_bug.cgi?id=201238
<rdar://problem/54807663>

Reviewed by Antti Koivisto.

Make the horizontal available space logic for float avoiders more explicit/readable.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider const):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const):

1:50 PM Changeset in webkit [249291] by Devin Rousso
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION (r248873): Debugger: pressing delete on a breakpoint will also delete any resource/element parent immediately before it in the list
https://bugs.webkit.org/show_bug.cgi?id=200939

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel.prototype._breakpointTreeOutlineDeleteTreeElement):
(WI.DebuggerSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved):
(WI.DebuggerSidebarPanel.prototype._breakpointTreeOutlineDeleteTreeElement.checkIfSelectionAdjustmentNeeded): Deleted.

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved):
(WI.SourcesNavigationSidebarPanel.this._breakpointsTreeOutline.ondelete.checkIfSelectionAdjustmentNeeded): Deleted.
When the WI.TreeOutline's own ondelete is called, that means we must be handling a
delete that was _not_ handled by a WI.TreeElement. This means that the selectedTreeElement
has to be a resource/script, the window object, or one of the non-deletable breakpoints.

In the case of a non-deletable breakpoint, since they're never removed from their parent
WI.TreeOutline, we just shift the selection to the next selectable WI.TreeElement.

Otherwise, wait for the WI.TreeOutline.Event.ElementRemoved event to be fired, and adjust
the selection then based on whether the new selectedTreeElement is one of the "top" items,
namely the "All Exceptions", "Uncaught Exceptions", and "Assertion Failures" breakpoints.

  • UserInterface/Views/BreakpointTreeElement.js:

(WI.BreakpointTreeElement.prototype.ondelete):

  • UserInterface/Views/DOMBreakpointTreeElement.js:

(WI.DOMBreakpointTreeElement.prototype.ondelete):

  • UserInterface/Views/DOMNodeTreeElement.js:

(WI.DOMNodeTreeElement.prototype.ondelete):

  • UserInterface/Views/EventBreakpointTreeElement.js:

(WI.EventBreakpointTreeElement.prototype.ondelete):

  • UserInterface/Views/URLBreakpointTreeElement.js:

(WI.URLBreakpointTreeElement.prototype.ondelete):
Add return true; to let the parent WI.TreeOutline know that the delete event was handled.
This prevents the parent WI.TreeOutline's own ondelete from being called, which would
cause a double-delete as there would be a different selectedTreeElement.

1:48 PM Changeset in webkit [249290] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] Inline content logging should have some extra space for better readability
https://bugs.webkit.org/show_bug.cgi?id=201236
<rdar://problem/54807336>

Reviewed by Antti Koivisto.

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::outputInlineRuns):

1:07 PM Changeset in webkit [249289] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][TFC] Use the "complicated-cases" category for computing the TFC root's height
https://bugs.webkit.org/show_bug.cgi?id=201230
<rdar://problem/54806131>

Reviewed by Antti Koivisto.

This might change in the future but for now let's use the "complicated cases" when we need to compute the TFC's height and vertical margin.
This is very BFC specific since (block)TFC is always parented in a BFC.

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):

1:03 PM Changeset in webkit [249288] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][TFC] The table wrapper box is a block level box
https://bugs.webkit.org/show_bug.cgi?id=201229
<rdar://problem/54805515>

Reviewed by Antti Koivisto.

This is the anonymous box that we inject as the parent of the table caption/actual table box.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::complicatedCases):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForAncestors const):

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::establishesBlockFormattingContext const):
(WebCore::Layout::Box::isFloatAvoider const):
(WebCore::Layout::Box::isBlockLevelBox const):

12:24 PM Changeset in webkit [249287] by youenn@apple.com
  • 26 edits
    3 adds in trunk

Skip fetch event dispatching if no fetch event handler is added at script evaluation time
https://bugs.webkit.org/show_bug.cgi?id=201174

Reviewed by Chris Dumez.

Source/WebCore:

At end of worker script evaluation, store whether a fetch event handler is registered.
Send it back to the SWServer that will store it in the corresponding SWServerWorker.

Add support for soft update directly from the registration.
This will trigger a soft-update from the worker context itself.
In theory, this should be started by the job queue but we do not have a way yet to implement this as per spec.

Test: http/wpt/service-workers/skipFetchEvent.https.html

  • workers/DedicatedWorkerThread.h:

(WebCore::DedicatedWorkerThread::start):

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::workerThread):

  • workers/WorkerThread.h:

(WebCore::WorkerThread::finishedEvaluatingScript):

  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::registerServiceWorkerThreadForInstall):
(WebCore::SWContextManager::startedServiceWorker):
(WebCore::SWContextManager::softUpdate):

  • workers/service/context/SWContextManager.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::postFetchTask):
(WebCore::ServiceWorkerThread::softUpdate):
(WebCore::ServiceWorkerThread::finishedEvaluatingScript):
(WebCore::ServiceWorkerThread::start):

  • workers/service/context/ServiceWorkerThread.h:

(WebCore::ServiceWorkerThread::doesHandleFetch const):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::shouldSoftUpdate const):
(WebCore::SWServerRegistration::softUpdate):

  • workers/service/server/SWServerRegistration.h:

(WebCore::SWServerRegistration::isStale const):

  • workers/service/server/SWServerToContextConnection.cpp:

(WebCore::SWServerToContextConnection::generateConnectionIdentifier):
(WebCore::SWServerToContextConnection::SWServerToContextConnection):
(WebCore::SWServerToContextConnection::scriptContextStarted):

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

(WebCore::SWServerWorker::scriptContextStarted):
(WebCore::SWServerWorker::setState):

  • workers/service/server/SWServerWorker.h:

(WebCore::SWServerWorker::shouldSkipFetchEvent const):

Source/WebKit:

Store whether a fetch event handler is set at script evaluation time.
If not, we skip the fetch event entirely so that the network load can start sooner.
If fetch event is skipped, we trigger soft update, as defined in
https://w3c.github.io/ServiceWorker/#handle-fetch step 16.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::startFetch):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::softUpdate):

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

(WebKit::WebSWContextManagerConnection::serviceWorkerStarted):
(WebKit::WebSWContextManagerConnection::serviceWorkerFailedToStart):
(WebKit::WebSWContextManagerConnection::softUpdate):

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

LayoutTests:

  • http/wpt/service-workers/skipFetchEvent-worker.js: Added.

(async.doTest):

  • http/wpt/service-workers/skipFetchEvent.https-expected.txt: Added.
  • http/wpt/service-workers/skipFetchEvent.https.html: Added.
12:22 PM Changeset in webkit [249286] by Keith Rollin
  • 16 edits in trunk

Remove support for macOS < 10.13 (part 3)
https://bugs.webkit.org/show_bug.cgi?id=201224
<rdar://problem/54795934>

Reviewed by Darin Adler.

Remove symbols in WebKitTargetConditionals.xcconfig related to macOS
10.13, including WK_MACOS_1013 and WK_MACOS_BEFORE_1013, and suffixes
like _MACOS_SINCE_1013.

Source/JavaScriptCore:

  • Configurations/WebKitTargetConditionals.xcconfig:

Source/ThirdParty/libwebrtc:

  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebCore:

No new tests -- no new or changed functionality.

  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebCore/PAL:

  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebInspectorUI:

Also added some macOS target numbers.

  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebKit:

  • Configurations/WebKitTargetConditionals.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/WebKitTargetConditionals.xcconfig:

Tools:

Also added some macOS target numbers.

  • TestWebKitAPI/Configurations/WebKitTargetConditionals.xcconfig:
11:40 AM Changeset in webkit [249285] by Jonathan Bedard
  • 2 edits in trunk/Tools

results.webkit.org: Remove border from tooltip
https://bugs.webkit.org/show_bug.cgi?id=201239

Reviewed by Alex Christensen.

  • resultsdbpy/resultsdbpy/view/static/css/tooltip.css:

(.tooltip-content): Remove border.

11:01 AM Changeset in webkit [249284] by Kocsen Chung
  • 4 edits in branches/safari-608.2.11.1-branch

Cherry-pick r249224. rdar://problem/54819205

Null check webFrame when creating a print preview to prevent a crash.
https://bugs.webkit.org/show_bug.cgi?id=201237
<rdar://problem/51618863>

Reviewed by Tim Horton.

Source/WebKit:

Move and expend a null check to keep from crashing when making a print preview.

  • UIProcess/mac/WKPrintingView.mm: (-[WKPrintingView _drawPreview:]): (-[WKPrintingView drawRect:]):

Tools:

Test to verify that if we don't have the WebPageProxy, we will not crash when making a print preview.

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (TEST):

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

11:01 AM Changeset in webkit [249283] by Kocsen Chung
  • 3 edits
    3 adds in branches/safari-608.2.11.1-branch

Cherry-pick r249156. rdar://problem/54775048

Crash under WebCore::jsNotificationConstructorPermission
https://bugs.webkit.org/show_bug.cgi?id=201186
<rdar://problem/53962833>

Reviewed by Youenn Fablet.

Source/WebCore:

Update the Notification API implementation to null-check the page before using. The page becomes null
when using the API in a frame that gets detached from its parent while in the middle of running
script.

Test: http/tests/notifications/request-in-detached-frame.html

  • Modules/notifications/Notification.cpp: (WebCore::Notification::permission): (WebCore::Notification::requestPermission):

LayoutTests:

Add layout test coverage.

  • http/tests/notifications/request-in-detached-frame-expected.txt: Added.
  • http/tests/notifications/request-in-detached-frame.html: Added.
  • http/tests/notifications/resources/request-in-detached-frame-subframe.html: Added.

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

11:01 AM Changeset in webkit [249282] by Kocsen Chung
  • 3 edits in branches/safari-608.2.11.1-branch/Source/WebCore

Cherry-pick r249154. rdar://problem/54775050

Disabled devices should not be taken into account when searching for a capture device
https://bugs.webkit.org/show_bug.cgi?id=201183
<rdar://problem/54353440>

Reviewed by Jer Noble.

Manually tested.

  • platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp: (WebCore::CoreAudioCaptureDeviceManager::coreAudioDeviceWithUID): We currently keep a list of devices, some of which might be disabled. We should not take into account disabled devices, only enabled devices when doing this search.
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioSharedUnit::setupAudioUnit): Improve logging.

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

10:21 AM Changeset in webkit [249281] by dino@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

GenerateTAPI WebKitLegacy.tbd fails on internal iOS Simulator builds
https://bugs.webkit.org/show_bug.cgi?id=201200

Reverting r249211 after Dan Bernstein pointed out it will cause
an error with the public iOS 13 SDK.

  • Misc/WebDownload.h:
10:11 AM Changeset in webkit [249280] by Chris Dumez
  • 2 edits in trunk/Source/WTF

CompletionHandler default constructor does not initialize m_wasConstructedOnMainThread
https://bugs.webkit.org/show_bug.cgi?id=201249

Reviewed by Joseph Pecoraro and Alex Christensen.

  • wtf/CompletionHandler.h:

(WTF::CompletionHandler<Out):

10:04 AM Changeset in webkit [249279] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove a bad assertion in ByteCodeParser::inlineCall().
https://bugs.webkit.org/show_bug.cgi?id=201292
<rdar://problem/54121659>

Reviewed by Michael Saboff.

In the DFG bytecode parser, we've already computed the inlining cost of a candidate
inlining target, and determine that it is worth inlining before invoking
ByteCodeParser::inlineCall(). However, in ByteCodeParser::inlineCall(), it
recomputes the inlining cost again only for the purpose of asserting that it isn't
too high.

Not consider a badly written test that does the following:

function bar() {

...
foo(); Call in a hot loop here.
...

}

bar(); <===== foo is inlineable into bar here.
noInline(foo);
<===== Change mind, and make foo not inlineable.
bar();

With this bad test, the following racy scenario can occur:

  1. the first invocation of bar() gets hot, and a concurrent compile is kicked off.
  2. the compiler thread computes foo()'s inliningCost() and determines that it is worthy to be inlined, and will imminently call inlineCall().
  3. the mutator calls the noInline() test utility on foo(), thereby making it NOT inlineable.
  4. the compiler thread calls inlineCall(). In inlineCall(), it re-computes the inliningCost for foo() and now finds that it is not inlineable. An assertion failure follows.

Technically, the test is in error because noInline() shouldn't be used that way.
However, fuzzers that are not clued into noInline()'s proper usage may generate
code like this.

On the other hand, ByteCodeParser::inlineCall() should not be recomputing that the
inlining cost and asserting on it. The only reason inlineCall() is invoked is
because it was already previously determined that a target function is inlineable
based on its inlining cost. Today, in practice, I don't think we have any real
world condition where the mutator can affect the inlining cost of a target
function midway through execution. So, this assertion isn't a problem if no one
writes a test that abuses noInline(). However, should things change such that the
mutator is able to affect the inlining cost of a target function, then it is
incorrect for the compiler to assume that the inlining cost is immutable. Once
the compiler decides to inline a function, it should just follow through.

This patch removes this assertion in ByteCodeParser::inlineCall(). It is an
annoyance at best (for fuzzers), and at worst, incorrect if the mutator gains the
ability to affect the inlining cost of a target function.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::inlineCall):

10:01 AM Changeset in webkit [249278] by aboya@igalia.com
  • 6 edits
    17 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=201276

  • fast/borders/empty-outline-border-assert-expected.txt:
  • platform/gtk/TestExpectations:
  • platform/gtk/fast/dom/Window/window-lookup-precedence-expected.txt: Added.
  • platform/gtk/fast/forms/label/labelable-elements-expected.txt: Added.
  • platform/gtk/http/tests/media/hls/video-controls-live-stream-expected.txt:
  • platform/gtk/http/tests/security/mixedContent/websocket/insecure-websocket-in-iframe-expected.txt: Added.
  • platform/gtk/http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/custom-elements/builtin-coverage-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-showModal-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/websockets/closing-handshake/003-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/websockets/cookies/004-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/websockets/unload-a-document/002-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/websockets/unload-a-document/004-expected.txt: Added.
  • platform/ios-wk2/fast/borders/empty-outline-border-assert-expected.txt: Removed.
  • platform/mac-wk2/fast/borders/empty-outline-border-assert-expected.txt: Removed.
9:19 AM Changeset in webkit [249277] by youenn@apple.com
  • 21 edits in trunk

Use WebPageProxy callbacks in case of authentication challenge received from Service Worker
https://bugs.webkit.org/show_bug.cgi?id=201177

Reviewed by Alex Christensen.

Source/WebKit:

Send topOrigin for every possible load to NetworkProcess.
Send topOrigin as part of authentication challenge to UIProcess.

If there is no corresponding page for the pageID, try getting a page
related to the service worker using the topOrigin and send the challenge to it.

  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::didReceiveChallenge):

  • NetworkProcess/NetworkCORSPreflightChecker.h:
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveChallenge):

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight):

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

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

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

(WebKit::m_shouldCaptureExtraNetworkLoadMetrics):

  • NetworkProcess/PingLoad.cpp:

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

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):

  • Shared/Authentication/AuthenticationManager.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::processAuthenticationChallenge):
(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy):

  • UIProcess/WebPageProxy.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

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

LayoutTests:

  • http/wpt/service-workers/server-trust-evaluation.https.html:
9:14 AM Changeset in webkit [249276] by cturner@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer] Do not use makeWeakPtr from streaming thread.
https://bugs.webkit.org/show_bug.cgi?id=201220

Reviewed by Xabier Rodriguez-Calvar.

Test: imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https.html

Recently some asserts were added that you can't create WeakPtr's
from streaming threads when the factory is created on the
main-thread. The fix is to eagerly create the WeakPtr at player
initialization time, rather than lazily when the streaming thread
first asks for it.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
8:28 AM Changeset in webkit [249275] by Chris Dumez
  • 63 edits
    1 add in trunk/Source/WebKit

Dissociate the WebPageProxy's identifier from the WebPage's
https://bugs.webkit.org/show_bug.cgi?id=201233

Reviewed by Alex Christensen.

Dissociate the WebPageProxy's identifier from the WebPage's. This will allow bumping the
WebPage's identifier everytime we create a WebPage in a new process in case of process
swap on navigation (Bug 201225).

  • Shared/WebBackForwardListItem.cpp:

(WebKit::WebBackForwardListItem::create):
(WebKit::WebBackForwardListItem::WebBackForwardListItem):

  • Shared/WebBackForwardListItem.h:

(WebKit::WebBackForwardListItem::pageID const):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageLoaderClient):

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController handle]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView dealloc]):
(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView _dispatchSetViewLayoutSize:]):
(-[WKWebView _cancelAnimatedResize]):
(-[WKWebView _remoteObjectRegistry]):
(-[WKWebView _handle]):
(-[WKWebView _focusTextInputContext:completionHandler:]):
(-[WKWebView _endAnimatedResize]):
(-[WKWebView _resizeWhileHidingContentWithUpdates:]):
(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _getAllStorageAccessEntriesFor:completionHandler:]):

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextGetWebViewForPage):

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_get_page_id):

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::handleForWebPageProxy):
(WebKit::WebAutomationSession::switchToBrowsingContext):
(WebKit::WebAutomationSession::waitForNavigationToCompleteOnPage):
(WebKit::WebAutomationSession::respondToPendingPageNavigationCallbacksWithTimeout):
(WebKit::WebAutomationSession::navigationOccurredForFrame):
(WebKit::WebAutomationSession::documentLoadedForFrame):
(WebKit::WebAutomationSession::inspectorFrontendLoaded):
(WebKit::WebAutomationSession::mouseEventsFlushedForPage):
(WebKit::WebAutomationSession::keyboardEventsFlushedForPage):
(WebKit::WebAutomationSession::willClosePage):
(WebKit::WebAutomationSession::evaluateJavaScriptFunction):
(WebKit::WebAutomationSession::resolveChildFrameHandle):
(WebKit::WebAutomationSession::resolveParentFrameHandle):
(WebKit::WebAutomationSession::computeElementLayout):
(WebKit::WebAutomationSession::selectOptionElement):
(WebKit::WebAutomationSession::getAllCookies):
(WebKit::WebAutomationSession::deleteSingleCookie):
(WebKit::WebAutomationSession::inputDispatcherForPage):
(WebKit::WebAutomationSession::viewportInViewCenterPointOfElement):
(WebKit::WebAutomationSession::simulateMouseInteraction):
(WebKit::WebAutomationSession::simulateKeyboardInteraction):
(WebKit::WebAutomationSession::performMouseInteraction):
(WebKit::WebAutomationSession::performKeyboardInteractions):
(WebKit::WebAutomationSession::takeScreenshot):

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/mac/WebAutomationSessionMac.mm:

(WebKit::WebAutomationSession::inspectBrowsingContext):

  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:

(WebKit::PlaybackSessionManagerProxy::PlaybackSessionManagerProxy):
(WebKit::PlaybackSessionManagerProxy::invalidate):

  • UIProcess/Cocoa/TextCheckingController.mm:

(WebKit::TextCheckingController::replaceRelativeToSelection):
(WebKit::TextCheckingController::removeAnnotationRelativeToSelection):

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(WebKit::VideoFullscreenManagerProxy::VideoFullscreenManagerProxy):
(WebKit::VideoFullscreenManagerProxy::invalidate):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::performDictionaryLookupAtLocation):
(WebKit::WebPageProxy::performDictionaryLookupOfCurrentSelection):
(WebKit::WebPageProxy::paymentCoordinatorAddMessageReceiver):
(WebKit::WebPageProxy::paymentCoordinatorRemoveMessageReceiver):
(WebKit::WebPageProxy::speakingErrorOccurred):
(WebKit::WebPageProxy::boundaryEventOccurred):
(WebKit::WebPageProxy::voicesDidChange):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::~WebViewImpl):
(WebKit::WebViewImpl::windowDidOrderOffScreen):
(WebKit::WebViewImpl::windowDidOrderOnScreen):
(WebKit::WebViewImpl::windowDidChangeOcclusionState):
(WebKit::WebViewImpl::viewDidHide):
(WebKit::WebViewImpl::viewDidUnhide):
(WebKit::WebViewImpl::activeSpaceDidChange):
(WebKit::WebViewImpl::remoteObjectRegistry):

  • UIProcess/GeolocationPermissionRequestManagerProxy.cpp:

(WebKit::GeolocationPermissionRequestManagerProxy::didReceiveGeolocationPermissionDecision):

  • UIProcess/InspectorTargetProxy.cpp:

(WebKit::InspectorTargetProxy::connect):
(WebKit::InspectorTargetProxy::disconnect):
(WebKit::InspectorTargetProxy::sendMessageToTargetBackend):

  • UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp:

(WebKit::NotificationPermissionRequestManagerProxy::createRequest):

  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:

(WebKit::WebNotificationManagerProxy::show):
(WebKit::WebNotificationManagerProxy::cancel):
(WebKit::WebNotificationManagerProxy::didDestroyNotification):
(WebKit::pageIDsMatch):
(WebKit::pageAndNotificationIDsMatch):
(WebKit::WebNotificationManagerProxy::clearNotifications):
(WebKit::WebNotificationManagerProxy::providerDidShowNotification):
(WebKit::WebNotificationManagerProxy::providerDidClickNotification):

  • UIProcess/Notifications/WebNotificationManagerProxy.h:
  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::~ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::processDidTerminate):
(WebKit::ProvisionalPageProxy::cancel):
(WebKit::ProvisionalPageProxy::initializeWebPage):
(WebKit::ProvisionalPageProxy::loadData):
(WebKit::ProvisionalPageProxy::loadRequest):
(WebKit::ProvisionalPageProxy::goToBackForwardItem):
(WebKit::ProvisionalPageProxy::didCreateMainFrame):
(WebKit::ProvisionalPageProxy::didStartProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::didCommitLoadForFrame):

  • UIProcess/ProvisionalPageProxy.h:
  • UIProcess/RemoteWebInspectorProxy.cpp:

(WebKit::RemoteWebInspectorProxy::load):
(WebKit::RemoteWebInspectorProxy::sendMessageToFrontend):
(WebKit::RemoteWebInspectorProxy::createFrontendPageAndWindow):
(WebKit::RemoteWebInspectorProxy::closeFrontendPageAndWindow):

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::SuspendedPageProxy):
(WebKit::SuspendedPageProxy::~SuspendedPageProxy):
(WebKit::SuspendedPageProxy::unsuspend):
(WebKit::SuspendedPageProxy::close):
(WebKit::SuspendedPageProxy::didProcessRequestToSuspend):
(WebKit::SuspendedPageProxy::loggingString const):

  • UIProcess/SuspendedPageProxy.h:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::captureDevicesChanged):
(WebKit::UserMediaPermissionRequestManagerProxy::denyRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::finishGrantingRequest):

  • UIProcess/ViewGestureController.cpp:

(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::~ViewGestureController):
(WebKit::ViewGestureController::disconnectFromProcess):
(WebKit::ViewGestureController::connectToProcess):
(WebKit::ViewGestureController::controllerForGesture):
(WebKit::ViewGestureController::forceRepaintIfNeeded):
(WebKit::ViewGestureController::requestRenderTreeSizeNotificationIfNeeded):

  • UIProcess/ViewGestureController.h:
  • UIProcess/VisitedLinkStore.cpp:

(WebKit::VisitedLinkStore::addVisitedLinkHashFromPage):

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:

(WebKit::WebAuthenticatorCoordinatorProxy::WebAuthenticatorCoordinatorProxy):
(WebKit::WebAuthenticatorCoordinatorProxy::~WebAuthenticatorCoordinatorProxy):

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::itemForID):
(WebKit::WebBackForwardList::restoreFromState):

  • UIProcess/WebEditCommandProxy.cpp:

(WebKit::WebEditCommandProxy::unapply):
(WebKit::WebEditCommandProxy::reapply):

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::loadURL):
(WebKit::WebFrameProxy::loadData):
(WebKit::WebFrameProxy::stopLoading const):
(WebKit::WebFrameProxy::collapseSelection):

  • UIProcess/WebFullScreenManagerProxy.cpp:

(WebKit::WebFullScreenManagerProxy::WebFullScreenManagerProxy):
(WebKit::WebFullScreenManagerProxy::~WebFullScreenManagerProxy):
(WebKit::WebFullScreenManagerProxy::willEnterFullScreen):
(WebKit::WebFullScreenManagerProxy::didEnterFullScreen):
(WebKit::WebFullScreenManagerProxy::willExitFullScreen):
(WebKit::WebFullScreenManagerProxy::didExitFullScreen):
(WebKit::WebFullScreenManagerProxy::setAnimatingFullScreen):
(WebKit::WebFullScreenManagerProxy::requestExitFullScreen):
(WebKit::WebFullScreenManagerProxy::saveScrollPosition):
(WebKit::WebFullScreenManagerProxy::restoreScrollPosition):
(WebKit::WebFullScreenManagerProxy::setFullscreenInsets):
(WebKit::WebFullScreenManagerProxy::setFullscreenAutoHideDuration):
(WebKit::WebFullScreenManagerProxy::setFullscreenControlsHidden):

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::WebInspectorProxy):
(WebKit::WebInspectorProxy::invalidate):
(WebKit::WebInspectorProxy::sendMessageToFrontend):
(WebKit::WebInspectorProxy::connect):
(WebKit::WebInspectorProxy::close):
(WebKit::WebInspectorProxy::reset):
(WebKit::WebInspectorProxy::updateForNewPageProcess):
(WebKit::WebInspectorProxy::setFrontendConnection):
(WebKit::WebInspectorProxy::showConsole):
(WebKit::WebInspectorProxy::showResources):
(WebKit::WebInspectorProxy::showMainResourceForFrame):
(WebKit::WebInspectorProxy::attach):
(WebKit::WebInspectorProxy::detach):
(WebKit::WebInspectorProxy::togglePageProfiling):
(WebKit::WebInspectorProxy::toggleElementSelection):
(WebKit::WebInspectorProxy::createFrontendPage):
(WebKit::WebInspectorProxy::openLocalInspectorFrontend):
(WebKit::WebInspectorProxy::open):
(WebKit::WebInspectorProxy::closeFrontendPageAndWindow):
(WebKit::WebInspectorProxy::attachAvailabilityChanged):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::m_resetRecentCrashCountTimer):
(WebKit::WebPageProxy::~WebPageProxy):
(WebKit::WebPageProxy::setUIClient):
(WebKit::WebPageProxy::setIconLoadingClient):
(WebKit::WebPageProxy::launchProcess):
(WebKit::WebPageProxy::suspendCurrentPageIfPossible):
(WebKit::WebPageProxy::swapToWebProcess):
(WebKit::WebPageProxy::launchProcessForReload):
(WebKit::WebPageProxy::launchProcessWithItem):
(WebKit::WebPageProxy::initializeWebPage):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::tryClose):
(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadDataWithNavigationShared):
(WebKit::WebPageProxy::loadAlternateHTML):
(WebKit::WebPageProxy::loadWebArchiveData):
(WebKit::WebPageProxy::navigateToPDFLinkWithSimulatedClick):
(WebKit::WebPageProxy::stopLoading):
(WebKit::WebPageProxy::reload):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::tryRestoreScrollPosition):
(WebKit::WebPageProxy::setControlledByAutomation):
(WebKit::WebPageProxy::setIndicating):
(WebKit::WebPageProxy::createInspectorTargets):
(WebKit::WebPageProxy::setBackgroundColor):
(WebKit::WebPageProxy::setTopContentInset):
(WebKit::WebPageProxy::setUnderlayColor):
(WebKit::WebPageProxy::viewWillStartLiveResize):
(WebKit::WebPageProxy::viewWillEndLiveResize):
(WebKit::WebPageProxy::activityStateDidChange):
(WebKit::WebPageProxy::viewDidEnterWindow):
(WebKit::WebPageProxy::dispatchActivityStateChange):
(WebKit::WebPageProxy::layerHostingModeDidChange):
(WebKit::WebPageProxy::setInitialFocus):
(WebKit::WebPageProxy::clearSelection):
(WebKit::WebPageProxy::restoreSelectionInFocusedEditableElement):
(WebKit::WebPageProxy::validateCommand):
(WebKit::WebPageProxy::increaseListLevel):
(WebKit::WebPageProxy::decreaseListLevel):
(WebKit::WebPageProxy::changeListType):
(WebKit::WebPageProxy::setBaseWritingDirection):
(WebKit::WebPageProxy::setNeedsFontAttributes):
(WebKit::WebPageProxy::scheduleFullEditorStateUpdate):
(WebKit::WebPageProxy::selectAll):
(WebKit::WebPageProxy::executeEditCommand):
(WebKit::WebPageProxy::requestFontAttributesAtSelectionStart):
(WebKit::WebPageProxy::setEditable):
(WebKit::WebPageProxy::performDragControllerAction):
(WebKit::WebPageProxy::dragEnded):
(WebKit::WebPageProxy::didStartDrag):
(WebKit::WebPageProxy::dragCancelled):
(WebKit::WebPageProxy::processNextQueuedMouseEvent):
(WebKit::WebPageProxy::sendWheelEvent):
(WebKit::WebPageProxy::handleKeyboardEvent):
(WebKit::WebPageProxy::handleGestureEvent):
(WebKit::WebPageProxy::handleTouchEventSynchronously):
(WebKit::WebPageProxy::resetPotentialTapSecurityOrigin):
(WebKit::WebPageProxy::handleTouchEventAsynchronously):
(WebKit::WebPageProxy::handleTouchEvent):
(WebKit::WebPageProxy::cancelPointer):
(WebKit::WebPageProxy::touchWithIdentifierWasRemoved):
(WebKit::WebPageProxy::scrollBy):
(WebKit::WebPageProxy::centerSelectionInVisibleArea):
(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::setUserAgent):
(WebKit::WebPageProxy::resumeActiveDOMObjectsAndAnimations):
(WebKit::WebPageProxy::suspendActiveDOMObjectsAndAnimations):
(WebKit::WebPageProxy::setCustomTextEncodingName):
(WebKit::WebPageProxy::restoreFromSessionState):
(WebKit::WebPageProxy::setTextZoomFactor):
(WebKit::WebPageProxy::setPageZoomFactor):
(WebKit::WebPageProxy::setPageAndTextZoomFactors):
(WebKit::WebPageProxy::scalePage):
(WebKit::WebPageProxy::scalePageInViewCoordinates):
(WebKit::WebPageProxy::scaleView):
(WebKit::WebPageProxy::windowScreenDidChange):
(WebKit::WebPageProxy::accessibilitySettingsDidChange):
(WebKit::WebPageProxy::setUseFixedLayout):
(WebKit::WebPageProxy::setFixedLayoutSize):
(WebKit::WebPageProxy::setAlwaysShowsHorizontalScroller):
(WebKit::WebPageProxy::setAlwaysShowsVerticalScroller):
(WebKit::WebPageProxy::listenForLayoutMilestones):
(WebKit::WebPageProxy::setSuppressScrollbarAnimations):
(WebKit::WebPageProxy::setEnableVerticalRubberBanding):
(WebKit::WebPageProxy::setEnableHorizontalRubberBanding):
(WebKit::WebPageProxy::setBackgroundExtendsBeyondPage):
(WebKit::WebPageProxy::setPaginationMode):
(WebKit::WebPageProxy::setPaginationBehavesLikeColumns):
(WebKit::WebPageProxy::setPageLength):
(WebKit::WebPageProxy::setGapBetweenPages):
(WebKit::WebPageProxy::setPaginationLineGridEnabled):
(WebKit::WebPageProxy::findStringMatches):
(WebKit::WebPageProxy::findString):
(WebKit::WebPageProxy::getImageForFindMatch):
(WebKit::WebPageProxy::selectFindMatch):
(WebKit::WebPageProxy::indicateFindMatch):
(WebKit::WebPageProxy::hideFindUI):
(WebKit::WebPageProxy::countStringMatches):
(WebKit::WebPageProxy::replaceMatches):
(WebKit::WebPageProxy::runJavaScriptInMainFrameScriptWorld):
(WebKit::WebPageProxy::runJavaScriptInFrame):
(WebKit::WebPageProxy::getRenderTreeExternalRepresentation):
(WebKit::WebPageProxy::getSourceForFrame):
(WebKit::WebPageProxy::getContentsAsString):
(WebKit::WebPageProxy::getContentsAsAttributedString):
(WebKit::WebPageProxy::getBytecodeProfile):
(WebKit::WebPageProxy::getSamplingProfilerOutput):
(WebKit::WebPageProxy::getContentsAsMHTMLData):
(WebKit::WebPageProxy::getSelectionOrContentsAsString):
(WebKit::WebPageProxy::getSelectionAsWebArchiveData):
(WebKit::WebPageProxy::getMainResourceDataOfFrame):
(WebKit::WebPageProxy::getResourceDataFromFrame):
(WebKit::WebPageProxy::getWebArchiveOfFrame):
(WebKit::WebPageProxy::forceRepaint):
(WebKit::WebPageProxy::preferencesDidChange):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::willPerformClientRedirectForFrame):
(WebKit::WebPageProxy::didCancelClientRedirectForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
(WebKit::WebPageProxy::willSubmitForm):
(WebKit::WebPageProxy::didNavigateWithNavigationDataShared):
(WebKit::WebPageProxy::didPerformClientRedirectShared):
(WebKit::WebPageProxy::didPerformServerRedirectShared):
(WebKit::trySOAuthorization):
(WebKit::WebPageProxy::createNewPage):
(WebKit::WebPageProxy::showShareSheet):
(WebKit::WebPageProxy::setMediaVolume):
(WebKit::WebPageProxy::setMuted):
(WebKit::WebPageProxy::stopMediaCapture):
(WebKit::WebPageProxy::stopAllMediaPlayback):
(WebKit::WebPageProxy::suspendAllMediaPlayback):
(WebKit::WebPageProxy::resumeAllMediaPlayback):
(WebKit::WebPageProxy::handleMediaEvent):
(WebKit::WebPageProxy::setVolumeOfMediaElement):
(WebKit::WebPageProxy::setMayStartMediaWhenInWindow):
(WebKit::WebPageProxy::didChooseColor):
(WebKit::WebPageProxy::didEndColorPicker):
(WebKit::WebPageProxy::didCloseSuggestions):
(WebKit::WebPageProxy::didSelectOption):
(WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback):
(WebKit::WebPageProxy::backForwardAddItem):
(WebKit::WebPageProxy::messageSenderDestinationID const):
(WebKit::WebPageProxy::valueChangedForPopupMenu):
(WebKit::WebPageProxy::setTextFromItemForPopupMenu):
(WebKit::WebPageProxy::postMessageToInjectedBundle):
(WebKit::WebPageProxy::failedToShowPopupMenu):
(WebKit::WebPageProxy::showContextMenu):
(WebKit::WebPageProxy::contextMenuItemSelected):
(WebKit::WebPageProxy::handleContextMenuKeyEvent):
(WebKit::WebPageProxy::didChooseFilesForOpenPanelWithDisplayStringAndIcon):
(WebKit::WebPageProxy::didChooseFilesForOpenPanel):
(WebKit::WebPageProxy::didCancelForOpenPanel):
(WebKit::WebPageProxy::advanceToNextMisspelling):
(WebKit::WebPageProxy::changeSpellingToWord):
(WebKit::WebPageProxy::removeEditCommand):
(WebKit::WebPageProxy::didFinishCheckingText):
(WebKit::WebPageProxy::didCancelCheckingText):
(WebKit::WebPageProxy::didReceiveEvent):
(WebKit::WebPageProxy::processDidBecomeUnresponsive):
(WebKit::WebPageProxy::processDidBecomeResponsive):
(WebKit::WebPageProxy::dispatchProcessDidTerminate):
(WebKit::WebPageProxy::gamepadActivity):
(WebKit::WebPageProxy::updateWebsitePolicies):
(WebKit::WebPageProxy::backForwardRemovedItem):
(WebKit::WebPageProxy::setCanRunModal):
(WebKit::WebPageProxy::beginPrinting):
(WebKit::WebPageProxy::endPrinting):
(WebKit::WebPageProxy::computePagesForPrinting):
(WebKit::WebPageProxy::drawRectToImage):
(WebKit::WebPageProxy::drawPagesToPDF):
(WebKit::WebPageProxy::drawPagesForPrinting):
(WebKit::WebPageProxy::setMinimumSizeForAutoLayout):
(WebKit::WebPageProxy::setAutoSizingShouldExpandToViewHeight):
(WebKit::WebPageProxy::setViewportSizeForCSSViewportUnits):
(WebKit::WebPageProxy::handleAlternativeTextUIResult):
(WebKit::WebPageProxy::setComposition):
(WebKit::WebPageProxy::confirmComposition):
(WebKit::WebPageProxy::cancelComposition):
(WebKit::WebPageProxy::setScrollPinningBehavior):
(WebKit::WebPageProxy::setOverlayScrollbarStyle):
(WebKit::WebPageProxy::addMIMETypeWithCustomContentProvider):
(WebKit::WebPageProxy::changeFontAttributes):
(WebKit::WebPageProxy::changeFont):
(WebKit::WebPageProxy::setTextAsync):
(WebKit::WebPageProxy::insertTextAsync):
(WebKit::WebPageProxy::hasMarkedText):
(WebKit::WebPageProxy::getMarkedRangeAsync):
(WebKit::WebPageProxy::getSelectedRangeAsync):
(WebKit::WebPageProxy::characterIndexForPointAsync):
(WebKit::WebPageProxy::firstRectForCharacterRangeAsync):
(WebKit::WebPageProxy::setCompositionAsync):
(WebKit::WebPageProxy::confirmCompositionAsync):
(WebKit::WebPageProxy::takeSnapshot):
(WebKit::WebPageProxy::requestActiveNowPlayingSessionInfo):
(WebKit::WebPageProxy::performImmediateActionHitTestAtLocation):
(WebKit::WebPageProxy::immediateActionDidUpdate):
(WebKit::WebPageProxy::immediateActionDidCancel):
(WebKit::WebPageProxy::immediateActionDidComplete):
(WebKit::WebPageProxy::handleAcceptedCandidate):
(WebKit::WebPageProxy::setUseSystemAppearance):
(WebKit::WebPageProxy::setHeaderBannerHeightForTesting):
(WebKit::WebPageProxy::setFooterBannerHeightForTesting):
(WebKit::WebPageProxy::setShouldDispatchFakeMouseMoveEvents):
(WebKit::WebPageProxy::setPlaybackTarget):
(WebKit::WebPageProxy::externalOutputDeviceAvailableDidChange):
(WebKit::WebPageProxy::setShouldPlayToPlaybackTarget):
(WebKit::WebPageProxy::clearWheelEventTestTrigger):
(WebKit::WebPageProxy::setShouldScaleViewToFitDocument):
(WebKit::WebPageProxy::getLoadDecisionForIcon):
(WebKit::WebPageProxy::setResourceCachingDisabled):
(WebKit::WebPageProxy::setUserInterfaceLayoutDirection):
(WebKit::WebPageProxy::didAllowPointerLock):
(WebKit::WebPageProxy::didDenyPointerLock):
(WebKit::WebPageProxy::requestPointerUnlock):
(WebKit::WebPageProxy::setURLSchemeHandlerForScheme):
(WebKit::WebPageProxy::didCommitCrossSiteLoadWithDataTransferFromPrevalentResource):
(WebKit::WebPageProxy::effectiveAppearanceDidChange):
(WebKit::WebPageProxy::insertAttachment):
(WebKit::WebPageProxy::updateAttachmentAttributes):
(WebKit::WebPageProxy::getApplicationManifest):
(WebKit::WebPageProxy::setDefersLoadingForTesting):
(WebKit::WebPageProxy::updateCurrentModifierState):
(WebKit::WebPageProxy::simulateDeviceOrientationChange):
(WebKit::WebPageProxy::detectDataInAllFrames):
(WebKit::WebPageProxy::removeDataDetectedLinks):
(WebKit::WebPageProxy::textInputContextsInRect):
(WebKit::WebPageProxy::focusTextInputContext):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::identifier const):
(WebKit::WebPageProxy::webPageID const):

  • UIProcess/WebPageProxyIdentifier.h: Added.
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore):
(WebKit::WebProcessPool::pageEndUsingWebsiteDataStore):

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

(WebKit::WebProcessProxy::webPage):
(WebKit::WebProcessProxy::addExistingWebPage):
(WebKit::WebProcessProxy::removeWebPage):
(WebKit::WebProcessProxy::addVisitedLinkStoreUser):
(WebKit::WebProcessProxy::removeVisitedLinkStoreUser):
(WebKit::WebProcessProxy::hasProvisionalPageWithID const):
(WebKit::WebProcessProxy::isAllowedToUpdateBackForwardItem const):
(WebKit::WebProcessProxy::transformObjectsToHandles):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebURLSchemeHandler.cpp:

(WebKit::WebURLSchemeHandler::startTask):
(WebKit::WebURLSchemeHandler::stopAllTasksForPage):
(WebKit::WebURLSchemeHandler::stopTask):
(WebKit::WebURLSchemeHandler::removeTaskFromPageMap):

  • UIProcess/WebURLSchemeHandler.h:
  • UIProcess/WebURLSchemeTask.cpp:

(WebKit::WebURLSchemeTask::WebURLSchemeTask):
(WebKit::WebURLSchemeTask::didPerformRedirection):
(WebKit::WebURLSchemeTask::didReceiveResponse):
(WebKit::WebURLSchemeTask::didReceiveData):
(WebKit::WebURLSchemeTask::didComplete):

  • UIProcess/WebURLSchemeTask.h:

(WebKit::WebURLSchemeTask::pageID const):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::getAllStorageAccessEntries):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::getCenterForZoomGesture):

  • UIProcess/ios/EditableImageController.mm:

(WebKit::EditableImageController::EditableImageController):
(WebKit::EditableImageController::~EditableImageController):

  • UIProcess/ios/SmartMagnificationController.mm:

(WebKit::SmartMagnificationController::SmartMagnificationController):
(WebKit::SmartMagnificationController::~SmartMagnificationController):
(WebKit::SmartMagnificationController::handleSmartMagnificationGesture):

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::endSwipeGesture):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _wk_printedDocument]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView ensurePositionInformationIsUpToDate:]):
(-[WKContentView requestAutocorrectionContextWithCompletionHandler:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::requestFocusedElementInformation):
(WebKit::WebPageProxy::updateVisibleContentRects):
(WebKit::WebPageProxy::resendLastVisibleContentRects):
(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
(WebKit::WebPageProxy::setViewportConfigurationViewLayoutSize):
(WebKit::WebPageProxy::setForceAlwaysUserScalable):
(WebKit::WebPageProxy::setMaximumUnobscuredSize):
(WebKit::WebPageProxy::setDeviceOrientation):
(WebKit::WebPageProxy::setOverrideViewportArguments):
(WebKit::WebPageProxy::selectWithGesture):
(WebKit::WebPageProxy::updateSelectionWithTouches):
(WebKit::WebPageProxy::replaceDictatedText):
(WebKit::WebPageProxy::replaceSelectedText):
(WebKit::WebPageProxy::requestAutocorrectionData):
(WebKit::WebPageProxy::applyAutocorrection):
(WebKit::WebPageProxy::selectTextWithGranularityAtPoint):
(WebKit::WebPageProxy::selectPositionAtBoundaryWithDirection):
(WebKit::WebPageProxy::moveSelectionAtBoundaryWithDirection):
(WebKit::WebPageProxy::selectPositionAtPoint):
(WebKit::WebPageProxy::beginSelectionInDirection):
(WebKit::WebPageProxy::updateSelectionWithExtentPoint):
(WebKit::WebPageProxy::updateSelectionWithExtentPointAndBoundary):
(WebKit::WebPageProxy::requestDictationContext):
(WebKit::WebPageProxy::requestAutocorrectionContext):
(WebKit::WebPageProxy::getSelectionContext):
(WebKit::WebPageProxy::handleTwoFingerTapAtPoint):
(WebKit::WebPageProxy::handleStylusSingleTapAtPoint):
(WebKit::WebPageProxy::selectWithTwoTouches):
(WebKit::WebPageProxy::requestPositionInformation):
(WebKit::WebPageProxy::startInteractionWithElementAtPosition):
(WebKit::WebPageProxy::stopInteraction):
(WebKit::WebPageProxy::performActionOnElement):
(WebKit::WebPageProxy::applicationDidEnterBackground):
(WebKit::WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground):
(WebKit::WebPageProxy::applicationWillEnterForeground):
(WebKit::WebPageProxy::applicationWillResignActive):
(WebKit::WebPageProxy::applicationDidBecomeActive):
(WebKit::WebPageProxy::extendSelection):
(WebKit::WebPageProxy::selectWordBackward):
(WebKit::WebPageProxy::requestRectsForGranularityWithSelectionOffset):
(WebKit::WebPageProxy::requestRectsAtSelectionOffsetWithText):
(WebKit::WebPageProxy::storeSelectionForAccessibility):
(WebKit::WebPageProxy::startAutoscrollAtPosition):
(WebKit::WebPageProxy::cancelAutoscroll):
(WebKit::WebPageProxy::moveSelectionByOffset):
(WebKit::WebPageProxy::registerUIProcessAccessibilityTokens):
(WebKit::WebPageProxy::willStartUserTriggeredZooming):
(WebKit::WebPageProxy::potentialTapAtPosition):
(WebKit::WebPageProxy::commitPotentialTap):
(WebKit::WebPageProxy::cancelPotentialTap):
(WebKit::WebPageProxy::tapHighlightAtPosition):
(WebKit::WebPageProxy::handleTap):
(WebKit::WebPageProxy::didRecognizeLongPress):
(WebKit::WebPageProxy::handleDoubleTapForDoubleClickAtPoint):
(WebKit::WebPageProxy::inspectorNodeSearchMovedToPosition):
(WebKit::WebPageProxy::inspectorNodeSearchEndedAtPosition):
(WebKit::WebPageProxy::blurFocusedElement):
(WebKit::WebPageProxy::setIsShowingInputViewForFocusedElement):
(WebKit::WebPageProxy::autofillLoginCredentials):
(WebKit::WebPageProxy::focusNextFocusedElement):
(WebKit::WebPageProxy::setFocusedElementValue):
(WebKit::WebPageProxy::setFocusedElementValueAsNumber):
(WebKit::WebPageProxy::setFocusedElementSelectedIndex):
(WebKit::WebPageProxy::computePagesForPrintingAndDrawToPDF):
(WebKit::WebPageProxy::contentSizeCategoryDidChange):
(WebKit::WebPageProxy::generateSyntheticEditingCommand):
(WebKit::WebPageProxy::hardwareKeyboardAvailabilityChanged):
(WebKit::WebPageProxy::requestEvasionRectsAboveSelection):
(WebKit::WebPageProxy::updateSelectionWithDelta):
(WebKit::WebPageProxy::requestDocumentEditingContext):
(WebKit::WebPageProxy::requestDragStart):
(WebKit::WebPageProxy::requestAdditionalItemsForDragSession):
(WebKit::WebPageProxy::didConcludeDrop):
(WebKit::WebPageProxy::didRequestPasswordForQuickLookDocumentInMainFrameShared):

  • UIProcess/mac/RemoteWebInspectorProxyMac.mm:

(WebKit::RemoteWebInspectorProxy::platformSave):
(WebKit::RemoteWebInspectorProxy::platformAppend):

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForDidUpdateActivityState):

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::handleMagnificationGestureEvent):
(WebKit::ViewGestureController::handleSmartMagnificationGesture):

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]):

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformSave):
(WebKit::WebInspectorProxy::platformAppend):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::windowAndViewFramesChanged):
(WebKit::WebPageProxy::setMainFrameIsScrollable):
(WebKit::WebPageProxy::insertDictatedTextAsync):
(WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync):
(WebKit::WebPageProxy::fontAtSelection):
(WebKit::WebPageProxy::stringSelectionForPasteboard):
(WebKit::WebPageProxy::dataSelectionForPasteboard):
(WebKit::WebPageProxy::readSelectionFromPasteboard):
(WebKit::WebPageProxy::replaceSelectionWithPasteboardData):
(WebKit::WebPageProxy::sendComplexTextInputToPlugin):
(WebKit::WebPageProxy::uppercaseWord):
(WebKit::WebPageProxy::lowercaseWord):
(WebKit::WebPageProxy::capitalizeWord):
(WebKit::WebPageProxy::setSmartInsertDeleteEnabled):
(WebKit::WebPageProxy::registerUIProcessAccessibilityTokens):
(WebKit::WebPageProxy::shouldDelayWindowOrderingForEvent):
(WebKit::WebPageProxy::acceptsFirstMouse):

  • WebKit.xcodeproj/project.pbxproj:
8:27 AM Changeset in webkit [249274] by Chris Dumez
  • 3 edits in trunk/Source/WebKit

Use inline data member initialization in ProcessLauncher
https://bugs.webkit.org/show_bug.cgi?id=201247

Reviewed by Ryosuke Niwa.

  • UIProcess/Launcher/ProcessLauncher.cpp:

(WebKit::ProcessLauncher::ProcessLauncher):

  • UIProcess/Launcher/ProcessLauncher.h:
8:25 AM Changeset in webkit [249273] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Crash when mach_port_deallocate() returns KERN_INVALID_NAME
https://bugs.webkit.org/show_bug.cgi?id=201248
<rdar://problem/54813890>

Reviewed by Alex Christensen.

  • wtf/cocoa/MachSendRight.cpp:

(WTF::deallocateSendRightSafely):

7:54 AM Changeset in webkit [249272] by commit-queue@webkit.org
  • 8 edits in trunk

Address some MathML FIXMEs
https://bugs.webkit.org/show_bug.cgi?id=201293

Patch by Rob Buis <rbuis@igalia.com> on 2019-08-29
Reviewed by Frédéric Wang.

Source/WebCore:

Add element tag checks for data, time and dialog.

  • mathml/MathMLOperatorDictionary.h:
  • mathml/MathMLPresentationElement.cpp:

(WebCore::MathMLPresentationElement::isPhrasingContent):
(WebCore::MathMLPresentationElement::isFlowContent):

LayoutTests:

Also test newly exposed data and time elements.

  • mathml/presentation/foreign-element-in-token-expected.txt:
  • mathml/presentation/foreign-element-in-token.html:
  • platform/ios-wk2/mathml/presentation/foreign-element-in-token-expected.txt:
  • platform/mac-wk2/mathml/presentation/foreign-element-in-token-expected.txt:
6:11 AM Changeset in webkit [249271] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r249252 - WebSockets: first-party for cookies not set in handshake request when using platform APIs
https://bugs.webkit.org/show_bug.cgi?id=200165

Reviewed by Youenn Fablet.

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::webSocketConnectRequest):

6:11 AM Changeset in webkit [249270] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebInspectorUI

Merge r249248 - Web Inspector: Import file pickers sometimes do not import
https://bugs.webkit.org/show_bug.cgi?id=201290
<rdar://problem/54826117>

Reviewed by Devin Rousso.

  • UserInterface/Base/FileUtilities.js:

(WI.FileUtilities.importText):
(WI.FileUtilities.importJSON):
Keep the input element alive so it doesn't get garbage collected,
which makes the file chooser do nothing.

(WI.FileUtilities.save):
(WI.FileUtilities.async.readText):
Place read operations after event handlers are setup in case the
read operations can happen synchronously and events may not fire.

6:11 AM Changeset in webkit [249269] by Carlos Garcia Campos
  • 5 edits
    1 add in releases/WebKitGTK/webkit-2.26

Merge r249247 - DFG/FTL: We should prefetch structures and do a loadLoadFence before doing PrototypeChainIsSane checks.
https://bugs.webkit.org/show_bug.cgi?id=201281
<rdar://problem/54028228>

Reviewed by Yusuke Suzuki and Saam Barati.

JSTests:

  • stress/structure-storedPrototype-should-only-assert-on-the-mutator-thread.js: Added.

Source/JavaScriptCore:

This (see title above) is already the preferred idiom used in most places in our
compiler, except for 2: DFG's SpeculativeJIT::compileGetByValOnString() and FTL's
compileStringCharAt(). Consider the following:

bool prototypeChainIsSane = false;
if (globalObject->stringPrototypeChainIsSane()) {

...
m_graph.registerAndWatchStructureTransition(globalObject->stringPrototype()->structure(vm()));
m_graph.registerAndWatchStructureTransition(globalObject->objectPrototype()->structure(vm()));

prototypeChainIsSane = globalObject->stringPrototypeChainIsSane();

}

What's essential for correctness here is that the stringPrototype and objectPrototype
structures be loaded before the loads in the second stringPrototypeChainIsSane()
check. Without a loadLoadFence before the second stringPrototypeChainIsSane()
check, we can't guarantee that. Elsewhere in the compiler, the preferred idiom
for doing this right is to pre-load the structures first, do a loadLoadFence, and
then do the IsSane check just once after e.g.

Structure* arrayPrototypeStructure = globalObject->arrayPrototype()->structure(m_vm);
Structure* objectPrototypeStructure = globalObject->objectPrototype()->structure(m_vm);

if (arrayPrototypeStructure->transitionWatchpointSetIsStillValid() has loadLoadFences.

&& objectPrototypeStructure->transitionWatchpointSetIsStillValid() has loadLoadFences.
&& globalObject->arrayPrototypeChainIsSane()) {

m_graph.registerAndWatchStructureTransition(arrayPrototypeStructure);
m_graph.registerAndWatchStructureTransition(objectPrototypeStructure);
...

}

This patch changes DFG's SpeculativeJIT::compileGetByValOnString() and FTL's
compileStringCharAt() to follow the same idiom.

We also fix a bad assertion in Structure::storedPrototype() and
Structure::storedPrototypeObject(). The assertion is only correct when those
methods are called from the mutator thread. The assertion has been updated to
only check its test condition if the current thread is the mutator thread.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnString):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):

  • runtime/StructureInlines.h:

(JSC::Structure::storedPrototype const):
(JSC::Structure::storedPrototypeObject const):

6:11 AM Changeset in webkit [249268] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.26/Source/WebInspectorUI

Merge r249246 - Web Inspector: REGRESSION(r249078): JavaScript autocomplete doesn't work when evaluating properties of values
https://bugs.webkit.org/show_bug.cgi?id=201226

Reviewed by Joseph Pecoraro.

r249078 modified WI.JavaScriptRuntimeCompletionProvider to use arrays of property names
instead of objects for completion, but a few code paths were missed.

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.evaluated):
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedPropertyNamesFromEvaluate):
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedObjectPropertyNames): Added.
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedArrayPropertyNames):

  • UserInterface/Models/CallFrame.js:

(WI.CallFrame.prototype.collectScopeChainVariableNames):
(WI.CallFrame.prototype.collectScopeChainVariableNames.propertiesCollected):

6:11 AM Changeset in webkit [249267] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r249236 - Make FillLayer::hasImage() inline
https://bugs.webkit.org/show_bug.cgi?id=201265

Reviewed by Zalan Bujtas.

FillLayer::hasImage() shows up on profiles because it's called from hot functions like
isTransparent() and hasMask(), so make a basic inline version that doens't have
to walk the list.

  • rendering/style/FillLayer.cpp:

(WebCore::FillLayer::hasImageInAnyLayer const):
(WebCore::FillLayer::hasImage const): Deleted.

  • rendering/style/FillLayer.h:

(WebCore::FillLayer::hasImage const):

6:11 AM Changeset in webkit [249266] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r249232 - PaintFrequencyTracker triggers too many calls to MonotonicTime::now() on layer painting
https://bugs.webkit.org/show_bug.cgi?id=201261

Reviewed by Zalan Bujtas.

MonotonicTime::now() shows up as expensive when painting layer-heavy content, because PaintFrequencyTracker
makes two calls per layer paint.

Halve the number of calls by storing m_lastPaintTime at the start of the paint; doing so doesn't substantially
change the behavior of the tracker.

  • rendering/PaintFrequencyTracker.h:

(WebCore::PaintFrequencyTracker::begin):
(WebCore::PaintFrequencyTracker::end):

6:11 AM Changeset in webkit [249265] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.26

Merge r249225 - Placate exception check validation in DFG's operationHasGenericProperty().
https://bugs.webkit.org/show_bug.cgi?id=201245
<rdar://problem/54777512>

Reviewed by Robin Morisset.

JSTests:

  • stress/missing-exception-check-in-operationHasGenericProperty.js: Added.

Source/JavaScriptCore:

  • dfg/DFGOperations.cpp:
6:11 AM Changeset in webkit [249264] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.26/Source

Merge r249223 - Unreviewed. Restabilize non-unified build.

Source/JavaScriptCore:

  • runtime/PropertySlot.h:

Source/WebCore:

  • inspector/agents/WebConsoleAgent.h:
  • loader/ResourceLoadObserver.h:
6:10 AM Changeset in webkit [249263] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r249222 - Devirtualize RenderBox::visualOverflowRect()
https://bugs.webkit.org/show_bug.cgi?id=201231

Reviewed by Zalan Bujtas.

The only override of RenderBox::visualOverflowRect() was in RenderView, for "paintsEntireContents" views, and as
far as I can tell this is not necessary. visualOverflowRect() is hot when called from RenderLayer::localBoundingBox() --
this shows in profiles when scrolling large patch reviews, so making it non-virtual is a performance enhancement.

RenderLayer::localBoundingBox() can also just call visualOverflowRect(), since that returns borderBoxRect()
when there is no overflow.

  • rendering/RenderBox.h:

(WebCore::RenderBox::visualOverflowRect const):

  • rendering/RenderLayer.cpp:

(WebCore::performOverlapTests): Minor optimization to avoid a call to boundingBox().
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderView.cpp:

(WebCore::RenderView::visualOverflowRect const): Deleted.

  • rendering/RenderView.h:
6:10 AM Changeset in webkit [249262] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.26/Source/JavaScriptCore

Merge r249221 - Wasm's AirIRGenerator::addLocal() and B3IRGenerator::addLocal() are doing unnecessary overflow checks.
https://bugs.webkit.org/show_bug.cgi?id=201006
<rdar://problem/52053991>

Reviewed by Yusuke Suzuki.

We already ensured that it is not possible to overflow in Wasm::FunctionParser's
parse(). It is unnecessary and misleading to do those overflow checks in
AirIRGenerator and B3IRGenerator. The only check that is necessary is that
m_locals.tryReserveCapacity() is successful, otherwise, we have an out of memory
situation.

This patch changes these unnecessary checks to assertions instead.

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addLocal):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addLocal):

  • wasm/WasmValidate.cpp:

(JSC::Wasm::Validate::addLocal):

6:10 AM Changeset in webkit [249261] by Carlos Garcia Campos
  • 63 edits
    1 add in releases/WebKitGTK/webkit-2.26/Source

Merge r249217 - All image drawing functions should take an argument of type ImagePaintingOptions
https://bugs.webkit.org/show_bug.cgi?id=201059

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-28
Reviewed by Simon Fraser.

Source/WebCore:

In this patch:
-- All the image drawing function will take an argument of type

ImagePaintingOptions instead of passing individual options.

-- ImagePaintingOptions is made like a set of options. It can be

initialized with any number of options and the order does not matter

-- Image::originalSize() is deleted because it returns size() and none

of the Image concrete classes overrides this implementation.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createPromise):
(WebCore::ImageBitmap::createFromBuffer):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::drawImageToContext):
(WebCore::CanvasRenderingContext2DBase::fullCanvasCompositedDrawImage):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::drawPattern):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::drawCrossfadeSubimage):
(WebCore::CrossfadeGeneratedImage::draw):
(WebCore::CrossfadeGeneratedImage::drawPattern):

  • platform/graphics/CrossfadeGeneratedImage.h:
  • platform/graphics/CustomPaintImage.cpp:

(WebCore::CustomPaintImage::draw):
(WebCore::CustomPaintImage::drawPattern):

  • platform/graphics/CustomPaintImage.h:
  • platform/graphics/GeneratedImage.h:

(WebCore::GeneratedImage::draw):
(WebCore::GeneratedImage::drawPattern):

  • platform/graphics/GradientImage.cpp:

(WebCore::GradientImage::draw):
(WebCore::GradientImage::drawPattern):

  • platform/graphics/GradientImage.h:
  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::drawConsumingImageBuffer):

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::drawConsumingImageBuffer):
(WebCore::ImagePaintingOptions::ImagePaintingOptions): Deleted.
(WebCore::ImagePaintingOptions::usesDefaultInterpolation const): Deleted.

  • platform/graphics/GraphicsContextImpl.cpp:

(WebCore::GraphicsContextImpl::drawImageImpl):
(WebCore::GraphicsContextImpl::drawTiledImageImpl):

  • platform/graphics/GraphicsContextImpl.h:
  • platform/graphics/Image.cpp:

(WebCore::Image::drawPattern):
(WebCore::Image::drawTiled):
(WebCore::Image::computeIntrinsicDimensions):

  • platform/graphics/Image.h:

(WebCore::Image::drawPattern):
(WebCore::Image::draw):
(WebCore::Image::drawTiled):
(WebCore::Image::originalSize const): Deleted.

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):
(WebCore::ImageBuffer::drawConsuming):

  • platform/graphics/ImagePaintingOptions.h: Added.

(WebCore::ImagePaintingOptions::ImagePaintingOptions):
(WebCore::ImagePaintingOptions::compositeOperator const):
(WebCore::ImagePaintingOptions::blendMode const):
(WebCore::ImagePaintingOptions::decodingMode const):
(WebCore::ImagePaintingOptions::orientation const):
(WebCore::ImagePaintingOptions::interpolationQuality const):
(WebCore::ImagePaintingOptions::setOption):

  • platform/graphics/NamedImageGeneratedImage.cpp:

(WebCore::NamedImageGeneratedImage::draw):
(WebCore::NamedImageGeneratedImage::drawPattern):

  • platform/graphics/NamedImageGeneratedImage.h:
  • platform/graphics/NativeImage.h:
  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawShadowLayerBuffer):
(WebCore::Cairo::drawShadowImage):
(WebCore::Cairo::drawNativeImage):
(WebCore::Cairo::drawPattern):

  • platform/graphics/cairo/CairoOperations.h:
  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawPattern):

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::drawNativeImage):
(WebCore::GraphicsContextImplCairo::drawPattern):

  • platform/graphics/cairo/GraphicsContextImplCairo.h:
  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::drawConsuming):
(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):

  • platform/graphics/cairo/NativeImageCairo.cpp:

(WebCore::drawNativeImage):

  • platform/graphics/cg/GraphicsContext3DCG.cpp:

(WebCore::GraphicsContext3D::paintToCanvas):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawPattern):

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::drawConsuming):
(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):

  • platform/graphics/cg/NativeImageCG.cpp:

(WebCore::drawNativeImage):

  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::draw):

  • platform/graphics/cg/PDFDocumentImage.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawNativeImage::DrawNativeImage):
(WebCore::DisplayList::DrawNativeImage::apply const):
(WebCore::DisplayList::DrawPattern::DrawPattern):
(WebCore::DisplayList::DrawPattern::apply const):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawNativeImage::create):
(WebCore::DisplayList::DrawPattern::create):
(WebCore::DisplayList::DrawPattern::DrawPattern):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawNativeImage):
(WebCore::DisplayList::Recorder::drawPattern):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/filters/FEBlend.cpp:

(WebCore::FEBlend::platformApplySoftware):

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::platformApplySoftware):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::paint):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::drawNativeImage):
(Nicosia::CairoOperationRecorder::drawPattern):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
  • platform/graphics/win/Direct2DOperations.cpp:

(WebCore::Direct2D::drawNativeImage):
(WebCore::Direct2D::drawPattern):

  • platform/graphics/win/Direct2DOperations.h:
  • platform/graphics/win/GraphicsContextImplDirect2D.h:
  • platform/graphics/win/ImageCGWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):

  • platform/graphics/win/ImageCairoWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):

  • platform/graphics/win/NativeImageDirect2D.cpp:

(WebCore::drawNativeImage):

  • platform/ios/DragImageIOS.mm:

(WebCore::createDragImageFromImage):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::paintSnapshotImage):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::paintIntoRect):

  • rendering/RenderSnapshottedPlugIn.cpp:

(WebCore::RenderSnapshottedPlugIn::paintSnapshot):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawForContainer):
(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::nativeImage):
(WebCore::SVGImage::drawPatternForContainer):
(WebCore::SVGImage::draw):

  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageForContainer.cpp:

(WebCore::SVGImageForContainer::draw):
(WebCore::SVGImageForContainer::drawPattern):

  • svg/graphics/SVGImageForContainer.h:

Source/WebKit:

GraphicsContext::drawImage() now takes an ImagePaintingOptions.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::imagePositionInformation):

6:10 AM Changeset in webkit [249260] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.26

Merge r249216 - XLinkNames namespace is required before the 'href' attribute of SVG animate elements
https://bugs.webkit.org/show_bug.cgi?id=201227

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-28
Reviewed by Ryosuke Niwa.

Source/WebCore:

To get the animation target element, get the value of the "href" attribute
or the "xlink:href" attribute.

Tests: svg/custom/href-svg-namespace-animate-target.svg

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::buildPendingResource):

LayoutTests:

  • svg/custom/href-svg-namespace-animate-target-expected.svg: Added.
  • svg/custom/href-svg-namespace-animate-target.svg: Added.
6:10 AM Changeset in webkit [249259] by Carlos Garcia Campos
  • 12 edits in releases/WebKitGTK/webkit-2.26

Merge r249207 - geolocation.watchPosition() / getCurrentPosition() should return PERMISSION_DENIED when context is not secure
https://bugs.webkit.org/show_bug.cgi?id=201221

Reviewed by Ryosuke Niwa.

Source/WebCore:

geolocation.watchPosition() / getCurrentPosition() should return PERMISSION_DENIED when context is not secure,
not POSITION_UNAVAILABLE. Both Gecko and Blink agree on PERMISSION_DENIED.

No new tests, updated existing tests.

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::startRequest):

LayoutTests:

Update layout tests to reflect behavior change.

  • fast/dom/Geolocation/dataURL-getCurrentPosition-expected.txt:
  • fast/dom/Geolocation/dataURL-getCurrentPosition.html:
  • fast/dom/Geolocation/dataURL-watchPosition-expected.txt:
  • fast/dom/Geolocation/dataURL-watchPosition.html:
  • http/tests/security/resources/checkThatPositionErrorCallbackIsCalledWithPositionUnavailableForGeolocationMethod.js:

(didReceiveError):
(checkThatPositionErrorCallbackIsCalledWithPositionUnavailableForGeolocationMethod):

  • http/tests/security/sandboxed-iframe-geolocation-getCurrentPosition-expected.txt:
  • http/tests/security/sandboxed-iframe-geolocation-getCurrentPosition.html:
  • http/tests/security/sandboxed-iframe-geolocation-watchPosition-expected.txt:
  • http/tests/security/sandboxed-iframe-geolocation-watchPosition.html:
6:10 AM Changeset in webkit [249258] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit

Merge r249206 - Have WebPageProxy generate the page identifier by itself
https://bugs.webkit.org/show_bug.cgi?id=201223

Reviewed by Ryosuke Niwa.

Have WebPageProxy generate the page identifier by itself instead of
having the WebProcessProxy do it.

  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::m_serviceWorkerPageID):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::create):
(WebKit::WebPageProxy::WebPageProxy):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::createWebPage):
(WebKit::WebProcessProxy::generatePageID): Deleted.

  • UIProcess/WebProcessProxy.h:
6:10 AM Changeset in webkit [249257] by Carlos Garcia Campos
  • 29 edits
    7 adds
    3 deletes in releases/WebKitGTK/webkit-2.26

Merge r249205 - [MSE][GStreamer] WebKitMediaSrc rework
https://bugs.webkit.org/show_bug.cgi?id=199719

Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-video-element/timeout_on_seek.py: Added.

(parse_range):
(main):

  • web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek-expected.txt: Added.
  • web-platform-tests/media-source/mediasource-buffered-seek-expected.txt: Added.
  • web-platform-tests/media-source/mediasource-buffered-seek.html: Added.

Source/WebCore:

This patch reworks the WebKitMediaSrc element and many of the player
private methods that interacted with it.

In comparison with the old WebKitMediaSrc, in the new one seeks have
been massively simplified.

The new WebKitMediaSrc no longer relies on a bin or appsrc, having
greater control over its operation. This made it comparatively much
easier to implement features such as seek before playback or
single-stream flushing.

stream-collection events are emitted from the WebKitMediaSrc to reuse
the track handling in MediaPlayerPrivateGStreamer for playbin3, which
is now used for MSE pipelines.

Additional tests have been added to check some assumptions, and some
bugs that have surfaced with the changes have been fixed but no new
features (like multi-track support) are implemented in this patch.

One instance of these bugs is resized events, which were previously
being emitted when frames with different resolutions where appended.
This is a wrong behavior that has not been preserved in the rework, as
resize events should be emitted when the frames are shown, not
just appended.

There are subtler bugfixes, such as ignoring PTS-less frames in
AppendPipeline::appsinkNewSample(). These frames are problematic for
MSE, yet they were somehow passing through the pipelines. Since
WebKitMediaSrc is stricter with assertions, these have to be filtered.

This test gets rid of !m_mseSeekCompleted assertion failures in tests
and potentially other hard to debug bugs in the previous seek
algorithm.

This patch makes the following existing tests pass:

imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html
imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framesize.html

New test: imported/w3c/web-platform-tests/media-source/mediasource-buffered-seek.html
New test: LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek.html (non-MSE related)

  • Headers.cmake:
  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/GRefPtrGStreamer.cpp:

(WTF::adoptGRef):
(WTF::refGPtr<GstMiniObject>):
(WTF::derefGPtr<GstMiniObject>):

  • platform/graphics/gstreamer/GRefPtrGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
(WebCore::MediaPlayerPrivateGStreamer::paused const):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
(WebCore::MediaPlayerPrivateGStreamer::enableTrack):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
(WebCore::MediaPlayerPrivateGStreamer::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(WebCore::MediaPlayerPrivateGStreamer::invalidateCachedPosition):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize const):
(WebCore::MediaPlayerPrivateGStreamerBase::naturalSizeFromCaps const):
(WebCore::MediaPlayerPrivateGStreamerBase::samplesHaveDifferentNaturalSize const):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):

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

(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):

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

(WebCore::AppendPipeline::appsinkCaps):
(WebCore::AppendPipeline::streamType):
(WebCore::AppendPipeline::demuxerSrcPadCaps):

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

(WebCore::MediaPlayerPrivateGStreamerMSE::~MediaPlayerPrivateGStreamerMSE):
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::play):
(WebCore::MediaPlayerPrivateGStreamerMSE::pause):
(WebCore::MediaPlayerPrivateGStreamerMSE::seek):
(WebCore::MediaPlayerPrivateGStreamerMSE::seekCompleted):
(WebCore::MediaPlayerPrivateGStreamerMSE::setReadyState):
(WebCore::MediaPlayerPrivateGStreamerMSE::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamerMSE::updateStates):
(WebCore::MediaPlayerPrivateGStreamerMSE::didEnd):
(WebCore::MediaPlayerPrivateGStreamerMSE::unblockDurationChanges):
(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected):

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

(WebCore::MediaSourceClientGStreamerMSE::addSourceBuffer):
(WebCore::MediaSourceClientGStreamerMSE::removedFromMediaSource):
(WebCore::MediaSourceClientGStreamerMSE::flush):
(WebCore::MediaSourceClientGStreamerMSE::enqueueSample):
(WebCore::MediaSourceClientGStreamerMSE::isReadyForMoreSamples):
(WebCore::MediaSourceClientGStreamerMSE::notifyClientWhenReadyForMoreSamples):
(WebCore::MediaSourceClientGStreamerMSE::allSamplesInTrackEnqueued):

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h:
  • platform/graphics/gstreamer/mse/MediaSourceGStreamer.cpp:

(WebCore::MediaSourceGStreamer::markEndOfStream):
(WebCore::MediaSourceGStreamer::unmarkEndOfStream):
(WebCore::MediaSourceGStreamer::waitForSeekCompleted):

  • platform/graphics/gstreamer/mse/MediaSourceGStreamer.h:
  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp: Removed.
  • platform/graphics/gstreamer/mse/PlaybackPipeline.h: Removed.
  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::enqueueSample):
(WebCore::SourceBufferPrivateGStreamer::isReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::notifyClientWhenReadyForMoreSamples):

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

(WebKitMediaSrcPrivate::streamByName):
(Stream::Stream):
(Stream::StreamingMembers::StreamingMembers):
(Stream::StreamingMembers::durationEnqueued const):
(findPipeline):
(webkit_media_src_class_init):
(webkit_media_src_init):
(webKitMediaSrcFinalize):
(debugProbe):
(collectionPlusStream):
(collectionMinusStream):
(gstStreamType):
(webKitMediaSrcAddStream):
(webKitMediaSrcRemoveStream):
(webKitMediaSrcActivateMode):
(webKitMediaSrcPadLinked):
(webKitMediaSrcStreamNotifyLowWaterLevel):
(webKitMediaSrcLoop):
(webKitMediaSrcEnqueueObject):
(webKitMediaSrcEnqueueSample):
(webKitMediaSrcEnqueueEvent):
(webKitMediaSrcEndOfStream):
(webKitMediaSrcIsReadyForMoreSamples):
(webKitMediaSrcNotifyWhenReadyForMoreSamples):
(webKitMediaSrcChangeState):
(webKitMediaSrcStreamFlushStart):
(webKitMediaSrcStreamFlushStop):
(webKitMediaSrcFlush):
(webKitMediaSrcSeek):
(countStreamsOfType):
(webKitMediaSrcGetProperty):
(webKitMediaSrcUriGetType):
(webKitMediaSrcGetProtocols):
(webKitMediaSrcGetUri):
(webKitMediaSrcSetUri):
(webKitMediaSrcUriHandlerInit):

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

Tools:

Added WebKitMediaSourceGStreamer.cpp to the GStreamer-style coding
whitelist.

  • Scripts/webkitpy/style/checker.py:

LayoutTests:

Updated expectations.

  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek-expected.txt: Added.
6:09 AM Changeset in webkit [249256] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r249203 - Have RenderSVGBlock compute visual overflow just like everyone else
https://bugs.webkit.org/show_bug.cgi?id=201211

Reviewed by Zalan Bujtas.

RenderSVGBlock overrode visualOverflowRect() just to account for text shadow. This prevents callers
optimizing calls to visualOverflowRect(), so instead have RenderSVGBlock implement computeOverflow()
and call addVisualOverflow().

  • rendering/svg/RenderSVGBlock.cpp:

(WebCore::RenderSVGBlock::computeOverflow):
(WebCore::RenderSVGBlock::visualOverflowRect const): Deleted.

  • rendering/svg/RenderSVGBlock.h:
6:09 AM Changeset in webkit [249255] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r249198 - REGRESSION (r248807): Objects stored in ElementRareData are leaked
https://bugs.webkit.org/show_bug.cgi?id=200954

Reviewed by Antti Koivisto.

Use a custom deleter in std::unique_ptr to call the correct destructor instead of making
NodeRareData's destructor virtual. Added NodeRareData::isElementRareData to differentiate
ElementRareData and NodeRareData by borrowing 1 bit from the frame count.

No new tests since there should be no behavioral change.

  • dom/ElementRareData.h:

(WebCore::ElementRareData::ElementRareData):

  • dom/Node.cpp:

(WebCore::Node::materializeRareData): Call the constructors of unique_ptr directly since
make_unique does not take a custom deleter. We can't add the support to makeUnique either
without making it three arguments since we need to cast ElementRareData to NodeRareData
in addition to specifying a custom deleter (normal casting wouldn't work due to
the presence of a custom deleter).
(WebCore::Node::NodeRareDataDeleter::operator() const): Added.

  • dom/Node.h:

(WebCore::Node::NodeRareDataDeleter): Added.

  • dom/NodeRareData.cpp:
  • dom/NodeRareData.h:

(WebCore::NodeRareData::NodeRareData): Makes newly added Type.
(WebCore::NodeRareData::isElementRareData): Added.
(WebCore::NodeRareData::~NodeRareData): Deleted.

4:21 AM Changeset in webkit [249254] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebCore

[Nicosia] Nicosia::Animation is missing the copy assignment operator
https://bugs.webkit.org/show_bug.cgi?id=201298

Reviewed by Carlos Garcia Campos.

Along with the copy constructor, the Nicosia::Animation class also
requires the copy assignment operator that's invoked whenever
the containing Nicosia::Animations object is copied across different
state objects.

Much like the constructor, the copy assignment should clone the
TimingFunction object to make it safely reusable in other contexts.
This fixes the assertion failures in debug configurations over the
improper cross-thread RefCounted usage.

  • platform/graphics/nicosia/NicosiaAnimation.cpp:

(Nicosia::Animation::operator=):

  • platform/graphics/nicosia/NicosiaAnimation.h:

Explicitly default the move constructor and assignment operator,
providing the whole quartet.

4:10 AM Changeset in webkit [249253] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

https://bugs.webkit.org/show_bug.cgi?id=200917
Do not call addHTTPOriginIfNeeded for window.open

window.open() always uses GET requests and addHTTPOriginIfNeeded
has no effect for GET, so do not call it.

Patch by Rob Buis <rbuis@igalia.com> on 2019-08-29
Reviewed by Frédéric Wang.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

3:39 AM Changeset in webkit [249252] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

WebSockets: first-party for cookies not set in handshake request when using platform APIs
https://bugs.webkit.org/show_bug.cgi?id=200165

Reviewed by Youenn Fablet.

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::webSocketConnectRequest):

3:38 AM Changeset in webkit [249251] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r249197 - [SOUP] Shut compilation warning

Unreviewed. RELEASE_LOG_ERROR() needs a channel.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::setupHSTSEnforcer):

3:37 AM Changeset in webkit [249250] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore

Merge r249196 - [SOUP] Fix the debug build after r249192

Unreviewed build fix.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::setupHSTSEnforcer):

1:30 AM Changeset in webkit [249249] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Implement HTMLOrForeignElement
https://bugs.webkit.org/show_bug.cgi?id=201219

Patch by Rob Buis <rbuis@igalia.com> on 2019-08-29
Reviewed by Frédéric Wang.

Add FIXME for updating the spec link.

  • html/HTMLOrForeignElement.idl:
1:24 AM Changeset in webkit [249248] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Import file pickers sometimes do not import
https://bugs.webkit.org/show_bug.cgi?id=201290
<rdar://problem/54826117>

Reviewed by Devin Rousso.

  • UserInterface/Base/FileUtilities.js:

(WI.FileUtilities.importText):
(WI.FileUtilities.importJSON):
Keep the input element alive so it doesn't get garbage collected,
which makes the file chooser do nothing.

(WI.FileUtilities.save):
(WI.FileUtilities.async.readText):
Place read operations after event handlers are setup in case the
read operations can happen synchronously and events may not fire.

Aug 28, 2019:

11:49 PM Changeset in webkit [249247] by mark.lam@apple.com
  • 5 edits
    1 add in trunk

DFG/FTL: We should prefetch structures and do a loadLoadFence before doing PrototypeChainIsSane checks.
https://bugs.webkit.org/show_bug.cgi?id=201281
<rdar://problem/54028228>

Reviewed by Yusuke Suzuki and Saam Barati.

JSTests:

  • stress/structure-storedPrototype-should-only-assert-on-the-mutator-thread.js: Added.

Source/JavaScriptCore:

This (see title above) is already the preferred idiom used in most places in our
compiler, except for 2: DFG's SpeculativeJIT::compileGetByValOnString() and FTL's
compileStringCharAt(). Consider the following:

bool prototypeChainIsSane = false;
if (globalObject->stringPrototypeChainIsSane()) {

...
m_graph.registerAndWatchStructureTransition(globalObject->stringPrototype()->structure(vm()));
m_graph.registerAndWatchStructureTransition(globalObject->objectPrototype()->structure(vm()));

prototypeChainIsSane = globalObject->stringPrototypeChainIsSane();

}

What's essential for correctness here is that the stringPrototype and objectPrototype
structures be loaded before the loads in the second stringPrototypeChainIsSane()
check. Without a loadLoadFence before the second stringPrototypeChainIsSane()
check, we can't guarantee that. Elsewhere in the compiler, the preferred idiom
for doing this right is to pre-load the structures first, do a loadLoadFence, and
then do the IsSane check just once after e.g.

Structure* arrayPrototypeStructure = globalObject->arrayPrototype()->structure(m_vm);
Structure* objectPrototypeStructure = globalObject->objectPrototype()->structure(m_vm);

if (arrayPrototypeStructure->transitionWatchpointSetIsStillValid() has loadLoadFences.

&& objectPrototypeStructure->transitionWatchpointSetIsStillValid() has loadLoadFences.
&& globalObject->arrayPrototypeChainIsSane()) {

m_graph.registerAndWatchStructureTransition(arrayPrototypeStructure);
m_graph.registerAndWatchStructureTransition(objectPrototypeStructure);
...

}

This patch changes DFG's SpeculativeJIT::compileGetByValOnString() and FTL's
compileStringCharAt() to follow the same idiom.

We also fix a bad assertion in Structure::storedPrototype() and
Structure::storedPrototypeObject(). The assertion is only correct when those
methods are called from the mutator thread. The assertion has been updated to
only check its test condition if the current thread is the mutator thread.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnString):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):

  • runtime/StructureInlines.h:

(JSC::Structure::storedPrototype const):
(JSC::Structure::storedPrototypeObject const):

11:46 PM Changeset in webkit [249246] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r249078): JavaScript autocomplete doesn't work when evaluating properties of values
https://bugs.webkit.org/show_bug.cgi?id=201226

Reviewed by Joseph Pecoraro.

r249078 modified WI.JavaScriptRuntimeCompletionProvider to use arrays of property names
instead of objects for completion, but a few code paths were missed.

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.evaluated):
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedPropertyNamesFromEvaluate):
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedObjectPropertyNames): Added.
(WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedArrayPropertyNames):

  • UserInterface/Models/CallFrame.js:

(WI.CallFrame.prototype.collectScopeChainVariableNames):
(WI.CallFrame.prototype.collectScopeChainVariableNames.propertiesCollected):

11:26 PM Changeset in webkit [249245] by Fujii Hironori
  • 2 edits in trunk/Tools

[Win] MiniBrowser crashes in WKURLCopyString if WKPageCopyActiveURL returns null
https://bugs.webkit.org/show_bug.cgi?id=201215

Reviewed by Don Olmstead.

MiniBrowser crashed if it was going to go to a unreachable page
because WKPageCopyActiveURL returned a nullptr.

  • MiniBrowser/win/WebKitBrowserWindow.cpp:

(createString): Added null checking of the argument.

11:13 PM Changeset in webkit [249244] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[Nicosia] Implement layer representation retain, release mechanics
https://bugs.webkit.org/show_bug.cgi?id=201133

Reviewed by Carlos Garcia Campos.

  • page/scrolling/nicosia/ScrollingStateNodeNicosia.cpp:

(WebCore::LayerRepresentation::retainPlatformLayer):
Type-cast the layer object to the reference-counted
Nicosia::PlatformLayer type and reference that object.
(WebCore::LayerRepresentation::releasePlatformLayer):
Ditto, but dereference the object.

11:13 PM Changeset in webkit [249243] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[Nicosia] Add Nicosia::PlatformLayer::accessStaging() helper
https://bugs.webkit.org/show_bug.cgi?id=201132

Reviewed by Carlos Garcia Campos.

  • platform/graphics/nicosia/NicosiaPlatformLayer.h:

(Nicosia::CompositionLayer::accessStaging):
Add an accessor into the staging state of the Nicosia::PlatformLayer
object. This will be needed for the application of scrolling changes
in the asynchronous scrolling system.

11:12 PM Changeset in webkit [249242] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebCore

[CoordGraphics] Expose Nicosia layer as the underlying CoordinatedGraphicsLayer platform layer
https://bugs.webkit.org/show_bug.cgi?id=201131

Reviewed by Carlos Garcia Campos.

Add the CoordinatedGraphicsLayer::platformLayer() override, returning
the Nicosia::CompositionLayer object as the underlying platform layer.
This will come in handy for asynchronous scrolling.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::platformLayer const):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
11:11 PM Changeset in webkit [249241] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[Nicosia] Polish ScrollingCoordinator implementation
https://bugs.webkit.org/show_bug.cgi?id=201130

Reviewed by Carlos Garcia Campos.

These changes primarily mirror the Mac implementation of this class.

  • page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:

(WebCore::ScrollingCoordinatorNicosia::pageDestroyed):
Upon releasing the ThreadedScrollingTree, it should also be invalidated
on the scrolling thread.
(WebCore::ScrollingCoordinatorNicosia::commitTreeState):
Invoke willCommitTree() at the beginning of this method. Additionally
the pending-commit-count is incremented for the ThreadedScrollingTree
object.

10:57 PM Changeset in webkit [249240] by Kocsen Chung
  • 4 edits in branches/safari-608-branch

Cherry-pick r249224. rdar://problem/54819205

Null check webFrame when creating a print preview to prevent a crash.
https://bugs.webkit.org/show_bug.cgi?id=201237
<rdar://problem/51618863>

Reviewed by Tim Horton.

Source/WebKit:

Move and expend a null check to keep from crashing when making a print preview.

  • UIProcess/mac/WKPrintingView.mm: (-[WKPrintingView _drawPreview:]): (-[WKPrintingView drawRect:]):

Tools:

Test to verify that if we don't have the WebPageProxy, we will not crash when making a print preview.

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm: (TEST):

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

10:57 PM Changeset in webkit [249239] by Kocsen Chung
  • 3 edits
    3 adds in branches/safari-608-branch

Cherry-pick r249156. rdar://problem/54775048

Crash under WebCore::jsNotificationConstructorPermission
https://bugs.webkit.org/show_bug.cgi?id=201186
<rdar://problem/53962833>

Reviewed by Youenn Fablet.

Source/WebCore:

Update the Notification API implementation to null-check the page before using. The page becomes null
when using the API in a frame that gets detached from its parent while in the middle of running
script.

Test: http/tests/notifications/request-in-detached-frame.html

  • Modules/notifications/Notification.cpp: (WebCore::Notification::permission): (WebCore::Notification::requestPermission):

LayoutTests:

Add layout test coverage.

  • http/tests/notifications/request-in-detached-frame-expected.txt: Added.
  • http/tests/notifications/request-in-detached-frame.html: Added.
  • http/tests/notifications/resources/request-in-detached-frame-subframe.html: Added.

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

10:57 PM Changeset in webkit [249238] by Kocsen Chung
  • 3 edits in branches/safari-608-branch/Source/WebCore

Cherry-pick r249154. rdar://problem/54775050

Disabled devices should not be taken into account when searching for a capture device
https://bugs.webkit.org/show_bug.cgi?id=201183
<rdar://problem/54353440>

Reviewed by Jer Noble.

Manually tested.

  • platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp: (WebCore::CoreAudioCaptureDeviceManager::coreAudioDeviceWithUID): We currently keep a list of devices, some of which might be disabled. We should not take into account disabled devices, only enabled devices when doing this search.
  • platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioSharedUnit::setupAudioUnit): Improve logging.

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

8:14 PM Changeset in webkit [249237] by rniwa@webkit.org
  • 19 edits in trunk

Make tabIndex IDL attribute reflect its content attribute
https://bugs.webkit.org/show_bug.cgi?id=199606
<rdar://problem/52811448>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/html/dom/reflection-misc-expected.txt: Rebaselined now that test cases for summary are passing.

Source/WebCore:

This patch makes tabIndex IDL attribute no longer return 0 when the element is focusable
to match the latest HTML5 specification. Instead, the IDL attribute simply reflect the tabindex
content attribute with some elements having 0 as the default tab index (see r248784):
https://html.spec.whatwg.org/multipage/interaction.html#the-tabindex-attribute

The practical implication is that tabIndex IDL attribute on a root editable element (a.k.a.
editing host in HTML5 spec term), body element in design mode, and media elements with
media controls would start returning -1 instead of 0.

Mechanically, this is accomplished by removing the special case in Element::tabIndexForBindings
when supportsFocus returned true. The effect, if any, this patch has on each element which
overrides Element::supportsFocus is summarized as follows (indentation simplies inheritance):

HTMLAnchorElement -> No effect since defaultTabIndex returns 0.

HTMLAreaElement -> Ditto.

HTMLBodyElement -> Changes to return -1 in design mode.
HTMLElement -> Changes to return -1 on a root editable element.
HTMLFormControlElement

HTMLButtonElement -> No effect since defaultTabIndex returns 0.
HTMLFieldSetElement -> No effect since this is an override to use HTMLElement's supportsFocus.
HTMLFormControlElementWithState

HTMLKeygenElement -> No effect since defaultTabIndex returns 0.
HTMLSelectElement -> Ditto.
HTMLTextFormControlElement -> Ditto.

HTMLInputElement -> Ditto.
HTMLTextAreaElement -> Ditto.

HTMLOutputElement -> No effect since this is an override to use HTMLElement's supportsFocus.

HTMLFrameElementBase - No change. Added defaultTabIndex on HTMLIFrameElement and HTMLFrameElement

to returns 0.

HTMLImageElement - No impact since it only affects when an image is set to be editable via SPI.
HTMLMediaElement - Changes to return -1 when media controls is present.
HTMLPlugInElement - applet and embed elements change to return -1 when the plugin is available.
HTMLSummaryElement - No change. Added defaultTabIndex to return 0 when it's active to match

supportsFocus as well as the HTML5 specification.

MathMLElement - No effect since tabIndex IDL attribute does not exist in MathML.
SVGAElement - No effect since defaultTabIndex returns 0.
SVGClipPathElement - No effect since it always returns false.
SVGDefsElement - No effect since it always returns false.

Tests: fast/dom/tabindex-defaults.html

plugins/focus.html

  • dom/Element.cpp:

(WebCore::Element::tabIndexForBindings const): Made the change.

  • html/HTMLFrameElement.cpp:

(WebCore::HTMLFrameElement::defaultTabIndex const): Added to preserve the existing behavior.

  • html/HTMLFrameElement.h:
  • html/HTMLIFrameElement.cpp:

(WebCore::HTMLIFrameElement::defaultTabIndex const): Ditto.

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

(WebCore::HTMLObjectElement::defaultTabIndex const): Added. Always return 0 to match the spec.

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

(WebCore::HTMLSummaryElement::defaultTabIndex const): Added. Return 0 when the this summary
is the active summary element of the details element.

  • html/HTMLSummaryElement.h:

LayoutTests:

Added test cases and assertions.

  • fast/dom/tabindex-defaults-expected.txt:
  • fast/dom/tabindex-defaults.html: Added test cases for iframe, frame, object, video, summary, and SVG elements.

Also blur the active element to avoid any race conditions.

  • plugins/focus-expected.txt:
  • plugins/focus.html:
  • svg/custom/tabindex-order-expected.txt:
  • svg/custom/tabindex-order.html: Made the sequential navigation code not rely on tabIndex IDL attribute.
8:01 PM Changeset in webkit [249236] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Make FillLayer::hasImage() inline
https://bugs.webkit.org/show_bug.cgi?id=201265

Reviewed by Zalan Bujtas.

FillLayer::hasImage() shows up on profiles because it's called from hot functions like
isTransparent() and hasMask(), so make a basic inline version that doens't have
to walk the list.

  • rendering/style/FillLayer.cpp:

(WebCore::FillLayer::hasImageInAnyLayer const):
(WebCore::FillLayer::hasImage const): Deleted.

  • rendering/style/FillLayer.h:

(WebCore::FillLayer::hasImage const):

7:57 PM Changeset in webkit [249235] by Alan Coon
  • 7 edits in branches/safari-608.2.11.0-branch/Source

Versioning.

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

Versioning.

7:40 PM Changeset in webkit [249233] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

REGRESSION: String check: “realtime” Suggesting “real time”
https://bugs.webkit.org/show_bug.cgi?id=201107
<rdar://problem/46372620>

Patch by Peng Liu <Peng Liu> on 2019-08-28
Reviewed by Jer Noble.

Update Localizable.strings.

No new test.

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

(WebCore::localizedMediaControlElementString):

7:24 PM Changeset in webkit [249232] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

PaintFrequencyTracker triggers too many calls to MonotonicTime::now() on layer painting
https://bugs.webkit.org/show_bug.cgi?id=201261

Reviewed by Zalan Bujtas.

MonotonicTime::now() shows up as expensive when painting layer-heavy content, because PaintFrequencyTracker
makes two calls per layer paint.

Halve the number of calls by storing m_lastPaintTime at the start of the paint; doing so doesn't substantially
change the behavior of the tracker.

  • rendering/PaintFrequencyTracker.h:

(WebCore::PaintFrequencyTracker::begin):
(WebCore::PaintFrequencyTracker::end):

7:10 PM Changeset in webkit [249231] by Kocsen Chung
  • 1 copy in branches/safari-608.2.11.1-branch

New branch.

7:07 PM Changeset in webkit [249230] by timothy_horton@apple.com
  • 4 edits
    2 adds in trunk

Reloading a web view with a fixed-width viewport and variable content width restores the previous page scale, shouldn't
https://bugs.webkit.org/show_bug.cgi?id=201256
<rdar://problem/54809509>

Reviewed by Simon Fraser.

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::restorePageState):
When restoring page state from a history item, if the saved scale was equal to the
initial scale at the time it was saved, ignore the saved scale and use the current
initial scale instead.

Normally this doesn't matter because a given page's initial scale doesn't usually change
between loads, but it totally can! See the test for one example of a way an API client
might cause this; you could also imagine something similar happening if the actual
page content changed.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/long-email-viewport.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/ReloadWithDifferingInitialScale.mm: Added.

(TestWebKitAPI::TEST):
Add a test. I left many comments because I had a great deal of trouble
writing this test and wanted to document my findings.

7:06 PM Changeset in webkit [249229] by Kocsen Chung
  • 1 copy in branches/safari-608.2.11.0-branch

New branch.

6:37 PM Changeset in webkit [249228] by Alan Coon
  • 1 copy in tags/Safari-609.1.3

Tag Safari-609.1.3.

5:44 PM Changeset in webkit [249227] by Jonathan Bedard
  • 2 edits in trunk/Tools

results.webkit.org: Do not display branch selector if only one branches available
https://bugs.webkit.org/show_bug.cgi?id=201244

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/static/js/drawer.js: Hide the branch selector's

container if there aren't multiple branches to choose from.

5:01 PM Changeset in webkit [249226] by Wenson Hsieh
  • 2 edits in trunk/Tools

WKAttachmentTests.DropFolderAsAttachmentAndMoveByDragging fails in some iOS simulator configurations
https://bugs.webkit.org/show_bug.cgi?id=201241
<rdar://problem/54317588>

Reviewed by Tim Horton.

For reasons that are still unknown, it's possible for iOS 13 simulators to get into a state where the IPC
communication delay between the web and UI processes can become extraordinarily long. Under these circumstances,
the drag and drop harness fails to simulate a drop, since it ends up firing all scheduled calls to
-dropInteraction:sessionDidUpdate: before the first response from the web process arrives in the UI process, so
it believes that the web view has rejected the drop from being handled.

Instead, make the drag and drop simulator robust by ensuring a presentation update between drop session updates,
to make sure that the web process has had time to send a response after each update.

  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:

(-[DragAndDropSimulator _advanceProgress]):

4:11 PM Changeset in webkit [249225] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Placate exception check validation in DFG's operationHasGenericProperty().
https://bugs.webkit.org/show_bug.cgi?id=201245
<rdar://problem/54777512>

Reviewed by Robin Morisset.

JSTests:

  • stress/missing-exception-check-in-operationHasGenericProperty.js: Added.

Source/JavaScriptCore:

  • dfg/DFGOperations.cpp:
4:07 PM Changeset in webkit [249224] by Megan Gardner
  • 4 edits in trunk

Null check webFrame when creating a print preview to prevent a crash.
https://bugs.webkit.org/show_bug.cgi?id=201237
<rdar://problem/51618863>

Reviewed by Tim Horton.

Source/WebKit:

Move and expend a null check to keep from crashing when making a print preview.

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _drawPreview:]):
(-[WKPrintingView drawRect:]):

Tools:

Test to verify that if we don't have the WebPageProxy, we will not crash when making a print preview.

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(TEST):

3:52 PM Changeset in webkit [249223] by Ross Kirsling
  • 5 edits in trunk/Source

Unreviewed. Restabilize non-unified build.

Source/JavaScriptCore:

  • runtime/PropertySlot.h:

Source/WebCore:

  • inspector/agents/WebConsoleAgent.h:
  • loader/ResourceLoadObserver.h:
3:32 PM Changeset in webkit [249222] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Devirtualize RenderBox::visualOverflowRect()
https://bugs.webkit.org/show_bug.cgi?id=201231

Reviewed by Zalan Bujtas.

The only override of RenderBox::visualOverflowRect() was in RenderView, for "paintsEntireContents" views, and as
far as I can tell this is not necessary. visualOverflowRect() is hot when called from RenderLayer::localBoundingBox() --
this shows in profiles when scrolling large patch reviews, so making it non-virtual is a performance enhancement.

RenderLayer::localBoundingBox() can also just call visualOverflowRect(), since that returns borderBoxRect()
when there is no overflow.

  • rendering/RenderBox.h:

(WebCore::RenderBox::visualOverflowRect const):

  • rendering/RenderLayer.cpp:

(WebCore::performOverlapTests): Minor optimization to avoid a call to boundingBox().
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderView.cpp:

(WebCore::RenderView::visualOverflowRect const): Deleted.

  • rendering/RenderView.h:
2:24 PM Changeset in webkit [249221] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Wasm's AirIRGenerator::addLocal() and B3IRGenerator::addLocal() are doing unnecessary overflow checks.
https://bugs.webkit.org/show_bug.cgi?id=201006
<rdar://problem/52053991>

Reviewed by Yusuke Suzuki.

We already ensured that it is not possible to overflow in Wasm::FunctionParser's
parse(). It is unnecessary and misleading to do those overflow checks in
AirIRGenerator and B3IRGenerator. The only check that is necessary is that
m_locals.tryReserveCapacity() is successful, otherwise, we have an out of memory
situation.

This patch changes these unnecessary checks to assertions instead.

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addLocal):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addLocal):

  • wasm/WasmValidate.cpp:

(JSC::Wasm::Validate::addLocal):

2:23 PM Changeset in webkit [249220] by Devin Rousso
  • 2 edits in trunk/LayoutTests

Unreviewed, fix test failure after r249173

  • inspector/timeline/line-column-expected.txt:
1:46 PM Changeset in webkit [249219] by Alan Coon
  • 1 copy in tags/Safari-608.2.11

Tag Safari-608.2.11.

1:34 PM Changeset in webkit [249218] by commit-queue@webkit.org
  • 11 edits in trunk/Source/WebCore

Create ANGLE EGL Context with all extensions disabled by default
https://bugs.webkit.org/show_bug.cgi?id=200900

Patch by Austin Eng <enga@chromium.org> on 2019-08-28
Reviewed by Alex Christensen.

In WebGL, extensions must be explicitly requested before they are enabled.
Fixes the following WebGL conformance tests with the ANGLE backend
LayoutTests/webgl/*/conformance/extensions/ext-blend-minmax.html
LayoutTests/webgl/*/conformance/extensions/ext-frag-depth.html
LayoutTests/webgl/*/conformance/extensions/ext-shader-texture-lod.html
LayoutTests/webgl/*/conformance/extensions/ext-sRGB.html
LayoutTests/webgl/*/conformance/extensions/oes-standard-derivatives.html
LayoutTests/webgl/*/conformance/extensions/oes-texture-float.html
LayoutTests/webgl/*/conformance/extensions/webgl-compressed-texture-s3tc.html
LayoutTests/webgl/*/conformance/glsl/misc/shader-with-dfdx.frag.html
LayoutTests/webgl/*/conformance/glsl/variables/glsl-built-ins.html
LayoutTests/webgl/*/conformance/textures/misc/texture-npot-video.html
LayoutTests/webgl/*/conformance/textures/misc/texture-npot.html

  • html/canvas/ANGLEInstancedArrays.cpp:

(WebCore::ANGLEInstancedArrays::ANGLEInstancedArrays):
(WebCore::ANGLEInstancedArrays::supported):

  • html/canvas/WebGLCompressedTextureASTC.cpp:

(WebCore::WebGLCompressedTextureASTC::WebGLCompressedTextureASTC):

  • html/canvas/WebGLCompressedTextureATC.cpp:

(WebCore::WebGLCompressedTextureATC::WebGLCompressedTextureATC):

  • html/canvas/WebGLCompressedTexturePVRTC.cpp:

(WebCore::WebGLCompressedTexturePVRTC::WebGLCompressedTexturePVRTC):

  • html/canvas/WebGLCompressedTextureS3TC.cpp:

(WebCore::WebGLCompressedTextureS3TC::WebGLCompressedTextureS3TC):
(WebCore::WebGLCompressedTextureS3TC::supported):

  • html/canvas/WebGLDebugShaders.cpp:

(WebCore::WebGLDebugShaders::WebGLDebugShaders):

  • html/canvas/WebGLDepthTexture.cpp:

(WebCore::WebGLDepthTexture::WebGLDepthTexture):

  • html/canvas/WebGLDrawBuffers.cpp:

(WebCore::WebGLDrawBuffers::WebGLDrawBuffers):
(WebCore::WebGLDrawBuffers::supported):

  • platform/graphics/angle/GraphicsContext3DANGLE.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):
(WebCore::GraphicsContext3D::validateDepthStencil):

  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D):

1:23 PM Changeset in webkit [249217] by commit-queue@webkit.org
  • 63 edits
    1 add in trunk/Source

All image drawing functions should take an argument of type ImagePaintingOptions
https://bugs.webkit.org/show_bug.cgi?id=201059

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-28
Reviewed by Simon Fraser.

Source/WebCore:

In this patch:
-- All the image drawing function will take an argument of type

ImagePaintingOptions instead of passing individual options.

-- ImagePaintingOptions is made like a set of options. It can be

initialized with any number of options and the order does not matter

-- Image::originalSize() is deleted because it returns size() and none

of the Image concrete classes overrides this implementation.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createPromise):
(WebCore::ImageBitmap::createFromBuffer):

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::drawImage):
(WebCore::drawImageToContext):
(WebCore::CanvasRenderingContext2DBase::fullCanvasCompositedDrawImage):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::drawPattern):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::drawCrossfadeSubimage):
(WebCore::CrossfadeGeneratedImage::draw):
(WebCore::CrossfadeGeneratedImage::drawPattern):

  • platform/graphics/CrossfadeGeneratedImage.h:
  • platform/graphics/CustomPaintImage.cpp:

(WebCore::CustomPaintImage::draw):
(WebCore::CustomPaintImage::drawPattern):

  • platform/graphics/CustomPaintImage.h:
  • platform/graphics/GeneratedImage.h:

(WebCore::GeneratedImage::draw):
(WebCore::GeneratedImage::drawPattern):

  • platform/graphics/GradientImage.cpp:

(WebCore::GradientImage::draw):
(WebCore::GradientImage::drawPattern):

  • platform/graphics/GradientImage.h:
  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::drawConsumingImageBuffer):

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::drawConsumingImageBuffer):
(WebCore::ImagePaintingOptions::ImagePaintingOptions): Deleted.
(WebCore::ImagePaintingOptions::usesDefaultInterpolation const): Deleted.

  • platform/graphics/GraphicsContextImpl.cpp:

(WebCore::GraphicsContextImpl::drawImageImpl):
(WebCore::GraphicsContextImpl::drawTiledImageImpl):

  • platform/graphics/GraphicsContextImpl.h:
  • platform/graphics/Image.cpp:

(WebCore::Image::drawPattern):
(WebCore::Image::drawTiled):
(WebCore::Image::computeIntrinsicDimensions):

  • platform/graphics/Image.h:

(WebCore::Image::drawPattern):
(WebCore::Image::draw):
(WebCore::Image::drawTiled):
(WebCore::Image::originalSize const): Deleted.

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):
(WebCore::ImageBuffer::drawConsuming):

  • platform/graphics/ImagePaintingOptions.h: Added.

(WebCore::ImagePaintingOptions::ImagePaintingOptions):
(WebCore::ImagePaintingOptions::compositeOperator const):
(WebCore::ImagePaintingOptions::blendMode const):
(WebCore::ImagePaintingOptions::decodingMode const):
(WebCore::ImagePaintingOptions::orientation const):
(WebCore::ImagePaintingOptions::interpolationQuality const):
(WebCore::ImagePaintingOptions::setOption):

  • platform/graphics/NamedImageGeneratedImage.cpp:

(WebCore::NamedImageGeneratedImage::draw):
(WebCore::NamedImageGeneratedImage::drawPattern):

  • platform/graphics/NamedImageGeneratedImage.h:
  • platform/graphics/NativeImage.h:
  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawShadowLayerBuffer):
(WebCore::Cairo::drawShadowImage):
(WebCore::Cairo::drawNativeImage):
(WebCore::Cairo::drawPattern):

  • platform/graphics/cairo/CairoOperations.h:
  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawPattern):

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::drawNativeImage):
(WebCore::GraphicsContextImplCairo::drawPattern):

  • platform/graphics/cairo/GraphicsContextImplCairo.h:
  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::drawConsuming):
(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):

  • platform/graphics/cairo/NativeImageCairo.cpp:

(WebCore::drawNativeImage):

  • platform/graphics/cg/GraphicsContext3DCG.cpp:

(WebCore::GraphicsContext3D::paintToCanvas):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawPattern):

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::drawConsuming):
(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):

  • platform/graphics/cg/NativeImageCG.cpp:

(WebCore::drawNativeImage):

  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::draw):

  • platform/graphics/cg/PDFDocumentImage.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawNativeImage::DrawNativeImage):
(WebCore::DisplayList::DrawNativeImage::apply const):
(WebCore::DisplayList::DrawPattern::DrawPattern):
(WebCore::DisplayList::DrawPattern::apply const):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawNativeImage::create):
(WebCore::DisplayList::DrawPattern::create):
(WebCore::DisplayList::DrawPattern::DrawPattern):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::drawNativeImage):
(WebCore::DisplayList::Recorder::drawPattern):

  • platform/graphics/displaylists/DisplayListRecorder.h:
  • platform/graphics/filters/FEBlend.cpp:

(WebCore::FEBlend::platformApplySoftware):

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::platformApplySoftware):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::paint):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::drawNativeImage):
(Nicosia::CairoOperationRecorder::drawPattern):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
  • platform/graphics/win/Direct2DOperations.cpp:

(WebCore::Direct2D::drawNativeImage):
(WebCore::Direct2D::drawPattern):

  • platform/graphics/win/Direct2DOperations.h:
  • platform/graphics/win/GraphicsContextImplDirect2D.h:
  • platform/graphics/win/ImageCGWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):

  • platform/graphics/win/ImageCairoWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):

  • platform/graphics/win/NativeImageDirect2D.cpp:

(WebCore::drawNativeImage):

  • platform/ios/DragImageIOS.mm:

(WebCore::createDragImageFromImage):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::paintSnapshotImage):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::paintIntoRect):

  • rendering/RenderSnapshottedPlugIn.cpp:

(WebCore::RenderSnapshottedPlugIn::paintSnapshot):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawForContainer):
(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::nativeImage):
(WebCore::SVGImage::drawPatternForContainer):
(WebCore::SVGImage::draw):

  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageForContainer.cpp:

(WebCore::SVGImageForContainer::draw):
(WebCore::SVGImageForContainer::drawPattern):

  • svg/graphics/SVGImageForContainer.h:

Source/WebKit:

GraphicsContext::drawImage() now takes an ImagePaintingOptions.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::imagePositionInformation):

12:57 PM Changeset in webkit [249216] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

XLinkNames namespace is required before the 'href' attribute of SVG animate elements
https://bugs.webkit.org/show_bug.cgi?id=201227

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-28
Reviewed by Ryosuke Niwa.

Source/WebCore:

To get the animation target element, get the value of the "href" attribute
or the "xlink:href" attribute.

Tests: svg/custom/href-svg-namespace-animate-target.svg

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::buildPendingResource):

LayoutTests:

  • svg/custom/href-svg-namespace-animate-target-expected.svg: Added.
  • svg/custom/href-svg-namespace-animate-target.svg: Added.
12:51 PM Changeset in webkit [249215] by Truitt Savell
  • 4 edits in trunk/Source/WebCore

Unreviewed, rolling out r249209.

Broke 19 webgpu/ tests

Reverted changeset:

"[WHLSL] Inline typedef'd types during Metal code generation
to simplify generated code while also making it easier to
read"
https://bugs.webkit.org/show_bug.cgi?id=201185
https://trac.webkit.org/changeset/249209

12:46 PM Changeset in webkit [249214] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

[WHLSL] Matrices need to have correct alignment
https://bugs.webkit.org/show_bug.cgi?id=201212

Reviewed by Robin Morisset.

Source/WebCore:

Matrices have particular alignment requirements and size requirements.

Type | Alignment | Size


float2x2 | 8 | 16
float2x3 | 16 | 32
float2x4 | 16 | 32
float3x2 | 8 | 24
float3x3 | 16 | 48
float3x4 | 16 | 48
float4x2 | 8 | 32
float4x3 | 16 | 64
float4x4 | 16 | 64

These are important because they may be a member of a struct, and we don't want to misplace
every successive item in the struct.

Test: webgpu/whlsl/matrix-alignment.html

  • Modules/webgpu/WHLSL/Metal/WHLSLNativeTypeWriter.cpp:

(WebCore::WHLSL::Metal::writeNativeType):

LayoutTests:

Test the alignment and size of float matrices.

Intentionally don't test bool matrices, because they can't be placed in buffers,
meaning their size and alignment is unobservable.

  • webgpu/whlsl/matrix-alignment-expected.txt: Added.
  • webgpu/whlsl/matrix-alignment.html: Added.
12:36 PM Changeset in webkit [249213] by Jonathan Bedard
  • 10 edits
    1 delete in trunk/Tools

results.webkit.org: Move drawer to the right, open by default
https://bugs.webkit.org/show_bug.cgi?id=200977

Rubber-stamped by Aakash Jain.

The drawer was both unpopular and not discoverable. After feedback from bot watchers,
moving the drawer to the right side of the screen, opening it by default and have it displace
instead of hide the main content.

  • resultsdbpy/resultsdbpy/view/commit_view_unittest.py:

(CommitViewUnittest.test_drawer): Support new drawer style.
(CommitViewUnittest.test_range_slider): Ditto.
(CommitViewUnittest.test_one_line_switch): Ditto.
(CommitViewUnittest.test_branch_selection): Ditto.

  • resultsdbpy/resultsdbpy/view/static/css/drawer.css: Removed.
  • resultsdbpy/resultsdbpy/view/static/js/drawer.js:

(setEnableRecursive): Disable all elements underneath this one
(Drawer): Make drawer a sidebar.

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

(.header>.title, .topbar>.title): Overflow of titles should be hidden.
(:root): Move boldInverseColor into webkit.css.
(@media (prefers-color-scheme: dark)):
(.sidebar): Sidebars on mobile should behave like drawers.
(.sidebar.hidden): Add concept of hidden sidebar.
(.mobile-sidebar-control): Add a control to collapse sidebar that only exists on mobile.
(.mobile-sidebar-control.display):
(.main.under-topbar-with-actions):
(@media screen and (min-width: 600px) and (orientation: landscape)):
(.sidebar.left.hidden):
(.sidebar.right.hidden):
(.main.right.hidden):
(.main.left.hidden):
(@media screen and (min-width: 768px) and (orientation: landscape)):
(.sidebar.right):
(a.disabled): Add ability to disable a link.
(.desktop-control): Add a control which only exists on desktop.

  • resultsdbpy/resultsdbpy/view/templates/base.html: Add hamburger drawer-button for mobile.
  • resultsdbpy/resultsdbpy/view/templates/commits.html: Use main since Drawer is now a sidebar.
  • resultsdbpy/resultsdbpy/view/templates/documentation.html: Ditto.
  • resultsdbpy/resultsdbpy/view/templates/search.html: Ditto.
  • resultsdbpy/resultsdbpy/view/templates/suite_results.html: Ditto.
  • resultsdbpy/resultsdbpy/view/view_routes_unittest.py:

(WebSiteTestCase.toggle_drawer): Support new drawer style.
(WebSiteTestCase.find_input_with_name): Ditto.

12:34 PM Changeset in webkit [249212] by commit-queue@webkit.org
  • 14 edits
    1 add in trunk

Implement HTMLOrForeignElement
https://bugs.webkit.org/show_bug.cgi?id=201219

Patch by Rob Buis <rbuis@igalia.com> on 2019-08-28
Reviewed by Ryosuke Niwa.

Source/WebCore:

Add the HTMLOrForeignElement [1] interface to share properties
and methods between HTML, SVG and MathML.

[1] https://github.com/mathml-refresh/mathml/issues/83

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/StaticRange.h:
  • html/HTMLElement.idl:
  • html/HTMLOrForeignElement.idl: Added.
  • svg/SVGElement.idl:

LayoutTests:

Adjust test expectations to new HTMLOrForeignElement interface.

  • js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/mac/inspector/model/remote-object-dom-expected.txt:
12:19 PM Changeset in webkit [249211] by dino@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

GenerateTAPI WebKitLegacy.tbd fails on internal iOS Simulator builds
https://bugs.webkit.org/show_bug.cgi?id=201200

Reviewed by Simon Fraser.

We want to include Foundation/NSURLDownload.h if we're on
a newer iOS.

  • Misc/WebDownload.h:
11:37 AM Changeset in webkit [249210] by Alan Coon
  • 7 edits in branches/safari-608-branch/Source

Versioning.

11:11 AM Changeset in webkit [249209] by weinig@apple.com
  • 4 edits in trunk/Source/WebCore

[WHLSL] Inline typedef'd types during Metal code generation to simplify generated code while also making it easier to read
https://bugs.webkit.org/show_bug.cgi?id=201185

Reviewed by Saam Barati.

The current Metal code generation generates many unnecessary typedefs during TypeNamer::emitMetalTypeDefinitions
such as 'typedef float2 type19;' that can be removed by just using resolved type whereever the typedef would have
been used. The only types that actually need to be predefined are the types that declare a new struct or enum, which
means we can stop emitting for AST::TypeReference, AST::Pointer, AST::Array, and AST::TypeDefinition. Instead, the
relevent mangledNameForType constructs the computed name on the fly.

This is a 25% speedup in the metal code generation phase.

  • Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:

(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
Switch to using auto rather than Mangled*Name when it is obvious and the actual return type
may need to become more complicated (e.g. MangledOrNativeTypeName).

  • Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.h:
  • Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp:

(WebCore::WHLSL::Metal::TypeNamer::visit):
There is no need to generate typenames for AST::TypeDefinitions if they are never used.

(WebCore::WHLSL::Metal::TypeNamer::generateUniquedTypeName):
The only UnnamedType that needs a generated typename now is AST::ArrayReferenceType, which emits a struct interface.

(WebCore::WHLSL::Metal::TypeNamer::emitUnnamedTypeDefinition):
Stop generating type definitions for AST::TypeReference, AST::Pointer, AST::Array.

(WebCore::WHLSL::Metal::TypeNamer::emitNamedTypeDefinition):
Stop generating type definitions for AST::TypeDefinition.

(WebCore::WHLSL::Metal::TypeNamer::emitMetalTypeDefinitions):
Update for rename from m_unnamedTypeMapping to m_arrayReferenceTypeMapping.

(WebCore::WHLSL::Metal::TypeNamer::mangledNameForType):
Look into the types and generate a concrete type name when necessary. Lazily cache the constructed
names for AST::ArrayType and AST::Pointer.

10:40 AM Changeset in webkit [249208] by Keith Rollin
  • 13 edits in trunk

Remove support for macOS < 10.13 (part 2)
https://bugs.webkit.org/show_bug.cgi?id=201197
<rdar://problem/54759985>

Source/JavaScriptCore:

Update conditionals that reference WK_MACOS_1013 and suffixes like
_MACOS_SINCE_1013, assuming that we're always building on 10.13 or
later and that these conditionals are always True or False.

See Bug 200694 for earlier changes in this area.

Reviewed by Darin Adler.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Reviewed by Darin Adler.

Update conditionals that reference WK_MACOS_1013 and suffixes like
_MACOS_SINCE_1013, assuming that we're always building on 10.13 or
later and that these conditionals are always True or False.

See Bug 200694 for earlier changes in this area.

No new tests -- no new or changed functionality.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

Reviewed by Darin Adler.

Update conditionals that reference WK_MACOS_1013 and suffixes like
_MACOS_SINCE_1013, assuming that we're always building on 10.13 or
later and that these conditionals are always True or False.

See Bug 200694 for earlier changes in this area.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

Reviewed by Darin Adler.

Update conditionals that reference WK_MACOS_1013 and suffixes like
_MACOS_SINCE_1013, assuming that we're always building on 10.13 or
later and that these conditionals are always True or False.

See Bug 200694 for earlier changes in this area.

  • Configurations/FeatureDefines.xcconfig:
  • Configurations/WebKit.xcconfig:

Source/WebKitLegacy/mac:

Reviewed by Darin Adler.

Update conditionals that reference WK_MACOS_1013 and suffixes like
_MACOS_SINCE_1013, assuming that we're always building on 10.13 or
later and that these conditionals are always True or False.

See Bug 200694 for earlier changes in this area.

  • Configurations/FeatureDefines.xcconfig:

Tools:

Reviewed by Darin Adler.

Update conditionals that reference WK_MACOS_1013 and suffixes like
_MACOS_SINCE_1013, assuming that we're always building on 10.13 or
later and that these conditionals are always True or False.

See Bug 200694 for earlier changes in this area.

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
10:20 AM Changeset in webkit [249207] by Chris Dumez
  • 12 edits in trunk

geolocation.watchPosition() / getCurrentPosition() should return PERMISSION_DENIED when context is not secure
https://bugs.webkit.org/show_bug.cgi?id=201221

Reviewed by Ryosuke Niwa.

Source/WebCore:

geolocation.watchPosition() / getCurrentPosition() should return PERMISSION_DENIED when context is not secure,
not POSITION_UNAVAILABLE. Both Gecko and Blink agree on PERMISSION_DENIED.

No new tests, updated existing tests.

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::startRequest):

LayoutTests:

Update layout tests to reflect behavior change.

  • fast/dom/Geolocation/dataURL-getCurrentPosition-expected.txt:
  • fast/dom/Geolocation/dataURL-getCurrentPosition.html:
  • fast/dom/Geolocation/dataURL-watchPosition-expected.txt:
  • fast/dom/Geolocation/dataURL-watchPosition.html:
  • http/tests/security/resources/checkThatPositionErrorCallbackIsCalledWithPositionUnavailableForGeolocationMethod.js:

(didReceiveError):
(checkThatPositionErrorCallbackIsCalledWithPositionUnavailableForGeolocationMethod):

  • http/tests/security/sandboxed-iframe-geolocation-getCurrentPosition-expected.txt:
  • http/tests/security/sandboxed-iframe-geolocation-getCurrentPosition.html:
  • http/tests/security/sandboxed-iframe-geolocation-watchPosition-expected.txt:
  • http/tests/security/sandboxed-iframe-geolocation-watchPosition.html:
10:14 AM Changeset in webkit [249206] by Chris Dumez
  • 6 edits in trunk/Source/WebKit

Have WebPageProxy generate the page identifier by itself
https://bugs.webkit.org/show_bug.cgi?id=201223

Reviewed by Ryosuke Niwa.

Have WebPageProxy generate the page identifier by itself instead of
having the WebProcessProxy do it.

  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::m_serviceWorkerPageID):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::create):
(WebKit::WebPageProxy::WebPageProxy):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::createWebPage):
(WebKit::WebProcessProxy::generatePageID): Deleted.

  • UIProcess/WebProcessProxy.h:
10:04 AM Changeset in webkit [249205] by aboya@igalia.com
  • 29 edits
    7 adds
    3 deletes in trunk

[MSE][GStreamer] WebKitMediaSrc rework
https://bugs.webkit.org/show_bug.cgi?id=199719

Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/the-video-element/timeout_on_seek.py: Added.

(parse_range):
(main):

  • web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek-expected.txt: Added.
  • web-platform-tests/media-source/mediasource-buffered-seek-expected.txt: Added.
  • web-platform-tests/media-source/mediasource-buffered-seek.html: Added.

Source/WebCore:

This patch reworks the WebKitMediaSrc element and many of the player
private methods that interacted with it.

In comparison with the old WebKitMediaSrc, in the new one seeks have
been massively simplified.

The new WebKitMediaSrc no longer relies on a bin or appsrc, having
greater control over its operation. This made it comparatively much
easier to implement features such as seek before playback or
single-stream flushing.

stream-collection events are emitted from the WebKitMediaSrc to reuse
the track handling in MediaPlayerPrivateGStreamer for playbin3, which
is now used for MSE pipelines.

Additional tests have been added to check some assumptions, and some
bugs that have surfaced with the changes have been fixed but no new
features (like multi-track support) are implemented in this patch.

One instance of these bugs is resized events, which were previously
being emitted when frames with different resolutions where appended.
This is a wrong behavior that has not been preserved in the rework, as
resize events should be emitted when the frames are shown, not
just appended.

There are subtler bugfixes, such as ignoring PTS-less frames in
AppendPipeline::appsinkNewSample(). These frames are problematic for
MSE, yet they were somehow passing through the pipelines. Since
WebKitMediaSrc is stricter with assertions, these have to be filtered.

This test gets rid of !m_mseSeekCompleted assertion failures in tests
and potentially other hard to debug bugs in the previous seek
algorithm.

This patch makes the following existing tests pass:

imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-a-bitrate.html
imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framesize.html

New test: imported/w3c/web-platform-tests/media-source/mediasource-buffered-seek.html
New test: LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek.html (non-MSE related)

  • Headers.cmake:
  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/GRefPtrGStreamer.cpp:

(WTF::adoptGRef):
(WTF::refGPtr<GstMiniObject>):
(WTF::derefGPtr<GstMiniObject>):

  • platform/graphics/gstreamer/GRefPtrGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
(WebCore::MediaPlayerPrivateGStreamer::paused const):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
(WebCore::MediaPlayerPrivateGStreamer::enableTrack):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
(WebCore::MediaPlayerPrivateGStreamer::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(WebCore::MediaPlayerPrivateGStreamer::invalidateCachedPosition):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize const):
(WebCore::MediaPlayerPrivateGStreamerBase::naturalSizeFromCaps const):
(WebCore::MediaPlayerPrivateGStreamerBase::samplesHaveDifferentNaturalSize const):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):

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

(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):

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

(WebCore::AppendPipeline::appsinkCaps):
(WebCore::AppendPipeline::streamType):
(WebCore::AppendPipeline::demuxerSrcPadCaps):

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

(WebCore::MediaPlayerPrivateGStreamerMSE::~MediaPlayerPrivateGStreamerMSE):
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::play):
(WebCore::MediaPlayerPrivateGStreamerMSE::pause):
(WebCore::MediaPlayerPrivateGStreamerMSE::seek):
(WebCore::MediaPlayerPrivateGStreamerMSE::seekCompleted):
(WebCore::MediaPlayerPrivateGStreamerMSE::setReadyState):
(WebCore::MediaPlayerPrivateGStreamerMSE::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamerMSE::updateStates):
(WebCore::MediaPlayerPrivateGStreamerMSE::didEnd):
(WebCore::MediaPlayerPrivateGStreamerMSE::unblockDurationChanges):
(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected):

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

(WebCore::MediaSourceClientGStreamerMSE::addSourceBuffer):
(WebCore::MediaSourceClientGStreamerMSE::removedFromMediaSource):
(WebCore::MediaSourceClientGStreamerMSE::flush):
(WebCore::MediaSourceClientGStreamerMSE::enqueueSample):
(WebCore::MediaSourceClientGStreamerMSE::isReadyForMoreSamples):
(WebCore::MediaSourceClientGStreamerMSE::notifyClientWhenReadyForMoreSamples):
(WebCore::MediaSourceClientGStreamerMSE::allSamplesInTrackEnqueued):

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h:
  • platform/graphics/gstreamer/mse/MediaSourceGStreamer.cpp:

(WebCore::MediaSourceGStreamer::markEndOfStream):
(WebCore::MediaSourceGStreamer::unmarkEndOfStream):
(WebCore::MediaSourceGStreamer::waitForSeekCompleted):

  • platform/graphics/gstreamer/mse/MediaSourceGStreamer.h:
  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp: Removed.
  • platform/graphics/gstreamer/mse/PlaybackPipeline.h: Removed.
  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::enqueueSample):
(WebCore::SourceBufferPrivateGStreamer::isReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::notifyClientWhenReadyForMoreSamples):

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

(WebKitMediaSrcPrivate::streamByName):
(Stream::Stream):
(Stream::StreamingMembers::StreamingMembers):
(Stream::StreamingMembers::durationEnqueued const):
(findPipeline):
(webkit_media_src_class_init):
(webkit_media_src_init):
(webKitMediaSrcFinalize):
(debugProbe):
(collectionPlusStream):
(collectionMinusStream):
(gstStreamType):
(webKitMediaSrcAddStream):
(webKitMediaSrcRemoveStream):
(webKitMediaSrcActivateMode):
(webKitMediaSrcPadLinked):
(webKitMediaSrcStreamNotifyLowWaterLevel):
(webKitMediaSrcLoop):
(webKitMediaSrcEnqueueObject):
(webKitMediaSrcEnqueueSample):
(webKitMediaSrcEnqueueEvent):
(webKitMediaSrcEndOfStream):
(webKitMediaSrcIsReadyForMoreSamples):
(webKitMediaSrcNotifyWhenReadyForMoreSamples):
(webKitMediaSrcChangeState):
(webKitMediaSrcStreamFlushStart):
(webKitMediaSrcStreamFlushStop):
(webKitMediaSrcFlush):
(webKitMediaSrcSeek):
(countStreamsOfType):
(webKitMediaSrcGetProperty):
(webKitMediaSrcUriGetType):
(webKitMediaSrcGetProtocols):
(webKitMediaSrcGetUri):
(webKitMediaSrcSetUri):
(webKitMediaSrcUriHandlerInit):

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

Tools:

Added WebKitMediaSourceGStreamer.cpp to the GStreamer-style coding
whitelist.

  • Scripts/webkitpy/style/checker.py:

LayoutTests:

Updated expectations.

  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/video_timeupdate_on_seek-expected.txt: Added.
9:58 AM Changeset in webkit [249204] by ap@apple.com
  • 2 edits in trunk/Tools

Updating inactive contributors in contributors.json.

  • Scripts/webkitpy/common/config/contributors.json:
9:57 AM Changeset in webkit [249203] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Have RenderSVGBlock compute visual overflow just like everyone else
https://bugs.webkit.org/show_bug.cgi?id=201211

Reviewed by Zalan Bujtas.

RenderSVGBlock overrode visualOverflowRect() just to account for text shadow. This prevents callers
optimizing calls to visualOverflowRect(), so instead have RenderSVGBlock implement computeOverflow()
and call addVisualOverflow().

  • rendering/svg/RenderSVGBlock.cpp:

(WebCore::RenderSVGBlock::computeOverflow):
(WebCore::RenderSVGBlock::visualOverflowRect const): Deleted.

  • rendering/svg/RenderSVGBlock.h:
9:42 AM Changeset in webkit [249202] by Jonathan Bedard
  • 3 edits in trunk/Tools

results.webkit.org: Auto-expand single configurations
https://bugs.webkit.org/show_bug.cgi?id=201218

Rubber-stamped by Aakash Jain.

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

(TimelineFromEndpoint.toString): Automatically expand timeline when only one
configuration has been specified.

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

(prototype.ExpandableSeriesComponent): Add options so that the caller can set whether a timeline
is expanded or collapsed by default.

9:28 AM Changeset in webkit [249201] by jer.noble@apple.com
  • 2 edits in trunk/LayoutTests

Flaky Test: fullscreen/full-screen-request-removed-with-raf.html
https://bugs.webkit.org/show_bug.cgi?id=201188

Reviewed by Alexey Proskuryakov.

  • fullscreen/full-screen-request-removed-with-raf.html:
8:45 AM Changeset in webkit [249200] by Jonathan Bedard
  • 4 edits in trunk/Tools

results.webkit.org: Sanitize all commit arguments on upload
https://bugs.webkit.org/show_bug.cgi?id=201189
<rdar://problem/54564837>

Reviewed by Aakash Jain.

  • resultsdbpy/resultsdbpy/controller/commit.py:

(Commit.init): Only allow commits to be constructed with valid values.

  • resultsdbpy/resultsdbpy/controller/commit_controller.py:

(CommitController.register): Strip potential API key.

  • resultsdbpy/resultsdbpy/controller/commit_unittest.py:

(CommitUnittest.test_invalid): Test that commits which contain html inside the
repository_id, branch or commit id are rejected.

8:36 AM Changeset in webkit [249199] by mark.lam@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Gardening: Rebase test results after r249175.
https://bugs.webkit.org/show_bug.cgi?id=201172

Not reviewed.

  • Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCoreJSBuiltins.h-result:
8:15 AM Changeset in webkit [249198] by rniwa@webkit.org
  • 6 edits in trunk/Source/WebCore

REGRESSION (r248807): Objects stored in ElementRareData are leaked
https://bugs.webkit.org/show_bug.cgi?id=200954

Reviewed by Antti Koivisto.

Use a custom deleter in std::unique_ptr to call the correct destructor instead of making
NodeRareData's destructor virtual. Added NodeRareData::isElementRareData to differentiate
ElementRareData and NodeRareData by borrowing 1 bit from the frame count.

No new tests since there should be no behavioral change.

  • dom/ElementRareData.h:

(WebCore::ElementRareData::ElementRareData):

  • dom/Node.cpp:

(WebCore::Node::materializeRareData): Call the constructors of unique_ptr directly since
make_unique does not take a custom deleter. We can't add the support to makeUnique either
without making it three arguments since we need to cast ElementRareData to NodeRareData
in addition to specifying a custom deleter (normal casting wouldn't work due to
the presence of a custom deleter).
(WebCore::Node::NodeRareDataDeleter::operator() const): Added.

  • dom/Node.h:

(WebCore::Node::NodeRareDataDeleter): Added.

  • dom/NodeRareData.cpp:
  • dom/NodeRareData.h:

(WebCore::NodeRareData::NodeRareData): Makes newly added Type.
(WebCore::NodeRareData::isElementRareData): Added.
(WebCore::NodeRareData::~NodeRareData): Deleted.

4:52 AM Changeset in webkit [249197] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

[SOUP] Shut compilation warning

Unreviewed. RELEASE_LOG_ERROR() needs a channel.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::setupHSTSEnforcer):

4:43 AM Changeset in webkit [249196] by Claudio Saavedra
  • 2 edits in trunk/Source/WebCore

[SOUP] Fix the debug build after r249192

Unreviewed build fix.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::setupHSTSEnforcer):

4:33 AM WebKitGTK/2.26.x created by Carlos Garcia Campos
3:53 AM Changeset in webkit [249195] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.26

Branch WebKitGTK for 2.26

3:22 AM Changeset in webkit [249194] by Carlos Garcia Campos
  • 26 edits
    2 adds in trunk

Unable to enter text in https://eat.fi
https://bugs.webkit.org/show_bug.cgi?id=193046

Reviewed by Ryosuke Niwa.

Source/WebCore:

This is because the button element inside the label is receiving the click event, which causes the form to be
submitted. According to the spec we should do nothing in this case, because button element is considered to be
interactive content.

"The activation behavior of a label element for events targeted at interactive content descendants of a label
element, and any descendants of those interactive content descendants, must be to do nothing."
https://html.spec.whatwg.org/#the-label-element

This patch adds HTMLElement::isInteractiveContent() according to the HTML spec:

"Interactive content is content that is specifically intended for user interaction.
a (if the href attribute is present), audio (if the controls attribute is present), button, details, embed,
iframe, img (if the usemap attribute is present), input (if the type attribute is not in the Hidden state),
label, object (if the usemap attribute is present), select, textarea, video (if the controls attribute is
present)"
https://html.spec.whatwg.org/#interactive-content-2

That's used in HTMLLabelElement::defaultEventHandler() using the helper method
isEventTargetedAtInteractiveDescendants() to decide whether to simulate a click event or do nothing.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::isInteractiveContent const):

  • html/HTMLAnchorElement.h:
  • html/HTMLButtonElement.h:
  • html/HTMLDetailsElement.h:
  • html/HTMLElement.h:

(WebCore::HTMLElement::isInteractiveContent const):

  • html/HTMLEmbedElement.h:
  • html/HTMLIFrameElement.h:
  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::isInteractiveContent const):

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

(WebCore::HTMLInputElement::isInteractiveContent const):

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

(WebCore::HTMLLabelElement::isEventTargetedAtInteractiveDescendants const):
(WebCore::HTMLLabelElement::defaultEventHandler):

  • html/HTMLLabelElement.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::isInteractiveContent const):

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

(WebCore::HTMLObjectElement::isInteractiveContent const):

  • html/HTMLObjectElement.h:
  • html/HTMLSelectElement.h:
  • html/HTMLTextAreaElement.h:
  • html/HiddenInputType.h:
  • html/InputType.cpp:

(WebCore::InputType::isInteractiveContent const):

  • html/InputType.h:

LayoutTests:

Add new test imported for blink.

  • imported/blink/fast/forms/label/label-contains-other-interactive-content-expected.txt: Added.
  • imported/blink/fast/forms/label/label-contains-other-interactive-content.html: Added.
  • platform/ios-wk2/TestExpectations: Skip the new test because it requires eventSender.mouseDown/Up/MoveTo()
3:21 AM Changeset in webkit [249193] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

REGRESSION(r243434): Wrong URL passed to WebKitWebView::load-failed when cancelling previous load
https://bugs.webkit.org/show_bug.cgi?id=201176

Reviewed by Žan Doberšek.

Use the current provisional/committed url when faking an error event, instead of the current active URI that can
be the pending api request of a new load.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewWillStartLoad):

3:15 AM Changeset in webkit [249192] by Claudio Saavedra
  • 29 edits in trunk

[GTK][WPE] Implement HSTS for the soup network backend
https://bugs.webkit.org/show_bug.cgi?id=192074

Reviewed by Carlos Garcia Campos.

libsoup 2.67.1 introduced HSTS support via a SoupSessionFeature.
Add support to the soup network backend by adding the feature to
SoupNetworkSession and handling HSTS protocol upgrades, by
propagating the scheme change further to clients. This patch adds
the HSTS feature unconditionally, but it still possible to add
a boolean property to the web context class if desired.

Additionally, add API to the WebKitWebsiteDataManager to specify
the directory where the HSTS database is saved. If the directory
is not set or if the data manager is ephemeral, use a
non-persistent, memory only HSTS enforcer.

Implement as well the methods needed to clean-up and delete HSTS
Source/WebCore:

policies from the storage and expose the feature in GTK+ MiniBrowser's
about:data.

  • platform/network/soup/GUniquePtrSoup.h:
  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::hstsStorageDirectory):
(WebCore::SoupNetworkSession::SoupNetworkSession):
(WebCore::SoupNetworkSession::setHSTSPersistentStorage):
(WebCore::SoupNetworkSession::setupHSTSEnforcer):
(WebCore::SoupNetworkSession::getHostNamesWithHSTSCache):
(WebCore::SoupNetworkSession::deleteHSTSCacheForHostNames):
(WebCore::SoupNetworkSession::clearHSTSCache):

  • platform/network/soup/SoupNetworkSession.h:

Source/WebKit:

policies from the storage and expose the feature in GTK+
MiniBrowser's about:data.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::registrableDomainsWithWebsiteData):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::suppressesConnectionTerminationOnSystemChange const):

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::createRequest):
(WebKit::NetworkDataTaskSoup::clearRequest):
(WebKit::NetworkDataTaskSoup::shouldAllowHSTSPolicySetting const):
(WebKit::NetworkDataTaskSoup::shouldAllowHSTSProtocolUpgrade const):
(WebKit::NetworkDataTaskSoup::protocolUpgradedViaHSTS):
(WebKit::NetworkDataTaskSoup::hstsEnforced):

  • NetworkProcess/soup/NetworkDataTaskSoup.h:
  • NetworkProcess/soup/NetworkProcessSoup.cpp:

(WebKit::NetworkProcess::getHostNamesWithHSTSCache):
(WebKit::NetworkProcess::deleteHSTSCacheForHostNames):
(WebKit::NetworkProcess::clearHSTSCache):
(WebKit::NetworkProcess::platformInitializeNetworkProcess):

  • UIProcess/API/APIWebsiteDataStore.h:
  • UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp:

(API::WebsiteDataStore::defaultHSTSDirectory):

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextConstructed):

  • UIProcess/API/glib/WebKitWebsiteData.cpp:

(recordContainsSupportedDataTypes):
(toWebKitWebsiteDataTypes):

  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp:

(webkitWebsiteDataManagerGetProperty):
(webkitWebsiteDataManagerSetProperty):
(webkitWebsiteDataManagerConstructed):
(webkit_website_data_manager_class_init):
(webkitWebsiteDataManagerGetDataStore):
(webkit_website_data_manager_get_hsts_cache_directory):
(toWebsiteDataTypes):

  • UIProcess/API/gtk/WebKitWebsiteData.h:
  • UIProcess/API/gtk/WebKitWebsiteDataManager.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WebKitWebsiteData.h:
  • UIProcess/API/wpe/WebKitWebsiteDataManager.h:
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:

(WebKit::WebsiteDataStoreConfiguration::copy):

  • UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:

(WebKit::WebsiteDataStoreConfiguration::hstsStorageDirectory const):
(WebKit::WebsiteDataStoreConfiguration::setHSTSStorageDirectory):

Tools:

policies from the storage and expose the feature in GTK+
MiniBrowser's about:data.

  • MiniBrowser/gtk/main.c:

(gotWebsiteDataCallback):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(serverCallback):
(testWebsiteDataConfiguration):
(testWebsiteDataEphemeral):
(prepopulateHstsData):
(testWebsiteDataHsts):
(beforeAll):

  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::Test):

  • gtk/jhbuild.modules: Bump libsoup to 2.67.91 for the new APIs
  • wpe/jhbuild.modules: Ditto
  • MiniBrowser/gtk/main.c:

(gotWebsiteDataCallback):

12:10 AM Changeset in webkit [249191] by commit-queue@webkit.org
  • 15 edits
    4 adds in trunk

SVG2: Add length, item getter and item setter to all SVG lists
https://bugs.webkit.org/show_bug.cgi?id=199526

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-28
Reviewed by Simon Fraser.

Source/WebCore:

-- Implement the SVG2 specs for SVG lists:
https://svgwg.org/svg2-draft/types.html#TermListInterface.

-- Match the arguments' names in the IDL files with the specs.

Tests: svg/dom/SVGLengthList-length-indexed-access.xhtml

svg/dom/SVGPathSegList-length-indexed-access.xhtml

  • svg/SVGLengthList.idl:
  • svg/SVGNumberList.idl:
  • svg/SVGPathSegList.h:
  • svg/SVGPathSegList.idl:
  • svg/SVGPointList.idl:
  • svg/SVGStringList.idl:
  • svg/SVGTransformList.idl:
  • svg/properties/SVGList.h:

(WebCore::SVGList::length const):
(WebCore::SVGList::setItem):

LayoutTests:

  • svg/custom/polyline-points-crash-expected.txt:
  • svg/dom/SVGLengthList-basics-expected.txt:
  • svg/dom/SVGLengthList-length-indexed-access-expected.txt: Added.
  • svg/dom/SVGLengthList-length-indexed-access.xhtml: Added.
  • svg/dom/SVGNumberList-basics-expected.txt:
  • svg/dom/SVGPathSegList-length-indexed-access-expected.txt: Added.
  • svg/dom/SVGPathSegList-length-indexed-access.xhtml: Added.
  • svg/dom/SVGPointList-basics-expected.txt:
  • svg/dom/SVGTransformList-basics-expected.txt:
Note: See TracTimeline for information about the timeline view.