Timeline
Nov 23, 2019:
- 7:05 PM Changeset in webkit [252840] by
-
- 46 edits4 adds in trunk
Resource Load Statistics: Allow multiple third-party cookie blocking settings
https://bugs.webkit.org/show_bug.cgi?id=204389
<rdar://problem/57344054>
Reviewed by Brent Fulgham.
Source/WebCore:
This change introduces an enum ThirdPartyCookieBlockingMode for how third-party
cookie blocking should be carried out. It then uses the set mode in
NetworkStorageSession::shouldBlockCookies().
The reason for supporting three different modes is that what is now named
OnlyAccordingToPerDomainPolicy is shipping, AllOnSitesWithoutUserInteraction is
in beta, and All is behind an experimental flag.
Tests: http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database.html
http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html
- page/Settings.yaml:
Flipped the isThirdPartyCookieBlockingEnabled flag to on by default.
- platform/network/NetworkStorageSession.cpp:
(WebCore::NetworkStorageSession::shouldBlockCookies const):
(WebCore::NetworkStorageSession::setThirdPartyCookieBlockingMode):
- platform/network/NetworkStorageSession.h:
(WebCore::NetworkStorageSession::setIsThirdPartyCookieBlockingEnabled): Deleted.
Source/WebKit:
This change make the third-party cookie blocking setting go from a boolean to
the new enum WebCore::ThirdPartyCookieBlockingMode with three different settings.
Functions and member variables are renamed accordingly.
The reason for supporting three different modes is that what is now named
OnlyAccordingToPerDomainPolicy is shipping, AllOnSitesWithoutUserInteraction is
in beta, and All is behind an experimental flag.
The change also updates the test API to map the TestRunner call to the enum.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::hasStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::requestStorageAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearUserInteraction):
Now makes use of a completion handler and updates the cookie blocking state.
(WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::areAllThirdPartyCookiesBlockedUnder):
New convenience function to check the cookie blocking status per first-party domain.
(WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess):
Restructured the code to make it very clear that the logic is the same as the
corresponding function in ResourceLoadStatisticsMemoryStore.
Can no longer be const since it calls areAllThirdPartyCookiesBlockedUnder() which
in turn calls hasHadUserInteraction() and that function may clear user interaction data.
(WebKit::ResourceLoadStatisticsDatabaseStore::hasHadUnexpiredRecentUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess const): Deleted.
See comment above on the non-const version of this function.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::areAllThirdPartyCookiesBlockedUnder):
New convenience function to check the cookie blocking status per first-party domain.
(WebKit::ResourceLoadStatisticsMemoryStore::cookieAccess):
Restructured the code to make it very clear that the logic is the same as the
corresponding function in ResourceLoadStatisticsDatabaseStore.
Can no longer be const since it calls areAllThirdPartyCookiesBlockedUnder() which
in turn calls hasHadUserInteraction() and that function may clear user interaction data.
(WebKit::ResourceLoadStatisticsMemoryStore::hasStorageAccess):
(WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccess):
(WebKit::ResourceLoadStatisticsMemoryStore::clearUserInteraction):
Now makes use of a completion handler and updates the cookie blocking state.
(WebKit::ResourceLoadStatisticsMemoryStore::cookieAccess const): Deleted.
See comment above on the non-const version of this function.
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
(WebKit::ResourceLoadStatisticsStore::setThirdPartyCookieBlockingMode):
(WebKit::ResourceLoadStatisticsStore::thirdPartyCookieBlockingMode const):
(WebKit::ResourceLoadStatisticsStore::setIsThirdPartyCookieBlockingEnabled): Deleted.
(WebKit::ResourceLoadStatisticsStore::isThirdPartyCookieBlockingEnabled const): Deleted.
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::setThirdPartyCookieBlockingMode):
(WebKit::WebResourceLoadStatisticsStore::clearUserInteraction):
Now forwards the completion handler.
(WebKit::WebResourceLoadStatisticsStore::setIsThirdPartyCookieBlockingEnabled): Deleted.
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setShouldBlockThirdPartyCookiesForTesting):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
The SetShouldBlockThirdPartyCookiesForTesting message now uses an enum instead of a
boolean.
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::setResourceLoadStatisticsEnabled):
Now forwards the enum value instead of a boolean.
(WebKit::NetworkSession::recreateResourceLoadStatisticStore):
Now makes sure the cookie blocking setting is forwarded to the recreated store.
(WebKit::NetworkSession::setThirdPartyCookieBlockingMode):
(WebKit::NetworkSession::setIsThirdPartyCookieBlockingEnabled): Deleted.
- NetworkProcess/NetworkSession.h:
- NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
Support for the new enum.
- NetworkProcess/NetworkSessionCreationParameters.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
- Scripts/webkit/messages.py:
Tells the IPC code generator where to find WebCore::ThirdPartyCookieBlockingMode.
- Shared/WebPreferences.yaml:
Flipped the IsThirdPartyCookieBlockingEnabled flag to on by default.
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreSetResourceLoadStatisticsShouldBlockThirdPartyCookiesForTesting):
(WKWebsiteDataStoreStatisticsResetToConsistentState):
- UIProcess/API/C/WKWebsiteDataStoreRef.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::setShouldBlockThirdPartyCookiesForTesting):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
Makes use of the enum in the NetworkSessionCreationParameters.
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::setResourceLoadStatisticsShouldBlockThirdPartyCookiesForTesting):
- UIProcess/WebsiteData/WebsiteDataStore.h:
Tools:
This change allows the existing TestRunner function
setStatisticsShouldBlockThirdPartyCookies() to set an optional boolean
parameter onlyOnSitesWithoutUserInteraction to opt in to that behavior.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setStatisticsShouldBlockThirdPartyCookies):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::setStatisticsShouldBlockThirdPartyCookies):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
The added tests existed before and are not re-introduced to test their dedicated setting.
The changed tests have been expanded to cover the new code paths.
- http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database-expected.txt: Added.
- http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database.html: Added.
- http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-expected.txt: Added.
- http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html: Added.
- http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking-database-expected.txt:
- http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking-database.html:
- http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking-expected.txt:
- http/tests/storageAccess/grant-with-prompt-under-general-third-party-cookie-blocking.html:
- http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-database-expected.txt:
- http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-database.html:
- http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie-expected.txt:
- http/tests/storageAccess/has-storage-access-under-general-third-party-cookie-blocking-with-cookie.html:
- 7:03 PM Changeset in webkit [252839] by
-
- 36 edits2 adds in trunk
Unreviewed, rolling out r252805.
https://bugs.webkit.org/show_bug.cgi?id=204553
Caused test failures and ASan crashes (Requested by ap on
#webkit).
Reverted changeset:
"Cross-thread version StorageQuotaManager"
https://bugs.webkit.org/show_bug.cgi?id=203971
https://trac.webkit.org/changeset/252805
- 4:42 PM Changeset in webkit [252838] by
-
- 2 edits in trunk/LayoutTests
[WebGL] Garden dedicated queue (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=204547
Unreviewed test gardening.
- webgl/TestExpectations:
- 3:39 PM Changeset in webkit [252837] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] Replace redundant Line::isVisuallyEmpty() with LineBox::isConsideredEmpty()
https://bugs.webkit.org/show_bug.cgi?id=204551
<rdar://problem/57454620>
Reviewed by Antti Koivisto.
It turns out the we already cache the visually empty status in LineBox.
- layout/displaytree/DisplayBox.h:
(WebCore::Display::Box::isEmpty const):
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::isInlineContainerConsideredEmpty): Deleted.
(WebCore::Layout::Line::isVisuallyEmpty const): Deleted.
- layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::isVisuallyEmpty const):
(WebCore::Layout::Line::hasContent const): Deleted.
- layout/inlineformatting/InlineLineLayout.cpp:
(WebCore::Layout::LineLayout::placeInlineItem):
(WebCore::Layout::LineLayout::processUncommittedContent):
- 3:23 PM Changeset in webkit [252836] by
-
- 4 edits1 add in trunk
[JSC] GetSubstitution is performed incorrectly via RegExp.prototype[@@replace]
https://bugs.webkit.org/show_bug.cgi?id=204490
Reviewed by Mark Lam.
JSTests:
- stress/replace-indexed-backreferences.js: Added.
- test262/expectations.yaml: Mark four test cases as passing.
Source/JavaScriptCore:
String.prototype.replace and RegExp.prototype[Symbol.replace] are meant to perform the same substitution
of $-backreferences (called GetSubstitution in the spec: https://tc39.es/ecma262/#sec-getsubstitution).
The implementation of this in StringPrototype.cpp is correct but the one in RegExpPrototype.js is not.
In particular, the latter *removes* backreferences with out-of-range indices, instead of leaving them as-is.
One thing that is *not* broken in either implementation and thus maintained here is the fact $10 is interpreted
as $1 followed by a 0 when we have 1 <= n < 10 captures (and analogously for other invalid $nn backreferences).
This behavior is consistent across all engines but currently described incorrectly in the spec; this patch thus
aligns with the spec PR currently open to correct this (https://github.com/tc39/ecma262/pull/1732).
- builtins/RegExpPrototype.js:
(getSubstitution): Ensure that invalid backreferences remain untouched in the output string.
(replace): Fix off-by-one error when populating captures list. We shouldn't be reserving a slot for the full match.
- 1:36 PM Changeset in webkit [252835] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Defer run height/baseline adjustment computation until Line::close
https://bugs.webkit.org/show_bug.cgi?id=204550
<rdar://problem/57454497>
Reviewed by Antti Koivisto.
Currently we measure run height and adjust the line's baseline/height on every append.
We could do all that in Line::close after we've merged the neighboring runs.
([text][ ][content] vs. [text content])
This is about ~5% win on line-layout-simple.html
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::alignContentVertically):
(WebCore::Layout::Line::append):
(WebCore::Layout::Line::appendInlineContainerStart):
(WebCore::Layout::Line::appendInlineContainerEnd):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::appendLineBreak):
(WebCore::Layout::Line::adjustBaselineAndLineHeight):
(WebCore::Layout::Line::runContentHeight const):
(WebCore::Layout::Line::alignContentVertically const): Deleted.
(WebCore::Layout::Line::inlineItemContentHeight const): Deleted.
- layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::Run::setLogicalHeight):
- 12:17 PM Changeset in webkit [252834] by
-
- 2 edits in trunk/Tools
Archive step is failing after r252827
https://bugs.webkit.org/show_bug.cgi?id=204548
Reviewed by Alexey Proskuryakov.
After https://trac.webkit.org/changeset/252827/webkit, the archive step is failing.
- BuildSlaveSupport/built-product-archive:
(createZip):
- 8:58 AM Changeset in webkit [252833] by
-
- 2 edits in trunk/LayoutTests
[WebGL] Garden dedicated queue (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=204547
Unreviewed test gardening.
- webgl/TestExpectations:
- 8:16 AM Changeset in webkit [252832] by
-
- 6 edits in trunk
Run LayoutTests/accessibility/mac/primary-screen-height.html on secondary accessibility thread.
https://bugs.webkit.org/show_bug.cgi?id=204391
Reviewed by Chris Fleizach.
Source/WebCore:
LayoutTests/accessibility/mac/primary-screen-height.html tests this
change when isolated tree is enabled.
Use ASSERT(!isMainThread()) instead of HIServices call to detect
whether not running in the secondary thread during LayoutTests.
- accessibility/isolatedtree/AXIsolatedTreeNode.cpp:
(WebCore::AXIsolatedObject::children):
(WebCore::AXIsolatedObject::updateBackingStore):
Tools:
Added AccessibilityController::execute to execute any
AccessibilityUIElement call into AccessibilityObjectWrapper on the
secondary accessibility thread.
- WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:
(WTR::AccessibilityController::rootElement): leftover from previous review.
(WTR::AccessibilityController::execute): added this to execute any AccessibilityUIElement method on the appropriate thread.
- WebKitTestRunner/InjectedBundle/AccessibilityController.h:
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::getChildrenWithRange): Runs on secondary thread.
(WTR::AccessibilityUIElement::numberAttributeValue): Runs on secondary thread.
- 8:05 AM Changeset in webkit [252831] by
-
- 2 edits in trunk/Source/WTF
Unreviewed. Try to fix the GTK WebDriver tests in the bots after r252770
They are failing in the bots because g_variant_new_from_data() is failing due to the given data not being
properly aligned for the type being loaded. This is not a problem since GLib 2.60 that checks the alignment and
reallocates the buffer in aligned memory only if needed. For previous versions we need to ensure the memory we
pass to g_variant_new_from_data() is aligned.
- wtf/glib/SocketConnection.cpp:
(WTF::SocketConnection::readMessage):
- 7:34 AM Changeset in webkit [252830] by
-
- 2 edits in trunk/LayoutTests
Some tests are failing on Win64
https://bugs.webkit.org/show_bug.cgi?id=204545
Unreviewed test gardening.
- platform/win/TestExpectations:
- 5:33 AM Changeset in webkit [252829] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Remove unnecessary Line::hasContent() calls in LineLayout::placeInlineItem
https://bugs.webkit.org/show_bug.cgi?id=204540
<rdar://problem/57443500>
Reviewed by Antti Koivisto.
LineLayout::placeInlineItem is hot. This shaves off ~3% on line-layout-simple.html
- layout/inlineformatting/InlineLineLayout.cpp:
(WebCore::Layout::LineLayout::placeInlineItem):
- page/FrameView.cpp:
(WebCore::FrameView::paintContents):
- page/FrameViewLayoutContext.cpp:
(WebCore::FrameViewLayoutContext::layoutUsingFormattingContext):
(WebCore::FrameViewLayoutContext::layout):
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::attachToRenderElementInternal):
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateRendererStyle):
- 2:19 AM Changeset in webkit [252828] by
-
- 14 edits4 adds in trunk
Media queries in img sizes attribute don't evaluate dynamically
https://bugs.webkit.org/show_bug.cgi?id=204521
Reviewed by Simon Fraser.
Source/WebCore:
Tests: fast/images/sizes-dynamic-001.html
fast/images/sizes-dynamic-002.html
- css/MediaQueryEvaluator.cpp:
(WebCore::MediaQueryEvaluator::evaluateForChanges const):
Add a helper function for evaluating dynamic results for changes.
- css/MediaQueryEvaluator.h:
(WebCore::MediaQueryDynamicResults::isEmpty const):
- css/parser/SizesAttributeParser.cpp:
(WebCore::SizesAttributeParser::SizesAttributeParser):
(WebCore::SizesAttributeParser::mediaConditionMatches):
Gather MediaQueryDynamicResults
- css/parser/SizesAttributeParser.h:
- dom/Document.cpp:
(WebCore::Document::updateElementsAffectedByMediaQueries):
(WebCore::Document::addDynamicMediaQueryDependentImage):
(WebCore::Document::removeDynamicMediaQueryDependentImage):
Replace viewport/appearance specific mechanism with a unified one (they were all invoked together anyway).
Make it about HTMLImageElement rather than HTMLPictureElement since that is the only client in this patch.
(WebCore::Document::checkViewportDependentPictures): Deleted.
(WebCore::Document::checkAppearanceDependentPictures): Deleted.
(WebCore::Document::addViewportDependentPicture): Deleted.
(WebCore::Document::removeViewportDependentPicture): Deleted.
(WebCore::Document::addAppearanceDependentPicture): Deleted.
(WebCore::Document::removeAppearanceDependentPicture): Deleted.
- dom/Document.h:
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::~HTMLImageElement):
(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
(WebCore::HTMLImageElement::evaluateDynamicMediaQueryDependencies):
(WebCore::HTMLImageElement::selectImageSource):
Gather MediaQueryDynamicResults from all paths.
(WebCore::HTMLImageElement::didMoveToNewDocument):
- html/HTMLImageElement.h:
- html/HTMLPictureElement.cpp:
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture const): Deleted.
(WebCore::HTMLPictureElement::appearanceChangeAffectedPicture const): Deleted.
Move the media query dependency code to HTMLImageElement since thats where it is actually needed.
- html/HTMLPictureElement.h:
- rendering/RenderImage.cpp:
(WebCore::RenderImage::setImageDevicePixelRatio):
Update rendering also if only the pixel ratio changes.
- rendering/RenderImage.h:
(WebCore::RenderImage::setImageDevicePixelRatio): Deleted.
LayoutTests:
- fast/images/sizes-dynamic-001-expected.html: Added.
- fast/images/sizes-dynamic-001.html: Added.
- fast/images/sizes-dynamic-002-expected.html: Added.
- fast/images/sizes-dynamic-002.html: Added.
Copied and modified from imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/sizes-dynamic-*
because we don't support reftest-wait (webkit.org/b/186045).
Nov 22, 2019:
- 9:37 PM Changeset in webkit [252827] by
-
- 3 edits in trunk/Tools
Set 64-bit as default architecture on Windows
https://bugs.webkit.org/show_bug.cgi?id=204477
Reviewed by Ross Kirsling.
This will make 64-bit building and testing the default.
- Scripts/webkitdirs.pm:
(determineIsWin64):
- Scripts/webkitpy/port/win.py:
(WinPort):
- 8:52 PM Changeset in webkit [252826] by
-
- 2 edits in trunk/LayoutTests
Some tests are failing on Win64
https://bugs.webkit.org/show_bug.cgi?id=204545
Unreviewed test gardening.
- platform/win/TestExpectations:
- 8:45 PM Changeset in webkit [252825] by
-
- 16 edits1 add in trunk/Source/JavaScriptCore
Use LLInt profiling to rule out generating an IC for get_by_val
https://bugs.webkit.org/show_bug.cgi?id=204536
Reviewed by Yusuke Suzuki.
When I landed the get_by_val polymorphic inline caching patch, the prepack
benchmark in JetStream2 slowed down by 10%. Through some analysis, I found
out that we were slowing down because of the time we spent in the JITs
actually generating inline caches. This patch skips generating an inline
cache when it seems like it won't be profitable. The heuristic for doing this
is simple:
- If we see more than 4 identifiers in the LLInt, we won't generate an IC
in the upper tiers.
- If we see a non-identifier JSString in the LLInt, we won't generate an IC
in the upper tiers.
This patch recovers the regression on prepack.
- bytecode/BytecodeList.rb:
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- generator/main.rb:
- heap/TinyBloomFilter.h:
(JSC::TinyBloomFilter::bits const):
(JSC::TinyBloomFilter::TinyBloomFilter):
- jit/JIT.h:
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- runtime/Operations.h:
(JSC::getByValWithIndex):
- runtime/OptionsList.h:
- 8:28 PM Changeset in webkit [252824] by
-
- 24 edits in trunk
Use the event loop instead of DocumentEventQueue and WorkerEventQueue
https://bugs.webkit.org/show_bug.cgi?id=204447
<rdar://problem/57420691>
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Updated the expected result. It now fails one step head due to EventLoop getting better integrated with timers.
- web-platform-tests/requestidlecallback/callback-timeout-when-busy-expected.txt:
Source/WebCore:
This patch replaces every use of DocumentEventQueue and WorkerEventQueue by the integration
with the event loop.
Because this changes the order by which some of the affected events fire and tasks run,
this patch also makes WindowEventLoop::scheduleToRun use a Timer instead of callOnMainThread
in order to avoid introducing new test failures.
In addition, WebSQL needed a code change to scheudle tasks via the event loop after moving
to the event loop as callOnMainThread could run before or after a 0s timer fires depending
on whether it was called during another timer or not; meaning that it could change the order
of operations with respect to other tasks scheduled via event loops in some cases.
Finally, added the links to various specifications where appropriate.
- Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::connectionToServerLost):
(WebCore::IDBDatabase::fireVersionChangeEvent):
- Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::enqueueEvent):
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::enqueueEvent):
(WebCore::IDBTransaction::dispatchEvent):
- Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::scheduleDispatchEvent):
- Modules/webdatabase/Database.cpp:
(WebCore::Database::scheduleTransactionCallback): Schedule a task on the event loop once
we're in the main thread as the order of operation could change with respect to other tasks
scheduled via the event loop otherwise.
- Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::notifyDatabaseThreadIsShuttingDown): Ditto.
- dom/Document.cpp:
(WebCore::Document::visibilityStateChanged):
(WebCore::Document::prepareForDestruction):
(WebCore::Document::enqueueWindowEvent): Deleted.
(WebCore::Document::queueTaskToDispatchEvent): Added.
(WebCore::Document::enqueueDocumentEvent): Deleted.
(WebCore::Document::queueTaskToDispatchEventOnWindow): Added.
(WebCore::Document::enqueueOverflowEvent):
(WebCore::Document::enqueueSecurityPolicyViolationEvent):
(WebCore::Document::enqueueHashchangeEvent): Rewritten. Keep the target node alive until
the overflow event fires.
fired on an overflow element
- dom/Document.h:
- dom/ScriptExecutionContext.h:
- dom/TaskSource.h:
- dom/WindowEventLoop.cpp:
(WebCore::WindowEventLoop::WindowEventLoop):
(WebCore::WindowEventLoop::scheduleToRun):
- dom/WindowEventLoop.h:
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::languagesChanged):
- page/PointerCaptureController.cpp:
(WebCore::PointerCaptureController::elementWasRemoved):
- page/PointerLockController.cpp:
(WebCore::PointerLockController::enqueueEvent):
- storage/StorageEventDispatcher.cpp:
(WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::eventQueue const): Deleted.
- workers/WorkerGlobalScope.h:
- worklets/WorkletGlobalScope.cpp:
(WebCore::WorkletGlobalScope::WorkletGlobalScope):
- worklets/WorkletGlobalScope.h:
- 7:30 PM Changeset in webkit [252823] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r252792?): 6 inspector/canvas tests crashing
https://bugs.webkit.org/show_bug.cgi?id=204542
Reviewed by Devin Rousso.
Copy the list of identifiers to a Vector before iterating over it
since m_identifierToInspectorCanvas could be mutated meanwhile.
- inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::recordCanvasAction):
- 6:25 PM Changeset in webkit [252822] by
-
- 2 edits in trunk/Tools
run-javascriptcore-tests: Failure to determine configuration for reporting is fatal
https://bugs.webkit.org/show_bug.cgi?id=204526
Reviewed by Aakash Jain.
- Scripts/run-javascriptcore-tests:
(configurationForUpload): Use uname as the default upload configuration
- 6:14 PM Changeset in webkit [252821] by
-
- 3 edits in trunk/LayoutTests
http/tests/eventloop/queue-task-across-cross-site-frames.html is flaky failure on iOS
https://bugs.webkit.org/show_bug.cgi?id=204510
Reviewed by Chris Dumez.
There are two issues with this test. First, queue-task-across-cross-site-frames.html wasn't waiting
for the helper file to post logs, and secondly, eventloop-helper.html was relying on setTimeout(~, 0)
to always happen after queued tasks had run, which is not always true if there had already been
another 0s timer scheduled.
- http/tests/eventloop/queue-task-across-cross-site-frames.html:
- http/tests/eventloop/resources/eventloop-helper.html:
- 5:53 PM Changeset in webkit [252820] by
-
- 11 edits2 deletes in trunk/Source/WebCore
Associate each microtask with a task group and remove ActiveDOMCallbackMicrotask
https://bugs.webkit.org/show_bug.cgi?id=204491
Reviewed by Antti Koivisto.
This patch associates each microtask with a EventLoopTaskGroup by making MicrotaskQueue
use EventLoopTaskGroup in place of Microtask, eliminating the latter.
This allows microtasks associated with each script execution context's test group to be
suspsned or stopped along with the script execution context without having to wrap each
microtask in ActiveDOMCallbackMicrotask, which is now redundant and therefore deleted.
No new tests since there should be no observable behavioral change here.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::queueMicrotaskToEventLoop):
- bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::JSWorkerGlobalScopeBase::queueMicrotaskToEventLoop):
- dom/ActiveDOMCallbackMicrotask.cpp: Removed.
- dom/ActiveDOMCallbackMicrotask.h: Removed.
- dom/EventLoop.cpp:
(WebCore::EventLoop::queueTask):
(WebCore::EventLoop::queueMicrotask):
(WebCore::EventLoopTaskGroup::queueMicrotask):
(WebCore::EventLoopTaskGroup::queueMicrotaskCallback): Deleted.
- dom/EventLoop.h:
- dom/Microtasks.cpp:
(WebCore::Microtask::removeSelfFromQueue): Deleted.
(WebCore::MicrotaskQueue::append):
(WebCore::MicrotaskQueue::remove): Deleted.
(WebCore::MicrotaskQueue::performMicrotaskCheckpoint): Like EventLoop::run, skip any task
associated with a stopped group (script execution context) and add back any task associated
with a suspened group; these are tasks which used to return Microtask::Result::KeepInQueue.
- dom/Microtasks.h:
(WebCore::Microtask): Deleted.
(WebCore::Microtask::~Microtask): Deleted.
- dom/TaskSource.h:
(WebCore::TaskSource): Added Microtask as a new task source.
- inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::recordCanvasAction):
- testing/Internals.cpp:
(WebCore::Internals::queueMicroTask):
- 5:13 PM Changeset in webkit [252819] by
-
- 11 edits in trunk/Source/WebKit
Unreviewed, rolling out r252796.
Turns out my reverting earlier today wasn't so necessary after all.
This is effectively re-landing r250422.
Reverted changeset:
"Revert r250422"
https://bugs.webkit.org/show_bug.cgi?id=202285
https://trac.webkit.org/changeset/252796
- 5:08 PM Changeset in webkit [252818] by
-
- 9 edits in trunk/Source/WebKit
Unreviewed, rolling out r252798.
Turns out my reverting earlier today wasn't so necessary after all.
This is effectively re-landing r250421.
Reverted changeset:
"Revert r250421"
https://bugs.webkit.org/show_bug.cgi?id=202290
https://trac.webkit.org/changeset/252798
- 4:42 PM Changeset in webkit [252817] by
-
- 3 edits in trunk/Source/WebKit
ITP Database crashes if table schema is not correct
https://bugs.webkit.org/show_bug.cgi?id=204458
<rdar://problem/57399084>
Reviewed by Brent Fulgham.
ITP database was crashing if the table schema wasn't correct. This
should instead be handled by re-opening a new database with a correct
schema to allow for future schema updates.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::isCorrectTableSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::openAndDropOldDatabaseIfNecessary):
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- 4:38 PM Changeset in webkit [252816] by
-
- 7 edits in trunk/Source/WebCore
[LFC][IFC] Text content is not exactly rare data.
https://bugs.webkit.org/show_bug.cgi?id=204539
<rdar://problem/57442263>
Reviewed by Antti Koivisto.
If it turns out to be a memory consumption issue, we can always subclass Layout::Box. Let's go with the m_textContext member for now.
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::ContinousContent::close):
(WebCore::Layout::Line::appendTextContent):
- layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
- layout/inlineformatting/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::width):
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::setTextContext): Deleted.
(WebCore::Layout::Box::hasTextContent const): Deleted.
(WebCore::Layout::Box::textContext const): Deleted.
- layout/layouttree/LayoutBox.h:
(WebCore::Layout::Box::hasTextContent const):
(WebCore::Layout::Box::textContext const):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::outputLayoutBox):
- 4:15 PM Changeset in webkit [252815] by
-
- 5 edits in trunk/Tools
results.webkit.org/api/failures should return an error when no test-run is found for specified criteria
https://bugs.webkit.org/show_bug.cgi?id=204385
<rdar://problem/57334389>
Rubber-stamped by Aakash Jain.
- resultsdbpy/resultsdbpy/controller/failure_controller.py:
(FailureController.failures): Return a 404 error if no test runs are found.
- resultsdbpy/resultsdbpy/controller/failure_controller_unittest.py:
(FailureControllerTest):
(FailureControllerTest.test_no_runs):
- resultsdbpy/resultsdbpy/model/failure_context.py:
(FailureContext._failures): Return 'None' if no test runs are found.
- resultsdbpy/resultsdbpy/model/failure_context_unittest.py:
(FailureContextTest):
(FailureContextTest.test_no_test_runs):
- 4:14 PM Changeset in webkit [252814] by
-
- 5 edits in trunk/Source/WebInspectorUI
Web Inspector: Uncaught Exception: TypeError: undefined is not an object (evaluating 'target.PageAgent.getCompositingBordersVisible')
https://bugs.webkit.org/show_bug.cgi?id=204473
Reviewed by Brian Burg.
Change the definition of
WI.targetsAvailableandWI.whenTargetsAvailableto instead
resolve based on when a page target is created, not the backend target, as the latter can
be a multiplexing target which only has aTargetdomain.
- UserInterface/Controllers/TargetManager.js:
(WI.TargetManager.prototype._initializeBackendTarget):
(WI.TargetManager.prototype._initializePageTarget):
- UserInterface/Base/Main.js:
(WI.loaded):
(WI.contentLoaded):
(WI.targetsAvailable):
(WI.whenTargetsAvailable):
- UserInterface/Test/Test.js:
(WI.loaded):
(WI.contentLoaded):
(WI.targetsAvailable):
(WI.whenTargetsAvailable):
- UserInterface/Views/SearchSidebarPanel.js:
(WI.SearchSidebarPanel.prototype.performSearch):
Only wait for targets if inspecting a web debuggable, as non-web debuggables don't have a
different page target vs the backend target (which is guaranteed to exist anyways).
- 4:04 PM Changeset in webkit [252813] by
-
- 5 edits1 add in trunk
HTTPHeaderMap's operator== is not fully correct
https://bugs.webkit.org/show_bug.cgi?id=204361
Reviewed by Alex Christensen.
Source/WebCore:
If headers are added in a different order, HTTPHeaderMap's operator==() would wrongly
return false because it is using a Vector internally to store the headers. Also, it
would incorrectly return false if the case of the headers did not match.
- platform/network/HTTPHeaderMap.cpp:
(WebCore::HTTPHeaderMap::get const):
(WebCore::HTTPHeaderMap::getUncommonHeader const):
- platform/network/HTTPHeaderMap.h:
(WebCore::HTTPHeaderMap::operator==):
Tools:
Add API test coverage.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/HTTPHeaderMap.cpp: Added.
(TestWebKitAPI::TEST):
- 3:52 PM Changeset in webkit [252812] by
-
- 4 edits in trunk/Source/WebKit
Simplify VisitedLinkStore process registration logic
https://bugs.webkit.org/show_bug.cgi?id=204472
Reviewed by Geoffrey Garen.
Simplify VisitedLinkStore process registration logic:
- WebProcessProxy objects no longer delay their registration with the VisitedLinkStore until after they are done launching. There is no need to do this because AuxiliaxyProcessProxy::send() will correctly queue the IPC message if the process is not done launching when the VisitedLinkStore tries to send its IPC.
- Switch VisitedLinkStore to using a WeakHashSet to store the WebProcessProxy object pointers. This is safer and this also makes it so that the WebProcessProxy no longer need to unregister themselves when shutting down. Note that AuxiliaxyProcessProxy::send() properly discards IPC messages to a terminated process anyway.
- UIProcess/VisitedLinkStore.cpp:
(WebKit::VisitedLinkStore::~VisitedLinkStore):
(WebKit::VisitedLinkStore::addProcess):
(WebKit::VisitedLinkStore::removeProcess):
(WebKit::VisitedLinkStore::removeAll):
(WebKit::VisitedLinkStore::didInvalidateSharedMemory):
(WebKit::VisitedLinkStore::didUpdateSharedStringHashes):
- UIProcess/VisitedLinkStore.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::addVisitedLinkStoreUser):
(WebKit::WebProcessProxy::didFinishLaunching):
- 3:50 PM Changeset in webkit [252811] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Copy assertions before iterating over them in _notifyAssertionsOfImminentSuspension
https://bugs.webkit.org/show_bug.cgi?id=204524
<rdar://problem/57265830>
Reviewed by Alexey Proskuryakov.
Copy assertions before iterating over them in _notifyAssertionsOfImminentSuspension and use WeakPtr
to make sure the assertions are still alive before calling uiAssertionWillExpireImminently() on
them. It is common for process assertions to get released when uiAssertionWillExpireImminently()
gets called, which would remove them from the _assertionsNeedingBackgroundTask vector we were
iterating on.
- UIProcess/ios/ProcessAssertionIOS.mm:
(-[WKProcessAssertionBackgroundTaskManager _notifyAssertionsOfImminentSuspension]):
- 3:30 PM Changeset in webkit [252810] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Merge "insert inline runs" and "setup display runs" loops in InlineFormattingContext::setDisplayBoxesForLine
https://bugs.webkit.org/show_bug.cgi?id=204537
<rdar://problem/57440394>
Reviewed by Antti Koivisto.
Let's loop the new Line::Run list only once.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):
- 3:14 PM Changeset in webkit [252809] by
-
- 2 edits in trunk/Source/WebKit
Null check callback in NetworkConnectionToWebProcess::didDeliverMessagePortMessages
https://bugs.webkit.org/show_bug.cgi?id=204460
<rdar://problem/57348618>
Reviewed by Chris Dumez.
When the network process crashes during a message port connection establishment,
a web process may have an identifier that becomes stale. In this case, we should not crash again.
No test because this only happens during a rare race condition after a network process crash, but the radar shows records of this happening.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didDeliverMessagePortMessages):
- 3:10 PM Changeset in webkit [252808] by
-
- 6 edits in trunk/Source/WebCore
Bindings generator fails to add includes for iterable<> key / value types
https://bugs.webkit.org/show_bug.cgi?id=204530
Reviewed by Ryosuke Niwa.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateIterableDefinition):
- bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfacePrototype::finishCreation):
(WebCore::jsTestInterfacePrototypeFunctionEntriesCaller):
(WebCore::jsTestInterfacePrototypeFunctionEntries):
(WebCore::jsTestInterfacePrototypeFunctionKeysCaller):
(WebCore::jsTestInterfacePrototypeFunctionKeys):
(WebCore::jsTestInterfacePrototypeFunctionValuesCaller):
(WebCore::jsTestInterfacePrototypeFunctionValues):
(WebCore::jsTestInterfacePrototypeFunctionForEachCaller):
(WebCore::jsTestInterfacePrototypeFunctionForEach):
- bindings/scripts/test/JS/JSTestIterable.cpp:
- bindings/scripts/test/JS/JSTestNode.cpp:
- bindings/scripts/test/TestInterface.idl:
- 3:06 PM Changeset in webkit [252807] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Line::Run::expand should take a range of runs to merge
https://bugs.webkit.org/show_bug.cgi?id=204514
<rdar://problem/57428139>
Reviewed by Antti Koivisto.
As part of Line::close, we iterate through the runs and merge them if possible.
e.g [text][ ][content][ ][and][ ][more] -> [text content and ][more] (note the whitespace collapsing)
Instead of taking and expanding the runs one by one, let's collect the continuous neighboring runs first
and expand the current run with the continuous range in one go. This shaves off ~2% on line-layout-simple.html.
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::ContinousContent::isEmpty const):
(WebCore::Layout::ContinousContent::length const):
(WebCore::Layout::ContinousContent::width const):
(WebCore::Layout::ContinousContent::hasTrailingExpansionOpportunity const):
(WebCore::Layout::ContinousContent::expansionOpportunityCount const):
(WebCore::Layout::ContinousContent::ContinousContent):
(WebCore::Layout::ContinousContent::append):
(WebCore::Layout::ContinousContent::canMergeRuns):
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::close):
- layout/inlineformatting/InlineLine.h:
- 2:49 PM Changeset in webkit [252806] by
-
- 5 edits in trunk/Source/WebCore
[Cocoa] Rename some internal names for system fonts
https://bugs.webkit.org/show_bug.cgi?id=204486
Reviewed by Simon Fraser.
designSystemUI -> systemDesign (because https://developer.apple.com/documentation/appkit/nsfontdescriptorsystemdesign?language=objc)
SystemFontDatabaseCoreText::ClientUse -> SystemFontKind
ForSystemUI -> SystemUI (because https://drafts.csswg.org/css-fonts-4/#system-ui-def)
ForSystemUISerif -> UISerif (because https://drafts.csswg.org/css-fonts-4/#ui-serif-def)
ForSystemUIMonospace -> UIMonospace (because https://drafts.csswg.org/css-fonts-4/#ui-monospace-def)
ForSystemUIRounded -> UIRounded (because https://drafts.csswg.org/css-fonts-4/#ui-rounded-def)
ForTextStyle -> TextStyle (because CTFontDescriptorCreateWithTextStyle())
No new tests because there is no behavior change.
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::fontWithFamilySpecialCase):
- platform/graphics/cocoa/FontDescriptionCocoa.cpp:
(WebCore::matchSystemFontUse):
(WebCore::systemFontCascadeList):
- platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:
(WebCore::SystemFontDatabaseCoreText::createSystemDesignFont):
(WebCore::SystemFontDatabaseCoreText::cascadeList):
(WebCore::SystemFontDatabaseCoreText::systemFontParameters):
(WebCore::SystemFontDatabaseCoreText::createDesignSystemUIFont): Deleted.
- platform/graphics/cocoa/SystemFontDatabaseCoreText.h:
- 2:42 PM Changeset in webkit [252805] by
-
- 36 edits2 deletes in trunk
Cross-thread version StorageQuotaManager
https://bugs.webkit.org/show_bug.cgi?id=203971
<rdar://problem/57290349>
Reviewed by Chris Dumez.
Source/WebCore:
Implement a lock-based StorageQuotaManager so that quota check can be done on different threads.
If space request is made on a background thread, it needs to hold a lock until it is finished, so no request
from different threads can be performed at the same time.
If space request is made on the main thread, we will dispatch it to a background thread and schedule a calllback
to the main thread when result is available, so the main thread will not be blocked.
Covered by existing quota related tests.
- Headers.cmake:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::create):
(WebCore::IDBServer::IDBServer::IDBServer):
(WebCore::IDBServer::IDBServer::didPerformCloseAndDeleteDatabases):
(WebCore::IDBServer::IDBServer::requestSpace):
(WebCore::IDBServer::IDBServer::diskUsage):
(WebCore::IDBServer::IDBServer::QuotaUser::QuotaUser): Deleted.
(WebCore::IDBServer::IDBServer::QuotaUser::~QuotaUser): Deleted.
(WebCore::IDBServer::IDBServer::QuotaUser::resetSpaceUsed): Deleted.
(WebCore::IDBServer::IDBServer::QuotaUser::computeSpaceUsed): Deleted.
(WebCore::IDBServer::IDBServer::QuotaUser::increaseSpaceUsed): Deleted.
(WebCore::IDBServer::IDBServer::QuotaUser::decreaseSpaceUsed): Deleted.
(WebCore::IDBServer::IDBServer::QuotaUser::whenInitialized): Deleted.
(WebCore::IDBServer::IDBServer::QuotaUser::initializeSpaceUsed): Deleted.
(WebCore::IDBServer::IDBServer::ensureQuotaUser): Deleted.
(WebCore::IDBServer::IDBServer::startComputingSpaceUsedForOrigin): Deleted.
(WebCore::IDBServer::IDBServer::computeSpaceUsedForOrigin): Deleted.
(WebCore::IDBServer::IDBServer::finishComputingSpaceUsedForOrigin): Deleted.
(WebCore::IDBServer::IDBServer::resetSpaceUsed): Deleted.
(WebCore::IDBServer::IDBServer::increaseSpaceUsed): Deleted.
(WebCore::IDBServer::IDBServer::decreaseSpaceUsed): Deleted.
(WebCore::IDBServer::IDBServer::increasePotentialSpaceUsed): Deleted.
(WebCore::IDBServer::IDBServer::decreasePotentialSpaceUsed): Deleted.
- Modules/indexeddb/server/IDBServer.h:
(WebCore::IDBServer::IDBServer::initializeQuotaUser): Deleted.
(): Deleted.
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::performCurrentOpenOperation):
(WebCore::IDBServer::UniqueIDBDatabase::openBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::didOpenBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::createObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performCreateObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformCreateObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::deleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::renameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performRenameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformRenameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::clearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::createIndex):
(WebCore::IDBServer::UniqueIDBDatabase::performCreateIndex):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformCreateIndex):
(WebCore::IDBServer::UniqueIDBDatabase::deleteIndex):
(WebCore::IDBServer::UniqueIDBDatabase::renameIndex):
(WebCore::IDBServer::UniqueIDBDatabase::performRenameIndex):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformRenameIndex):
(WebCore::IDBServer::UniqueIDBDatabase::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformPutOrAdd):
(WebCore::IDBServer::UniqueIDBDatabase::getRecord):
(WebCore::IDBServer::UniqueIDBDatabase::getAllRecords):
(WebCore::IDBServer::UniqueIDBDatabase::performGetRecord):
(WebCore::IDBServer::UniqueIDBDatabase::performGetAllRecords):
(WebCore::IDBServer::UniqueIDBDatabase::getCount):
(WebCore::IDBServer::UniqueIDBDatabase::deleteRecord):
(WebCore::IDBServer::UniqueIDBDatabase::openCursor):
(WebCore::IDBServer::UniqueIDBDatabase::iterateCursor):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::requestSpace): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::waitForRequestSpaceCompletion): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::startSpaceIncreaseTask): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::finishSpaceIncreaseTask): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::createObjectStoreAfterQuotaCheck): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::deleteObjectStoreAfterQuotaCheck): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::renameObjectStoreAfterQuotaCheck): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::clearObjectStoreAfetQuotaCheck): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::createIndexAfterQuotaCheck): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::deleteIndexAfterQuotaCheck): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::renameIndexAfterQuotaCheck): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::putOrAddAfterQuotaCheck): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::getRecordAfterQuotaCheck): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::getAllRecordsAfterQuotaCheck): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::getCountAfterQuotaCheck): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::deleteRecordAfterQuotaCheck): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::openCursorAfterQuotaCheck): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::iterateCursorAfterQuotaCheck): Deleted.
(WebCore::IDBServer::UniqueIDBDatabase::commitTransactionAfterQuotaCheck): Deleted.
- Modules/indexeddb/server/UniqueIDBDatabase.h:
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::abortTransactionWithoutCallback):
- Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::abort):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::putOrAdd):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getAllRecords):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteRecord):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::openCursor):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::iterateCursor):
- Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::InProcessIDBServer::quotaManager):
(WebCore::storageQuotaManagerSpaceRequester):
(WebCore::InProcessIDBServer::InProcessIDBServer):
(WebCore::storageQuotaManagerGetter): Deleted.
- Modules/indexeddb/shared/InProcessIDBServer.h:
- WebCore.xcodeproj/project.pbxproj:
- storage/StorageQuotaManager.cpp:
(WebCore::StorageQuotaManager::create):
(WebCore::StorageQuotaManager::StorageQuotaManager):
(WebCore::StorageQuotaManager::requestSpaceOnMainThread):
(WebCore::StorageQuotaManager::requestSpaceOnBackgroundThread):
(WebCore::StorageQuotaManager::tryGrantRequest):
(WebCore::StorageQuotaManager::updateQuotaBasedOnUsage):
(WebCore::StorageQuotaManager::resetQuotaUpdatedBasedOnUsageForTesting):
(WebCore::StorageQuotaManager::resetQuotaForTesting):
(WebCore::StorageQuotaManager::~StorageQuotaManager): Deleted.
(WebCore::StorageQuotaManager::spaceUsage const): Deleted.
(WebCore::StorageQuotaManager::updateQuotaBasedOnSpaceUsage): Deleted.
(WebCore::StorageQuotaManager::initializeUsersIfNeeded): Deleted.
(WebCore::StorageQuotaManager::askUserToInitialize): Deleted.
(WebCore::StorageQuotaManager::addUser): Deleted.
(WebCore::StorageQuotaManager::shouldAskForMoreSpace const): Deleted.
(WebCore::StorageQuotaManager::removeUser): Deleted.
(WebCore::StorageQuotaManager::requestSpace): Deleted.
(WebCore::StorageQuotaManager::askForMoreSpace): Deleted.
(WebCore::StorageQuotaManager::processPendingRequests): Deleted.
- storage/StorageQuotaManager.h:
(WebCore::StorageQuotaManager::defaultThirdPartyQuotaFromPerOriginQuota):
(WebCore::StorageQuotaManager::StorageQuotaManager): Deleted.
(WebCore::StorageQuotaManager::resetQuota): Deleted.
(WebCore::StorageQuotaManager::state const): Deleted.
- storage/StorageQuotaUser.h: Removed.
Source/WebKit:
- NetworkProcess/NetworkProcess.cpp: Introduce class SessionStorageQuotaManager to manage all
StorageQuotaManagers of the same session.
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::addWebsiteDataStore):
(WebKit::NetworkProcess::addSessionStorageQuotaManager):
(WebKit::NetworkProcess::removeSessionStorageQuotaManager):
(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::createIDBServer):
(WebKit::NetworkProcess::addIndexedDatabaseSession):
(WebKit::NetworkProcess::setSessionStorageQuotaManagerIDBRootPath):
(WebKit::NetworkProcess::updateQuotaBasedOnSpaceUsageForTesting):
(WebKit::NetworkProcess::resetQuota):
(WebKit::NetworkProcess::storageQuotaManager):
(WebKit::NetworkProcess::initializeStorageQuota): Deleted.
(WebKit::NetworkProcess::clearStorageQuota): Deleted.
(): Deleted.
(WebKit::NetworkProcess::initializeQuotaUsers): Deleted.
- NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::SessionStorageQuotaManager::SessionStorageQuotaManager):
(WebKit::NetworkProcess::SessionStorageQuotaManager::defaultQuota const):
(WebKit::NetworkProcess::SessionStorageQuotaManager::ensureOriginStorageQuotaManager):
(WebKit::NetworkProcess::SessionStorageQuotaManager::existingStorageQuotaManagers):
(WebKit::NetworkProcess::SessionStorageQuotaManager::cacheRootPath const):
(WebKit::NetworkProcess::SessionStorageQuotaManager::setIDBRootPath):
(WebKit::NetworkProcess::SessionStorageQuotaManager::idbRootPath const):
(WebKit::NetworkProcess::StorageQuotaManagers::defaultQuota const): Deleted.
(WebKit::NetworkProcess::StorageQuotaManagers::setDefaultQuotas): Deleted.
(WebKit::NetworkProcess::StorageQuotaManagers::managersPerOrigin): Deleted.
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::getDirectorySize):
(WebKit::CacheStorage::Engine::diskUsage): static function to get the disk usage of CacheStorage given
CacheStorage root directory.
(WebKit::CacheStorage::Engine::requestSpace):
(WebKit::CacheStorage::Engine::readCachesFromDisk):
(WebKit::CacheStorage::Engine::writeSizeFile):
(WebKit::CacheStorage::Engine::readSizeFile):
(WebKit::CacheStorage::Engine::initializeQuotaUser): Deleted.
- NetworkProcess/cache/CacheStorageEngine.h:
- NetworkProcess/cache/CacheStorageEngineCache.cpp:
(WebKit::CacheStorage::Cache::put):
(WebKit::CacheStorage::Cache::remove):
- NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::create):
(WebKit::CacheStorage::Caches::Caches):
(WebKit::CacheStorage::Caches::~Caches):
(WebKit::CacheStorage::Caches::updateSizeFile):
(WebKit::CacheStorage::Caches::initializeSize):
(WebKit::CacheStorage::Caches::clear):
(WebKit::CacheStorage::Caches::requestSpace):
(WebKit::CacheStorage::Caches::writeRecord):
(WebKit::CacheStorage::Caches::removeRecord):
(WebKit::CacheStorage::Caches::whenInitialized): Deleted.
(WebKit::CacheStorage::Caches::resetSpaceUsed): Deleted.
- NetworkProcess/cache/CacheStorageEngineCaches.h:
- Shared/WebsiteDataStoreParameters.cpp:
(WebKit::WebsiteDataStoreParameters::encode const):
(WebKit::WebsiteDataStoreParameters::decode):
- Shared/WebsiteDataStoreParameters.h: Add a cacheStorageDirectory parameter so we know the direcotry of
CacheStorage when we start using WebsiteDataStore.
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreResetQuota):
- UIProcess/API/C/WKWebsiteDataStoreRef.h: Add a C API for reseting quota in TestRunner.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::resetQuota):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters):
(WebKit::WebsiteDataStore::resetQuota):
- UIProcess/WebsiteData/WebsiteDataStore.h:
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/StorageQuotaManager.cpp: Removed as we have a different StorageQuotaManager
implementation now.
- WebKitTestRunner/TestController.cpp: reset StorageQuotaManager's quota between tests.
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::resetQuota):
- WebKitTestRunner/TestController.h:
- 2:35 PM Changeset in webkit [252804] by
-
- 1 copy in tags/Safari-608.5.3
Tag Safari-608.5.3.
- 2:34 PM Changeset in webkit [252803] by
-
- 7 edits in branches/safari-608-branch/Source
Versioning.
- 2:29 PM Changeset in webkit [252802] by
-
- 2 edits in trunk/LayoutTests
Regression (r252701): imported/w3c/web-platform-tests/css/css-multicol/multicol-rule-shorthand-2.xht and multicol-rule-fraction-003.xht are failing on iOS
https://bugs.webkit.org/show_bug.cgi?id=204505
Unreviewed test gardening.
Two multicol tests still fail on iOS.
- platform/ios/TestExpectations:
- 2:21 PM Changeset in webkit [252801] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix compile error in release mode
https://bugs.webkit.org/show_bug.cgi?id=204534
Reviewed by Mark Lam.
A compiler error is thrown in release mode when compiling FullBytecodeLiveness::getLiveness,
since not all paths are returning a value.
- bytecode/FullBytecodeLiveness.h:
(JSC::FullBytecodeLiveness::getLiveness const):
- 2:13 PM Changeset in webkit [252800] by
-
- 14 edits1 add in trunk
[WebAssembly] Improve Wasm::LLIntGenerator
https://bugs.webkit.org/show_bug.cgi?id=204092
Reviewed by Saam Barati.
JSTests:
- wasm/stress/set-local-enclosed-stack.js: Added.
(assert.eq.instance.exports.foo):
(assert.eq):
Source/JavaScriptCore:
This improves the Wasm::LLIntGenerator by:
- Changing LLIntGenerator::ExpressionType from RefPtr<RegisterID> to VirtualRegister: Instead of allocating and retaining RegisterIDs we use VirtualRegisters directly and ensure that they match the WebAssembly stack, i.e. the parser's expression stack should match the virtual registers.
- Removing redundant moves when materializing constants and performing local.get: instead of creating a new temporary for each constant and local.get, we return the VirtualRegister for the constant/local slot directly. In order for this to work, we still allocate the stack slot for the temporaries, since we have to materialize them before loops and branches.
- Adding a constructor to ControlType that takes the results ExpressionList as an rvalue instead of copying it
- Optimizing callInformationFor, which is now split into two functions. The callee does not care about arguments, and should never allocate temporaries, and the caller case was optimized by avoiding unnecessary calls to newTemporary
- Delay holding the lock in LLintPlan::compileFunction, since we do not need to hold it while compiling the js-to-wasm entrypoint
- bytecode/BytecodeList.rb:
- bytecompiler/Label.h:
(JSC::GenericLabel::location const):
(JSC::GenericLabel::unresolvedJumps const):
- generator/Wasm.rb:
- llint/WebAssembly.asm:
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::endTopLevel):
(JSC::Wasm::AirIRGenerator::didPopValueFromStack):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::endTopLevel):
(JSC::Wasm::B3IRGenerator::didPopValueFromStack):
- wasm/WasmFunctionCodeBlock.cpp:
(JSC::Wasm::FunctionCodeBlock::addJumpTable):
- wasm/WasmFunctionCodeBlock.h:
- wasm/WasmFunctionParser.h:
(JSC::Wasm::FunctionParser::expressionStack):
(JSC::Wasm::FunctionParser<Context>::parseBody):
(JSC::Wasm::FunctionParser<Context>::parseExpression):
- wasm/WasmLLIntGenerator.cpp:
(JSC::Wasm::LLIntGenerator::ControlType::loop):
(JSC::Wasm::LLIntGenerator::ControlType::topLevel):
(JSC::Wasm::LLIntGenerator::ControlType::block):
(JSC::Wasm::LLIntGenerator::ControlType::if_):
(JSC::Wasm::LLIntGenerator::ControlType::targetArity const):
(JSC::Wasm::LLIntGenerator::ControlType::stackSize const):
(JSC::Wasm::LLIntGenerator::ControlType::ControlType):
(JSC::Wasm::LLIntGenerator::unifyValuesWithBlock):
(JSC::Wasm::LLIntGenerator::push):
(JSC::Wasm::LLIntGenerator::didPopValueFromStack):
(JSC::Wasm::LLIntGenerator::emptyExpression):
(JSC::Wasm::LLIntGenerator::addEndToUnreachable):
(JSC::Wasm::LLIntGenerator::dump):
(JSC::Wasm::LLIntGenerator::virtualRegisterForWasmLocal):
(JSC::Wasm::LLIntGenerator::jsNullConstant):
(JSC::Wasm::LLIntGenerator::zeroConstant):
(JSC::Wasm::LLIntGenerator::getDropKeepCount):
(JSC::Wasm::LLIntGenerator::dropKeep):
(JSC::Wasm::LLIntGenerator::walkExpressionStack):
(JSC::Wasm::LLIntGenerator::checkConsistency):
(JSC::Wasm::LLIntGenerator::materializeConstantsAndLocals):
(JSC::Wasm::LLIntGenerator::materializeLocals):
(JSC::Wasm::LLIntGenerator::ConstantMapHashTraits::constructDeletedValue):
(JSC::Wasm::LLIntGenerator::ConstantMapHashTraits::isDeletedValue):
(JSC::Wasm::LLIntGenerator::LLIntGenerator):
(JSC::Wasm::LLIntGenerator::finalize):
(JSC::Wasm::LLIntGenerator::callInformationForCaller):
(JSC::Wasm::LLIntGenerator::callInformationForCallee):
(JSC::Wasm::LLIntGenerator::addArguments):
(JSC::Wasm::LLIntGenerator::addLocal):
(JSC::Wasm::LLIntGenerator::didFinishParsingLocals):
(JSC::Wasm::LLIntGenerator::addConstant):
(JSC::Wasm::LLIntGenerator::getLocal):
(JSC::Wasm::LLIntGenerator::setLocal):
(JSC::Wasm::LLIntGenerator::getGlobal):
(JSC::Wasm::LLIntGenerator::addLoop):
(JSC::Wasm::LLIntGenerator::addTopLevel):
(JSC::Wasm::LLIntGenerator::addBlock):
(JSC::Wasm::LLIntGenerator::addIf):
(JSC::Wasm::LLIntGenerator::addElse):
(JSC::Wasm::LLIntGenerator::addElseToUnreachable):
(JSC::Wasm::LLIntGenerator::addReturn):
(JSC::Wasm::LLIntGenerator::addBranch):
(JSC::Wasm::LLIntGenerator::addSwitch):
(JSC::Wasm::LLIntGenerator::endBlock):
(JSC::Wasm::LLIntGenerator::endTopLevel):
(JSC::Wasm::LLIntGenerator::addCall):
(JSC::Wasm::LLIntGenerator::addCallIndirect):
(JSC::Wasm::LLIntGenerator::addRefIsNull):
(JSC::Wasm::LLIntGenerator::addRefFunc):
(JSC::Wasm::LLIntGenerator::addTableGet):
(JSC::Wasm::LLIntGenerator::addTableSize):
(JSC::Wasm::LLIntGenerator::addTableGrow):
(JSC::Wasm::LLIntGenerator::addCurrentMemory):
(JSC::Wasm::LLIntGenerator::addGrowMemory):
(JSC::Wasm::LLIntGenerator::addSelect):
(JSC::Wasm::LLIntGenerator::load):
(JSC::GenericLabel<Wasm::GeneratorTraits>::setLocation):
- wasm/WasmLLIntPlan.cpp:
(JSC::Wasm::LLIntPlan::compileFunction):
- wasm/WasmValidate.cpp:
(JSC::Wasm::Validate::endTopLevel):
(JSC::Wasm::Validate::didPopValueFromStack):
- 1:58 PM Changeset in webkit [252799] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(r251227): dashboard no longer shows page weight
https://bugs.webkit.org/show_bug.cgi?id=204528
Reviewed by Brian Burg.
WI.contentLoadedadds the debuggable type as a class to the<body>. In r251227, the
"web" debuggable type was split into "page" and "web-page". Update the few selectors that
used the debuggable type to show/hide parts of the UI.
- UserInterface/Views/DashboardContainerView.css:
(body:matches(.page, .web-page) .toolbar .dashboard-container): Added.
(body:not(.page, .web-page) .toolbar .dashboard-container): Added.
(body.web .toolbar .dashboard-container): Deleted.
(body:not(.web) .toolbar .dashboard-container): Deleted.
- UserInterface/Views/DefaultDashboardView.css:
(body:matches(.page, .web-page) .toolbar.collapsed .dashboard.default > :matches(.resourcesSize, .time, .logs)): Added.
(body:not(.page, .web-page) .toolbar .dashboard.default > :matches(.resourcesCount, .resourcesSize, .time)): Added.
(body.web .toolbar.collapsed .dashboard.default > :matches(.resourcesSize, .time, .logs)): Deleted.
(body:not(.web) .toolbar .dashboard.default > :matches(.resourcesCount, .resourcesSize, .time)): Deleted.
- 1:32 PM Changeset in webkit [252798] by
-
- 9 edits in trunk/Source/WebKit
Revert r250421
https://bugs.webkit.org/show_bug.cgi?id=202290
This is needed for rdar://problem/56760896
I left the soup parts of the original change untouched, which leaves speculative validation on for soup ports.
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
- UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
- UIProcess/API/APIProcessPoolConfiguration.h:
- UIProcess/API/C/WKContext.cpp:
(WKContextSetDiskCacheSpeculativeValidationEnabled):
- UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration diskCacheSpeculativeValidationEnabled]):
(-[_WKProcessPoolConfiguration setDiskCacheSpeculativeValidationEnabled:]):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
- 1:30 PM Changeset in webkit [252797] by
-
- 2 edits in trunk/Tools
Unreviewed, rolling out r252791.
Cannot use key on scalar in some perl versions
Reverted changeset:
"run-javascriptcore-tests: Failure to determine configuration
for reporting is fatal"
https://bugs.webkit.org/show_bug.cgi?id=204526
https://trac.webkit.org/changeset/252791
- 1:25 PM Changeset in webkit [252796] by
-
- 11 edits in trunk/Source/WebKit
Revert r250422
https://bugs.webkit.org/show_bug.cgi?id=202285
This is needed for rdar://problem/56760896
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::setCanHandleHTTPSServerTrustEvaluation):
- NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::canHandleHTTPSServerTrustEvaluation const):
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
- UIProcess/API/C/WKContext.cpp:
(WKContextSetCanHandleHTTPSServerTrustEvaluation):
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _setCanHandleHTTPSServerTrustEvaluation:]):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::setCanHandleHTTPSServerTrustEvaluation):
- UIProcess/WebProcessPool.h:
- 1:21 PM Changeset in webkit [252795] by
-
- 1 copy in tags/Safari-608.5.2
Tag Safari-608.5.2.
- 1:19 PM Changeset in webkit [252794] by
-
- 7 edits in branches/safari-608-branch/Source
Versioning.
- 12:40 PM Changeset in webkit [252793] by
-
- 7 edits in trunk
( r251737 ) media/remoteplayback-prompt.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=204362
<rdar://problem/57327870>
Reviewed by Jer Noble.
Source/WebCore:
No new tests, this fixes a flakey test.
- platform/mock/MediaPlaybackTargetPickerMock.cpp:
(WebCore::MediaPlaybackTargetPickerMock::MediaPlaybackTargetPickerMock):
(WebCore::MediaPlaybackTargetPickerMock::showPlaybackTargetPicker):
(WebCore::MediaPlaybackTargetPickerMock::startingMonitoringPlaybackTargets):
(WebCore::MediaPlaybackTargetPickerMock::setState):
(WebCore::MediaPlaybackTargetPickerMock::timerFired): Deleted.
- platform/mock/MediaPlaybackTargetPickerMock.h:
LayoutTests:
- media/media-source/only-bcp47-language-tags-accepted-as-valid-expected.txt:
- media/remoteplayback-prompt.html: Update to make debugging timeouts easier.
- media/video-test.js:
(waitForEventWithTimeout):
- 12:29 PM Changeset in webkit [252792] by
-
- 3 edits in trunk/Source/WebCore
Web Inspector: Canvas: adjust
InspectorCanvasAgent::recordCanvasActionto actually check that theCanvasRenderingContextstill exists
https://bugs.webkit.org/show_bug.cgi?id=204395
<rdar://problem/57347504>
Reviewed by Ryosuke Niwa.
The microtask we create to handle marking the end of a frame for a detached canvas doesn't
actually check that theCanvasRenderingContextstill exists, such as if it gets GCd during
a recording.
Instead of creating a microtask per-canvas, create a microtask per-
InspectorCanvasAgent
and save a list ofcanvasIdthat are actively recording, which can then be iterated to
handle marking the end of a frame for each once the microtask fires. If thecanvasIdcan't
be re-found, then the relatedCanvasRenderingContextmust have been removed.
- inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::recordCanvasAction):
(WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame):
(WebCore::InspectorCanvasAgent::reset):
- 12:06 PM Changeset in webkit [252791] by
-
- 2 edits in trunk/Tools
run-javascriptcore-tests: Failure to determine configuration for reporting is fatal
https://bugs.webkit.org/show_bug.cgi?id=204526
Reviewed by Aakash Jain.
- Scripts/run-javascriptcore-tests:
(configurationForUpload): Return empty hash if no configuration is available.
(uploadResults): Soft-fail upload if configuration is empty.
- 12:01 PM Changeset in webkit [252790] by
-
- 9 edits1 copy3 adds in trunk
Web Inspector: add support for new kinds of diagnostic events
https://bugs.webkit.org/show_bug.cgi?id=204430
Reviewed by Devin Rousso.
Source/WebInspectorUI:
This patch restructures the existing DiagnosticController to support multiple
self-contained event recorders. The first such recorder is for the TabActivity
diagnostic event. More will be added later.
Add two engineering settings: one which auto-logs diagnostic events to Inspector2 console,
and another which forces DiagnosticController to be active or inactive regardless of
whether a diagnostic logging delegate is actually installed. This is for manual testing.
This patch does not introduce any functionality changes to diagnostic event collection.
The TabActivityDiagnosticeventRecorder still needs some changes for it to sample correctly.
New Test: inspector/unit-tests/diagnostic-controller.html
- UserInterface/Base/Main.js:
(WI.contentLoaded):
- UserInterface/Controllers/DiagnosticController.js:
(WI.DiagnosticController):
(WI.DiagnosticController.prototype.set diagnosticLoggingAvailable):
(WI.DiagnosticController.prototype.addRecorder):
(WI.DiagnosticController.prototype.logDiagnosticEvent):
(WI.DiagnosticController.prototype._debugEnableDiagnosticLoggingSettingDidChange):
(WI.DiagnosticController.prototype._debugAutoLogDiagnosticEventsSettingDidChange):
(WI.DiagnosticController.prototype._updateRecorderStates):
(WI.DiagnosticController.supportsDiagnosticLogging): Deleted.
(WI.DiagnosticController.prototype.logDiagnosticMessage): Deleted.
(WI.DiagnosticController.prototype._didInteractWithTabContent): Deleted.
(WI.DiagnosticController.prototype._clearTabActivityTimeout): Deleted.
(WI.DiagnosticController.prototype._beginTabActivityTimeout): Deleted.
(WI.DiagnosticController.prototype._stopTrackingTabActivity): Deleted.
(WI.DiagnosticController.prototype._handleWindowFocus): Deleted.
(WI.DiagnosticController.prototype._handleWindowBlur): Deleted.
(WI.DiagnosticController.prototype._handleWindowKeyDown): Deleted.
(WI.DiagnosticController.prototype._handleWindowMouseDown): Deleted.
(WI.DiagnosticController.prototype._handleTabBrowserSelectedTabContentViewDidChange): Deleted.
Restructure DiagnosticController to be dumber. It holds on to a list of recorders and
turns them on and off. All event logging goes through one funnel method, which does not
use InspectorFrontendHost at all when running a Web Inspector layout test.
- UserInterface/Controllers/DiagnosticEventRecorder.js: Added.
(WI.DiagnosticEventRecorder):
(WI.DiagnosticEventRecorder.prototype.get name):
(WI.DiagnosticEventRecorder.prototype.get active):
(WI.DiagnosticEventRecorder.prototype.set active):
(WI.DiagnosticEventRecorder.prototype.setup):
(WI.DiagnosticEventRecorder.prototype.teardown):
Add base class for all individual diagnostic event recorders.
- UserInterface/Controllers/TabActivityDiagnosticEventRecorder.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DiagnosticController.js.
(WI.TabActivityDiagnosticEventRecorder):
(WI.TabActivityDiagnosticEventRecorder.prototype.setup):
(WI.TabActivityDiagnosticEventRecorder.prototype.teardown):
(WI.TabActivityDiagnosticEventRecorder.prototype.handleEvent):
(WI.TabActivityDiagnosticEventRecorder.prototype._didInteractWithTabContent):
(WI.TabActivityDiagnosticEventRecorder.prototype._clearTabActivityTimeout):
(WI.TabActivityDiagnosticEventRecorder.prototype._beginTabActivityTimeout):
(WI.TabActivityDiagnosticEventRecorder.prototype._stopTrackingTabActivity):
(WI.TabActivityDiagnosticEventRecorder.prototype._handleWindowFocus):
(WI.TabActivityDiagnosticEventRecorder.prototype._handleWindowBlur):
(WI.TabActivityDiagnosticEventRecorder.prototype._handleWindowKeyDown):
(WI.TabActivityDiagnosticEventRecorder.prototype._handleWindowMouseDown):
(WI.TabActivityDiagnosticEventRecorder.prototype._handleTabBrowserSelectedTabContentViewDidChange):
Move all user activity tracking to here. Restructure so that the recorder can be
turned on and off (this adds/removes its listeners and timers).
- UserInterface/Main.html: Add new files.
- UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.setDiagnosticLoggingAvailable):
Adjust the name, as WI.diagnosticController is no longer underscore-prefixed.
- UserInterface/Base/Setting.js:
Add new settings. Add getter 'valueRespectingDebugUIAvailability' which only
returns default values for Debug/Engineering settings if DebugUI is not enabled.
- UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createDebugSettingsView):
Add new settings to Settings Tab UI.
LayoutTests:
Add new test cases for WI.DiagnosticController.
- inspector/unit-tests/diagnostic-controller-expected.txt: Added.
- inspector/unit-tests/diagnostic-controller.html: Added.
- 11:55 AM Changeset in webkit [252789] by
-
- 14 edits9 adds in trunk
[JSC] DFG terminal's liveness should respect caller's opcodeID
https://bugs.webkit.org/show_bug.cgi?id=204317
Reviewed by Saam Barati.
JSTests:
- stress/call-var-args-phantom-arguments-handler-strict.js: Added.
(shouldBe):
(inlined):
(test):
- stress/call-var-args-phantom-arguments-handler.js: Added.
(shouldBe):
(inlined):
(test):
- stress/call-var-args-phantom-arguments-strict.js: Added.
(shouldBe):
(inlined):
(test):
- stress/call-var-args-phantom-arguments.js: Added.
(shouldBe):
(inlined):
(test):
- stress/derived-class-construct-varargs.js: Added.
(shouldThrow):
(B):
- stress/tail-call-var-args-phantom-arguments-handler-strict.js: Added.
(shouldBe):
(inlined):
(test):
- stress/tail-call-var-args-phantom-arguments-handler.js: Added.
(shouldBe):
(inlined):
(test):
- stress/tail-call-var-args-phantom-arguments-strict.js: Added.
(shouldBe):
(inlined):
(test):
- stress/tail-call-var-args-phantom-arguments.js: Added.
(shouldBe):
(inlined):
(test):
Source/JavaScriptCore:
Let's consider the following example, which is freqneutly seen in Speedometer2/EmberJS-Debug.
"use strict";
function assertImpl(cond)
{
if (!cond)
throw new Error();
}
function assert()
{
assertImpl.apply(undefined, arguments);
}
noInline(assert);
When compiling
throw, we emit a terminal node and put Phantom/PhantomLocal based on the bytecode liveness.
When collecting liveness for each frame, we use the liveness information of the bytecodeop_call_varargsin assert function.
This means that op_call_varargs's uses are considered as live (like,argumentsin this example).
But it is not necessary to mark it "live": if we are in assertImpl,argumentsis already loaded into the stack, and we no longer
useargumentswhen exiting, and the execution after the exit. Marking thisargumentslive makes thisargumentsallocated
in DFG, but this is wasteful.
In this patch, we introduce BeforeUse and AfterUse concept into bytecode liveness information. And use AfterUse information when
collecting liveness in the caller's frame in DFG. We only enable this for varargs for now since (1) applying this to the other ones
is not profitable, and (2) we need to be careful to make stack arguments live to allow materialization of arguments objects.
In op_call_varargs / op_tail_call_varargs / op_construct_varargs cases, uses are happen only for |callee|, |this|, and |arguments|.
And these are no longer necessary after calling.
We don't use liveness information in the next bytecode since it misses uses marked by exception handlers.
- bytecode/BytecodeLivenessAnalysis.cpp:
(JSC::BytecodeLivenessAnalysis::computeFullLiveness):
- bytecode/BytecodeLivenessAnalysis.h:
(JSC::BytecodeLivenessAnalysis::graph):
- bytecode/BytecodeLivenessAnalysisInlines.h:
(JSC::BytecodeLivenessPropagation::stepOverInstructionDef):
(JSC::BytecodeLivenessPropagation::stepOverInstructionUse):
(JSC::BytecodeLivenessPropagation::stepOverInstructionUseInExceptionHandler):
(JSC::BytecodeLivenessPropagation::stepOverInstruction):
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeIndex):
(JSC::computeDefsForBytecodeIndex):
- bytecode/FullBytecodeLiveness.h:
(JSC::FullBytecodeLiveness::getLiveness const):
(JSC::FullBytecodeLiveness::operandIsLive const):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::ForInContext::finalize):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::flushForTerminalImpl):
- dfg/DFGForAllKills.h:
(JSC::DFG::forAllKilledOperands):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::isLiveInBytecode):
- dfg/DFGGraph.h:
(JSC::DFG::Graph::forAllLocalsLiveInBytecode):
(JSC::DFG::Graph::appropriateLivenessCalculationPoint):
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- 11:55 AM Changeset in webkit [252788] by
-
- 2 edits in trunk/Tools
Setup EWS queue for JSConly i386
https://bugs.webkit.org/show_bug.cgi?id=204523
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/config.json:
- 11:14 AM Changeset in webkit [252787] by
-
- 10 edits in trunk/Source/WebCore
IndexedDB: lock-based implementation of suspension
https://bugs.webkit.org/show_bug.cgi?id=204379
Reviewed by Geoffrey Garen.
Covered by existing API test: IndexedDB.IndexedDBSuspendImminently
- Modules/indexeddb/server/IDBBackingStore.h:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::tryStop):
(WebCore::IDBServer::IDBServer::resume):
- Modules/indexeddb/server/IDBServer.h:
(WebCore::IDBServer::IDBServer::addDatabase):
(WebCore::IDBServer::IDBServer::removeDatabase):
- Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::getOrEstablishDatabaseInfo):
(WebCore::IDBServer::MemoryIDBBackingStore::beginTransaction):
(WebCore::IDBServer::MemoryIDBBackingStore::abortTransaction):
(WebCore::IDBServer::MemoryIDBBackingStore::commitTransaction):
(WebCore::IDBServer::MemoryIDBBackingStore::createObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::deleteObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::renameObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::clearObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::createIndex):
(WebCore::IDBServer::MemoryIDBBackingStore::deleteIndex):
(WebCore::IDBServer::MemoryIDBBackingStore::renameIndex):
(WebCore::IDBServer::MemoryIDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::deleteRange):
(WebCore::IDBServer::MemoryIDBBackingStore::addRecord):
(WebCore::IDBServer::MemoryIDBBackingStore::getRecord):
(WebCore::IDBServer::MemoryIDBBackingStore::getAllRecords):
(WebCore::IDBServer::MemoryIDBBackingStore::getIndexRecord):
(WebCore::IDBServer::MemoryIDBBackingStore::getCount):
(WebCore::IDBServer::MemoryIDBBackingStore::generateKeyNumber):
(WebCore::IDBServer::MemoryIDBBackingStore::revertGeneratedKeyNumber):
(WebCore::IDBServer::MemoryIDBBackingStore::maybeUpdateKeyGeneratorNumber):
(WebCore::IDBServer::MemoryIDBBackingStore::openCursor):
(WebCore::IDBServer::MemoryIDBBackingStore::iterateCursor):
(WebCore::IDBServer::MemoryIDBBackingStore::infoForObjectStore):
(WebCore::IDBServer::MemoryIDBBackingStore::deleteBackingStore):
(WebCore::IDBServer::MemoryIDBBackingStore::close):
(WebCore::IDBServer::MemoryIDBBackingStore::databaseSize const): Deleted.
- Modules/indexeddb/server/MemoryIDBBackingStore.h:
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::getOrEstablishDatabaseInfo):
(WebCore::IDBServer::SQLiteIDBBackingStore::beginTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::abortTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::commitTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::createObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::renameObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::clearObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::renameIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteRange):
(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::getIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getCount):
(WebCore::IDBServer::SQLiteIDBBackingStore::generateKeyNumber):
(WebCore::IDBServer::SQLiteIDBBackingStore::revertGeneratedKeyNumber):
(WebCore::IDBServer::SQLiteIDBBackingStore::maybeUpdateKeyGeneratorNumber):
(WebCore::IDBServer::SQLiteIDBBackingStore::openCursor):
(WebCore::IDBServer::SQLiteIDBBackingStore::iterateCursor):
(WebCore::IDBServer::SQLiteIDBBackingStore::prefetchCursor):
(WebCore::IDBServer::SQLiteIDBBackingStore::infoForObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::close):
(WebCore::IDBServer::SQLiteIDBBackingStore::hasTransaction const):
(WebCore::IDBServer::SQLiteIDBBackingStore::databaseSize const): Deleted.
- Modules/indexeddb/server/SQLiteIDBBackingStore.h:
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::~UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::deleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::performUnconditionalDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::shutdownForClose):
(WebCore::IDBServer::UniqueIDBDatabase::performStartVersionChangeTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::openBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::performCreateObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performRenameObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performClearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performCreateIndex):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteIndex):
(WebCore::IDBServer::UniqueIDBDatabase::performRenameIndex):
(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):
(WebCore::IDBServer::UniqueIDBDatabase::performGetRecord):
(WebCore::IDBServer::UniqueIDBDatabase::performGetIndexRecord):
(WebCore::IDBServer::UniqueIDBDatabase::performGetAllRecords):
(WebCore::IDBServer::UniqueIDBDatabase::performGetCount):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteRecord):
(WebCore::IDBServer::UniqueIDBDatabase::performOpenCursor):
(WebCore::IDBServer::UniqueIDBDatabase::performIterateCursor):
(WebCore::IDBServer::UniqueIDBDatabase::performPrefetchCursor):
(WebCore::IDBServer::UniqueIDBDatabase::performCommitTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::performAbortTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::performActivateTransactionInBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::abortTransactionOnMainThread):
(WebCore::IDBServer::UniqueIDBDatabase::commitTransactionOnMainThread):
(WebCore::IDBServer::UniqueIDBDatabase::suspend):
(WebCore::IDBServer::UniqueIDBDatabase::resume):
(WebCore::IDBServer::UniqueIDBDatabase::finishActiveTransactions): Deleted.
- Modules/indexeddb/server/UniqueIDBDatabase.h:
- 11:08 AM Changeset in webkit [252786] by
-
- 2 edits in trunk/Tools
[ews] Add KillOldProcesses step before running JSC tests
https://bugs.webkit.org/show_bug.cgi?id=204525
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/factories.py:
- 11:00 AM Changeset in webkit [252785] by
-
- 6 edits in trunk/Source/WebCore
Make CSSValuePool constructable
https://bugs.webkit.org/show_bug.cgi?id=204520
Patch by Chris Lord <Chris Lord> on 2019-11-22
Reviewed by Antti Koivisto.
No new tests, no new functionality.
- css/CSSInheritedValue.h:
- css/CSSRevertValue.h:
- css/CSSUnsetValue.h:
- css/CSSValuePool.cpp:
(WebCore::CSSValuePool::singleton):
(WebCore::CSSValuePool::CSSValuePool):
- css/CSSValuePool.h:
- 11:00 AM Changeset in webkit [252784] by
-
- 2 edits in trunk/Source/WebCore
Try to fix build on an old MacOS version
Unreviewed.
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::commitTreeState):
- 10:57 AM Changeset in webkit [252783] by
-
- 4 edits in trunk/JSTests
Skip tests that fail on arm and mips devices
https://bugs.webkit.org/show_bug.cgi?id=204522
Unreviewed gardening.
- stress/generator-cell-with-type.js:
- stress/stack-overflow-in-yarr-byteCompile.js:
- stress/toctou-having-a-bad-time-new-array.js:
- 10:41 AM Changeset in webkit [252782] by
-
- 3 edits in trunk/Source/WebKit
Remove -[_WKThumbnailView usesSnapshot/setUsesSnapshot:]
https://bugs.webkit.org/show_bug.cgi?id=150099
Reviewed by Tim Horton.
Remove some unused, no-op SPI. While we're here, remove a couple unneeded explicit
property syntheses.
- UIProcess/API/Cocoa/_WKThumbnailView.h:
- UIProcess/API/Cocoa/_WKThumbnailView.mm:
(-[_WKThumbnailView setUsesSnapshot:]): Deleted.
(-[_WKThumbnailView usesSnapshot]): Deleted.
- 10:25 AM Changeset in webkit [252781] by
-
- 2 edits in trunk/Tools
run-javascriptcore-tests: Hide the output of binaries behind --verbose
https://bugs.webkit.org/show_bug.cgi?id=204386
Reviewed by Aakash Jain.
- Scripts/run-javascriptcore-tests:
(runTest): Do not log binary output by default, always log test failures.
- 10:02 AM Changeset in webkit [252780] by
-
- 4 edits in trunk/Tools
[ews] Add basic commit-queue support in new EWS
https://bugs.webkit.org/show_bug.cgi?id=204517
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/config.json:
- BuildSlaveSupport/ews-build/factories.py:
- BuildSlaveSupport/ews-build/loadConfig.py:
- 9:51 AM Changeset in webkit [252779] by
-
- 2 edits in trunk/Tools
run-webkit-tests: Failing to run spindump shouldn't be fatal
https://bugs.webkit.org/show_bug.cgi?id=204518
<rdar://problem/57397417>
Reviewed by Aakash Jain.
- Scripts/webkitpy/port/darwin.py:
(DarwinPort.sample_process): Catch script error.
- 9:25 AM Changeset in webkit [252778] by
-
- 11 edits in trunk
Speculative loading sometimes happens too early and is missing login cookies
https://bugs.webkit.org/show_bug.cgi?id=204305
<rdar://problem/57063840>
Reviewed by Antti Koivisto.
Source/WebKit:
Speculative loads were issued before receiving the response from the main resource. However,
the main resource may set important cookies that are thus missing from the speculative requests.
To address the issue we now delay speculative loads for first-party subresources until we've
received the response from the main resource. To avoid regressing PLT, we still warm up the
first-party subresources from disk right away and preconnect to the server.
No new tests, extended existing test.
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didReceiveMainResourceResponse):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::didReceiveMainResourceResponse const):
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::markMainResourceResponseAsReceived):
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::addPostMainResourceResponseTask):
(WebKit::NetworkCache::SpeculativeLoadManager::shouldRegisterLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::registerMainResourceLoadResponse):
(WebKit::NetworkCache::SpeculativeLoadManager::preconnectForSubresource):
(WebKit::NetworkCache::SpeculativeLoadManager::revalidateSubresource):
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
- NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:
(WebKit::NetworkCache::SubresourceInfo::isFirstParty const):
- NetworkProcess/cache/NetworkCacheSubresourcesEntry.h:
LayoutTests:
Extend layout test coverage to make sure that the validation request contains the latest cookies
set by the main resource.
- http/tests/cache/disk-cache/speculative-validation/resources/validation-request-frame.php:
- http/tests/cache/disk-cache/speculative-validation/validation-request-expected.txt:
- http/tests/cache/disk-cache/speculative-validation/validation-request.html:
- 9:08 AM Changeset in webkit [252777] by
-
- 2 edits in trunk/Source/WTF
Unreviewed FTW build fix after r252687.
- wtf/PlatformFTW.cmake:
- 8:37 AM Changeset in webkit [252776] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Line::inlineItemContentHeight should only call FormattingContext::geometryForBox when needed
https://bugs.webkit.org/show_bug.cgi?id=204516
<rdar://problem/57429153>
Reviewed by Antti Koivisto.
Line::inlineItemContentHeight is hot and geometryForBox() is a hash lookup. Let's not call it unless we need to.
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::inlineItemContentHeight const):
- 7:28 AM Changeset in webkit [252775] by
-
- 4 edits in trunk/Tools
Remove JSC 32bit ARMv7 and MipsEl old EWS queues
https://bugs.webkit.org/show_bug.cgi?id=204344
Patch by Paulo Matos <Paulo Matos> on 2019-11-22
Reviewed by Aakash Jain.
Remove JSC armv7 and mips from old EWS queue and fix bubbles
by removing them from old ews and adding them to new ews.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:
(BubbleQueueServer):
- BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
(StatusBubble):
- QueueStatusServer/config/queues.py:
- 7:23 AM Changeset in webkit [252774] by
-
- 2 edits in trunk/LayoutTests
Layout Test storage/indexeddb/modern/new-database-after-user-delete.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=204489
Unreviewed test gardening.
- platform/win/TestExpectations:
- 6:55 AM Changeset in webkit [252773] by
-
- 2 edits in trunk/Tools
Support JSCOnly platform in test reporting
https://bugs.webkit.org/show_bug.cgi?id=204495
Patch by Paulo Matos <Paulo Matos> on 2019-11-22
Reviewed by Carlos Garcia Campos.
Add JSCOnly to possible platforms.
- Scripts/run-javascriptcore-tests:
(configurationForUpload):
- 6:51 AM Changeset in webkit [252772] by
-
- 4 edits in trunk/Source
Unreviewed. Fix GTK/WPE debug build after r252770
Just remove the ASSERT instead, since it now always receive a newly created Ref.
Source/JavaScriptCore:
- inspector/remote/glib/RemoteInspectorGlib.cpp:
(Inspector::RemoteInspector::setupConnection):
Source/WebDriver:
- glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::setupConnection):
- 6:42 AM Changeset in webkit [252771] by
-
- 4 edits in trunk/Source
Unreviewed. Fix GTK/WPE debug build after r252770
Source/JavaScriptCore:
- inspector/remote/glib/RemoteInspectorGlib.cpp:
(Inspector::RemoteInspector::setupConnection):
Source/WebDriver:
- glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::setupConnection):
- 6:22 AM Changeset in webkit [252770] by
-
- 23 edits2 copies2 adds1 delete in trunk
[GTK][WPE] RemoteInspector: use sockets instead of DBus
https://bugs.webkit.org/show_bug.cgi?id=204503
Reviewed by Žan Doberšek.
Source/JavaScriptCore:
It turns out DBus is event slower than expected. Using GSockets API we can simplify the code and make it a lot
more efficient. This will drastically reduce the time to run WebDriver tests in the bots.
- inspector/remote/RemoteInspector.h:
- inspector/remote/glib/RemoteInspectorGlib.cpp:
(Inspector::RemoteInspector::start):
(Inspector::RemoteInspector::stopInternal):
(Inspector::RemoteInspector::setupConnection):
(Inspector::RemoteInspector::pushListingsNow):
(Inspector::RemoteInspector::pushListingsSoon):
(Inspector::RemoteInspector::sendAutomaticInspectionCandidateMessage):
(Inspector::RemoteInspector::sendMessageToRemote):
- inspector/remote/glib/RemoteInspectorServer.cpp:
(Inspector::RemoteInspectorServer::~RemoteInspectorServer):
(Inspector::RemoteInspectorServer::start):
(Inspector::RemoteInspectorServer::incomingConnectionCallback):
(Inspector::RemoteInspectorServer::incomingConnection):
(Inspector::RemoteInspectorServer::setTargetList):
(Inspector::RemoteInspectorServer::setupInspectorClient):
(Inspector::RemoteInspectorServer::setup):
(Inspector::RemoteInspectorServer::close):
(Inspector::RemoteInspectorServer::connectionDidClose):
(Inspector::RemoteInspectorServer::sendMessageToBackend):
(Inspector::RemoteInspectorServer::sendMessageToFrontend):
(Inspector::RemoteInspectorServer::startAutomationSession):
- inspector/remote/glib/RemoteInspectorServer.h:
(Inspector::RemoteInspectorServer::isRunning const):
Source/WebDriver:
Use GSockets API instead of DBus.
- SessionHost.cpp:
(WebDriver::SessionHost::sendCommandToBackend):
- SessionHost.h:
- glib/SessionHostGlib.cpp:
(WebDriver::SessionHost::~SessionHost):
(WebDriver::SessionHost::isConnected const):
(WebDriver::ConnectToBrowserAsyncData::ConnectToBrowserAsyncData):
(WebDriver::SessionHost::launchBrowser):
(WebDriver::SessionHost::connectToBrowser):
(WebDriver::SessionHost::connectionDidClose):
(WebDriver::SessionHost::setupConnection):
(WebDriver::SessionHost::startAutomationSession):
(WebDriver::SessionHost::didStartAutomationSession):
(WebDriver::SessionHost::setTargetList):
(WebDriver::SessionHost::sendMessageToBackend):
- socket/SessionHostSocket.cpp:
(WebDriver::SessionHost::sendMessageToBackend):
Source/WebKit:
Use GSockets API instead of DBus.
- Platform/IPC/Connection.h:
- SourcesGTK.txt: Remove GSocketMonitor that has been moved to WTF.
- SourcesWPE.txt: Ditto.
- UIProcess/glib/RemoteInspectorClient.cpp:
(WebKit::RemoteInspectorClient::RemoteInspectorClient):
(WebKit::RemoteInspectorClient::~RemoteInspectorClient):
(WebKit::RemoteInspectorClient::setupConnection):
(WebKit::RemoteInspectorClient::connectionDidClose):
(WebKit::RemoteInspectorClient::inspect):
(WebKit::RemoteInspectorClient::sendMessageToBackend):
(WebKit::RemoteInspectorClient::closeFromFrontend):
- UIProcess/glib/RemoteInspectorClient.h:
Source/WTF:
Add SocketConnection class.
- wtf/PlatformGTK.cmake:
- wtf/PlatformWPE.cmake:
- wtf/glib/GSocketMonitor.cpp: Renamed from Source/WebKit/Platform/IPC/glib/GSocketMonitor.cpp.
(WTF::GSocketMonitor::start):
- wtf/glib/GSocketMonitor.h: Renamed from Source/WebKit/Platform/IPC/glib/GSocketMonitor.h.
(WTF::GSocketMonitor::isActive const):
- wtf/glib/GTypedefs.h:
- wtf/glib/GUniquePtr.h:
- wtf/glib/SocketConnection.cpp: Added.
(WTF::SocketConnection::SocketConnection):
(WTF::SocketConnection::~SocketConnection):
(WTF::SocketConnection::read):
(WTF::SocketConnection::readMessage):
(WTF::SocketConnection::sendMessage):
(WTF::SocketConnection::write):
(WTF::SocketConnection::waitForSocketWritability):
(WTF::SocketConnection::close):
(WTF::SocketConnection::didClose):
- wtf/glib/SocketConnection.h: Added.
(WTF::SocketConnection::create):
(WTF::SocketConnection::isClosed const):
Tools:
Update the unit tests to not use DBus.
- TestWebKitAPI/Tests/WebKitGLib/TestAutomationSession.cpp:
- 5:28 AM Changeset in webkit [252769] by
-
- 5 edits3 moves1 add1 delete in trunk/LayoutTests
[ iOS Release ]: Layout Test http/tests/navigation/page-cache-domcache-pending-promise.html is a Flaky Timeout
https://bugs.webkit.org/show_bug.cgi?id=203373
<rdar://problem/56590038>
Reviewed by Youenn Fablet.
I am not able to reproduce the flakiness so this includes speculative fixes and better error handling so
that the test would hopefully fail with a message instead of timing out.
Speculative fixes:
- If the promise is resolved before we've navigated away, retry it asynchronously.
- If the promise is rejected before we've navigated away, retry it asynchronously instead of synchronously. I believe it is possible to prevent the navigation otherwise, in cases where the promise is rejected synchronously.
- http/tests/navigation/page-cache-domcache-pending-promise-expected.txt:
- http/tests/navigation/page-cache-domcache-pending-promise.html:
- 5:09 AM Changeset in webkit [252768] by
-
- 5 edits2 adds in trunk
File input should fire an 'input' event before the 'change' event
https://bugs.webkit.org/show_bug.cgi?id=204292
Reviewed by Wenson Hsieh.
Source/WebCore:
"Queue a task to first update the element's selected files so that it represents the user's selection, then fire
an event named input at the input element, with the bubbles attribute initialized to true, and finally fire an
event named change at the input element, with the bubbles attribute initialized to true."
https://html.spec.whatwg.org/#file-upload-state-(type=file):event-input
This will also fix WebDriver test imported/w3c/webdriver/tests/element_send_keys/events.py::test_file_upload in
safari driver.
Test: fast/forms/file/file-input-user-selection-events.html
- html/FileInputType.cpp:
(WebCore::FileInputType::setFiles):
LayoutTests:
Add new test to check both events are fired now.
- fast/forms/file/file-input-user-selection-events-expected.txt: Added.
- fast/forms/file/file-input-user-selection-events.html: Added.
- 3:32 AM Changeset in webkit [252767] by
-
- 3 edits in trunk/Source/JavaScriptCore
Fix missing exception check in replaceUsingStringSearch().
https://bugs.webkit.org/show_bug.cgi?id=204496
Reviewed by Yusuke Suzuki.
The CachedCall constructor can throw OutOfMemory or StackOverflow errors.
This was caught by existing JSC stress tests when we run with a debug build.
Also placate the exception check validator in $vm's functionCallWithStackSize().
- runtime/StringPrototype.cpp:
(JSC::replaceUsingStringSearch):
- tools/JSDollarVM.cpp:
(JSC::functionCallWithStackSize):
- 1:39 AM Changeset in webkit [252766] by
-
- 4 edits in trunk
replaceUsingStringSearch() should not use CachedCall with host functions.
https://bugs.webkit.org/show_bug.cgi?id=204494
<rdar://problem/57421078>
Reviewed by Ross Kirsling.
JSTests:
- stress/string-replaceAll-2.js:
Source/JavaScriptCore:
The CachedCall mechanism does not support calling hist functions.
- runtime/StringPrototype.cpp:
(JSC::replaceUsingStringSearch):